GotAI.NET

Форум: Проблемы искусственного интеллекта

 

Регистрация | Вход

 Все темы | Новая тема Стр.1 (5)След. > >>   Поиск:  
 Автор Тема: Проблема угасания ошибки в алгоритме обратного распространен
кирилл
Сообщений: 3
Проблема угасания ошибки в алгоритме обратного распространен
Добавлено: 09 июл 09 16:27
Попробовал сделать нейронную сеть прямого распространения с большим количеством слоев и обучать ее алгоритмом обратного распространения ошибки. Сеть обучается, однако подстраивание весов происходит на ближайшем к выходу слое и чем глубже слой тем меньше изменение весов.

В итоге для каждой новой выборки подстраивается только ближайший к выходу слой, а остальные остаются как есть.

Это я так напортачил или это действительно проблема?

Потому что из формул для обычной сигмоиды получается:





Для производной:




Корректировка весов для n-ого слоя, ближнего к выходу:



,где означает i-ый нейрон в n-ом слое, для остальных слоев



,где - веса между i-ым нейроном в k-ом слое и j-ым нейроном в (k+1)-ом, далее считаем, что в каждом слое I нейронов

Пусть и , тогда можно оценить как



А для можно записать



Пусть . Разматывая неравенство до получим



Откуда следует что в каждом следующем слое сжимается множетелем . Так как вход на нейрон можно оценить как



, потому что - на входном слое нормализуется, а на последующих является результатом применения сигмоиды, получим



То перепишем , раскрыв через



Возьмем и начертив получим что она достигает максимума в точке ~ 1.58 и максимум равен ~ 0.22 - то есть всегда сжимается.

Отсюда получается что лучше было бы домножать на 5, а для слоев шириной подбирать веса в диапазоне


Есть ли тут ошибка?
[Ответ][Цитата]
Victor G. Tsaregorodtsev
Сообщений: 3187
На: Проблема угасания ошибки в алгоритме обратного распространен
Добавлено: 09 июл 09 17:15
В пост вдумываться (чтобы понять, есть/нет ошибки в рассуждениях) не стал.

Проблема - да, есть такая. Решение - свой шаг обучения для каждого слоя или даже для каждого веса (пример последнего - stochastic diagonal Levenberg-Marquardt). Решалось всё кучу раз и с разными результатами - вплоть до наблюдения противоположной тенденции.

Пример противоположности - у меня один раз для одной специализированной четырехслойки (4 слоя именно нейронов) и довольно широких пределов варьирования размеров слоев этой сети помогла такая установка своего шага обучения для каждого слоя: базовый коэффициент делим на sqrt(fan-in), т.е. корень из числа получаемых нейроном входных сигналов. Т.к. сеть - в виде пирамидки (широкое основание от исходных входов к узкой "вершине" выходных сигналов), то для первого скрытого слоя величина sqrt(fan-in) будет больше таковой для второго и последующих, т.е. чем "раньше" стоял слой, тем на бОльший коэффициент я делил для него шаг обучения.

Т.е. надо на особенности конкретной задачи глядеть, на реальные сигналы и производные внутри сети - абстрактное рассуждение довольно бесполезно и может быть неприемлемым (т.к. в реале для этой задачи может потребоваться совсем другая схема изменения коэффициентов). Но, к счастью, универсальные алгоритмы (которые и увеличат, и уменьшат коэффициенты при необходимости, да еще и от эпохи к эпохе могут эти настройки менять) уже 10+ лет как известны - тот же названный stochastic diagonal Levenberg-Marquardt от ЛеКуна.

Да. Еще. Обязательно проверьте работоспособность своей проги, прежде чем лезть в изменения. Если ставить сетке задачу простой трансляции входных сигналов в выходные (т.е. когда сетка реализует отображение вида y=x для константных или векторных х,у), то при увеличении числа слоев от 1 до ... и увеличении числа нейронов в слоях от ... до ... обучение всегда должно быть успешным и достигать довольно малых ошибок (для быстроты экспериментов можно не учить до средней по примерам ошибки ниже, чем отклонение в 0.01 для каждой переменной). Если такой задаче сеть успешно не обучается - то копайте внутри проги (проверяйте корректность от А до Я), дорабатывайте схему масштабирования данных или изменяйте коэффициент обучения. Может, еще и схему инициализации весов сети (чтобы от слоя к слою они отличались по характеристикам закона распределения) надо будет сделать. А потом можно будет и переходить к чему-то более сложному в плане алгоритмов (а то вдруг обратное распространение запрограммировано у Вас с ошибками, а Вы его производные еще будете "ломать" дополнительным способом).

