Программирование - это просто
Advertisement
Главная arrow Уроки C# arrow Дневник разработчика биржевого робота (пл. разд.) arrow Дневник разработчика торговой стратегии. Шаг 22. Тестирование передаточных функций нейросети
31.10.2024 г.
Главное меню
Главная
Интернет магазин
Программные продукты
Биржевые роботы
Искусственный интеллект
Математика и информатика
1С:Предприятие
Уроки C#
Уроки Delphi
Уроки программирования
Web-программирование
Дизайн и графика
Компьютер для блондинок
Исходники
Статьи
Платный раздел
Рассказы про компьютеры
Хитрости и секреты
Системный подход
Размышления
Наука для чайников
Друзья сайта
Excel-это не сложно
Все о финансах
.
Дневник разработчика торговой стратегии. Шаг 22. Тестирование передаточных функций нейросети Печать E-mail
Автор megabax   
14.06.2014 г.
New Page 1

Дневник разработчика торговой стратегии. Шаг 22. Тестирование передаточных функций нейросети

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

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


На прошлом шаге мы проводили некоторые эксперименты. С тех пор программа тестирования стратегий была немного улучшена, см. Тесты торговых стратегий на C#. Урок 26. В нейросеть добавили передаточные функции. Сегодня продолжаем эксперименты.

Сначала проверим обучаемость однонейронной сети на различных передаточных функциях. Для этих целей добавим в проект еще одну нейросеть и сохраним его. Для чистоты эксперимента нам надо будет восстанавливать нейронную сеть в исходное состояние (когда весовые коэффициенты инициализированы случайными значениями):

Дневник разработчика торговой стратегии. Шаг 22. Тестирование передаточных функций нейросети

Берем нейросеть с передаточной функций "Пороговая", пороговое значение 1. Нейронная сеть обучилась за 32 итерации:

Дневник разработчика торговой стратегии. Шаг 22. Тестирование передаточных функций нейросети

Пороговое значение при этом уменьшилось до 0.05:

Дневник разработчика торговой стратегии. Шаг 22. Тестирование передаточных функций нейросети

Пробуем пороговую трехуровневую функцию, пороги стандартные, -1 и 1. Смотрим результат...

...

....И создаем обработчик события изменения значения этого поля:

        private void nudCandlesCount_ValueChanged(object sender, EventArgs e)

        {

            strategy.study_count = Convert.ToInt32(nudCandlesCount.Value);

            foreach (Neuron neuron in strategy.net.layers[0].neurons)

            {

                neuron.set_weights_count(strategy.study_count*4);

            }

            redraw_grid();

        }

При изменении значения количество входных свечей нам так же нужно изменить количество весовых коэффициентов нейронов входного слоя. Оно равно количество входных свечей, умноженное на 4 (так как у нас 4 поля open, high, low и close).

Как показало тестирование, если мы уменьшили количество входных свечей до 10 (было 30), то у нас по прежнему нейросеть обучается на синусоиде с периодом 10, но уже не может обучиться на синусоиде с белым шумом и периодом 200.

Но у нас есть еще один параметр, с которым можно поиграться...

...

Уменьшили количество входных свечей до 5, а количество свечей в обучающей матрице до 10:

Дневник разработчика торговой стратегии. Шаг 22. Тестирование передаточных функций нейросети

...

Последнее обновление ( 14.06.2014 г. )
 
« След.   Пред. »
 
© 2024 Программирование - это просто
Joomla! - свободное программное обеспечение, распространяемое по лицензии GNU/GPL.
Русская локализация © 2005-2008 Joom.Ru - Русский Дом Joomla!
Design by Mamboteam.com | Powered by Mambobanner.de
Я принимаю Яндекс.Деньги