Видится 2 подхода к решению задачи оценки устойчивости решения, найденного в ходе оптимизации: теоретический и практический.
Теоретический предполагает погружение в математические выкладки статей, которые обычно имеют в своем названии слова stability и optimization.
Практический можно реализовать по-разному, но он сводится к исследовательской работе, которую проделали авторы статей из первого пункта. Например, за счет избыточных N вызовов ФФ в окрестностях каждой пройденной точки, чтобы оценить локальные производные и в зависимости от них корректировать показатели на какие-то штрафные критерии. Или можно зашумлять координаты и/или значения ФФ в процессе оптимизации - это самый дешевый способ (ничего не нужно менять в основе самих алгоритмов оптимизации). Есть еще идея кластеризовать результаты оптимизации и выявлять точки с максимумом условной формулы (Показатель-ФФ)/(разброс-показателя-ФФ)*(минимальный-разброс-по-параметрам). Точка, куда попадет единичный хороший результат, будет иметь нулевой разброс, и должна трактоваться как неудовлетворительная.
Видится 2 подхода к решению задачи оценки устойчивости решения, найденного в ходе оптимизации: теоретический и практический.
Теоретический предполагает погружение в математические выкладки статей, которые обычно имеют в своем названии слова stability и optimization.
Практический можно реализовать по-разному, но он сводится к исследовательской работе, которую проделали авторы статей из первого пункта. Например, за счет избыточных N вызовов ФФ в окрестностях каждой пройденной точки, чтобы оценить локальные производные и в зависимости от них корректировать показатели на какие-то штрафные критерии. Или можно зашумлять координаты и/или значения ФФ в процессе оптимизации - это самый дешевый способ (ничего не нужно менять в основе самих алгоритмов оптимизации). Есть еще идея кластеризовать результаты оптимизации и выявлять точки с максимумом условной формулы (Показатель-ФФ)/(разброс-показателя-ФФ)*(минимальный-разброс-по-параметрам). Точка, куда попадет единичный хороший результат, будет иметь нулевой разброс, и должна трактоваться как неудовлетворительная.
Ваш пост немного забегает вперёд. Это неплохо, но не поможет ответить на некоторые вопросы, возникшие здесь в обсуждении.
Сабер уже дал свой ответ на мой вопрос, ответьте ещё Вы, пожалуйста, Станислав и подождем ответ Андрея. Напомню вопрос:
представим, что нам доступна возможность провести полный перебор параметров системы. Мы делаем прогон на истории системы со всеми возможными в принципе параметрами. Теперь, ответь, пожалуйста на вопрос: "У тебя есть способ выбрать из всех возможных параметров один сет (или несколько), которые ты готов использовать для работы системы на новых данных?
Тогда сможем раскрыть наиболее полно проблемные места в этих вопросах.
Обращаю внимание: в этой постановке вопроса никакой речи об алгоритмах оптимизации не идет.
Сабер уже дал свой ответ на мой вопрос, ответьте ещё Вы, пожалуйста, Станислав и подождем ответ Андрея. Напомню вопрос:
ИМХО, я как раз на этот вопрос и ответил - 3 варианта на вскидку (кто-то может придумать еще): считать производные(*/**), кластеризовать (**), зашумлять (*) - (одна звездочка - в процессе оптимизации, две звездочки - на результатах оптимизации). Любой из вариантов приведет к корректировке показателей точек ФФ. Далее выбор лучшего сета как обычно, но это уже будет не просто максимум ФФ, а с поправкой на устойчивость.
Но, давай для начала, поговорим здесь. Итак, снова представим, что нам доступна возможность провести полный перебор параметров системы. Мы делаем прогон на истории системы со всеми возможными в принципе параметрами. Теперь, ответь, пожалуйста на вопрос: "У тебя есть способ выбрать из всех возможных параметров один сет (или несколько), которые ты готов использовать для работы системы на новых данных? Это вопрос не только к тебе, но и ко всем, кто готов ответить на этот вопрос. Как видим, сейчас ни о каком алгоритме оптимизации речи вообще не идёт, только о выборе сета параметров для работы системы на неизвестных данных.
Пусть это будет вершина одного из холмов. Но я сразу оговорился, что "Определение "лучшести" -- отдельный интересный вопрос".
Финальный результат должен учитывать результаты проходов в определенном радиусе.
На 3д-графике это будет вершина холма, который выше других, или немного ниже, но имеет более пологие склоны.
С точки зрения ТС -- это будет агрегированный результат работы ТС в некотором диапазоне значений каждого из ее параметров.
ИМХО, я как раз на этот вопрос и ответил - 3 варианта на вскидку (кто-то может придумать еще): считать производные(*/**), кластеризовать (**), зашумлять (*) - (одна звездочка - в процессе оптимизации, две звездочки - на результатах оптимизации). Любой из вариантов приведет к корректировке показателей точек ФФ. Далее выбор лучшего сета как обычно, но это уже будет не просто максимум ФФ, а с поправкой на устойчивость.
Пусть это будет вершина одного из холмов. Но я сразу оговорился, что "Определение "лучшести" -- отдельный интересный вопрос".
Финальный результат должен учитывать результаты проходов в определенном радиусе.
На 3д-графике это будет вершина холма, который выше других, или немного ниже, но имеет более пологие склоны.
С точки зрения ТС -- это будет агрегированный результат работы ТС в некотором диапазоне значений каждого из ее параметров.
Andrey Khatimlianskii #: Задача -- находить эту область без полного перебора.
Итак, есть способ выбрать из всех возможных параметров в результатах полного перебора тот сет, который будем использовать на незнакомых данных? Мы сделали полный перебор, оптимизацией тут и не пахнет.
Andrey Khatimlianskii #: Задача -- находить эту область без полного перебора.
Уверен, что такая задача часто ставится и потому имеет несколько опубликованных решений.
Кстати, если есть уже вычисленные значения ФФ в триллионах точек (полный перебор), то найти среди них многомерные холмы - это задача оптимизации.
Поэтому в любом случае сводится к оптимизации.
Предлагал итерационный подход, когда перед каждой итерацией в виде очередного запуска ГА выкалываются области найденной вершины (на предыдущей итерации).
Спасибо за комментарии, уважаемые Fxsaber, Станислав и Андрей. Уважая ваш огромный опыт в разработке и других сферах, позвольте мне высказать мою точку зрения на аспекты, связанные с понятием "оптимизация". У меня ни в коем случае нет цели "учить", но есть желание донести своё видение как человека, разобравшего на молекулы сотни чужих алгоритмов оптимизации и спроектировавшего несколько своих, авторских.
Если смогу донести свою мысль, это позволит вам посмотреть на оптимизацию несколько под иным углом, что, несомненно, обогатит ваш и без того огромный опыт и знания, а так же мне в процессе дискуссии пополнить свой багаж опытом.
"Если" - потому что есть внешние воздействия на эту ветку обсуждения статьи, которые мешают это сделать. Пока эти воздействия успешно купируются, но это не является гарантией, что так будет всегда.
Пока оптимизацию не делаем, сделали полный перебор параметров.
Это какая-то терминологическая игра? Я предложил 3 способа как выбрать лучший сет - они подходят и для случая полного прогона на истории во всем возможным комбинациям.
Например, такая известная задача: есть НС (допустим, торгующая по приращениям цен), и оптимизация используется для нахождения весов этой сети. Если применить ваши алгоритмы в лоб - мы получим переобученную НС, которая не сможет работать на новых данных. Поэтому критически важно поделить исходный набор данных на два, и проводя оптимизацию на одной половине, контролировать качество на второй.
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
Видится 2 подхода к решению задачи оценки устойчивости решения, найденного в ходе оптимизации: теоретический и практический.
Теоретический предполагает погружение в математические выкладки статей, которые обычно имеют в своем названии слова stability и optimization.
Практический можно реализовать по-разному, но он сводится к исследовательской работе, которую проделали авторы статей из первого пункта. Например, за счет избыточных N вызовов ФФ в окрестностях каждой пройденной точки, чтобы оценить локальные производные и в зависимости от них корректировать показатели на какие-то штрафные критерии. Или можно зашумлять координаты и/или значения ФФ в процессе оптимизации - это самый дешевый способ (ничего не нужно менять в основе самих алгоритмов оптимизации). Есть еще идея кластеризовать результаты оптимизации и выявлять точки с максимумом условной формулы (Показатель-ФФ)/(разброс-показателя-ФФ)*(минимальный-разброс-по-параметрам). Точка, куда попадет единичный хороший результат, будет иметь нулевой разброс, и должна трактоваться как неудовлетворительная.
Видится 2 подхода к решению задачи оценки устойчивости решения, найденного в ходе оптимизации: теоретический и практический.
Теоретический предполагает погружение в математические выкладки статей, которые обычно имеют в своем названии слова stability и optimization.
Практический можно реализовать по-разному, но он сводится к исследовательской работе, которую проделали авторы статей из первого пункта. Например, за счет избыточных N вызовов ФФ в окрестностях каждой пройденной точки, чтобы оценить локальные производные и в зависимости от них корректировать показатели на какие-то штрафные критерии. Или можно зашумлять координаты и/или значения ФФ в процессе оптимизации - это самый дешевый способ (ничего не нужно менять в основе самих алгоритмов оптимизации). Есть еще идея кластеризовать результаты оптимизации и выявлять точки с максимумом условной формулы (Показатель-ФФ)/(разброс-показателя-ФФ)*(минимальный-разброс-по-параметрам). Точка, куда попадет единичный хороший результат, будет иметь нулевой разброс, и должна трактоваться как неудовлетворительная.
Ваш пост немного забегает вперёд. Это неплохо, но не поможет ответить на некоторые вопросы, возникшие здесь в обсуждении.
Сабер уже дал свой ответ на мой вопрос, ответьте ещё Вы, пожалуйста, Станислав и подождем ответ Андрея. Напомню вопрос:
представим, что нам доступна возможность провести полный перебор параметров системы. Мы делаем прогон на истории системы со всеми возможными в принципе параметрами. Теперь, ответь, пожалуйста на вопрос: "У тебя есть способ выбрать из всех возможных параметров один сет (или несколько), которые ты готов использовать для работы системы на новых данных?
Тогда сможем раскрыть наиболее полно проблемные места в этих вопросах.
Обращаю внимание: в этой постановке вопроса никакой речи об алгоритмах оптимизации не идет.
Сабер уже дал свой ответ на мой вопрос, ответьте ещё Вы, пожалуйста, Станислав и подождем ответ Андрея. Напомню вопрос:
ИМХО, я как раз на этот вопрос и ответил - 3 варианта на вскидку (кто-то может придумать еще): считать производные(*/**), кластеризовать (**), зашумлять (*) - (одна звездочка - в процессе оптимизации, две звездочки - на результатах оптимизации). Любой из вариантов приведет к корректировке показателей точек ФФ. Далее выбор лучшего сета как обычно, но это уже будет не просто максимум ФФ, а с поправкой на устойчивость.
Но, давай для начала, поговорим здесь. Итак, снова представим, что нам доступна возможность провести полный перебор параметров системы. Мы делаем прогон на истории системы со всеми возможными в принципе параметрами. Теперь, ответь, пожалуйста на вопрос: "У тебя есть способ выбрать из всех возможных параметров один сет (или несколько), которые ты готов использовать для работы системы на новых данных? Это вопрос не только к тебе, но и ко всем, кто готов ответить на этот вопрос. Как видим, сейчас ни о каком алгоритме оптимизации речи вообще не идёт, только о выборе сета параметров для работы системы на неизвестных данных.
Пусть это будет вершина одного из холмов. Но я сразу оговорился, что "Определение "лучшести" -- отдельный интересный вопрос".
Финальный результат должен учитывать результаты проходов в определенном радиусе.
На 3д-графике это будет вершина холма, который выше других, или немного ниже, но имеет более пологие склоны.
С точки зрения ТС -- это будет агрегированный результат работы ТС в некотором диапазоне значений каждого из ее параметров.
ИМХО, я как раз на этот вопрос и ответил - 3 варианта на вскидку (кто-то может придумать еще): считать производные(*/**), кластеризовать (**), зашумлять (*) - (одна звездочка - в процессе оптимизации, две звездочки - на результатах оптимизации). Любой из вариантов приведет к корректировке показателей точек ФФ. Далее выбор лучшего сета как обычно, но это уже будет не просто максимум ФФ, а с поправкой на устойчивость.
Первая строка в Вашем сообщении:
Видится 2 подхода к решению задачи оценки устойчивости решения, найденного в ходе оптимизации: теоретический и практический.
Пока оптимизацию не делаем, сделали полный перебор параметров.
Пусть это будет вершина одного из холмов. Но я сразу оговорился, что "Определение "лучшести" -- отдельный интересный вопрос".
Финальный результат должен учитывать результаты проходов в определенном радиусе.
На 3д-графике это будет вершина холма, который выше других, или немного ниже, но имеет более пологие склоны.
С точки зрения ТС -- это будет агрегированный результат работы ТС в некотором диапазоне значений каждого из ее параметров.
Задача -- находить эту область без полного перебора.
Итак, есть способ выбрать из всех возможных параметров в результатах полного перебора тот сет, который будем использовать на незнакомых данных? Мы сделали полный перебор, оптимизацией тут и не пахнет.
Сейчас очень важно ответить на этот вопрос.
Задача -- находить эту область без полного перебора.
Уверен, что такая задача часто ставится и потому имеет несколько опубликованных решений.
Кстати, если есть уже вычисленные значения ФФ в триллионах точек (полный перебор), то найти среди них многомерные холмы - это задача оптимизации.
Поэтому в любом случае сводится к оптимизации.
Предлагал итерационный подход, когда перед каждой итерацией в виде очередного запуска ГА выкалываются области найденной вершины (на предыдущей итерации).
Первая строка в Вашем сообщении:
Пока оптимизацию не делаем, сделали полный перебор параметров.
Это какая-то терминологическая игра? Я предложил 3 способа как выбрать лучший сет - они подходят и для случая полного прогона на истории во всем возможным комбинациям.
Например, такая известная задача: есть НС (допустим, торгующая по приращениям цен), и оптимизация используется для нахождения весов этой сети. Если применить ваши алгоритмы в лоб - мы получим переобученную НС, которая не сможет работать на новых данных. Поэтому критически важно поделить исходный набор данных на два, и проводя оптимизацию на одной половине, контролировать качество на второй.