Так что в руки - статью "Efficient backprop" от ЛеКуна сотоварищи, и выполнять тамошние рекомендации по алгоритмам (или аргументированно отказываться от чего-то, т.к. там не истина в последней инстанции изложена - но всё же наиболее полное приближение к желаемому, на мой взгляд).


--------------------------
нейронные сети, анализ данных, прогнозирование
[Ответ][Цитата]
NO.
Сообщений: 10700
На: Проблема угасания ошибки в алгоритме обратного распространен
Добавлено: 09 июл 09 18:58
Я эти нейросети вообще не понимаю, и чего люди пытаются с них поиметь?
Что-то близкое наблюдал при выборах Обамы. Типа автобус заехал в болото, тут на другом подъехал Обама и говорит "я туда не поеду, я сворачиваю", change. Толпа лохов пересела к Обаме. Куда он едет? Кому куда надо ехать? - Никого это не волнует. Главное что change. Вот и НС так же. Что там за множества, что за структуры возникают - никому не интересно. Если с самого начала было не интересно, зачем тогда спрашивать как это исправить? Еще куча формул, типа все продумано и нужна полная ясность.

Вот эта сигмоида, вообще откуда она упала? Если такие вещи просто берутся без всяких причин, тогда на 5 можно умножать совсем без всякой оглядки. Непойми-что лишь-бы чего-то.

Единственная настоящая проблема в генерации гипотез, в языке которым они формулируются. Если это осознавать вот тогда и будут интеллектуальные системы.

А НС это какой-то пресс, выжимает чего-то долго и тяжело. Очевидно же, что ума нет ни у системы ни у разработчика. Приходят какие-то "эксперты", выражают озабоченность и делают серьезное лицо, какие-то колышки туда подбивают, меряют там что-то, на зуб пробуют, прогнозы изрекают. Шаманизм, III-тысячелетие до н.э. Только почему-то на компьютерах.
[Ответ][Цитата]
shuklin
Сообщений: 2053
На: Проблема угасания ошибки в алгоритме обратного распространен
Добавлено: 09 июл 09 20:03
Цитата:
Автор: NO.

Я эти нейросети вообще не понимаю, и чего люди пытаются с них поиметь?


ИНС бывают разные, в ожидании халявы от бакпропа и "семиотические". Нейронку фон Неймана видел? Если да, то халявность сильно обобщать не стоит, а если нет, то стоит глянуть.

PS. еще меньше я понимаю "дарвинистические алгоритмы", назвать их общепринятым "генетические" язык не поворачиваетцо за термин "генетический" обидно, этот термин достоин большего. Я его предпочитаю понимать в духе Спартака Никанорова.
[Ответ][Цитата]
Capt.Drew
Сообщений: 4179
На: Проблема угасания ошибки в алгоритме обратного распространен
Добавлено: 09 июл 09 20:04
Предыдущих постов не читал..
но 2-3 внутренних слоев более чем достаточно..
[Ответ][Цитата]
NO.
Сообщений: 10700
На: Проблема угасания ошибки в алгоритме обратного распространен
Добавлено: 09 июл 09 20:36
Цитата:
Автор: shuklin
Нейронку фон Неймана видел?

Гугл говорит, что про такую кроме некоего Шуклина никто ничего не знает.
[Ответ][Цитата]
shuklin
Сообщений: 2053
На: Проблема угасания ошибки в алгоритме обратного распространен
Добавлено: 09 июл 09 20:42
Есть статьи в сборнике "Автоматы" и в "Теории самовоспроизводящихся автоматов". "Теории ..." хватит для 90% охвата идеи. СНС почти тоже самое, с примесью "пирамидальных растущих сетей" и М-Сетей. Никаких сигмоид - лепота. Если правильно скосить взгляд, то предикаты - частный случай таких нейронок. По крайней мере пропозициональная логика.
[Ответ][Цитата]
NO.
Сообщений: 10700
На: Проблема угасания ошибки в алгоритме обратного распространен
Добавлено: 09 июл 09 20:46
Цитата:
Автор: Capt.Drew
Предыдущих постов не читал..
но 2-3 внутренних слоев более чем достаточно..

