Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Алгоритмы > Как ИМЕННО происходит обратное распространение?


Автор: Dims 22.7.2009, 13:50
Как именно происходит обратное распространение ошибки? 

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

На самом деле, очевидно, что алгоритм обучения будет работать не только с сигмоидной функцией активации, но и с любой другой, у которой есть производная. Кроме того, очевидно, что кроме градиентного спуска могут использоваться другие методы оптимизации, например, метод Ньютона или Левенберга — Маркардта.

Поэтому, хотелось бы отделить одно от другого и понять, как ПРАВИЛЬНО осуществлять только и собственно обратное распространение ошибки.

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

Примеры:

1) Статья в русской Википедии: http://ru.wikipedia.org/wiki/%D0%9E%D0%B1%D1%80%D0%B0%D1%82%D0%BD%D0%BE%D0%B5_%D1%80%D0%B0%D1%81%D0%BF%D1%80%D0%BE%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5

Описывается алгоритм исключительно с функцией Ферми (в тексте неожиданно подставляется свойство её производной y' = y(1-y), причём выполняется именно стохастический градиентный спуск.

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

2) Графическое объяснение: http://galaxy.agh.edu.pl/~vlsi/AI/backp_t_en/backprop.html

Описывается только градиентный спуск, хотя функция активации не постулируется. 

При обратном распространении ошибки просто умножаются на веса, активационные функции игнорируются.

Так как правильно?

Автор: dereyly 23.7.2009, 01:33
Я согласен с вами, то что описывается на русских интернет ресурсах недостаточно полно и четко отражает существующий ход вещей. Но все же в описанных алгоритмах нет ошибок, просто второй расписан очень подробно, дабы понять суть процесса. Метод обратного распространения ошибки, это не только градиентный спуск, существует немало успешных примеров оперирующих со второй производной или матрицей Якоби, т.е. Ньютоновские методы и Левенберга - Маркардта (как вы писали). Т.к метод Левенберга - Маркардта блочный он рассматривает все (или набор случайных) примеры, на основе ошибок этих примеров  строит матрицу Якоби, вычисляя производные по каждому весу, а вот эта самая производная находится по закону обратного распространения ошибки.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)