Добавить в цитаты Настройки чтения

Страница 3 из 5

Критические ошибки при разработке нейросетевой системы.

Рассмотрим, на примере как допускаются ошибки при тестировании нейросети. Если у вас нет программы “NeuroSolutions 6”, то пропустите дальнейшее описание работы с ней, а рассмотрите результаты и сделанные выводы. В этой книге я не буду рассматривать создание системы на основе “NeuroSolutions”. Хотя в принципе, автоматическая нейросетевая система реализована и на основе данного продукта.

Отметим, что следует понимать разницу между обучением и тестированием. Обучать нейросеть можно на любых примерах даже, некорректных для тестового множества – ведь обучение мы проводим на событиях, которые уже произошли. Данный пример взят из реальной жизни. Данный способ работы с нейросетями продавался в интернете. Позиционировался как система, которая дает 80-90% прибыльных сделок. Причем продавец, мне кажется, искренне заблуждался в идеальной результативности данного способа подготовки нейросети. Я делаю этот вывод из того, что ошибка возникала на стадии тестирования отклика сети.

Итак, сначала модернизируем и скомпилируем скрипт для получения исторических данных.

//+–+

//| History.mq4 |

//| Copyright © 2009, Andrey Dibrov. |

//+–+

В результате работы скрипта получим файл. Создадим колонку “In” и заполним ее формулой.

Добавим колонку “Out” и заполним ее формулой.

Воспользуемся программой “NeuroSolutions 6”. С помощью ее надстройки колонку “In” обозначим как “Input”.

А колонку “Out” как “Desired”.

Энное количество строк обозначим, как “Training”

Энное количество строк обозначим, как “Cross Validation”.

И последние строки как “Production”.

Далее создадим файлы для NS6.

Запустим в рабочей среде NS – NeuralBilder.

Здесь мы можем выбрать нейросеть нужной нам архитектуры. Остановимся на первой сети Multilayer perceptron. Нажимаем кнопку с правыми стрелками. Откроется окно Training Data. С помощью кнопки Browse откроем файл TrainingInput.

Далее перейдем

в окно





Desired

Response

и откроем файл

TrainingDesire

.

Откроем окно Cross Val. & Test Data. По умолчанию активно окошечко для ввода текста % of training data for CV. Введем 10%. Программа автоматически зарезервирует данное количество строк под CV из TD. Активировав радиокнопку Read from Separate File, мы можем выбрать файлы сохраненные, нами ранее.

Далее продвигаемся по окнам ничего в них, не меняя, пока в рабочей среде не сформируется нейросеть.

Для лучшей визуализации расширим окно Average Cost и нажмем кнопку Start. Подождем, пока закончится обучение.

Жмем кнопку Testing, Next и в выпадающем окне выбираем Production. С помощью кнопки Browse находим файл ProductionInput.

Двигаемся далее и в следующем окне активируем радиокнопку Export to a File. И находим заранее созданный нами текстовой файл с, допустим, выбранным нами именем Prod.txt.

Нажимаем кнопки Next и Finish. Таким образом, мы экспортировали отклик нейросети для тестирования в файл Prod.txt. С помощью кнопки Save, сохраним нейросеть.

Данные из файла Prod.txt подставим в файл history.csv рядом с Tag Data “Production”. В соседнюю ячейку вставим формулу условия совершения сделок на покупку.

В соседнюю ячейку вставим формулу условия совершения сделок на продажу.

В соседнюю ячейку вставим формулу суммирования сделок.

В соседнюю ячейку вставим формулу суммирования и заполним этими формулами ячейки до конца истории.

Далее вставим график нашей условной прибыли.

Как мы видим – график прибыльности у нас идеальный. Хотя мы в процессе обучения и тестирования допустили некоторые ошибки и обучали нейросеть всего на одном входе. Далее мы протестируем, обученную нейросеть на данных, которые будут к нам поступать реально. Т.е. в формуле ячеек колонки “In” мы будем использовать локальные максимумы и минимумы, которые мы записали в файл “history.csv” с помощью индикаторов “Max” и “Min”.