С каждым днём машины становятся умнее. Когда вы заходите на YouTube, Amazon, или Facebook, то для вас автоматически подбираются рекомендованные видео, товары и посты. Машины могут генерировать изображение человеческого лица, идентифицировать рак по фотографии, понимать речь и побеждать нас в играх. Как машины стали такими умными, как они учатся?

Машинное обучение — это основная ветвь развития искусственного интеллекта, которая позволяет машинам учиться на данных, находить закономерности и принимать решения. Человек учится через свои чувства, а машины учатся на данных.

3 основных типа машинного обучения

  1. обучение с учителем (supervised learning);
  2. обучение без учителя, или самообучение (unsupervised learning);
  3. обучение с подкреплением (reinforcement learning)

 

Обучение с учителем

Такой тип обучения подразумевает наличие учителя, который знает все ответы, но не может объяснить их. Другими словами, этот учитель может тестировать, но не может учить. Допустим, машина учится отличать котов от собак на изображениях. Сначала машина случайным образом пытается угадать, собака это или кошка. После этого, учитель указывает машине какой ответ правильный, а какой ошибочный, но при этом не объясняя почему.

На практике, роль учителя выполняет не человек, на проверку тысяч ответов потребуется слишком много времени. Вместо этого машину учат на данных с уже готовыми ответами. Машине предлагают картинку с кошкой или собакой, не показывая правильный ответ. После попытки угадать, машина сама сравнивает свой ответ с правильным. С каждым разом, получая результат ответов (правильно или неправильно), немного меняется модель принятия решений. После большого количества примеров, показанных машине, она начинает видеть закономерности, по которым можно отличить собаку от кошки. После тренировки, машина готова к испытаниям в «реальном мире», без заготовленных ответов. Покажите обученной машине фотографию своей собаки, она ответит вам «да, хороший пёсик».

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

 

Обучение без учителя

Что если есть данные, но нет правильных ответов? Может ли машина учится без учителя? Как вы уже догадались из заголовка, ответ: да, может! При таком типе обучения, машина учится на немаркированных данных (без ответов). Его используют для поиска базовых шаблонов и структур в данных. При этом, машине даже не нужно понимать данные, с которыми она работает.

Секундочку. Как машина может изучать что-то, даже не понимая, что это?

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

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

 

Обучение с подкреплением

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

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

 

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

Наиболее впечатляющий результат обучения с подкреплением, показала машина AlphaGo в 2016 году, победив в настольной игре Go чемпиона мира, со счётом 4:1. Ещё за несколько месяцев до состязания, считалось, что понадобятся десятилетия, прежде чем компьютер победит профессионала в Go, не говоря уже о чемпионе мира. В 1997 году компьютер Deep Blue победил чемпиона мира по шахматам, но это не считалось интеллектуальной победой. Deep Blue просто перебирал все возможные игровые позиции, и сделал это лучше, чем человек. Игра в Go намного сложнее. В среднем партия в шахматы длится 40 ходов, а в Go, обычно в четыре раза дольше — около 160 ходов. Приведу другое сравнение, количество атомов в известной нам вселенной равно 10^80, а количество возможных партий в Го 10^720. Для игры в Go метод brute-force непригоден, из-за её невероятной сложности. Для AlphaGo идеальным выбором стало обучение с подкреплением ― эффективный метод для взаимодействия со сложным окружением.

 

Выводы

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

Перевод статьи Liam Hinzman : How Machines Learn

 

Предыдущая статьяКонтейнеры это просто. Контейнерные технологии для начинающих
Следующая статьяЛучшие языки программирования для изучения в 2018