Проблема XOR решаема с нейронной сетью 2x2x1 без смещения?

Предполагается ли, что нейронная сеть с 2 входными узлами, 2 скрытыми узлами и выходом может решить проблему XOR при условии отсутствия смещения? Или может застрять?


person devoured elysium    schedule 12.12.2009    source источник
comment
Есть больше ограничений на отсутствие предвзятости, например, НЕ возможно.   -  person Georg Schölly    schedule 12.12.2009
comment
вас может заинтересовать этот ответ > stackoverflow.com/questions/38561182/   -  person Abhijay Ghildyal    schedule 05.08.2016


Ответы (4)


Оставьте смещение. Он не видит значения ваших входов.

В терминах взаимно-однозначной аналогии мне нравится думать о смещении как о смещении c-значения в уравнении прямой линии: y = mx + c; он добавляет в вашу систему независимую степень свободы, на которую не влияют входные данные вашей сети.

person Zaid    schedule 14.12.2009
comment
+1. не могли бы вы ответить на мой вопрос здесь, я думаю, что это снова связано с предвзятостью, может быть, я думаю, что ответ неправильный... datascience.stackexchange.com/questions/86000/ - person ; 27.11.2020

Если я правильно помню, невозможно иметь XOR без предвзятости.

person Georg Schölly    schedule 12.12.2009
comment
У меня есть (надеюсь, работающий) класс нейронной сети, который, кажется, может решить его с 2 входами, 3 скрытыми нейронами и 1 выходом, но не может с 2 скрытыми нейронами. Достаточно ли при расчете net = w1x1 + w2x2 просто добавить к уравнению 1, net = w1x1 + w2x2 + 1, или этого все же недостаточно? я должен иметь 3-й вес? Спасибо - person devoured elysium; 12.12.2009
comment
Я думаю, что в вашем примере с 3 скрытыми нейронами один из нейронов действует как уклон, поэтому он работает. Я не могу придумать пример, который работал бы с двумя скрытыми узлами. В чем причина не использовать предвзятость? - person Georg Schölly; 12.12.2009

Я построил нейронную сеть без смещения, и архитектура 2x2x1 решает XOR за 280 эпох. Я новичок в этом, поэтому не знал ни того, ни другого, но это работает, так что это возможно.

С уважением,

person Katya    schedule 22.09.2010

Да, вы можете, если используете функцию активации, например 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. Если бы, например, мы использовали единицы для ложных примеров и двойки для истинных примеров, этот подход больше не работал бы.

person Tadej Magajna    schedule 19.07.2017