Pull to refresh
13
0
Валентин Пановский @wol4aravio

Data scientist | Academic | Amateur photographer

Send message

Приветствую! Мне кажется, было бы здорово добавить в работу несколько больше вводных об используемом математическом аппарате, ограничениях и достоинствах подхода.

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

Могу порекомендовать примерно такой список:

  • Бенджио, Гудфеллоу, Курвилль: Глубокое обучение (+ eng)
  • Николенко, Кадурин, Архангельская: Глубокое обучение. Погружение в мир нейронных сетей
  • Саймон Хайкин: Нейронные сети. Полный курс (+ eng)
  • mlcourse.ai
  • Дж. Плас: Python для сложных задач. Наука о данных и машинное обучение (+ eng)
Спасибо за замечание. Под вариативностью я имел в виду ограничение на возможные состояния модели с точки зрения алгоритмов оптимизации.

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

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

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

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

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

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

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

Я надеюсь в дальнейшем, когда накопится достаточно большая база алгоритмов, провести подробный анализ их эффективности.
Например, пишут алгоритм имени их любимых
Безусловно, Вы правы: крайне желательно быть в курсе уже готовых решений. И не будет преувеличением сказать, что библиотек для оптимизации очень много (взять, например, тот же python, Mathematica, Matlab). Но у этих пакетов есть несколько существенных для меня ограничений:


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

В вашем посте картинка с планетами солнечной системы и картинка про закон Ньютона. Что же меня заставило думать что данный алгоритм используется в астрономических расчетах?


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

Что Вы имеете в виду под «привести маленький пример использования рассматриваемого алгоритма на каком-нибудь несложном примере»? Набор функций и результатов, которые для них выдал алгоритм? В источниках литературы есть работы, в которых это имеется, мне казалось, что перепечатывать нет смысла.

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

Было лишь желание попытаться организовать небольшое взаимодействие и интерактив.
Со следующим постом все уже будет в порядке. Выработаю для себя примерный план и буду ему следовать.
Я в будущем и собирался останавливаться на каждом методе подробнее. Хотелось просто узнать, будет ли такая тема интересна читателям или нет. В будущем учту все замечания.
Спасибо за замечание. Все исправлено.

Information

Rating
Does not participate
Date of birth
Registered
Activity