Машинное обучение сейчас в моде. Но что именно?

Машинное обучение станет основой и основой каждой успешной крупной победы на IPO через 5 лет. Так сказал председатель Google Эрик Шмидт на конференции по облачным вычислениям в прошлом месяце, описывая перспективы машинного обучения. И он не одинок в своем волнении. Крупные технологические компании от Amazon до Uber делают большие ставки на машинное обучение; работодатели продолжают искать специалистов в данной области; и некоторые люди даже предсказывают, что он и связанные с ним технологии искусственного интеллекта возвестят второй век машин.

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

Большая часть этого поста основана на курсе Эндрю Нг из Стэнфорда Машинное обучение.

Обзор

Машинное обучение определяется Артуром Сэмюэлем, одним из пионеров в этой области, следующим образом:

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

Центральные вопросы машинного обучения, заданные Томом Митчеллом из Карнеги-Меллона, заключаются в следующем: Как мы можем создавать компьютерные системы, которые автоматически улучшаются с опытом, и каковы фундаментальные законы, управляющие всеми процессами обучения?

Существует три основных типа проблем машинного обучения:

  • Контролируемое обучение
  • Неконтролируемое обучение
  • Обучение с подкреплением (не обсуждается в этом посте)

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

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

Лучше всего это проиллюстрировать на примере: прогноз цен на жилье.

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

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

Еще одним каноническим типом задачи обучения с учителем является задача классификации. В задаче классификации нас просят классифицировать входные данные по заданному набору категорий на основе обучающего набора правильно классифицированных данных.

Чтобы проиллюстрировать другой пример, представьте, что у вас есть набор данных о размерах опухоли и о том, была ли опухоль доброкачественной или злокачественной. Является ли опухоль размером 2 см доброкачественной или злокачественной? Модель классификации может помочь нам ответить на этот вопрос.

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

Другие примеры проблем с классификацией, включая фильтрацию спама в электронной почте (классифицировать электронную почту как спам или нет?), таргетинг рекламы (отвечает пользователь или нет?) и выдачу кредита (будет ли заявитель не выполнять обязательства или нет?).

Неконтролируемое обучение

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

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

Примером применения алгоритма кластеризации являются Новости Google, которые анализируют новостные статьи и объединяют их в «естественные» группы.

Все это здорово… но как я могу использовать машинное обучение в своих приложениях?

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

Примером мощного и простого API, основанного на обученной модели машинного обучения, является Google Cloud Vision API. Этот инструмент, доступный в Google Cloud, позволяет разработчикам интерпретировать содержимое изображения с помощью простого в использовании REST API. API классифицирует эти изображения по тысячам категорий (например, зонт, Эмпайр Стейт Билдинг), обнаруживает отдельные объекты и лица на изображениях, а также находит и считывает печатные слова, содержащиеся на изображениях. Модель, на которой основан Google Cloud Vision API, аналогична модели, лежащей в основе Google Фото, и может обеспечить удивительный пользовательский опыт.

Если вы хотите найти закономерности в собственных данных с помощью технологии машинного обучения, Amazon Web Services (AWS) предлагает простой в использовании сервис под названием Машинное обучение Amazon. Этот сервис предоставляет инструменты визуализации и руководства, которые проведут вас через процесс создания моделей машинного обучения без необходимости изучения сложных алгоритмов машинного обучения. Когда ваши модели готовы, Amazon Machine Learning упрощает получение прогнозов для вашего приложения с помощью простых API. Google и Microsoft также предлагают аналогичные услуги.

Хотите узнать больше о машинном обучении?

Существует бесчисленное множество онлайн-ресурсов по машинному обучению. Для начала я настоятельно рекомендую изучить некоторые из отличных онлайн-курсов по этой теме, такие как Машинное обучение (Coursera) Эндрю Нг или курс Введение в машинное обучение (Udacity), который ведет Кэти. Мэлоун и Себастьян Трун