Приветствую! Мне кажется, было бы здорово добавить в работу несколько больше вводных об используемом математическом аппарате, ограничениях и достоинствах подхода.
Кроме того, для удобства работы с представленными материалами было бы здорово код размещать не скриншотами, а с помощью доступных инструментов разметки. Это позволит заинтересовавшимся в вашей работе самостоятельно поработать с материалом, а не тратить много времени на перепечатывание с изображения.
Мне кажется, что все-таки генетические алгоритмы несколько выделяются из остальных оптимизационных процедур (во всяком случае, если рассматривать версии с отличным от вещественного кодированием). Во всяком случае, сведение в этом случае уже не настолько тривиально.
Насчет гибридов я с Вами согласен. С помощью обычных алгоритмов на benchmark-функциях можно относительно легко добиться хорошего результата, а вот для сложных задач уже придется постараться.
Реальное применение методов оптимизации? Если говорить об инженерном деле, то такие алгоритмы используются для синтеза контроллеров объектов различного типа (например, удобно искать управление в виде декомпозиции по заранее фиксированному базисе; в этом случае коэффициенты разложения можно найти с помощью алгоритмов оптимизации). В основном идет речь о получении прототипов управляющих модулей.
Если же говорить об алгоритмах машинного обучения, то первый пример, который приходит в голову, — это стохастический градиентный спуск. Периодически в машинном обучении возникает задача линейного программирования, которую можно решать с помощью симлекс-метода.
Вероятно, можно назвать алгоритмы оптимизации чем-то вроде инструмента, которым оперирует машинное обучение.
Тета появилась как способ вынести параметры модели в отдельный аргумент функции модели (в частности, в качестве параметров линейной модели рассматриваются коэффициенты линейной комбинации элементов измерений). Значение этого параметра напрямую влияет на ее работу. Сами же значения были найдены как с помощью описанного в работе алгоритма, так и с помощью пакета scikit. Полученные значения являются некоторым приближением к точке глобального минимума целевой функции эффективности (формулы, в которых присутствует Arg min).
Если говорить общими словами, не вдаваясь в подробности сравнения конкретных алгоритмов, то эвристиками, которые лежат в основе оптимизационной процедуры. Сами эти эвристики по сути влияют на:
общую процедуру исследования области поиска,
процедуру уточнения кандидатов в решения,
способ учета информации о целевой функции (например, за счет использования текущего лучшего положения для расчета дальнейшего смещения).
По большому счету, мне кажется, что каждый конкретный алгоритм в какой-то мере отражает характер своего создателя и его предпочтения: кто-то склонен получать быстрый, но не очень точный результат, другой же готов потратить много времени, но получить качественное решение. Поэтому очень часто «птицы», «пчелы» и «коты» — это просто красивая метафора, с помощью которой алгоритм приобретает некоторый оттенок самостоятельности и независимости.
Я надеюсь в дальнейшем, когда накопится достаточно большая база алгоритмов, провести подробный анализ их эффективности.
Безусловно, Вы правы: крайне желательно быть в курсе уже готовых решений. И не будет преувеличением сказать, что библиотек для оптимизации очень много (взять, например, тот же python, Mathematica, Matlab). Но у этих пакетов есть несколько существенных для меня ограничений:
они работают в основном лишь с вещественными числами (в дальнейшем я хочу рассказать про задачи интервальной оптимизации); мне хочется создать пакет, который бы смог работать в условиях любой произвольной задачи оптимизации.
Ну и для меня самому реализовать алгоритм — один из лучших способов понять досконально, как он функционирует, понять узкие места, потенциал для модификации и развития.
Большая часть достоинств теряется при оптимизации мультимодальных функций вследствие того, что алгоритм в своем изначальном виде не обладал процедурами рассеивания. Он крайне быстро сходится к локальному минимуму (за счет тех самых притяжений), но если глобальный минимум не попал в множество, образованное выпуклой оболочкой сгенерированных частиц, то алгоритм его не найдет.
В вашем посте картинка с планетами солнечной системы и картинка про закон Ньютона. Что же меня заставило думать что данный алгоритм используется в астрономических расчетах?
В алгоритме гармонического поиска было изображение скрипичного ключа и нот, но это же не натолкнуло кого-либо на мысль, что алгоритм используется в музыке.
Что Вы имеете в виду под «привести маленький пример использования рассматриваемого алгоритма на каком-нибудь несложном примере»? Набор функций и результатов, которые для них выдал алгоритм? В источниках литературы есть работы, в которых это имеется, мне казалось, что перепечатывать нет смысла.
Сама постановка задачи так же имеется, поэтому мне сложно понять, что из поста запутало Вас и направило в область астрономических расчетов.
Я в будущем и собирался останавливаться на каждом методе подробнее. Хотелось просто узнать, будет ли такая тема интересна читателям или нет. В будущем учту все замечания.
Приветствую! Мне кажется, было бы здорово добавить в работу несколько больше вводных об используемом математическом аппарате, ограничениях и достоинствах подхода.
Кроме того, для удобства работы с представленными материалами было бы здорово код размещать не скриншотами, а с помощью доступных инструментов разметки. Это позволит заинтересовавшимся в вашей работе самостоятельно поработать с материалом, а не тратить много времени на перепечатывание с изображения.
При рассмотрении задачи линейной регрессии в целом Вы правы.
Насчет гибридов я с Вами согласен. С помощью обычных алгоритмов на benchmark-функциях можно относительно легко добиться хорошего результата, а вот для сложных задач уже придется постараться.
Если же говорить об алгоритмах машинного обучения, то первый пример, который приходит в голову, — это стохастический градиентный спуск. Периодически в машинном обучении возникает задача линейного программирования, которую можно решать с помощью симлекс-метода.
Вероятно, можно назвать алгоритмы оптимизации чем-то вроде инструмента, которым оперирует машинное обучение.
Тета появилась как способ вынести параметры модели в отдельный аргумент функции модели (в частности, в качестве параметров линейной модели рассматриваются коэффициенты линейной комбинации элементов измерений). Значение этого параметра напрямую влияет на ее работу. Сами же значения были найдены как с помощью описанного в работе алгоритма, так и с помощью пакета scikit. Полученные значения являются некоторым приближением к точке глобального минимума целевой функции эффективности (формулы, в которых присутствует Arg min).
По большому счету, мне кажется, что каждый конкретный алгоритм в какой-то мере отражает характер своего создателя и его предпочтения: кто-то склонен получать быстрый, но не очень точный результат, другой же готов потратить много времени, но получить качественное решение. Поэтому очень часто «птицы», «пчелы» и «коты» — это просто красивая метафора, с помощью которой алгоритм приобретает некоторый оттенок самостоятельности и независимости.
Я надеюсь в дальнейшем, когда накопится достаточно большая база алгоритмов, провести подробный анализ их эффективности.
Ну и для меня самому реализовать алгоритм — один из лучших способов понять досконально, как он функционирует, понять узкие места, потенциал для модификации и развития.
В алгоритме гармонического поиска было изображение скрипичного ключа и нот, но это же не натолкнуло кого-либо на мысль, что алгоритм используется в музыке.
Что Вы имеете в виду под «привести маленький пример использования рассматриваемого алгоритма на каком-нибудь несложном примере»? Набор функций и результатов, которые для них выдал алгоритм? В источниках литературы есть работы, в которых это имеется, мне казалось, что перепечатывать нет смысла.
Сама постановка задачи так же имеется, поэтому мне сложно понять, что из поста запутало Вас и направило в область астрономических расчетов.
Было лишь желание попытаться организовать небольшое взаимодействие и интерактив.