Обсуждение статьи "Роль качества генератора случайных чисел в эффективности алгоритмов оптимизации" - страница 4

 
Andrey Dik #:

Да, конечно, вношу изменения, улучшения. Поэтому кодабаза будет отличным решением.

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

 

ИМХО, для оценки эффективности оптимизации первостепенное значение играет работа найденных параметров на OOS выборке (допустим, k-fold cross validation), а я пока такой темы не заметил - может быть где-пропустил.

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

Между прочим, в табличках не видел сравнения по скорости.

 
Stanislav Korotky #:

и, для оценки эффективности оптимизации первостепенное значение играет работа найденных параметров на OOS выборке (допустим, k-fold cross validation), а я пока такой темы не заметил - может быть где-пропустил.

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

Между прочим, в табличках не видел сравнения по скорости.

Вы затрагиваете вопрос робастности торговых систем, этот вопрос не имеет никакого непосредственного отношения к самим алгоритмам оптимизации.

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

Скорость выполнения кода алгоритмов ничтожно мала, по сравнению с вычислением ФФ в практических задачах, поэтому нет особого смысла делать замеры.

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


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

 
Andrey Dik #:

Вы затрагиваете вопрос робастности торговых систем, этот вопрос не имеет никакого непосредственного отношения к самим алгоритмам оптимизации.

Вы же решили углубиться в вопрос влияния качества ГСЧ на оптимизацию (т.е. отклонились от того, что непосредственно относится к алгоритму оптимизации). Это похвально. Но имхо, более важна устойчивость найденного решения, которая, вероятно, достигается разными способами оценки "лучшести" в пространстве ФФ. Это непосредственно относится к алгоритму оптимизации и его практической применимости.

 
Stanislav Korotky #:

1. Вы же решили углубиться в вопрос влияния качества ГСЧ на оптимизацию (т.е. отклонились от того, что непосредственно относится к алгоритму оптимизации). Это похвально.

2. Но имхо, более важна устойчивость найденного решения, которая, вероятно, достигается разными способами оценки "лучшести" в пространстве ФФ. Это непосредственно относится к алгоритму оптимизации и его практической применимости.

1. Вопрос влияния качества ГСЧ правомерный, поскольку все рассмотренные до сих пор алгоритмы имеют исключительно стохастическую природу (кроме алгоритма Нельдера-Мида). Поэтому ГСЧ имеют непосредственное отношение к АО.

2. Ответил постом выше. Немного дополню, в тестах используются тестовые функции, которые выполняют роль того, что нам нужно. Это очень важно для осознания момент. Представьте, что имеете возможность выполнить ВСЕ возможные прогоны всех возможных сетов, т.е. выполнить полный перебор. Теперь представьте, что нужно выбрать из них какие-то, верно? Каким образом выбирать? - Есть какие-то критерии, по которым будете выбирать из всех параметров. Если знаете, какие параметры (решения) выбрать из всех возможных, полученных полным перебором, то значит знаете и какие критерии применять при оптимизации. Роль критериев выполняет ФФ.

Какую ФФ применять для обеспечения робастности системы? - на этот вопрос алгоритмы оптимизации не дают ответа и никогда не давали. Алгоритмы оптимизации помогают найти только то, что вы знаете что именно искать.

Ответственность выбора ФФ лежит полностью на исследователе.

Вопрос о влиянии качества ГСЧ на результаты АО неоднократно появлялся и на этом форуме, и на других, ответа на этот вопрос я не видел в открытом доступе, теперь ответ есть и даны инструменты для проверки.
 

Оптимизация окутана множеством мифов, злоупотреблений и заблуждений, поэтому хотел бы повторить ещё раз:

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

И это важно.

 
Andrey Khatimlianskii #:

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

Рад видеть тебя в числе комментаторов, Андрей.

С гитхабом не всё просто, проблемы с мотивацией и временем.))

 
Andrey Dik #:

Рад видеть тебя в числе комментаторов, Андрей.

С гитхабом не всё просто, проблемы с мотивацией и временем.))

Интересная тема!

С гитхабом -- максимум день на освоение, эксперименты, а потом сплошное наслаждение. Готов помочь.


Andrey Dik #:

Оптимизация окутана множеством мифов, злоупотреблений и заблуждений, поэтому хотел бы повторить ещё раз:

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

И это важно.

Поддержку мысль Станислава.

ФФ не может описать пространство вокруг себя, она не имеет информации извне.

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

Как ФФ может определить свое положение в пространстве? Никак, она знает только свою абсолютную координату. Поэтому нужен алгоритм (назови его не оптимизацией, если режет слух), который будет искать не максимум (пусть и глобальный), а лучшее плато. Определение "лучшести", конечно -- отдельный интересный вопрос, но очевидно, что параметры из центра плато будут намного более устойчивы на форварде, чем параметры из острого пика, окруженного рвом.

 
Andrey Khatimlianskii #:

Поддержку мысль Станислава.

ФФ не может описать пространство вокруг себя, она не имеет информации извне.

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

Как ФФ может определить свое положение в пространстве? Никак, она знает только свою абсолютную координату. Поэтому нужен алгоритм (назови его не оптимизацией, если режет слух), который будет искать не максимум (пусть и глобальный), а лучшее плато. Определение "лучшести", конечно -- отдельный интересный вопрос, но очевидно, что параметры из центра плато будут намного более устойчивы на форварде, чем параметры из острого пика, окруженного рвом.

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

Похоже, нужна специальная отдельная статья для освещения этих вопросов.

Но, давай для начала, поговорим здесь. Итак, снова представим, что нам доступна возможность провести полный перебор параметров системы. Мы делаем прогон на истории системы со всеми возможными в принципе параметрами. Теперь, ответь, пожалуйста на вопрос: "У тебя есть способ выбрать из всех возможных параметров один сет (или несколько), которые ты готов использовать для работы системы на новых данных? Это вопрос не только к тебе, но и ко всем, кто готов ответить на этот вопрос. Как видим, сейчас ни о каком алгоритме оптимизации речи вообще не идёт, только о выборе сета параметров для работы системы на неизвестных данных.

 
Andrey Dik #:

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

Выбрал бы только вершины высоких локальных холмов (не скал).
Причина обращения: