Предполагается ли, что нейронная сеть с 2 входными узлами, 2 скрытыми узлами и выходом может решить проблему XOR при условии отсутствия смещения? Или может застрять?
Проблема XOR решаема с нейронной сетью 2x2x1 без смещения?
Ответы (4)
Оставьте смещение. Он не видит значения ваших входов.
В терминах взаимно-однозначной аналогии мне нравится думать о смещении как о смещении c
-значения в уравнении прямой линии: y = mx + c
; он добавляет в вашу систему независимую степень свободы, на которую не влияют входные данные вашей сети.
Если я правильно помню, невозможно иметь XOR без предвзятости.
Я построил нейронную сеть без смещения, и архитектура 2x2x1 решает XOR за 280 эпох. Я новичок в этом, поэтому не знал ни того, ни другого, но это работает, так что это возможно.
С уважением,
Да, вы можете, если используете функцию активации, например Relu (f(x) =max(0,x))
Пример весов такой сети:
Layer1: [[-1, 1], [1, -1]]
Layer2: [[1], [1]]
Для первого (скрытого) слоя:
- Если ввод [0,0], оба узла будут иметь активацию 0: ReLU(-1*0 + 1*0) = 0, ReLU(1*0 + -1*0) = 0
- Если ввод равен [1,0], один узел будет иметь активацию 0 ReLU(-1*1 + 1*0) = 0, а другой активацию 1 ReLU(1*1 + -1*0) = 1.
- Если ввод равен [0,1], один узел будет иметь активацию 1 ReLu(-1*0 + 1*1) = 1, а другой активацию 0 ReLU(1*0 + -1*1) = 0
- Если ввод [1,1], оба узла будут иметь активацию 0: ReLU(-1*1 + 1*1 = 0) = 0, ReLU(1*1 + -1*1 = 0) = 0
Для второго (выходного) слоя: поскольку веса равны [[1], [1]] (и не может быть отрицательных активаций из предыдущего слоя из-за ReLU), слой просто действует как сумма активаций в слое 1.
- Если ввод равен [0,0], сумма активаций на предыдущем уровне равна 0.
- Если введено [1,0], сумма активаций на предыдущем уровне равна 1.
- Если ввод равен [0,1], сумма активаций на предыдущем уровне равна 1.
- Если вход равен [1,1], сумма активаций на предыдущем уровне равна 0
Хотя этот метод случайно работает в приведенном выше примере, он ограничен использованием нулевой (0) метки для ложных примеров проблемы XOR. Если бы, например, мы использовали единицы для ложных примеров и двойки для истинных примеров, этот подход больше не работал бы.