@Filipp42

Как работает обратное распространение в нейросети с пороговой функцией?

Пишу простенькую нейросеть. На выходе должна быть пороговая функция активации. Но вот беда, для обратного распространения ошибки нужна производная. А у пороговой она мало того, почти везде равна нулю, так ещё и не определена на пороге. Как обучать сеть?
О сети: два входных нейрона, два скрытых слоя на три нейрона. Один выходной нейрон с пороговой функцией. Остальные применяют релу с утечкой. Решает задачу исключающего или.
  • Вопрос задан
  • 146 просмотров
Пригласить эксперта
Ответы на вопрос 1
@berng
Никак не работает. Для метода градиентного спуска функция активации должна быть непрерывна, да еще и желательно монотонна, желательно без нулей производной. А производная пороговой функции - ноль почти везде, поэтому градиент функции потерь (по которому считается приращение коэффициентов нейронов, и в который входит производная функции активации множителем) будет почти всегда нулевой - и приращение коэффициентов будет нулевым - обучение не пойдет. Можете попробовать использовать генетический алгоритм вместо градиентного спуска, он сможет. Опять-же, если у вас пороговая функция только на выходе - замените ее на сигмоиду с очень маленькой температурой(чтобы переход 0-1 был порезче), это позволит сеть обучить и градиентным спуском, хотя и очень медленно.
А исключающее или решается оптимально тремя нейронами с пороговыми функциями аналитически, без обучения - раскладываете xor по формуле через базовую логику в нормальную форму (и,или,не), для них находите коэффициенты нейронов.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы