Модераторы: Rickert
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Обучение сети встречного распростронения, теоретичсеский вопрос 
:(
    Опции темы
Devider
Дата 1.4.2014, 21:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Я извиняюсь за дебильный вопрос, но уже вывихнул мозг.
В книге Уоссернама (стр 62, 3 абзац) (тут) про обучение сетей встречного распространения (слоя Кохонена) написано, что есть алгоритм оптимизации под названием метод выпуклой комбинации, при котором все(!?!) веса задают равными 

Wi,j = 1/sqrt(n), 

где n - количество входов/компонент векторов. 
В дальнейшем предлагается каждой компоненте входного вектора Х делать

X i = A * Xi + (1-A)/sqrt(n),

где A очень мало и в процессе обучения увеличивается.

Как же искать нейрон-победитель для обучения? Ведь если все веса всех нейноров равны, то и на выходе у всех будет одно и то же значение!
PM MAIL   Вверх
Mirkes
Дата 3.4.2014, 16:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Круто! Думаю Кохонен бы уржался smile
Меня всегда восхищала полная математическая безграмотность Уосермана:
"Предварительная обработка входных векторов
Весьма желательно (хотя и не обязательно) нормализовать входные векторы перед тем, как предъявлять их сети. Это выполняется с помощью деления каждой компоненты входного вектора на длину вектора. Эта длина находится извлечением квадратного корня из суммы квадратов компонент вектора."

Любой, сколько-нибудь грамотный человек понимает, что нормировка, о которой идет речь, проецирует данные на гиперсферу, тем самым снижая размерность и КАК ПРАВИЛО уничтожая часть информации.

Теперь по делу.

Сначала У предлагает сделать все нейроны Кохонена одинаковыми и все входные сигналы почти одинаковыми.
Далее начинается обучение.
Если победитель определен однозначно - отлично учим и идем дальше.
Если победителей несколько (в начальный момент - все),  то выбираем ЛЮБОГО из победителей и учим его.
Идея очень простая - сначала предлагается свалить все в одну кучу и позволить векторам данных растаскивать нейроны из одной точки. В принципе идея должна работать, хотя времена обучения должны быть большими.
Грубо говоря делаете пару эпох с очень маленьким а. Потом постепенно его увеличиваете (скажем процентов на 10 за эпоху). Через некоторое количество эпох забываете об этом коэффициенте совсем (делаете равным 1).

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


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


Опытный
**


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

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



Пожалуй предыдущий пост получился слишком эмоциональным.
Сначала первый комментарий: то что в рассматриваемой вами главе называют слоем Кохонена широко известно под названием k средних (k means). Так что лучше поискать описание того как учить по этим названиям.

Теперь по поводу безграмотности Уосесрмана.  На рисунке ниже приведены данные, включающие три четко разделенных облака точек 1, 2 и 3. Нулем обозначено начало координат. Если произвести нормировку, рекомендованную автором книги, то мы получим одно облако, размазанное по всей сфере (второй рисунок). Как вы полагаете, сможет любая нейронная сеть (включая человека) разделить после этого облака данных? На втором рисунке буквой z обозначена смесь точек 1 и 2, а буквой w - смесь 2 и 3.



1  1  1           2 2 2          3 3 3
1  1  1           2 0 2          3 3 3
1  1  1           2 2 2          3 3 3


                    z 2 w
                    z 0 w
                    z 2 w



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


Новичок



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

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



Спасибо (сорри, несколько зарпоздавшее) за объяснения!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Программирование игр, графики и искуственного интеллекта"
Rickert

НА ЗЛОБУ ДНЯ: Дорогие посетители, прошу обратить внимание что новые темы касающиеся новых вопросов создаются кнопкой "Новая тема" а не "Ответить"! Любые оффтопиковые вопросы, заданные в текущих тематических темах будут удалены а их авторы, при рецедиве, забанены.

  • Литературу, связанную с программированием графики, обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы связанные с программированием графики и мультимедии на языках С++ и Delphi
  • Вопросы по реализации алгоритмов рассматриваются здесь

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

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


 




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


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

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