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

 

Видится 2 подхода к решению задачи оценки устойчивости решения, найденного в ходе оптимизации: теоретический и практический.

Теоретический предполагает погружение в математические выкладки статей, которые обычно имеют в своем названии слова stability и optimization.

Практический можно реализовать по-разному, но он сводится к исследовательской работе, которую проделали авторы статей из первого пункта. Например, за счет избыточных N вызовов ФФ в окрестностях каждой пройденной точки, чтобы оценить локальные производные и в зависимости от них корректировать показатели на какие-то штрафные критерии. Или можно зашумлять координаты и/или значения ФФ в процессе оптимизации - это самый дешевый способ (ничего не нужно менять в основе самих алгоритмов оптимизации). Есть еще идея кластеризовать результаты оптимизации и выявлять точки с максимумом условной формулы (Показатель-ФФ)/(разброс-показателя-ФФ)*(минимальный-разброс-по-параметрам). Точка, куда попадет единичный хороший результат, будет иметь нулевой разброс, и должна трактоваться как неудовлетворительная.

 
Stanislav Korotky #:

Видится 2 подхода к решению задачи оценки устойчивости решения, найденного в ходе оптимизации: теоретический и практический.

Теоретический предполагает погружение в математические выкладки статей, которые обычно имеют в своем названии слова stability и optimization.

Практический можно реализовать по-разному, но он сводится к исследовательской работе, которую проделали авторы статей из первого пункта. Например, за счет избыточных N вызовов ФФ в окрестностях каждой пройденной точки, чтобы оценить локальные производные и в зависимости от них корректировать показатели на какие-то штрафные критерии. Или можно зашумлять координаты и/или значения ФФ в процессе оптимизации - это самый дешевый способ (ничего не нужно менять в основе самих алгоритмов оптимизации). Есть еще идея кластеризовать результаты оптимизации и выявлять точки с максимумом условной формулы (Показатель-ФФ)/(разброс-показателя-ФФ)*(минимальный-разброс-по-параметрам). Точка, куда попадет единичный хороший результат, будет иметь нулевой разброс, и должна трактоваться как неудовлетворительная.

Ваш пост немного забегает вперёд. Это неплохо, но не поможет ответить на некоторые вопросы, возникшие здесь в обсуждении.

Сабер уже дал свой ответ на мой вопрос, ответьте ещё Вы, пожалуйста, Станислав и подождем ответ Андрея. Напомню вопрос:

Andrey Dik #:

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

Тогда сможем раскрыть наиболее полно проблемные места в этих вопросах.

Обращаю внимание: в этой постановке вопроса никакой речи об алгоритмах оптимизации не идет.

 
Andrey Dik #:

Сабер уже дал свой ответ на мой вопрос, ответьте ещё Вы, пожалуйста, Станислав и подождем ответ Андрея. Напомню вопрос:

ИМХО, я как раз на этот вопрос и ответил - 3 варианта на вскидку (кто-то может придумать еще): считать производные(*/**), кластеризовать (**), зашумлять (*) - (одна звездочка - в процессе оптимизации, две звездочки - на результатах оптимизации). Любой из вариантов приведет к корректировке показателей точек ФФ. Далее выбор лучшего сета как обычно, но это уже будет не просто максимум ФФ, а с поправкой на устойчивость.

 
Andrey Dik #:

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

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

Финальный результат должен учитывать результаты проходов в определенном радиусе.

На 3д-графике это будет вершина холма, который выше других, или немного ниже, но имеет более пологие склоны.

С точки зрения ТС -- это будет агрегированный результат работы ТС в некотором диапазоне значений каждого из ее параметров.

 
Задача -- находить эту область без полного перебора.
 
Stanislav Korotky #:

ИМХО, я как раз на этот вопрос и ответил - 3 варианта на вскидку (кто-то может придумать еще): считать производные(*/**), кластеризовать (**), зашумлять (*) - (одна звездочка - в процессе оптимизации, две звездочки - на результатах оптимизации). Любой из вариантов приведет к корректировке показателей точек ФФ. Далее выбор лучшего сета как обычно, но это уже будет не просто максимум ФФ, а с поправкой на устойчивость.

Первая строка в Вашем сообщении:

Stanislav Korotky #:

Видится 2 подхода к решению задачи оценки устойчивости решения, найденного в ходе оптимизации: теоретический и практический.

Пока оптимизацию не делаем, сделали полный перебор параметров.

 
Andrey Khatimlianskii #:

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

Финальный результат должен учитывать результаты проходов в определенном радиусе.

На 3д-графике это будет вершина холма, который выше других, или немного ниже, но имеет более пологие склоны.

С точки зрения ТС -- это будет агрегированный результат работы ТС в некотором диапазоне значений каждого из ее параметров.

Andrey Khatimlianskii #:
Задача -- находить эту область без полного перебора.

Итак, есть способ выбрать из всех возможных параметров в результатах полного перебора тот сет, который будем использовать на незнакомых данных? Мы сделали полный перебор, оптимизацией тут и не пахнет.

Сейчас очень важно ответить на этот вопрос.

 
Andrey Khatimlianskii #:
Задача -- находить эту область без полного перебора.

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

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

Поэтому в любом случае сводится к оптимизации.


Предлагал итерационный подход, когда перед каждой итерацией в виде очередного запуска ГА выкалываются области найденной вершины (на предыдущей итерации).

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

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

"Если" - потому что есть внешние воздействия на эту ветку обсуждения статьи, которые мешают это сделать. Пока эти воздействия успешно купируются, но это не является гарантией, что так будет всегда.
 
Andrey Dik #:

Первая строка в Вашем сообщении:

Пока оптимизацию не делаем, сделали полный перебор параметров.

Это какая-то терминологическая игра? Я предложил 3 способа как выбрать лучший сет - они подходят и для случая полного прогона на истории во всем возможным комбинациям.

Например, такая известная задача: есть НС (допустим, торгующая по приращениям цен), и оптимизация используется для нахождения весов этой сети. Если применить ваши алгоритмы в лоб - мы получим переобученную НС, которая не сможет работать на новых данных. Поэтому критически важно поделить исходный набор данных на два, и проводя оптимизацию на одной половине, контролировать качество на второй.