Нейронные сети. Вопросы экспертам. - страница 19

 

Вырисовалась "небольшая" проблемка.

Если в одну и туже сеть подавать одни и те же обучающие примеры (ОП), но перед обучением инициализировать рандомными весами,

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

Используется библиотека FANN.

Решил проверить как будет вести "Статистика 6" в подобной ситуации?

И здесь сети с одинаковой архитектурой выдают раздичный рез-ты.

Для наглядности выбрал две сети с максимально разнящимися результатами. Видно, что результативность у них с точностью до наоборот.


Графики порогов активации подтверждают, что эти две сети на одних и тех же ОП обучились совершенно разному.

(Полные результаты для всех сетей и данные всех выборок во вложении)


...............................................

Подскажите, как добиться стабильности в процессе обучения нейросети?

 
lasso:

Вырисовалась "небольшая" проблемка.....

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

Подскажите, как добиться стабильности в процессе обучения нейросети?


Ну так это вопрос вопросов) Для обучения НС используется множество методов, но все они, по понятным причинам, отличны от прямого перебора. И все они имеют один общий существенный недостаток: паралич или застревание в локальном экстремуме. Что Вы и наблюдаете) Универсального решения нет, кроме как повышать качество механизма/алгоритма обучения и увеличивать время обучения (колличество эпох обучения). И в каждом конкретном случае это решается по разному.
 
lasso:

Подскажите, как добиться стабильности в процессе обучения нейросети?

Используйте ГА.
 
lasso:


Подскажите, как добиться стабильности в процессе обучения нейросети?


SVM.

Пример для двух классов:

Возможные разделяющие плоскости.... MLP BP найдет любую из них и остановится .....

Что касается SVM:

Этот медод всегда будет находить одну единственную разделяющую плоскость ....

Или ГА, как выше подсказали....

Удачи ....

 
Figar0:

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

Если про застревание в локальном экстремуме, то я думаю в этом случае, результаты должны быть все "хорошие", и различаться лишь в некотором диапазоне -- "получше", "похуже"...

Но не кардинально изменять результаты теста! Понимаете?

Вот рез-ты прогонов на тестовом периоде в 1 месяц:

-9337

+5060

+14522

+7325

+12724

-3475

+10924

-9337

+5060

-3475

-9337

-3475

................................

Вот зарубежные товарищи советуют применять комитеты сетей

но мне думается, что это не лучшее решение...

Тем более, напомню, предлагаемые в задаче данные ОП, довольно легко легко разделяются линейными методами,

и неужели нельзя найти простого и стабильного решения в виде НС.

 

Про ГА не пойму, к поиску чего его применять?

...............

то есть, применять ГА не в дополнение к НС, а вместо них?

 
lasso:

Про ГА не пойму, к поиску чего его применять?

...............

то есть, применять ГА не в дополнение к НС, а вместо них?


ГА может подобрать веса НС, а в качестве фитнес функции можно использовать всё что угодно... Можете поискать EMA GA насколько помню...
Но честно говоря я не пойму как это ГА выручит Вас, он введь также может в разных точках останавливаться... как и НС...

Да и вообще, честно говоря, это нормальное явление, главное чтобы не сильно отличались...(не сильно понимайте как хотите)

 
lasso:

Если про застревание в локальном экстремуме, то я думаю в этом случае, результаты должны быть все "хорошие", и различаться лишь в некотором диапазоне -- "получше", "похуже"...

Но не кардинально изменять результаты теста! Понимаете?


Здесь, скорее всего, сеть не пере- а недообучена. Причина, видимо, в недостаточно качественной архитектуре.

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

 
alsu:

Здесь, скорее всего, сеть не пере- а недообучена. Причина, видимо, в недостаточно качественной архитектуре.

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

Какие данные или результаты необходимо предоставить, что бы можно было конкретно определить в чем загвоздка?
 

И еще. Меня настораживает "узость" диапазона актуальных выходов сети. Поясню:

-- сеть MLP 1-7-1

-- значения подаваемые на входы НС равномерно распределены в диапазоне [0;1], выходы в обучающих примерах представлены значениями 1 и -1.

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

opt_max_act=-0.50401336 opt_min_act=-0.50973881 step=0.0000286272901034

или даже так

opt_max_real=-0.99997914 opt_min_real=-0.99999908 step=0.00000010

.............................

Это правильно или нет?

Причина обращения: