ИЗ АРХИВОВ ЖУРНАЛА ПРАГПУБ, СЕНТЯБРЬ 2018

Генетические алгоритмы: аспект машинного обучения

Автор Фрэнсис Буонтемпо

📚 Свяжитесь с нами. Хотите узнать, что нового на книжной полке Pragmatic? "Подпишитесь на нашу рассылку". Вы будете первыми, кто узнает о выступлениях авторов, о книгах в бета-версии, новых книгах в печати и промокодах, дающих вам скидки до 40 процентов.

В этой статье, адаптированной из ее книги из The Pragmatic Bookshelf, Фрэнсис представляет один подход к машинному обучению.

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

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

Для некоторых задач вы можете проработать варианты или использовать математику, чтобы найти идеальное решение. Для одной облигации с фиксированной ставкой в ​​портфеле математический расчет ее будущей стоимости несложен. С одним классом, одним учителем и одной комнатой есть только одно возможное расписание. Для одинокого гостя на свадьбе план рассадки очевиден.

Для двух или трех гостей у вас есть больше возможностей, но вы можете попробовать каждого и решить, что делать. Если у вас будет 25 гостей, есть 15 511 210 043 330 985 984 000 000 возможных договоренностей. Испытание каждого из них, известного как грубая сила, против ваших ограничений займет слишком много времени. Вы можете заранее отказаться от нескольких комбинаций, но у вас все равно останется слишком много попыток. Все, что вам нужно, это список номеров мест на 25 человек. Вы можете попробовать несколько наугад, и вам может повезти, а может и нет. В идеале вам нужен способ как можно быстрее опробовать достаточно возможных вариантов, чтобы повысить шансы найти достаточно хороший план рассадки - или расписание - или инвестиции.

Один из методов машинного обучения или эволюционных вычислений, называемый генетическим алгоритмом (ГА), идеально подходит для подобных задач. GA находит решение фиксированной длины, например массив из 25 номеров мест для гостей, используя ваши критерии, чтобы решить, какие из них лучше. Алгоритм начинается со случайно сгенерированных решений, формирующих так называемую начальную популяцию, и постепенно со временем оттачивает лучшие решения. Он имитирует дарвиновскую эволюцию, используя совокупность решений и критерии пригодности для отражения естественного отбора. Время от времени он также вносит небольшие изменения, имитирующие генетические мутации.

Алгоритм со временем создает новые популяции. Он использует ваши критерии, чтобы выбрать лучшие решения, и использует их для создания или создания новых решений. Новые решения создаются путем объединения исходных решений. Для инвестиций в облигации, собственность, иностранную валюту и акции объедините облигации и имущество из одной установки с иностранной валютой и акциями из другой, и у вас будет новое решение, которое можно опробовать. Для планов рассадки поменяйте местами половину одного стола с половиной другого или поменяйте местами части двух планов рассадки. Вы можете использовать одно и то же сиденье дважды, поэтому вам нужно немного отремонтировать. Есть много способов объединить массивы. ГА также время от времени видоизменяет элементы решения, например, меняет местами два человека. Это может усугубить ситуацию - разделение пары - нехорошо, - но может и улучшить положение. Тем не менее, это сохраняет разнообразие в решениях, тем самым исследуя несколько возможных комбинаций.

Фрэнсис Буонтемпо делится своими знаниями о генетических алгоритмах в своей книге с The Pragmatic Bookshelf Генетические алгоритмы и машинное обучение для программистов:



О Фрэнсис

Фрэнсис Буонтемпо - редактор журнала ACCU’s Overload. Она публиковала статьи и выступала с докладами, посвященными технологиям и машинному обучению. Имеет докторскую степень. В области интеллектуального анализа данных она занимается программированием профессионально с 1990-х годов. За свою карьеру программиста она выступала за модульное тестирование, наставляла новых разработчиков, удалила довольно много кода и исправила множество ошибок.