Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Алгоритм RLS (Recursive least squares), Нейронные сети. Алгоритм RLS 
V
    Опции темы
VinSilverVin
Дата 4.4.2012, 12:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Всем привет! Помогите разобраться с алгоритмом RLS. На сайтах есть общее описание алгоритмов, но, как правило, либо ошибки в алгоритме, либо неполная информация. Привожу пару сайтов: RLSRLS. Хотелось бы найти что-то типо такого Алгоритм обратного распространения ошибки, но для RLS не нашел. Особенно интересует вопросы с размерностью матриц P, g, I. Спасибо заранее... smile 
PM MAIL   Вверх
Mirkes
Дата 4.4.2012, 18:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



С самим алгоритмом не знаком, просто заинтересовало сравнение с back prop. Просмотрел предложенную вами вторую ссылку (wiki). По моему там очень подробно изложен вывод всех формул. И приведены окончательные формулы. Алгоритм накапливает все параметры постепенно. Уровень забывания задается лямбдой.
Матрицы P,I имеют размерность (p+1)x(p+1).
Вектор g имеет размерность p+1.
Формулы очень простые. Основная операция - умножение вектора на матрицу слева или срава и скалярное произведение двух векторов. 
Я не совсем понимаю, в чем проблема?


--------------------
Mirkes
PM MAIL   Вверх
VinSilverVin
Дата 5.4.2012, 05:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(Mirkes @ 4.4.2012,  18:42)
Матрицы P,I имеют размерность (p+1)x(p+1).
Вектор g имеет размерность p+1.
Я не совсем понимаю, в чем проблема?

А что если нейронная сеть многослойная и в каждом слое разное количество нейронов, например как в третьей ссылке (Алгоритм обратного распространения ошибки).  Какой размер матриц будет? Или это будет множество матриц? Или это будет просто массив массивов?
PM MAIL   Вверх
Mirkes
Дата 5.4.2012, 20:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



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


--------------------
Mirkes
PM MAIL   Вверх
VinSilverVin
Дата 6.4.2012, 05:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Этот алгоритм имеет непосредственную связь с нейронными сетями, скажем так это можно представить в виде отдельного нейрона. Если глянуть на первую ссылку, то можно увидеть связь. На самом деле я вводил неправильные запросы, я нашел алгоритм RLS для обучения нейронных сетей. Этот алгоритм в работает быстрее чем алгоритм BP, даже если алгоритм BP модифицировать и ввести момент. 
Например, алгоритм BP обучается, на задаче XOR, за 5819 эпох, а RLS за 641 эпох, с точнотью 0,001. Функция активации сигмоидальная, веса берутся случайным образом.
Вот ссылки на RLS:
RLS algorithm
Модификация алгоритма
PM MAIL   Вверх
Mirkes
Дата 6.4.2012, 19:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Откуда у вас данные про обучение BP xor? Если речь идет об обычной задаче обучения следующей функции
(1,1) 0
(1,0) 1
(0,1) 1
(0,0) 0
то я завтра поставлю пану экспериментов. Но насколько я помню, обучается BP фактически мгновенно. Сегдня просто нет под рукой нейроимитатора.
Сравнение с BP в статье проводилось, судя по параметрам, на одном из самых неудачных алгоритмов обучения.
Кстати, в статье указано, что часть параметров, необходимых для обучения, получается тем самым BP.
Проведу эксперименты - отпишусь.

Проверил на двух древних нейроимитаторах
Clab вариант 1 - 274 эпохи
Clab вариант 2 - 410 эпох
sigmoid1          - 148 эпох

Эксперименты проводил в каждом случае по 5 раз. Нейроимитаторы не очень приспособлены для этой задачи. Сами программы и их описания доступны на softcraft.ru.

Если говорить по существу, то предложенный метод накапливает историю обучения. Это означает, что результат обучения будет серьезно зависеть даже от порядка перечисления примеров в каждой эпохе, за исключением случая лямбда равного нулю. На каждом этапе определяется не направление корректировки весов а сами веса. Вектор корректировок конечно можно вычислить, но он не будет градиентом функции оценки и нельзя будет применять ускорители типа пакетного обучения, что сильно упрощает жизнь.
Кроме того, этот метод предназначен для решения задач прогнозирования значений и не позволяет учитывать особенности решения задач классификации, которые составляют подавляющую часть задач, решаемых с помощью нейронных сетей. Дело в том, что при правильном подходе к решениюадач классификации известно не желаемое значение выходного сигнала, а желаемое соотношение между выходными сигналами. Причем соотношение имеет вид неравенства. Если интересно об этом почитать, то на том же сайте в главе "Оценка и интерпретатор оценки" это расписано очень подробно.

Таким образом область применения рассматриваемого алгоритма понятна и по отношению к BP довольно ограничена. Однако для своих задач он может быть лучше BP. 

Еще одно замечание по поводу сравнения времени обучения в эпохах. В 1995 году С.Е.Гилев показал, что на одной и тойже задаче с одинаковой архитектурой сети на одном и том же алгоритме обучения время обучения в эпохах может различаться до в 100 раз. Так что при сравнениях нужно указывать не только среднее значение, но и дисперсию, а лучше сразу доверительный интервал.

Желаю успехов.

Это сообщение отредактировал(а) Mirkes - 7.4.2012, 06:49


--------------------
Mirkes
PM MAIL   Вверх
VinSilverVin
Дата 9.4.2012, 09:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата
Откуда у вас данные про обучение BP xor?

Реализовал алгоритм на C#

Какова была точноть? Сколько скрытых слоев и нейронов было в сети?
PM MAIL   Вверх
Mirkes
Дата 10.4.2012, 17:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(VinSilverVin @ 9.4.2012,  09:04)
Цитата
Откуда у вас данные про обучение BP xor?

Реализовал алгоритм на C#

Какова была точноть? Сколько скрытых слоев и нейронов было в сети?

Для Clab использовал рекуррентную сеть с тремя циклами обмена сигрналами. Всего три нейрона.
Для Sigmoid1 использовалась так же рекуррентная сеть с 2 циклами обмена сигналами. Ипоьзовал 5 нейронов, поскольку меньше программа не позволяет.

Вопрос про точность не корректен. В предыдущем посте я писал о различии между задачами классификации и задачей предсказания числа. В первом случае речь может идти только о надежности классификации, а во втором случае - о точности предсказания.

В программе Clab используется пакетный метод обучения нейронной сети с антиовражным квазиньютоновским методом BFGS
В программе Sigmoid1 используется оценка типа расстояние до множества, пакетное обучение, антиовражный метод mParTan.

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


--------------------
Mirkes
PM MAIL   Вверх
VinSilverVin
Дата 10.4.2012, 19:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Спасибо за предоставленную информацию. Я в нейронных сетях новичок, будет о чем подумать. smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

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


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

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


 




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


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

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