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

 
Andrey Dik:
Я говорю - надо упрощать, обобщать, а Вы - усложнять, детализировать. 

Так это очень часто делается. Используются информационные критерии, например Акайка.

Смысл такой.

Штрафуется сложность модели. В результате оптимизации выбирается модель не самая точная, но более простая. 

А теперь на примере.

Берем выборку более 5000 бар EURUSD на Н1. Строим случайный лес. Ставим максимальное число деревьев = 500. Смотрим график ошибки подгонки в зависимости от числа деревьев. Оказывается, что ошибка подгонки очень мало меняется после 100 деревьев. Кроме этого, увеличение выборки не приводит к увеличению числу деревьев. А деревья - это и есть вожделенные паттерны. Т.е. пара EURUSD на Н1 содержит около 100 паттернов. Но практически всегда модель переобучается.

Если огрубить модель, взять и радикально уменьшить максимальное число деревьев, например, 10, то может помочь в борьбе с переобучением.  

 
СанСаныч Фоменко:


Если огрубить модель, взять и радикально уменьшить максимальное число деревьев, например, 10, то может помочь в борьбе с переобучением.  

С лесом переобучение возникает не от количества деревьев, а от неограниченной их глубины(сложности модели), количество уменьшает варианс, а переобучение это баес
 
toxic:
С лесом переобучение возникает не от количества деревьев, а от неограниченной их глубины(сложности модели), количество уменьшает варианс, а переобучение это баес
всё это опьять таки сводится к монетке 50 на 50 ... пустая трата времени.
 

Вот мне интересно, -

1. К чему сводится обучение нейросети в алготрейдинге?

2. Какие параметры рыночной динамики используют в обучении?

3. Помимо распознования паттернов на истории, может ли сеть "узнать" специфический характер изменения значения параметра в текущем моменте и среагировать на него?

(например резкий волнообразный подъем, или плавный спуск).

 

Думаю, характер текущего изменения значения параметра сеть не распознает... Вряд ли.

А это выглядит многообещающе для прогнозирования. Ведь достаточно было бы запомнить переходы этих изменений, чтобы потом предугадывать их.

 
Itum:
всё это опьять таки сводится к монетке 50 на 50 ... пустая трата времени.

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

 
Vizard_:

С горем пополам вчера 0.69(0.68999) проколол. Все, наигрался вдоволь.


Круто!

Однако согласитесь что 0.69 это стена которую стандартными средствами можно только поцарапать, сдаётся мне что дело не в глубине нейросети и не количестве деревьев в лесу, у тех кто ниже 0.6, есть какие то хитрости которых мы не знаем и это на самом деле очень мотивирует не расслаблять булки))

 
toxic:

Круто!

Однако согласитесь что 0.69 

А что это за цифра? Где можно посмотреть?
 
СанСаныч Фоменко:
А что это за цифра? Где можно посмотреть?
логлос на numer.ai
 

Как человек, имеющий весьма косвенное отношение к МО, я не вмешиваюсь в обсуждение, но позволю себе высказать мнение со своей "колокольни".

Обычная многослойная нейронная сеть состоит из нейронов. Функция активации нейрона - это монотонная функция, которая растёт от -1 до 1 (или от 0 до 1, не важно). При минимальном значении на входе эта функция выдаёт минимальный результат, при максимальном значении - максмальный.

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


Реter Konow:

3. Помимо распознования паттернов на истории, может ли сеть "узнать" специфический характер изменения значения параметра в текущем моменте и среагировать на него?

(например резкий волнообразный подъем, или плавный спуск).

Думаю, характер текущего изменения значения параметра сеть не распознает... Вряд ли.

А это выглядит многообещающе для прогнозирования. Ведь достаточно было бы запомнить переходы этих изменений, чтобы потом предугадывать их.

Допустим, произошла нештатная ситуация на рынке и был резкий скачок цены. Или НС, обученная на человеческих лицах, получает на вход изображение разноцветных очков. Нейроны перевозбуждаются и их выходной сигнал уходит далеко в левую или правую ветвь сигмоиды. А это значит, что на выходе НС мы получаем какой-то, непредсказуемый, но очень сильный сигнал.

Если такие выбросы имеются в обучающей выборке (например, 1% от всех данных), то алгоритм backprop "расшатывает" все веса, при этом НС не успевает ничему "научиться", но ухудшается её работа на 99% "нормальных" данных.

Было бы намного лучше не "загонять" НС в рамки невыполнимых требований, а научить её защищаться от "нештатных" входных данных. И здесь у нас есть, ИМХО, два варианта действия.

1. Ввести один или несколько слоёв нейронов с функцией активации в виде кривой Гаусса, вместо сигмоиды. Такой нейрон будет выдавать результат, близкий к 1, в ограниченном диапазоне значений входов, и близкий к 0 на всей остальной числовой оси.

2. Изменить интерпретацию выходов  НС. Вместо обычной бинарной интерпретации (0 - нет сигнала торговли, 1 - есть сигнал торговли) предлагается такая: 0 - нет сигнала,  0.5 - есть сигнал, 1.0 - нет сигнала. В случае непредвиденных движений цены выход НС будет близок к одному из крайних значений - 0 или 1, и никаких ложных сигналов она не выдаст.

Уважаемые спецы, есть ли упоминания подобных вещей в  литературе по МО и кажется ли вам это полезным ? Замечания приветствуются.