Эволюционные алгоритмы серьезно недоиспользуются
Если вы занимаетесь исследованиями в области машинного обучения, вы сталкивались со всевозможными интересными целевыми функциями и оптимизаторами. Они имеют решающее значение для вашей модели поведения при обучении. Оптимизаторы и разные сетевые архитектуры преследуют одну цель: пройти пространство поиска наилучшим образом, учитывая некоторые входные данные.
Однако часто вы будете сталкиваться с множеством ситуаций, когда ваши данные в доменах трудно извлечь/смоделировать. В таком случае написание эффективных агентов машинного обучения для обхода пространства будет затруднено. Однако часто именно здесь мы можем использовать обучение с подкреплением. RL может быть очень мощным инструментом для решения многих сложных проблем.
Однако у RL есть свои проблемы. Моделирование идет с некоторыми предположениями, оно может быть очень дорогостоящим и не очень хорошо подходит для многоцелевой оптимизации. Для более полного понимания обучения с подкреплением, посмотрите это видео. Итак, что мы делаем здесь?
Введите эволюционные алгоритмы (EAs)
Эволюционные алгоритмы относительно просты. Они основаны на процессе эволюции в биологии. Они следуют следующим шагам: Мы создаем начальный набор решений-кандидатов. Эти решения рассматриваются как отдельные и итеративно обновляются. Каждое новое поколение создается путем стохастического удаления менее желательных решений (и часто) смешивания жизнеспособных кандидатов. Небольшие случайные изменения также могут быть добавлены к некоторым оставшимся «подходящим» кандидатам. В результате популяция будет постепенно развиваться в сторону увеличения приспособленности.
Это может показаться простым методом проб и ошибок. И это. Но помните, что у нас есть критерии отбора, поэтому мы отфильтровываем слабые решения. Методология для этого удивительно похожа на градиентный спуск и другие методы минимизации потерь, которые исследуют пространство поиска, чтобы уменьшить потери/максимизировать вероятность. При рассмотрении в этом контексте вы можете понять, почему советники очень эффективны.
Если вы начнете с нескольких решений-кандидатов, вы сможете опробовать большие части пространства поиска. Это особенно верно, когда мы работаем с рекомбинацией и мутацией в подходящие решения. Это не должно вызывать споров. Тем не менее, есть несколько преимуществ, которые могут быть неочевидными, и мы рассмотрим их далее.
Преимущества эволюционных алгоритмов
Диапазон
Самое большое преимущество советников заключается в их гибкости. Поскольку они не оценивают градиент в точке, им не нужны дифференцируемые функции. Это нельзя упускать из виду. Чтобы функция была дифференцируемой, она должна иметь производную в каждой точке области определения. Для этого нужна обычная функция, без изгибов, зазоров и т.д. Экспертам плевать на природу этих функций. Они могут хорошо работать с непрерывными и дискретными функциями. Таким образом, советники могут использоваться (и использовались) для оптимизации многих реальных проблем с фантастическими результатами. Я остановлюсь на этом в следующем разделе.
Эта гибкость также дает им то преимущество, что их легко интегрировать в другие методы. Вы часто будете видеть, как советники используются в одном из циклов. Статья «Эволюция на основе популяции оптимизирует цель метаобучения» будет интересна для тех, кто заинтересован. Я скоро разберу его, поэтому убедитесь, что вы на связи со мной, чтобы оставаться в курсе.
Производительность
Ассортимент ничего не значит, если он не подкреплен надежными характеристиками. А советники могут даже превзойти более дорогие методы на основе градиента. Возьмите фантастическую статью One Pixel Attack (статья скоро). Он способен обмануть Deep Neural Networks, обученные классифицировать изображения, изменив только один пиксель в изображении (посмотрите налево). Команда использует дифференциальную эволюцию для оптимизации, поскольку DE может атаковать больше типов DNN (например, сети, которые не дифференцируемы, или когда вычисление градиента затруднено). И результаты говорят сами за себя. В наборе данных Kaggle CIFAR-10 можно запускать нецелевые атаки, изменяя только один пиксель в трех общих структурах глубокой нейронной сети с вероятностью успеха 68:71%, 71:66% и 63:53%.
В блоге Google по искусственному интеллекту есть статья под названием AutoML-Zero: Evolving Code that Learning использует советники для создания алгоритмов машинного обучения. Результаты были впечатляющими с эволюционными методами, даже превосходящими обучение с подкреплением. Это весьма впечатляет. Ниже приводится цитата авторов,
Предлагаемый нами подход, называемый AutoML-Zero, начинается с пустых программ и, используя в качестве строительных блоков только базовые математические операции, применяет эволюционные методы для автоматического поиска кода для полных алгоритмов машинного обучения. Учитывая небольшие проблемы с классификацией изображений, наш метод заново открыл фундаментальные методы машинного обучения, такие как двухслойные нейронные сети с «обратным распространением, линейной регрессией и т.п., которые исследователи изобретали на протяжении многих лет. Этот результат демонстрирует вероятность автоматического обнаружения более новых алгоритмов машинного обучения для решения более сложных проблем в будущем».
Простота начальной загрузки
Эволюционные алгоритмы, как правило, довольно легко написать. Как только у вас будет достаточно знаний в предметной области, чтобы написать оценки пригодности и протоколы рекомбинации/инициализации/мутации, это станет простой реализацией. Это может быть хорошо, когда вам нужно достаточно хорошее решение (большинство применений), и у вас нет ресурсов для полного преобразования входных данных во что-то более традиционное, совместимое с ML.
Надеюсь, эта статья убедила вас в некоторых преимуществах работы с эволюционными алгоритмами в конвейерах машинного обучения. Я обнаружил, что многие люди упускают их из виду в своих пайплайнах, и это позор, потому что они могут быть такими мощными.
Если вам понравилась эта статья, посмотрите мой другой контент. Я регулярно публикую сообщения на Medium, YouTube, Twitter и Substack (все ссылки ниже). Я занимаюсь искусственным интеллектом, машинным обучением, технологиями и разработкой программного обеспечения. Если вы готовитесь к собеседованиям по программированию, ознакомьтесь с: Собеседования по кодированию стали проще.
Для разовой поддержки моей работы следуют мои Venmo и Paypal. Любая сумма приветствуется и очень помогает:
Венмо: https://account.venmo.com/u/FNU-Devansh
Paypal: paypal.me/ISeeThings
Свяжитесь со мной
Если эта статья заставила вас обратиться ко мне, то этот раздел для вас. Вы можете связаться со мной на любой из платформ или ознакомиться с любым другим моим контентом. Если вы хотите обсудить репетиторство, напишите мне в LinkedIn, IG или Twitter. Если вы хотите поддержать мою работу, используйте мою бесплатную реферальную ссылку Robinhood. Мы оба получаем бесплатный запас, и вы ничем не рискуете. Таким образом, если вы не используете его, вы просто потеряете бесплатные деньги.
Ознакомьтесь с другими моими статьями на Medium. : https://rb.gy/zn1aiu
Мой Ютуб: https://rb.gy/88iwdd
Свяжитесь со мной в LinkedIn. Подключаемся: https://rb.gy/m5ok2y
Мой Инстаграм: https://rb.gy/gmvuy9
Мой Твиттер: https://twitter.com/Machine01776819
Мой подстек: https://codinginterviewsmadesimple.substack.com/
Получите бесплатный сток на Robinhood: https://join.robinhood.com/fnud75