Пару вопросов по Нейронкам.

 

Вопрос 1. Оптимальный размер скрытого слоя при входных:

1 параметр - нормализация на 100 значений
2 парам. - диап. 20 знач.
3 парам. - диап. 20 знач.
парам. - диап. 20 знач.
парам. - диап. 20 знач.

Глубина истории - 50 (обсуждается). 

Большим он не может быть из за аппаратных ограничений (Массив более 20 млн элементов - МТ валится с ошибкой. Файл с весами получается более 100 Мб) и большого времени на обход (45 сек. на 1 расчет). Слишком маленький - может потерять в качестве.

Вопрос 2. Используется гиперболический тангенс. В процессе обратного распространения ошибки в работе с производной и взятии экспоненты действие обратное - чем больше Сигма Wout*ErrOut - тем более экспонента стремится к 0. Отчего значение приобретает вид N*E-230. При десятичной размерности float=5 такое воздействие =0. В чем скрытый смысл такого пропорционального распределения? Или есть что-то попроще и получше? Нужно ли править все веса в векторе или достаточно те, что с противоположным от идеала знаком?

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

* Не используются никакие сторонние библиотеки. 

источник

Алгоритм обучения многослойной нейронной сети методом обратного распространения ошибки (Backpropagation)
Алгоритм обучения многослойной нейронной сети методом обратного распространения ошибки (Backpropagation)
  • habr.com
Тема нейронных сетей была уже ни раз освещена на хабре, однако сегодня я бы хотел познакомить читателей с алгоритмом обучения многослойной нейронной сети методом обратного распространения ошибки и привести реализацию данного метода. Сразу хочу оговориться, что не являюсь экспертом в области нейронных сетей, поэтому жду от читателей...
 

2. Экспоненциальные функции нужны в основном для неразрывности, поэтому входа часто нормализуют к диапазону -1..1. Но ещё можно юзать ReLu, у неё производная не вырождается в 0.

1. откуда 20 млн из 5-ти входов, что такое глубина истории 50 - это же очень мало, или это в годах?))

3. Можно конечно влазить в глубину нейронок и ручками что-то подкручивать, не запрещено, а может даже что-то прорывное откроете), а можно использовать проверенные решения как есть. 

 
Aleksey Mavrin:

2. Экспоненциальные функции нужны в основном для неразрывности, поэтому входа часто нормализуют к диапазону -1..1. Но ещё можно юзать ReLu, у неё производная не вырождается в 0.

1. откуда 20 млн из 5-ти входов, что такое глубина истории 50 - это же очень мало, или это в годах?))

3. Можно конечно влазить в глубину нейронок и ручками что-то подкручивать, не запрещено, а может даже что-то прорывное откроете), а можно использовать проверенные решения как есть. 

Глубина 50 - это баров в 1 обучающем наборе. За 2 месяца обрабатывается около 1000 наборов. При тф=15 это 12,5ч. Возможно это и слишком много для краткосрочного решения.

Размер 1 набора=  (100+20+20+20+20)*51=9180

 (100+20+20+20+20) - диапазоны для 5 параметров.

Скрытый слой - 51*26=1326

Веса Вход->слой  9180*1326=12172680. При том, что это уже лайт-версия.