Я пытаюсь начать работу с нейронной сетью и реализовать логические функции, такие как AND/OR. Вместо использования 0 и 1 в качестве двоичных входов они используют -1 и +1. Есть ли причина, по которой мы не можем использовать (0, 1)? В качестве примера: http://www.youtube.com/watch?v=Ih5Mr93E-2cПочему у нас есть -1 и +1 как двоичные входы вместо 0 и 1
ответ
В большинстве случаев нет разницы. Просто используйте активацию логистической функции вместо tanh
. В некоторых специальных формах, например, модели Изинга, он мог бы нетривиально изменить пространство параметров.
Если вы действительно имеете в виду входы, никаких ограничений на использование {-1,1}
. Вы можете так же легко использовать {0,1}
или любую другую пару действительных чисел (например, {6,42}
), чтобы определить свои входные значения True/False.
Что может вас смущать в диаграммах, так это то, что {-1,1}
используются как выходы нейронов. Причина этого, как заявила @Memming, связана с функцией активации, используемой для нейрона. Если для функции активации используется tanh
, выход нейрона будет находиться в диапазоне (-1,1), тогда как если вы используете logistic function, его выход будет находиться в диапазоне (0,1). Либо будет работать для многослойного персептрона - вам просто нужно определить целевое значение (ожидаемый результат) соответственно.
см. Здесь http://www.faqs.org/faqs/ai-faq/neural-nets/part2/, поиск 'Subject: Почему бы не ввести двоичные входы кода как 0 и 1? ' –