Я тоже так думаю, для мышлений 3 точно достаточно, 2 бывает нужно иногда. Но только не для моделирования рекурсивных функций, если НС должна уметь считать желательно все 32/64 слоя. Просто сложить два числа уже нужно 32 переноса.
[Ответ][Цитата]
shuklin
Сообщений: 2053
На: Проблема угасания ошибки в алгоритме обратного распространен
Добавлено: 09 июл 09 20:47
Цитата:
Автор: NO.


Просто сложить два числа уже нужно 32 переноса.

ммм, а паралельным сумматором? СДНФ по всем входным битам. Никаких переносов в явном виде )))
взять метод двойных линий фон Неймана, базис на основе дизконъюнкторов, в два слоя любое число разрядов можно без переносов складывать.
[Ответ][Цитата]
NO.
Сообщений: 10700
На: Проблема угасания ошибки в алгоритме обратного распространен
Добавлено: 09 июл 09 20:52
Цитата:
Автор: shuklin
Есть статьи в сборнике "Автоматы"

Так это обычные дискретные схемы, И ИЛИ триггеры и все такое. Я не помню чтобы там НС генерировала другую НС или говорилось о виртуальной НС внутри электронной. Это очень жесткое ограничение. Есть только теоретические "возможности". Если математик говорит что что-то "возможно" он не имеет ввиду что возможно для смертных или в границах Солнечной системы.
[Ответ][Цитата]
NO.
Сообщений: 10700
На: Проблема угасания ошибки в алгоритме обратного распространен
Добавлено: 09 июл 09 20:53
В классической НС, которой все страдают, переносов по-горизонтали нет. Придется хранить всю таблицу умножения
[Ответ][Цитата]
shuklin
Сообщений: 2053
На: Проблема угасания ошибки в алгоритме обратного распространен
Добавлено: 09 июл 09 20:57
Цитата:
Автор: NO.
Так это обычные дискретные схемы, И ИЛИ триггеры и все такое.

У Маккаллока-Питтса ДА. У фон Неймана уже не только, а и еще кое чего. Но он умудрился "кое чего" запихать в клетку с 9тью состояниями и получил:

Цитата:
Автор: NO.
чтобы там НС генерировала другую НС или говорилось о виртуальной НС внутри электронной.


Прочти фон Неймана, имхо это поинтереснее лиспа будет )))
[Ответ][Цитата]
NO.
Сообщений: 10700
На: Проблема угасания ошибки в алгоритме обратного распространен
Добавлено: 09 июл 09 20:59
Цитата:
Автор: shuklin
PS. еще меньше я понимаю "дарвинистические алгоритмы", назвать их общепринятым "генетические" язык не поворачиваетцо за термин "генетический" обидно, этот термин достоин большего. Я его предпочитаю понимать в духе Спартака Никанорова.

ГА нужны для объектов высокой сложности, у которых столько вариантов, что ни их ни даже их сколько-нибудь содержательные классы нельзя вместить ни в какую сеть. ДНК от килобайта до гигабайт, нейронкой такие объекты отлично обрабатывется при 2^1024 нейронов.
[Ответ][Цитата]
shuklin
Сообщений: 2053
На: Проблема угасания ошибки в алгоритме обратного распространен
Добавлено: 09 июл 09 21:03
вот только название ГА сплошные страшные слова притянутые к алгоритму зауши. Очень крутое достижение: метод Монтекарло в ГА переименовать.
[Ответ][Цитата]
NO.
Сообщений: 10700
На: Проблема угасания ошибки в алгоритме обратного распространен
Добавлено: 09 июл 09 21:17
Монтекарло вполне конкретный алгоритм для вычисления площади слишком сложной фигуры. Не все алгоритмы с ГСЧ ищут площадь и не все являются Монтекарло. А то так можно все алгоритмы где встречается сложение называть алгоритмами суммирования.

Сейчас вместо Неймана Конвей, который Жизнь придумал. Он теорию узлов сделает, будет порядок над схемами, можно будет быстрые сходящиеся градиентные методы юзать. А сейчас только мутации и скрещивание.
[Ответ][Цитата]
 Стр.1 (5): [1]  2  3  4  5След. > >>