Машинное обучение в трейдинге: теория, модели, практика и алготорговля - страница 607

 
Vizard_:

Давай про познание ДАО, тьфу, ТАУ)))


нет-нет...  здесь только ДАО...

 
Vizard_:

Package learningCurve, R, Learning Curve(обучающая кривая).

Как они помогут вычислить количество нейронов?
 
elibrarius:
Как они помогут вычислить количество нейронов?

если ошибка перестала резко падать то останавливать обучение :)

 
Maxim Dmitrievsky:

если ошибка перестала резко падать то останавливать обучение :)

Мы можем обучать только сеть с уже заданной структурой и смотреть на ошибки. А для начала нужно определить структуру, т.е. число нейорнов, на которых потом уже можно наблюдать за ошибками.

Т.е. вопрос о том, как learningCurve до обучения поможет определить оптимальное количество нейронов.

Ну или любым другим методом.

 
elibrarius:

Мы можем обучать только сеть с уже заданной структурой и смотреть на ошибки. А для начала нужно определить структуру, т.е. число нейорнов, на которых потом уже можно наблюдать за ошибками.

Т.е. вопрос о том, как learningCurve до обучения поможет определить оптимальное количество нейронов.

Ну или любым другим методом.


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

если я правильно понял.

 
Vizard_:

Давай про познание ДАО, тьфу, ТАУ)))


Относительность познания связана с множеством причин, среди которых прежде всего следует упомянуть разную подготовленность сознания к акту восприятия и понимания одного и того же явления, приводящую к несовпадающим результатам познания (реакции, принятие решений, действия и т.д.). 

 
Maxim Dmitrievsky:

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

если я правильно понял.

Это ранняя остановка. С пакетом learningCurve- не вижу никакой связи.

В методе ранней остановки обучение прекращается в момент, когда сложность сети достигнет оптимального значения. Этот момент оценивается по поведению во времени ошибки валидации. ...

Но она имеет и свои слабые стороны: слишком большая сеть будет останавливать свое обучение на ранних стадиях, когда нелинейности еще не успели проявиться в полную силу. Т.е. эта методика чревата нахождением слабо-нелинейных решений.

Vizard_:

Ошибки(2шт).

Пишите поподробнее, пожалуйста. Как же все таки learningCurve поможет определить число нейронов для сети?

 

Про регуляризацию сказать ничего не могу, не экспериментировал с ней.

Но вот ранний останов приводит к оверфиту. На распознавании картинок он как-то ещё прокатывает из-за большой похожести тестовых и тренировочных данных, из-за этого часто рекомендуется в книжках и статьях. Но для форекса это не подходит.


Советую научиться k-fold кроссвалидацию. Я видел несколько разных способов, вот этот работает хорошо -

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

1) Обучаем модель на строках 201-1000. Если это нейронка то никакого раннего останова, просто учим нейронку определённое число эпох достаточное для достижения высокой точности. Предсказываем строки 1-200.
2) Заново обучаем модель, теперь на строках 1-200 вместе с 401-1000, используем те-же самые параметры модели и вообще все идентичные настройки. Предсказываем строки 201-400.
3) Заново обучаем модель, теперь на строках 1-400 вместе с 601-1000, используем те-же самые параметры модели и вообще все идентичные настройки. Предсказываем строки 401-600.
4) Заново обучаем модель, теперь на строках 1-600 вместе с 801-1000, используем те-же самые параметры модели и вообще все идентичные настройки. Предсказываем строки 601-800.
5) Заново обучаем модель, теперь на строках 1-800, используем те-же самые параметры модели и вообще все идентичные настройки. Предсказываем строки 801-1000.

В итоге имеем пять моделей созданных идентичным алгоритмом обучения по идентичным параметрам. И пять предсказаний, каждое сделано на неизвестных для модели данных.
Пять массивов с предсказаниями добавляем в конец друг друга чтоб получить один длинный массив длинной в 1000, и оцениваем его в сравнении с настоящими данными, например функцией R2. Это получится оценка нашей модели, способа обучения и всего такого.
Потом подбираем параметры модели (активационная функция, число слоёв и их размеры итд) каждый раз делаем все эти шаги (обучить 5 моделей, предсказать 5 кусков уникальных для каждой модели, объединить их, R2), добиваясь всё более лучшей оценки.

Для предсказания новых данных при реальной торговле - предсказываем каждой из пяти моделей, и для пяти результатов находим среднее, это будет итоговое предсказание на новых данных.

п.с. число фолдов лучше взять в пару десятков, в этом примере их всего пять для простоты описания.

 

Особым видом получения, обнаружения категорий является операция по аналогии следующего вида: причина + условия → следствие, здесь следствие наступает только при сочетании причины и условий. Применяя данную операцию к категориям части и целое, можно найти категорию структуры, играющую роль необходимых условий: части + структура → целое, то есть целое нельзя получить без соответствующего структурного условия, гора не получится из достаточного количества песчинок, пока они просто лежат на плоскости. Необходимым условием для получения системы из элементов являются отношения и связи между элементами: элементы + связи → система. Значение формы существенно проявилось тогда, когда от простой швейной иглы перешли к игле для швейной машины, для чего ушко перенесли к острию иглы. Для появления нового качества иглы нужно было изменить конфигурацию: форма + конфигурация → качество. Этот пример показывает одновременно действие закона о развитии противоположностей системы – изменение качества не обязательно требует изменения количества.

 

Оптимальное число скрытых элементов - специфическая проблема, решаемая опытным путем. Но общее правило: чем больше скрытых нейронов - тем выше риск переобучения. В этом случае система не изучает возможности данных, а как бы запоминает сами паттерны и любой содержащийся в них шум. Такая сеть отлично работает на выборке и плохо за пределами выборки. Как можно избежать переобучения? Есть два популярных метода: ранняя остановка и регуляризация. Автор предпочитает свой, связанный с глобальным поиском.

Подытожим эту часть рассказа. Лучший подход для определения размера сети - следовать принципу Оккама. То есть для двух моделей с одинаковой производительностью, модель с меньшим количеством параметров будет генерализировать успешней. Это не значит, что нужно обязательно выбирать простую модель в целях повысить производительность. Верно обратное утверждение: множество скрытых нейронов и слоев не гарантирует превосходство. Слишком много внимание сегодня уделяется большим сетям, и слишком мало самим принципам их разработки. Больше - не всегда лучше.


http://ai-news.ru/2016/05/tehnologii_fondovogo_rynka_10_zabluzhdenij_o_nejronnyh_setyah_578372.html

Технологии фондового рынка: 10 заблуждений о нейронных сетях
Технологии фондового рынка: 10 заблуждений о нейронных сетях
  • ai-news.ru
Нейронные сети - один из самых популярных классов алгоритмов для машинного обучения. В финансовом анализе они чаще всего применяются для прогнозирования, создания собственных индикаторов, алгоритмического трейдинга и моделирования рисков. Несмотря на все это, репутация у нейронных сетей подпорчена, поскольку результаты их применения можно...
Причина обращения: