Машинное обучение сейчас в моде. Но что именно?
Машинное обучение станет основой и основой каждой успешной крупной победы на 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), который ведет Кэти. Мэлоун и Себастьян Трун