Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как ИМЕННО происходит обратное распространение? 
:(
    Опции темы
Dims
Дата 22.7.2009, 13:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 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

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

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

Так как правильно?
PM MAIL   Вверх
dereyly
Дата 23.7.2009, 01:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 217
Регистрация: 16.6.2006

Репутация: 1
Всего: 4



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

Это сообщение отредактировал(а) dereyly - 23.7.2009, 09:38
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.0370 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.