Как стать автором
Обновить

Комментарии 10

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

  • общую процедуру исследования области поиска,
  • процедуру уточнения кандидатов в решения,
  • способ учета информации о целевой функции (например, за счет использования текущего лучшего положения для расчета дальнейшего смещения).

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

Я надеюсь в дальнейшем, когда накопится достаточно большая база алгоритмов, провести подробный анализ их эффективности.
В общем виде — ничем. Все мета-эвристические алгоритмы можно свести к (или вывести из) генетическим алгоритмам.
Вся разница только в особенностях применения и реализации их эвристик: как осуществляется поиск и исследование в решений. На простых функциях они все в итоге дают похожий результат, а вот для сложных задач: на разных задачах разные алгоритмы ведут себя по-разному. Гибридные методы работают надёжнее.
Мне кажется, что все-таки генетические алгоритмы несколько выделяются из остальных оптимизационных процедур (во всяком случае, если рассматривать версии с отличным от вещественного кодированием). Во всяком случае, сведение в этом случае уже не настолько тривиально.

Насчет гибридов я с Вами согласен. С помощью обычных алгоритмов на benchmark-функциях можно относительно легко добиться хорошего результата, а вот для сложных задач уже придется постараться.
У меня два вопроса, как человека не слишком приближённого к такого рода алгоритмам: каково реальное применение этих вещей? И откуда вы взяли ваши тета и прочие параметры? Почему именно эти значения?
То есть, я вижу, что это в машинном обучении. А более конкретно, где?
Реальное применение методов оптимизации? Если говорить об инженерном деле, то такие алгоритмы используются для синтеза контроллеров объектов различного типа (например, удобно искать управление в виде декомпозиции по заранее фиксированному базисе; в этом случае коэффициенты разложения можно найти с помощью алгоритмов оптимизации). В основном идет речь о получении прототипов управляющих модулей.

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

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

Тета появилась как способ вынести параметры модели в отдельный аргумент функции модели (в частности, в качестве параметров линейной модели рассматриваются коэффициенты линейной комбинации элементов измерений). Значение этого параметра напрямую влияет на ее работу. Сами же значения были найдены как с помощью описанного в работе алгоритма, так и с помощью пакета scikit. Полученные значения являются некоторым приближением к точке глобального минимума целевой функции эффективности (формулы, в которых присутствует Arg min).
В случае если необходимо по тем или иным причинам уменьшить степень вариативности модели без ее структурного изменения, можно использовать регуляризацию, которая накладывает ограничения на параметры модели.


Ridge & Lasso Regression накладывает ограничения не для того, чтобы уменьшить «степень вариативности», а для того, что ввести штраф за мультиколлинеарность, которая является стоп-критерием для линейной регрессии. Т.е. штрафы борются с конкретной проблемой, если она существует в данных.

Как правило, Ridge & Lasso Regression дополняют компонентами отбора переменных на основании дополнительных критериев, которые позволяют исключить ряд мультиколлинеарных переменных, т.е. в итоге таки изменить структуру.
Спасибо за замечание. Под вариативностью я имел в виду ограничение на возможные состояния модели с точки зрения алгоритмов оптимизации.

При рассмотрении задачи линейной регрессии в целом Вы правы.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории