Программирование - это просто
Advertisement
Главная
09.08.2026 г.
Главное меню
Главная
Интернет магазин
Программные продукты
Биржевые роботы
Искусственный интеллект
Математика и информатика
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 г. )
 
« След.   Пред. »
 
© 2026 Программирование - это просто
Joomla! - свободное программное обеспечение, распространяемое по лицензии GNU/GPL.
Русская локализация © 2005-2008 Joom.Ru - Русский Дом Joomla!
Design by Mamboteam.com | Powered by Mambobanner.de
Я принимаю Яндекс.Деньги