timing_solution (timing_solution) wrote,
timing_solution
timing_solution

Нейропрогноз: как избежать эффекта перетренированности нейросети?

Эффект перетренировки является наиболее типичной проблемой при создании моделей на основе нейронных сетей. Эта проблема возникает, когда вы загрузили слишком много "входов" или инпутов для нейронной сети и у вас при этом недостаточно ценовой истории (слишком малый период котировок; маловато баров для анализа).

Вот пример: вы загрузили ценовую историю DJIA с 1885 по 2011 год. Это около 35 тыс. ценовых баров, мы можем создать нейронную сеть, содержащую 10 тыс. входов. Возникает вопрос: "хорошая ли это модель?".

Соотношение между количеством ценовых баров и количеством входов в нашей нейронной сети составляет 2.8 (35 000 ценовых баров делим на 10 0000 входов). Это значение слишком низкое, т.е. у нас слишком много входов, и этот факт может вызвать чрезмерный тренировочный эффект. Что такое перетренировка сети, как она выглядит в рабочем процессе? Этот эффект работает следующим образом: нейронная сеть обеспечивает отличную корреляция с данными до LBC, в то время как после LBC ее прогноз совершенно провальный.

Вот типичная картинка перетренированности сети:



Математически этот факт вполне очевиден: у нас слишком много событий на входе; мы перекормили этими событиями нейросеть. Их чрезмерное многообразие позволяет описать любое движение фондового рынка в прошлом, и она попросту не смогла разобраться, как бы захлебнулась в этом разнообразии. Однако, когда мы пытаемся предсказать будущее движение рынка, нам нужно иметь дело реальными с входными данными, которые на самом деле связаны с прогнозом по финансовому рынку. Другими словами, если мы хотим что-то объяснить в прошлом - мы можем использовать что угодно, тут сойдет любой фактор, который попался по руку; но если мы действительно заинтересованы в прогнозировании, мы должны очень строго оценивать загружаемые в нейросеть факторы, т. е. мы выбираем только самые важные события; только те из них, которые реально имеют отношении к событию. Не следует поступать по принципу "загружу-ка я в нейросеть вот это, и вот это, и вот это - пусть нейросеть сама разбирается, что работает, а что нет".

Специалисты нейросети называют этот эффект перетренировки как GIGO ("Garbage in, garbage out"; "Мусор (вошел) внутрь, мусор (вышел) наружу").

Как распознать перетренировку? Если у вас отличная корреляция, под 100%, на данных до LBC - это, скорее, повод для тревоги, чем радости; очень вероятно, что вы просто перекормили нейросеть, отсюда и "выдающиеся" результаты.

Вот наши рекомендации, как избежать GIGO:

1) Держите соотношение между количеством ценовых баров и количеством входов примерно 10 к 1. Т.е. если у нас есть 35 000 ценовых баров, сумма факторов, что вы подаете на вход нейросети, не должна превышать 3 500. При этом это соотношение разнится, оно зависит от глубины котировок. Например, для 1000-2000 баров ценовой истории можно использовать 300-600 входов (здесь не так все строго), т. е. здесь используем соотношение 3:1 для баров/входов; однако для более объемных ценовых исторических данных используйте соотношение 10:1 и даже 20:1.

2) Анализируйте, делайте фильтрацию событий. Надо самому понимать, хотя бы в первом приближении, что может сработать, а что нет.

3) Не нужно увлекаться обучением нейросети, оставлять компьютер на ночь - "пусть обучает", здесь стоит обойтись без фанатизма. 10 000 - 20 000 шагов тренировки будет вполне достаточно для нейросети.

Где увидеть, сколько у меня баров загружено и сколько факторов загружается в нейросеть?

Количество факторов, что вы загружаете в неросетевую модель, указано вот здесь:



Количество же загруженных баров котировок указано вот здесь - до LBC (train) и после (test); вам нужно смотреть на первую цифру, с ней работает нейросеть во время обучения.



Оригинал статьи Сергея Тарасова смотрите здесь


Tags: [Нейросетевой анализ в Timing Solution], [Новым юзерам Timing Solition], [Пример создания модели], [модуль Neural Net], [статьи Сергея Тарасова]
Subscribe

Recent Posts from This Journal

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

  • 0 comments