Переобучение - страница 2

 
Dmitry Fedoseev:
А я думал "бла-бла" оценивается не по людям, а по тому, что они пишут.

Я обычно не отвечаю на раздраженные посты, но лично Вам отвечу.

 

Итак, что я имел ввиду под "бла-бла".

СЛУЧАЙ 1 

Предположим, написали робота, нашли ТЕСТЕРОМ его параметры и потом с этими параметрами, не меняя их, прогнали на новых участках котира и желательно на других символах и ТФ. Получили положительный результат.

Вопрос: насколько можно доверять результату? Сольет или нет?

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

Это я рассмотрел случай, когда тестер подтвердил  ТС.

СЛУЧАЙ 2 

Это более интересный случай, в смысле "бла-бла" - это когда тестер дает отрицательный результат. Что делать? Ведь тестер не дает каких-либо идей в какую сторону копать и самое главное не отвечат на вопрос: почему отрицательный результат. Тестер констатирует факт - плохо. Далее идет применение универсального метода под названием МЕТОД ТЫКА или бла-бла, смысл которого  обычно в интуитивном изменении набора индикаторов в попытке получить такой набор  индикаторов, который приведет нас к случаю 1, описанному выше.

 

А существуют ли идеи, инструменты, которые позволят процесс по случаю 2 сделать более осмысленным, и получить уверенность, что полученные в тестере результаты будут получены и в будущем на реале?

 

Да есть, я дал ссылку на параллельную ветку. Там рассматриваются такие инструменты по анализу исходного набора входных данных (предикторов), которые не будут приводить к переобучению (сверх подгонке) ТС. Вот это не "бла-бла" - это конкретные инструменты с математическим обоснованием своей результативности, без интуитивного поиска грааля, а после нахождения такого грааля, слива депо.  

 
Stanislav Korotky:
Если используется форвард-тест, то "переобучение" будет видно по деградации результатов вне периода оптимизации. К сожалению, МТ не предоставляет никаких встроенных методов сопоставления результатов оптимизации и форвард-теста, т.е. это предлагается делать вручную (на глаз), внешними программами или скриптами по собственному усмотрению.
Сам термин "переобучение" дурацкий, призван оправдать нерабочесть самого советника и полностью теряет смысл при волкинг-форварде. Переобучилась переменная или недообучилась, собственно, по деградации не видно. Видно это только из сравнения результата форварда при разных условиях и оптимизации и теста. И глубина истории и шаг форварда подбирается в каждом случае персонально и тогда уже видно что пере, а что недо.
 
СанСаныч Фоменко:

...

СЛУЧАЙ 2 

Тестер констатирует факт - плохо. Далее идет применение универсального метода под названием МЕТОД ТЫКА или бла-бла, смысл которого  обычно в интуитивном изменении набора индикаторов в попытке получить такой набор  индикаторов, который приведет нас к случаю 1, описанному выше.

 

А существуют ли идеи, инструменты, которые позволят процесс по случаю 2 сделать более осмысленным, и получить уверенность, что полученные в тестере результаты будут получены и в будущем на реале?

 

Да есть, я дал ссылку на параллельную ветку. Там рассматриваются такие инструменты по анализу исходного набора входных данных (предикторов), которые не будут приводить к переобучению (сверх подгонке) ТС. Вот это не "бла-бла" - это конкретные инструменты с математическим обоснованием своей результативности, без интуитивного поиска грааля, а после нахождения такого грааля, слива депо.  

А что если этот метод тыка автоматизирован?! Интересны мысли в этом направлении. Индикаторы меняются, их взаимодействие между собой тоже, взаимодействия представлены в виде отдельных функций, выходит, количество параметров может меняться, происходит только простейшая оптимизация по ним. Поэтому интересен вопрос который задаётся в этой ветке, более универсальный подход, который бы не зависел от параметров стратегии. В той ветке, которую вы предлагаете, совершенно другие задачи. Но если вы покажете применимость тех методов к данной задаче, то пожалуйста.

 
Youri Tarshecki:
Сам термин "переобучение" дурацкий, призван оправдать нерабочесть самого советника и полностью теряет смысл при волкинг-форварде. Переобучилась переменная или недообучилась, собственно, по деградации не видно. Видно это только из сравнения результата форварда при разных условиях и оптимизации и теста. И глубина истории и шаг форварда подбирается в каждом случае персонально и тогда уже видно что пере, а что недо.

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

