Введение в машинное обучение и анализ данных

Базовые принципы машинного обучения

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

Основные мысли

В результате изучения лекции слушатель будет способен:
1. Объяснить разницу между задачами с точным аналитическим решением и задачами, требующими машинного обучения.
2. Описать компоненты задачи обучения с учителем: объект, признак, ответ, выборку и модель.
3. Дать определение функции потерь и объяснить, почему для ее расчета часто используют квадратичное отклонение.
4. Интерпретировать процесс обучения модели как поиск параметров, минимизирующих ошибку на обучающей выборке.
5. Сравнить линейные и нелинейные модели с точки зрения точности и риска переобучения.
6. Обосновать необходимость проверки качества модели на данных, не участвовавших в обучении.
Показывать лекцию целиком
Краткое изложение

Введение: от точных формул к машинному обучению

Начнем с простого вопроса: как перевести часы в минуты? Ответ очевиден: нужно умножить количество часов на 60. Мы заранее знаем абсолютно точную функцию. Входной признак здесь один, а преобразование элементарно — линейное умножение.

К этому же типу относятся задачи с двумя признаками. Например, вычислить силу по второму закону Ньютона: F = m * a. У нас уже два входных признака (масса и ускорение), но ответ всё ещё получается по простой формуле. Очевидно, что в таких случаях алгоритмы машинного обучения не нужны.

Однако большинство реальных задач не таковы. Рассмотрим, например, предсказание погоды. Количество входных данных огромно: температура, давление, направление ветра, и это только для одной точки на карте, а таких точек множество. Формально поведение атмосферы описывается сложной системой уравнений — уравнениями Навье-Стокса (Navier-Stokes equations). Но они крайне сложны для решения, а в общем случае их решения до сих пор не найдены. На практике метеорологи используют упрощенные модели, которые дают результат с определенной долей ошибки.

Другой пример — анализ тональности текста (sentiment analysis). Здесь входные данные — это вообще не числа, а неструктурированный текст на естественном языке. Задача — классифицировать его как позитивный, нейтральный или негативный. Проблема в том, что компьютеры работают только с числами. Как сопоставить набор букв и смысл? Наивный подход — искать в тексте «плохие» или «хорошие» слова (например, «минус» или «классный») — не работает. Язык сложен: в нем есть двойное отрицание, сарказм и ирония. Даже люди не всегда однозначно определяют тональность, что уж говорить о машине.

Итак, мы приходим к классу задач, для которых не существует точной функции (F), преобразующей входные данные (X) в правильный ответ (Y). Вместо нее мы создаем модель (a(X)), которая аппроксимирует эту неизвестную функцию с некоторой точностью. Модель обучается на множестве примеров, для которых правильные ответы известны.

Основные термины машинного обучения

Рассмотрим пример: сеть ресторанов выбирает место для новой точки, чтобы максимизировать прибыль. Это типичная задача для машинного обучения.

Задача алгоритма — на основе обучающей выборки научиться предсказывать ответ y для нового, не встречавшегося ранее объекта x.

Чтобы компьютер мог обрабатывать объекты, их описывают набором числовых характеристик — признаков (features). Например, для местоположения ресторана признаками могут быть:

Количество признаков обозначается как d. Таким образом, каждый объект x представляется как вектор в d-мерном пространстве: x = (x¹, x², ..., xd). Каждая компонента вектора — это числовое значение конкретного признака.

Модель и функция потерь

Модель (алгоритм, a(x)) — это функция, которая по вектору признаков объекта предсказывает ответ. Например, линейная модель (linear model) выглядит так:

a(x) = ω₁·x¹ + ω₂·x² + ... + ωD·xD

Здесь ω (омега) — это веса (weights) или коэффициенты модели. Каждый вес показывает, насколько важен соответствующий признак для предсказания.

Не все модели полезны. Можно, например, всегда предсказывать ноль. Формально это модель, но ее предсказания бессмысленны. Чтобы измерять качество модели, вводится функция потерь (loss function). Она показывает, насколько сильно алгоритм ошибся.

Самая популярная функция потерь — квадратичное отклонение (squared error): (a(x) - y)². Мы предсказали прибыль a(x), а по факту получили y. Разность возводится в квадрат. Почему не просто модуль разности? По двум причинам:

  1. Математическая польза: Квадратичная функция обладает хорошими свойствами (гладкость, дифференцируемость), что важно для статистики и оптимизации. С ней удобно доказывать сходимость алгоритмов и находить точные решения.
  2. Компенсация ошибок: Без квадрата или модуля ошибки в плюс и в минус могли бы сложиться и дать ноль, создав иллюзию идеальной модели.

Чтобы оценить качество модели на всей обучающей выборке, мы усредняем потери по всем объектам. Получаем среднеквадратичную ошибку (MSE — Mean Squared Error):

MSE = (1/L) · Σ(a(xi) - yi

Чем меньше значение MSE, тем лучше модель. Функционал качества — это наш критерий оценки. Важно, чтобы он соответствовал бизнес-задаче. MSE — не единственный вариант, но очень универсальный.

Процесс обучения

Обучение (training) — это процесс поиска таких параметров модели (например, весов ω в линейной модели), при которых функционал качества на обучающей выборке достигает минимума.

Рассмотрим задачу предсказания роста по весу. У нас есть набор точек (обучающая выборка), где по оси X — вес, а по оси Y — рост. Видна зависимость: чем больше вес, тем выше рост.

Мы хотим провести через эти точки прямую линию (линейную модель), которая лучше всего их аппроксимирует. Это значит, что сумма квадратов расстояний по вертикали от каждой точки до прямой должна быть минимальной. Для линейной модели существует математически точный метод найти такие коэффициенты прямой (ω₀ и ω₁), которые дают абсолютный минимум MSE. Модель сама «подбирает» эти веса.

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

  1. Рост вычислительной сложности.
  2. Отсутствие гарантии точного решения.
  3. Риск переобучения (overfitting) — модель идеально подстраивается под обучающие данные, но теряет способность обобщать и плохо работает на новых данных.

Классификация и проблема переобучения

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

Пример: отделить апельсины от яблок. У нас есть два признака (например, масса и объем жидкости). Каждый фрукт — точка на плоскости. Задача — провести границу, которая разделит яблоки и апельсины.

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

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

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

Краткие итоги

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

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

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

От формул к данным

Некоторые задачи, например перевод часов в минуты или расчет силы по второму закону Ньютона (F=m·a), решаются с помощью точных и простых формул. Машинное обучение для них не нужно.

Но таких задач меньшинство. Предсказание погоды описывается сложнейшими уравнениями Навье-Стокса, которые не имеют общего решения. Анализ тональности текста сталкивается с проблемой сарказма и двойного отрицания. Для подобных задач не существует точной функции (F), которая бы однозначно преобразовывала входные данные (X) в правильный ответ (Y). Вместо нее мы строим модель, которая аппроксимирует эту функцию по конечному набору примеров.

Основные термины

Рассмотрим задачу выбора места для нового ресторана.

Чтобы компьютер мог обрабатывать объекты, их описывают признаками (features) — числовыми характеристиками. Для места ресторана это может быть средний возраст жителей, стоимость жилья, число конкурентов. Объект становится вектором x = (x¹, x², ..., xd), где d — число признаков.

Модель и функция потерь

Модель (a(x)) — это функция, предсказывающая ответ по вектору признаков. Пример — линейная модель: a(x) = ω₁·x¹ + ω₂·x² + ... + ωD·xD, где ω — веса (weights).

Чтобы оценить качество модели, вводят функцию потерь. Самая популярная — квадратичное отклонение: (a(x) - y)². Возведение в квадрат решает две задачи:

  1. Предотвращает компенсацию положительных и отрицательных ошибок.
  2. Дает удобную для математики гладкую функцию.

Для оценки модели на всей выборке используют среднеквадратичную ошибку (MSE):
MSE = (1/L) · Σ(a(xi) - yi)².
Чем меньше MSE, тем лучше. Выбранная метрика качества называется функционалом качества и должна соответствовать бизнес-задаче.

Обучение модели

Обучение — это поиск параметров модели (весов ω), при которых функционал качества достигает минимума.

Представьте график «вес-рост». Мы ищем прямую линию, которая минимизирует сумму квадратов вертикальных расстояний до всех точек (нашу MSE). Для линейной модели существует точный математический метод найти эти оптимальные веса. Модель сама их «подбирает».

Если линейная модель дает слишком большую ошибку, можно использовать более сложную — квадратичную. Но это ведет к росту вычислительной сложности и риску переобучения (overfitting).

Классификация и переобучение

Задача классификации — отнести объект к одному из классов. Например, отделить апельсины от яблок на плоскости двух признаков.

Линейная модель проведет прямую линию. Такое разделение может быть неидеальным и допускать ошибки. Нелинейная модель может провести кривую и классифицировать обучающую выборку без ошибок. Но это — признак переобучения. Модель «запомнила» данные, а не выявила закономерность. Новый объект, скорее всего, будет ею неверно классифицирован.

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

Выводы

1. Машинное обучение решает задачи, для которых не существует или крайне сложно найти точную аналитическую формулу.
2. Модель машинного обучения аппроксимирует неизвестную целевую функцию по конечному набору исторических примеров (обучающей выборке).
3. Объекты любой природы для обработки компьютером должны быть представлены вектором числовых признаков.
4. Качество предсказаний модели измеряется с помощью функции потерь, самой распространенной из которых является среднеквадратичная ошибка.
5. Использование квадрата разности в функции потерь имеет глубокие математические основания и упрощает процесс оптимизации.
6. Обучение алгоритма — это процесс поиска параметров модели, которые минимизируют значение функционала качества.
7. Для некоторых классов моделей (например, линейных) существуют точные алгоритмы поиска оптимальных параметров.
8. Усложнение модели повышает ее точность на обучающей выборке, но может привести к переобучению.
9. Переобученная модель идеально «запоминает» обучающие данные, но теряет способность к обобщению и плохо работает на новых примерах.
10. Простые модели могут быть менее точными на обучении, но демонстрируют более стабильное качество на новых, не виденных ранее данных.
11. Задача выбора между простой и сложной моделью — это поиск баланса между точностью и обобщающей способностью.
12. Оценка качества модели должна проводиться на отложенной выборке, которая не участвовала в процессе обучения.

Вопросы для самопроверки

1. Чем задачи, решаемые машинным обучением, отличаются от задач вроде перевода часов в минуты?
2. Что такое обучающая выборка и из каких элементов она состоит?
3. Почему компьютеру для работы с реальными объектами необходимо выделять числовые признаки?
4. Какова роль функции потерь в оценке качества модели?
5. Почему в квадратичной функции потерь используется возведение в квадрат, а не просто модуль разности?
6. Что означает процесс «обучения» модели с точки зрения математики?
7. В чем принципиальное различие между задачей регрессии и задачей классификации?
8. Что такое переобучение модели и в чем его главная опасность?
9. Почему нелинейная модель, безошибочно работающая на обучающей выборке, может показать плохой результат на новых данных?
10. Как линейная модель принимает решение о значении признаков на основе их весов?
11. Как размер и репрезентативность обучающей выборки влияют на способность модели к обобщению?
12. Почему функционал качества должен выбираться исходя из бизнес-требований задачи, а не только из соображений математического удобства?
Вернуться к учебному плану