Обсуждение статьи "Алгоритм атомарного орбитального поиска — Atomic Orbital Search (AOS): Модификация"
Благодарю за статью!
Посидел я немного вчера и сегодня над функцией Hilly и алглибовскими методами. И вот какие мысли.
Для того что бы найти максимум данной функции, особенно когда количество параметров от 10 и больше бессмысленно применять градиентные методы, это задача комбинаторных методов оптимизации. Градиентные просто мгновенно застревают в локальном экстремуме. И не имеет значение сколько раз делать рестарт из новой точки пространства параметров, шанс попасть в нужную область пространства из которой градиентный метод мгновенно находит решение стремится к нулю с ростом количества параметров.
Например, точка пространства из которой lbfgs или CG за 2(две) итерации находят максимум для любого количества параметров следующая {x = -1,2 , y = 0.5}
Но шанс попасть в эту область как я уже сказал просто нулевой. Это нужно наверно лет сто случайные числа генерировать.
Поэтому нужно каким-то образом скомбинировать генетические алгоритмы представленные в статье (что бы они провели разведку, сократили пространство поиска) с градиентными методами, которые бы уже далее быстро находили экстремум из более выгодной точки.
Спасибо за отзыв.
Для того что бы найти максимум данной функции, особенно когда количество параметров от 10 и больше бессмысленно применять градиентные методы
Да, верно.
это задача комбинаторных методов оптимизации.
Комбинаторные, такие как классический "муравьиный", предназначены для проблем типа "задачи коммивояжера" и "задачи о рюкзаке", т.е, предназначены для дискретных задач с фиксированным шагом (ребро графа). Для многомерных "непрерывных" задач эти алгоритмы не предназначены совсем, например, для таких задач, как обучение нейронных сетей. Да, комбинаторные свойства очень полезны для стохастических эвристических методов, но не являются единственным и достаточным свойством для успешного решения подобных, приближенных к реальным, тестовым задачам. Важны ещё и сами поисковые стратегии в алго.
Градиентные просто мгновенно застревают в локальном экстремуме. И не имеет значение сколько раз делать рестарт из новой точки пространства параметров, шанс попасть в нужную область пространства из которой градиентный метод мгновенно находит решение стремится к нулю с ростом количества параметров.
Да, так.
Но шанс попасть в эту область как я уже сказал просто нулевой. Это нужно наверно лет сто случайные числа генерировать.
Да, так. В маломерных пространствах (1-2) попасть в окрестности глобала очень просто, для этого даже могут сгодится простые рандомные генераторы. Но всё совершенно меняется, когда размерность задачи растет, здесь начинают играть важную роль именно поисковые свойства алгоритмов, а не Госпожа Удача.
Поэтому нужно каким-то образом скомбинировать генетические алгоритмы представленные в статье (что бы они провели разведку, сократили пространство поиска) с градиентными методами, которые бы уже далее быстро находили экстремум из более выгодной точки.
"генетические" - наверное имеете ввиду "эвристические". А зачем "рыбке зонтик" и "а зачем нам кузнец? кузнец нам не нужен".))) Есть эффективные способы решения сложных многомерных в непрерывном пространстве задач, которые описаны в статьях о популяционных методах. А для классических градиентных есть свои задачи - одномерные аналитически определимые задачи (в этом им равных нет, там будет быстрая и точная сходимость).
И, вопрос, какие у Вас впечатления от скорости работы эвристики?
ЗЫ:
О сколько нам открытий чудных
Готовят просвещенья дух
И опыт, сын ошибок трудных,
И гений, парадоксов друг,
И случай, бог изобретатель.
ЗЗЫ. Один момент. В неизвестном пространстве поиска никогда невозможно знать в любой момент времени или шаге итерации, что это на самом деле действительно перспективное направление в сторону глобала. Поэтому невозможно сначала разведать, а потом уточнять. Могут работать только цельные стратегии поиска, они либо работают хорошо, либо плохо. Степень "хорошести" и "пригодности для задачи" каждый выбирает сам, для этого ведется рейтинговая таблица, чтобы выбирать алгоритм по специфике задачи.
Да, так. В маломерных пространствах (1-2) попасть в окрестности глобала очень просто, для этого даже могут сгодится простые рандомные генераторы. Но всё совершенно меняется, когда размерность задачи растет, здесь начинают играть важную роль именно поисковые свойства алгоритмов, а не Госпожа Удача.
Так они же не справляются
И, вопрос, какие у Вас впечатления от скорости работы эвристики?
несмотря на то что работают быстро. Результат для 1000 параметров что-то около 0,4.
Вот поэтому я чисто интуитивно подумал, что есть смысл комбинировать ГА и градиентные методы, что бы добраться до максимума. Иначе по отдельности они вашу функцию не разгадают. На практике не проверял.
P.S. Все-таки считаю что данная функция слишком сгущает краски, в реальных задача(обучение нейросетей например) таких проблем нет, хотя там тоже поверхность ошибок вся в локальных минимумах.
1. Так они же не справляются
2. несмотря на то что работают быстро. Результат для 1000 параметров что-то около 0,4.
3. Вот поэтому я чисто интуитивно подумал, что есть смысл комбинировать ГА и градиентные методы, что бы добраться до максимума. Иначе по отдельности они вашу функцию не разгадают. На практике не проверял.
4. P.S. Все-таки считаю что данная функция слишком сгущает краски, в реальных задача(обучение нейросетей например) таких проблем нет, хотя там тоже поверхность ошибок вся в локальных минимумах.
1. Что значит "не справляются"? Есть ограничение на число обращений к целевой функции, кто показал лучше результат - того и тапки.)) Увеличивать количество разрешенных обращений? Ну тогда все равно придут к финишу более проворные и приспособленные к сложным функциям. Попробуйте увеличивать обращения, картина не изменится.
2. Да. А у кого-то 0.3, а у других 0.2, а у третьих 0.001. Лучше те, кто показал 0.4.
3. Не поможет, интуитивно было пробовано и перепробовано сотни комбинаций и вариаций. Лучше тот, кто показывает лучше результат за заданное количество эпох (итераций). Увеличивайте количество обращений к целевой, увидите кто из них достигнет финиша первым.
4. Если на сложных задачах есть лидеры, то считаете, что на легких задачах лидеры покажут результаты хуже чем аутсайдеры? Это не так, мягко говоря. Работаю над более "простой" но реалистичной задачей по обучению сеток. Результатами буду делится, как всегда. Будет интересно.
Просто экспериментируйте, пробуйте разные алгоритмы, разные задачи, не зацикливайтесь на чем-то одном. Весь инструментарий я постарался предоставить для этого.
1. Что значит "не справляются"? Есть ограничение на число обращений к целевой функции, кто показал лучше результат - того и тапки.)) Увеличивать количество разрешенных обращений? Ну тогда все равно придут к финишу более проворные и приспособленные к сложным функциям. Попробуйте увеличивать обращения, картина не изменится.
2. Да. А у кого-то 0.3, а у других 0.2, а у третьих 0.001. Лучше те, кто показал 0.4.
3. Не поможет, интуитивно было пробовано и перепробовано сотни комбинаций и вариаций. Лучше тот, кто показывает лучше результат за заданное количество эпох (итераций). Увеличивайте количество обращений к целевой, увидите кто из них достигнет финиша первым.
4. Если на сложных задачах есть лидеры, то считаете, что на легких задачах лидеры покажут результаты хуже чем аутсайдеры? Это не так, мягко говоря. Работаю над более "простой" но реалистичной задачей по обучению сеток. Результатами буду делится, как всегда. Будет интересно.
Просто экспериментируйте, пробуйте разные алгоритмы, разные задачи, не зацикливайтесь на чем-то одном. Весь инструментарий я постарался предоставить для этого.
да вот экспериментирую,
Про реалистичную задачу это правильно, проверить алгоритмы на задачах приближенных к боевым.
Вдвойне интересно посмотреть как сети на генетике будут обучаться.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования


Опубликована статья Алгоритм атомарного орбитального поиска — Atomic Orbital Search (AOS): Модификация:
Во второй части статьи мы продолжим разработку модифицированной версии алгоритма AOS (Atomic Orbital Search), сфокусировавшись на специфических операторах для повышения его эффективности и адаптивности. После анализа основ и механик алгоритма, мы обсудим идеи по улучшению производительности и возможности анализа сложных пространств решений, предлагая новые подходы для расширения его функциональности как инструмента для оптимизации.
Во второй части статьи мы сосредоточимся на модификации алгоритма AOS, поскольку не можем пройти мимо такой выдающейся идеи, не стремясь её улучшить. Мы проанализируем концепцию улучшения алгоритма, уделяя особое внимание специфическим операторам, которые присущи этому методу и могут повысить его эффективность и адаптивность.
Работа над алгоритмом AOS открыла передо мной множество интересных аспектов, связанных с его методами поиска в пространстве решений. В процессе исследования я также пришел к ряду идей о том, как можно улучшить этот интересный алгоритм. В частности, я сосредоточился на переработке имеющихся методов, которые могут повысить производительность работы алгоритма, улучшая его способность к исследованию сложных пространств решений. Мы рассмотрим, как эти улучшения могут быть интегрированы в существующую структуру алгоритма AOS, чтобы сделать его еще более мощным инструментом для решения задач оптимизации. Таким образом, наша цель — не только проанализировать существующие механизмы, но и предложить иные подходы, которые могут значительно расширить возможности алгоритма AOS.
Автор: Andrey Dik