Хотелось бы оценивать вероятность переобучения, чтобы система поиска могла хоть немного "обходить" сомнительные места, если просто сравнивать с форвард участком истории, то может получиться так, что система воспринимает два исторических участка(тренировочный, тестовый) как один тренировочный. Слушаю идеи)).

 
Aliaksandr Hryshyn:

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

Хотелось бы оценивать вероятность переобучения, чтобы система поиска могла хоть немного "обходить" сомнительные места, если просто сравнивать с форвард участком истории, то может получиться так, что система воспринимает два исторических участка(тренировочный, тестовый) как один тренировочный. Слушаю идеи)).

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

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

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

К примеру, при волкин-форварде по схеме 4 мес тренировка - 1 мес тест каждый отдельный участок истории попадает под оптимизацию 4 раза, а при схеме 2 мес тренировка  -2 мес тест - только один. Много это или мало? А фиг его знает! Надо просто смотреть на результат теста и все. Там где сумма форвардов лучше - тот вариант и оптимальнее.

 
Youri Tarshecki:
При постройке стратегии термин "переобучение" тем более не применим, поскольку для выбора варианте кода мы сравниваем только тестовый результат при одинаковых условиях тренировки. А насколько оптимально выбраны эти условия  -не так важно, главное, чтобы они были одинаковыми для всех вариантов кода. Иначе выбор потеряет смысл.

 Данный термин используется довольно часто: "Переобучениепереподгонка (overtraining, overfitting) — нежелательное явление, возникающее при решении задач обучения по прецедентам, когда вероятность ошибки обученного алгоритма на объектах тестовой выборки оказывается существенно выше, чем средняя ошибка на обучающей выборке."

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

 
Nikkk:

Переобучение похоже на слово контрреволюция. Зачем тогда вообще учить, если приходится переобучать. А раз есть смысл переобучать, то значит вы знаете границы плавающие для переобучения, иначе та же рулетка в итоге. А раз есть точки принятия решения когда/как часто/какие праметры.. надо переобучать, то почему бы это понимание изначально не вложить в логику самого обучения/алгоритма.

Уход от анализа цены к анализу обратной связи между обучением и реальным положением дел (ценой). То же самое под другим углом.

Просто сравните обучение с памятью. У вас же не возникает вопрос зачем запоминать, если придется все равно забыть. Проблема в том, что советники, как правило, не имеют отдельно долговременной и оперативной памяти. Кроме того оценка качества их работы весьма примитивна. Поэтому обучать каждую пеерменную (наделять ее памятью) в идеале надо вообще отдельно (что я и пытаюсь, кстати, делать), а проверять надо не на тренировочных отрезках, а на тестовых.
 
Aliaksandr Hryshyn:

 Данный термин используется довольно часто: "Переобучениепереподгонка (overtraining, overfitting) — нежелательное явление, возникающее при решении задач обучения по прецедентам, когда вероятность ошибки обученного алгоритма на объектах тестовой выборки оказывается существенно выше, чем средняя ошибка на обучающей выборке."

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

Так при постройке стратегии задача-то другая. не прецеденты, не оптимизация, а написание кода.

Кроме того, я не согласен с таким определением. По нему, если мы вообще не оптимизируем и вероятность слива на тесте больше, чем на тренировке (а это обычное дело) - это тоже будет считаться переоптимизацией. И что значит существенно? В два раза? В десять?

 
Youri Tarshecki:
Просто сравните обучение с памятью. У вас же не возникает вопрос зачем запоминать, если придется все равно забыть. Проблема в том, что советники, как правило, не имеют отдельно долговременной и оперативной памяти. Кроме того оценка качества их работы весьма примитивна. Поэтому обучать каждую пеерменную в идеале надо вообще отдельно (что я пытаюсь, кстати, делать), а проверять надо не на тренировочных отрезках, а на тестовых.

А разве вы забываете, просто память об участке на котором было обучение трансформируется в память о результатах обучения с этого участка. То же самое как если бы мы фильтранули учасок и в дальнейшем для анализа использовали отфильтрованную инфу, потом фильтранули её и использовали другую и так далее, при том что есть связь между характерами фильтрации/участками на которых эти фильтрации проводились.

Ничего там не забывается, тот же анализ истории под другим углом. Хоть как её обозвать, переобучении/оптимизация-переоптимизация/адаптация/подгонка-переподгонка. 

Причина обращения: