Нейронная сеть в виде скрипта - страница 11

 

" измение нейронов в слоях"

Количество нейронов в слоях

1. одинаковое:

2. разное:

а) увеличение кол-ва от слоя к слою;

б) уменьшение кол-ва от слоя к слою.

в) коэффициент увеличения (уменьшения)?

 
Neutron писал (а) >>

произведение числа входов на размер обучающей выборки (количество паттернов) должен быть равен квадрату весов НС.

Меня немного испугала эта цифра. Это вообще минимальное количество для нормальной работы или оптимальное?

То есть если я на вход подаю вектор из 20 значений, а всего у меня таких векторов ну хотябы 50000, то получается, что всего в сети весов должно быть не менее Sqrt(20*50000)=1000? Верно?

 

Немного перефразированный вопрос от Andy_Kon.

На примерах видел сети которые организованы по принципу волны. например 20-50-10-1 или 20-40-1. То есть идет расширени сети в середине. (нейронов скрытого слоя в несколько раз больше чем на входе) 

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

Если например какие-нибудь теоретическо-практические принципы оптимального числа нейронов в скрытых слоях в зависимости от числа входных нейронов.

Спасибо.

 
Andy_Kon писал (а) >>

" измение нейронов в слоях"

Количество нейронов в слоях

1. одинаковое:

2. разное:

а) увеличение кол-ва от слоя к слою;

б) уменьшение кол-ва от слоя к слою.

в) коэффициент увеличения (уменьшения)?

Ну я же ссылку дал на теорему, согласно которой, достаточно одного скрытого слоя.

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

sergeev писал (а) >>

Меня немного испугала эта цифра. Это вообще минимальное количество для нормальной работы или оптимальное?

То есть если я на вход подаю вектор из 20 значений, а всего у меня таких векторов ну хотябы 50000, то получается, что всего в сети весов должно быть не менее Sqrt(20*50000)=1000? Верно?

Верно.

Вот ссылка на книгу Ежова, Шумского "Нейрокомпютинг", где этот вопрос поверхностно (доходчиво) рассмотрен.

 
Andy_Kon писал (а) >>
Какова зависимость размерности и "слоистости" сети от количества шаблонов (патернов)?

1. Скрытый слой должен быть больше входного хотя бы на 1 элемент, иначе получится сжатие информации на скрытом слое, что абсолютно не поможет получению результата.

2. Посчитайте настраиваемые параметры. Если количество параметров превышает кол-во паттернов, Вы рискуете получить переобученную сеть. Паттернов должно быть больше. Уменьшать размеры сети можно пока учится сеть.

 
sergeev писал (а) >>

Немного перефразированный вопрос от Andy_Kon.

На примерах видел сети которые организованы по принципу волны. например 20-50-10-1 или 20-40-1. То есть идет расширени сети в середине. (нейронов скрытого слоя в несколько раз больше чем на входе)

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

Если например какие-нибудь теоретическо-практические принципы оптимального числа нейронов в скрытых слоях в зависимости от числа входных нейронов.

Спасибо.

А еще лучше 20-21-1

 
TheXpert писал (а) >>

А еще лучше 20-21-1

Да кстати, я тоже заметил, что в скрытом слое число нейронов делают не кратным входным. Зачем?

 
Neutron писал (а) >>

Ну я же ссылку дал на теорему, согласно которой, достаточно одного скрытого слоя.

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

Тем не менее многие проблемы решаются 5-слойным персептроном, наличие теоремы не означает, что 3-слойный персептрон панацея.


Что лучше -- использовать сеть 5-6-6-2 или 3-слойную замену 5-25-2 ? Такое большое число вполне может получиться для обеспечения должной нелинейности.

Между прочим, знаете самую сходимую архитектуру для XORa?

0 ----
 \     \
  0 ----0 --->
 /     /
0 ----

4 нейрона средний -- сигмоидный

 
sergeev писал (а) >>

Да кстати, я тоже заметил, что в скрытом слое число нейронов делают не кратным входным. Зачем?

По моей практике, чем ближе ко входному, тем лучше, 21 -- оптимально для 20 входов

 
TheXpert писал (а) >>

По моей практике, чем ближе ко входному, тем лучше, 21 -- оптимально для 20 входов


Хм.. а можно как-то обобщить этот оптимум. И про 5-ти и 3-х слойные тоже интересно. Где есть теория?