![]() |
|
|
![]()
|
|
| Dims |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1016 Регистрация: 21.11.2006 Репутация: 1 Всего: 11 |
Как именно происходит обратное распространение ошибки?
Наткнулся на мутную воду и разночтения: в большинстве мануалов происходит смешение нескольких процессов: обратного распространения ошибки, вычисления квадрата разности, вычисления производной сигмоидной функции и алгоритма оптимизации. На самом деле, очевидно, что алгоритм обучения будет работать не только с сигмоидной функцией активации, но и с любой другой, у которой есть производная. Кроме того, очевидно, что кроме градиентного спуска могут использоваться другие методы оптимизации, например, метод Ньютона или Левенберга — Маркардта. Поэтому, хотелось бы отделить одно от другого и понять, как ПРАВИЛЬНО осуществлять только и собственно обратное распространение ошибки. Как я уже сказал, мне кажется, что в мануалах есть разночтения. Думается, многие алгоритмы реализованы неправильно и работают только потому, что нейросеть сама по себе достаточно адаптивна и помогает даже при неправильном алгоритме. Примеры: 1) Статья в русской Википедии: http://ru.wikipedia.org/wiki/%D0%9E%D0%B1%...%BD%D0%B8%D0%B5 Описывается алгоритм исключительно с функцией Ферми (в тексте неожиданно подставляется свойство её производной y' = y(1-y), причём выполняется именно стохастический градиентный спуск. При обратном распространении ошибка умножается на веса, складывается и умножается на производную активационной функции. При внесении поправки к весу используется оригинальная формула с дополнительным параметром альфа. 2) Графическое объяснение: http://galaxy.agh.edu.pl/~vlsi/AI/backp_t_en/backprop.html Описывается только градиентный спуск, хотя функция активации не постулируется. При обратном распространении ошибки просто умножаются на веса, активационные функции игнорируются. Так как правильно? |
|||
|
||||
| dereyly |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 217 Регистрация: 16.6.2006 Репутация: 1 Всего: 4 |
Я согласен с вами, то что описывается на русских интернет ресурсах недостаточно полно и четко отражает существующий ход вещей. Но все же в описанных алгоритмах нет ошибок, просто второй расписан очень подробно, дабы понять суть процесса. Метод обратного распространения ошибки, это не только градиентный спуск, существует немало успешных примеров оперирующих со второй производной или матрицей Якоби, т.е. Ньютоновские методы и Левенберга - Маркардта (как вы писали). Т.к метод Левенберга - Маркардта блочный он рассматривает все (или набор случайных) примеры, на основе ошибок этих примеров строит матрицу Якоби, вычисляя производные по каждому весу, а вот эта самая производная находится по закону обратного распространения ошибки.
Это сообщение отредактировал(а) dereyly - 23.7.2009, 09:38 |
|||
|
||||
![]()
|
| Правила форума "Алгоритмы" | |
|
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Алгоритмы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |