.
Дневник разработчика торговой стратегии. Шаг 18. Оптимизируем процесс обучения нейросети.
Автор megabax   
31.03.2014 г.
New Page 1

Дневник разработчика торговой стратегии. Шаг 18. Оптимизируем процесс обучения нейросети.

Что бы смотреть урок полностью, подпишитесь на платный раздел.

В платном разделе статья находиться здесь.


И так, на прошлом шаге я решил применить некоторые идеи для того, что бы повысить точность прогноза, который делают нейросети. Почему на прошлом шаге была такая плохая точность? Во первых, был взят слишком маленький коэффициент обучения, из за этого обучение нейросети происходило за очень большое число итераций, и все равно Дельта оставалась довольно большой. Так что во первых, необходимо написать алгоритм регулирования коэффициента обучения. Об этом сказано в "Теория нейронных сетей. Урок 7. Характеристики обучения персептрона." А во вторых, сам принцип подачи котировок на входы нейросети надо сделать более универсальным. Например, подавать не котировки, а изменение котировок относительно самой крайней свечи. Это уменьшить сами "веса" входов нейронов. Например, если мы подаем на вход 40 свечей, с номерами от 101 до 40, то берем отклонения цен относительно свечи с номером 100.

Начнем с реализации второй идеи. Для этого нужно внести изменения в класс NeuroForecast: ...

...

...И вот что получилось в результате эксперимента:

Дневник разработчика торговой стратегии. Шаг 18. Оптимизируем процесс обучения.

...

...Правда, особого эффекта это не дало. Считало довольно долго, прежде чем обучиться до приемлемой дельты:

Дневник разработчика торговой стратегии. Шаг 18. Оптимизируем процесс обучения.

Попробуем проверить, за сколько же итераций:

                if (delta < target_delta)

                {

                    MessageBox.Show(i.ToString());

                    return delta;

                }

Как оказалось, итераций тут 500000. Тоже много. Будем думать дальше, но это уже следующий шаг.

Последнее обновление ( 31.03.2014 г. )