Машинное обучение для чайников: просто о сложном

Машинное обучение (МО) или machine learning (ML) — область, занимающая всё большее место в нашей жизни. Его применение невероятно широко: от анализа дорожных пробок до решения сложных автомобильных проблем. Всё больше задач делегируется обучаемым машинам, и часто мы даже не представляем, как работают приложения, основанные на методах МО.

Уровни доступности машинного обучения

Машинное обучение можно условно разделить на три уровня доступности:

  1. Первый уровень: доступен только технологическим гигантам, таким как Google или IBM.
  2. Второй уровень: доступен студентам с определённым багажом знаний.
  3. Третий уровень: доступен практически всем, даже людям без специальной подготовки.

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

Типы задач машинного обучения

Большую часть задач МО можно разделить на:

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

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

Рассмотрим пример обучения с учителем: у нас есть данные о 10 000 квартир в Москве (площадь, количество комнат, этаж, район, наличие парковки, расстояние до метро и т.д.), а также их стоимость. Задача — построить модель, которая будет предсказывать стоимость квартиры на основе этих признаков. Это задача регрессии, где ответ — вещественное число (стоимость).

Примеры задач регрессии:

  • Предсказание стоимости акций.
  • Предсказание прибыли магазина.
  • Предсказание качества вина.

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

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

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

Другой пример — данные, описанные 100 признаками. Для визуализации нужно уменьшить количество признаков до 2-3. Это задача уменьшения размерности.

Классы задач машинного обучения

Обобщая, можно выделить следующие категории задач МО:

  1. Регрессия: предсказание вещественного ответа (например, стоимость квартиры, прибыль).
  2. Классификация: предсказание категориального ответа (например, наличие рака, спам).
  3. Кластеризация: разбиение данных на похожие категории (например, сегментация клиентов, группировка космических объектов).
  4. Уменьшение размерности: уменьшение количества признаков для визуализации или сжатия данных.
  5. Выявление аномалий: выявление отклонений от нормы при ограниченном количестве примеров аномалий (например, мошеннические транзакции).

Нейронные сети

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

Пример: распознавание рукописных цифр. Изображение 20×20 пикселей (400 нейронов в первом слое), выход — одна из цифр от 0 до 9 (10 нейронов в последнем слое). Между слоями — скрытые слои. Задача — подобрать веса связей между нейронами, чтобы на выходе получить вероятности каждой цифры. Это просто вычисление математической функции, где аргументы — другие математические функции.

Примеры применения МО в реальной жизни

  • Политические кампании: анализ данных для оптимизации выступлений кандидата.
  • Реклама: ретаргетинг и персонализированная реклама.

Рекомендации по обучению

Для глубокого изучения МО необходимы знания математического анализа, линейной алгебры и методов оптимизации. Полезно знать основы программирования (Python или MATLAB).

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

Для более глубокого изучения, с математическими тонкостями, можно пройти платные курсы (ссылка доступна в источнике). Также существует множество бесплатных книг, видео и курсов на русском языке.

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

Что будем искать? Например,программа