нейронная сеть обратного распространения с дискретным выводом - PullRequest
3 голосов
/ 23 июня 2011

Я работаю через пример xor с трехслойной сетью обратного распространения.Когда выходной слой имеет сигмовидную активацию, вход (1,0) может дать 0,99 для желаемого выхода 1, а вход (1,1) может дать 0,01 для желаемого выхода 0.

Но что, если нужно, чтобы вывод был дискретным, 0 или 1, я просто устанавливаю порог между 0,5?Нужно ли тренировать этот порог как любой другой вес?

Ответы [ 2 ]

1 голос
/ 24 июня 2011

Ну, конечно, вы можете установить порог после выходного нейрона, который принимает значения после 0,5 как 1 и, наоборот, все выходы ниже 0,5 как ноль.Я предлагаю не скрывать непрерывный вывод с порогом дискретизации, потому что выход 0,4 меньше «нуля», чем значение 0,001, и эта разница может дать вам полезную информацию о ваших данных.

0 голосов
/ 30 июня 2011

сделать тренировку без порога, т.е.вычисляет ошибку в примере, используя то, что выводит нейронная сеть, без порогового значения.

Еще одна маленькая деталь: вы используете функцию передачи, такую ​​как сигмоид?Функция сигмоида возвращает значения в [0, 1], но 0 и 1 являются асимптотическими, т.е.сигмоидальная функция может приближаться к этим значениям, но никогда не достигать их.Следствием этого является то, что ваша нейронная сеть не может точно вывести 0 или 1!Таким образом, используя сигмовидные времена, фактор чуть выше 1 может исправить это.Этот и некоторые другие практические аспекты обратного распространения обсуждаются здесь http://yann.lecun.com/exdb/publis/pdf/lecun-98b.pdf

...