Машинное обучение (МО) или machine learning (ML) — область, занимающая всё большее место в нашей жизни. Его применение невероятно широко: от анализа дорожных пробок до решения сложных автомобильных проблем. Всё больше задач делегируется обучаемым машинам, и часто мы даже не представляем, как работают приложения, основанные на методах МО.
Уровни доступности машинного обучения
Машинное обучение можно условно разделить на три уровня доступности:
- Первый уровень: доступен только технологическим гигантам, таким как Google или IBM.
- Второй уровень: доступен студентам с определённым багажом знаний.
- Третий уровень: доступен практически всем, даже людям без специальной подготовки.
В настоящее время МО находится на стыке второго и третьего уровней, что обеспечивает стремительное развитие данной технологии.
Типы задач машинного обучения
Большую часть задач МО можно разделить на:
- Обучение с учителем: включает вмешательство человека в обработку данных. Есть данные для предсказания и гипотезы.
- Обучение без учителя: есть только данные, свойства которых нужно найти.
Обучение с учителем
Рассмотрим пример обучения с учителем: у нас есть данные о 10 000 квартир в Москве (площадь, количество комнат, этаж, район, наличие парковки, расстояние до метро и т.д.), а также их стоимость. Задача — построить модель, которая будет предсказывать стоимость квартиры на основе этих признаков. Это задача регрессии, где ответ — вещественное число (стоимость).
Примеры задач регрессии:
- Предсказание стоимости акций.
- Предсказание прибыли магазина.
- Предсказание качества вина.
Обучение с учителем также используется в задачах классификации, где ответ — категориальный (например, наличие рака у пациента, спам или не спам). На графиках это выглядит как разделение объектов прямой или кривой. Некоторые объекты могут быть классифицированы неправильно — это нормально.
Обучение без учителя
В обучении без учителя правильные ответы неизвестны. Например, у нас есть данные о росте и весе людей, и нужно сгруппировать их по трём категориям для выпуска рубашек подходящего размера. Это задача кластеризации.
Другой пример — данные, описанные 100 признаками. Для визуализации нужно уменьшить количество признаков до 2-3. Это задача уменьшения размерности.
Классы задач машинного обучения
Обобщая, можно выделить следующие категории задач МО:
- Регрессия: предсказание вещественного ответа (например, стоимость квартиры, прибыль).
- Классификация: предсказание категориального ответа (например, наличие рака, спам).
- Кластеризация: разбиение данных на похожие категории (например, сегментация клиентов, группировка космических объектов).
- Уменьшение размерности: уменьшение количества признаков для визуализации или сжатия данных.
- Выявление аномалий: выявление отклонений от нормы при ограниченном количестве примеров аномалий (например, мошеннические транзакции).
Нейронные сети
Нейронные сети (НС) — один из алгоритмов МО. НС — это сеть нейронов, где каждый нейрон — математическая модель реального нейрона. Популярность НС колебалась, но сейчас они широко применяются благодаря росту вычислительных мощностей. С помощью НС можно решать задачи регрессии, классификации и строить сложные модели. Андрей Николаевич Колмогоров доказал, что НС может аппроксимировать любую поверхность с любой точностью. Нейрон — это математическая функция (например, сигмоидальная). В НС нет ничего магического, и опасения о сценариях типа «Терминатор» обычно необоснованны.
Пример: распознавание рукописных цифр. Изображение 20×20 пикселей (400 нейронов в первом слое), выход — одна из цифр от 0 до 9 (10 нейронов в последнем слое). Между слоями — скрытые слои. Задача — подобрать веса связей между нейронами, чтобы на выходе получить вероятности каждой цифры. Это просто вычисление математической функции, где аргументы — другие математические функции.
Примеры применения МО в реальной жизни
- Политические кампании: анализ данных для оптимизации выступлений кандидата.
- Реклама: ретаргетинг и персонализированная реклама.
Рекомендации по обучению
Для глубокого изучения МО необходимы знания математического анализа, линейной алгебры и методов оптимизации. Полезно знать основы программирования (Python или MATLAB).
Для начального изучения подойдёт курс Эндрю Нга по машинному обучению (ссылка доступна в источнике). Он практико-ориентирован, и обширные математические знания не обязательны.
Для более глубокого изучения, с математическими тонкостями, можно пройти платные курсы (ссылка доступна в источнике). Также существует множество бесплатных книг, видео и курсов на русском языке.
Машинное обучение — динамично развивающаяся область с огромным потенциалом. Существует множество ресурсов для его изучения, начиная от простых курсов для новичков до продвинутых специализаций для профессионалов.