Что такое машинное обучение?

Машинное обучение и искусственный интеллект — это модные словечки, которые часто используются, и они часто вызывают ужасающие образы роботов, захвативших Землю, когда они стали умнее своих программистов-людей. Но что они на самом деле означают? В основополагающей статье 1959 года Артур Сэмюэл описал эту область следующим образом:

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

Давайте немного распакуем это. Традиционные компьютерные программы очень хорошо выполняют явные инструкции. Если вы скажете роботу переместиться на 50 футов вперед, повернуться на 90 градусов вправо, а затем продвинуться еще на 50 футов, робот будет слушать, без проблем. Компьютерные программы также хорошо следуют условным командам или операторам if-then-else. Например: еслиперед вами стена, то поверните на 90 градусов влево. В противном случае продолжайте идти вперед. Опять же, направления довольно явные.

Но допустим, вы хотите написать программу, которая могла бы определить, является ли фрукт яблоком или апельсином. Обычно вам нужно найти несколько явных утверждений if-then-else, которые помогут вам ответить на этот вопрос. Но для этой проблемы поиск полезных операторов if потребовал бы большой работы. Возможно, вам захочется проверить длину стебля, но как вы объясните яблоко, у которого нет стебля? Вы можете сказать: «Если оно красное, то это яблоко», но как насчет зеленых яблок или снимков, сделанных при другом освещении? Вам понадобится тонна различных правил, и даже тогда вы не сможете охватить все различные фрукты, которые вы можете бросить в программу.

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

Это обучение бывает разных видов, но две из самых широких категорий — это «Обучение с учителем» и «Обучение без учителя». Я начну с того, как каждый подход применим к яблокам и апельсинам, а затем дам более общее объяснение.

Контролируемое обучение

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

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

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

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

При неконтролируемом обучении компьютер принимает данные без меток, без «правильного ответа». Таким образом, цель программы — найти некоторую структуру данных. Есть ли большое сходство между яблоками, между апельсинами? Один из методов известен как алгоритм кластеризации. Он представляет собой способ сгруппировать каждое изображение с теми, на которые оно больше всего похоже.

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

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

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