Результаты обучения

После изучения урока вы сможете:

Проблема урока

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

Главная интуиция. Обучение — это не передача компьютеру готового ответа для каждого будущего случая. Мы задаём примеры, описание задачи и способ измерять ошибку. Алгоритм многократно изменяет внутренние параметры модели так, чтобы её ответы на примерах становились лучше. Затем мы проверяем, сохраняется ли качество на данных, которых модель раньше не видела.

1. Из чего состоят данные для машинного обучения

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

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

Пример таблицы данных для прогнозирования энергопотребленияЧетыре строки наблюдений. Первые три столбца — признаки: температура, площадь и число людей. Последний столбец — целевое значение, расход энергии. НАБОР ДАННЫХ · ЭНЕРГОПОТРЕБЛЕНИЕ ЗДАНИЯ ПРИЗНАКИ (X)ЦЕЛЬ (y) −5 °C2 400 м²85 человек1 820 кВт·ч+2 °C2 400 м²78 человек1 540 кВт·ч+8 °C2 400 м²80 человек1 310 кВт·ч+14 °C2 400 м²82 человека1 090 кВт·ч
Рисунок 1. Наблюдения, признаки и целевое значение. Каждая строка — один день наблюдения. Первые три столбца описывают ситуацию и образуют признаки X. Последний столбец содержит известный результат y, который модель будет учиться прогнозировать. Числа иллюстративны и не являются реальными нормативными или эксплуатационными данными.

У такой таблицы есть несколько важных элементов:

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

2. Что именно делает алгоритм обучения

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

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

Путь от данных к обученной модели и прогнозуОбучающие примеры поступают в алгоритм обучения вместе с выбранной моделью и критерием ошибки. Результат — обученная модель. Новые признаки поступают в модель, которая выдаёт прогноз. ОбучающиепримерыX и известные yАлгоритмобученияищет параметрыОбученнаямодельпараметры θПрогноздля новогообъекта Выбранный класс модели + функция потерьНовые входные признаки X* Этап обученияРезультат настройки
Рисунок 2. От примеров к прогнозу. Во время обучения известные ответы помогают настроить параметры. После обучения модель получает только доступные признаки нового объекта и вычисляет прогноз. Алгоритм обучения и обученная модель — не одно и то же.

Разделим четыре понятия, которые часто смешивают:

  1. Данные — примеры, на которых мы учимся.
  2. Алгоритм обучения — способ подобрать параметры.
  3. Модель — зависимость с уже настроенными параметрами.
  4. Inference (вывод, применение модели) — получение прогноза для новых входных данных без повторного обучения.

3. Как модель получает параметры

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

ŷ = w · x + b

Здесь ŷ (читается «игрек с крышкой») — прогноз модели; x — входной признак; w — вес, определяющий наклон прямой; b — смещение, сдвигающее её вверх или вниз. Параметры w и b неизвестны заранее — именно их нужно подобрать по примерам.

Для каждого примера можно сравнить прогноз ŷ с известным правильным значением y. Разность между ними — ошибка прогноза. Чтобы оценить качество сразу на множестве примеров, используют Loss function (функцию потерь) — математическое выражение, которое превращает ошибки в числовую оценку.

L(w,b) = (1/n) · Σᵢ₌₁ⁿ (ŷᵢ − yᵢ)²

Это средняя квадратичная ошибка (Mean Squared Error, MSE). n — количество примеров; ŷᵢ — прогноз для i-го примера; yᵢ — правильный ответ. Квадрат делает большие ошибки особенно заметными и не позволяет положительным и отрицательным отклонениям взаимно уничтожиться.

Optimization (оптимизация) — поиск значений параметров, при которых функция потерь становится меньше. Один из распространённых методов — Gradient Descent (градиентный спуск). Он использует градиент — направление наиболее быстрого роста функции — и двигает параметры в противоположную сторону.

w ← w − η · ∂L/∂w    ;    b ← b − η · ∂L/∂b

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

Иллюстрация функции потерь и градиентного спускаU-образная кривая показывает значение функции потерь в зависимости от параметра. Несколько точек постепенно движутся вниз по склону к области минимума. Значение потерь LЗначение параметраОбласть минимумаСхематично: шаги уменьшают потери
Рисунок 3. Идея градиентного спуска. Точки показывают последовательные значения параметра. Алгоритм изменяет параметры так, чтобы уменьшать функцию потерь. Это концептуальная иллюстрация: реальные функции потерь могут иметь много параметров, сложную геометрию и несколько локальных минимумов.

4. Пример: прогноз энергопотребления

Вернёмся к таблице. Допустим, для первого учебного эксперимента мы временно используем только наружную температуру x и энергопотребление y. Выберем линейную модель ŷ = w·x + b. Алгоритм подбирает w и b так, чтобы прогнозы на исторических примерах были как можно ближе к известным значениям.

Если после обучения модель получила условные параметры w = −42 и b = 1 610, то при температуре +5 °C прогноз составит:

ŷ = −42 · 5 + 1 610 = 1 400 кВт·ч

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

Здесь особенно важно различать prediction (прогноз) и explanation (объяснение причины). Модель может использовать устойчивую статистическую связь для прогноза, но сама по себе эта связь не доказывает причинное влияние признака. Причинные вопросы потребуют отдельного инструментария.

5. Разные задачи — разные способы обучения

5.1 Обучение с учителем (Supervised Learning)

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

5.2 Обучение без учителя (Unsupervised Learning)

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

5.3 Самообучение и обучение с самоконтролем

Self-supervised learning (обучение с самоконтролем) — подход, в котором обучающий сигнал формируется из самих данных по специально заданной задаче. Например, модель учится предсказывать скрытый фрагмент текста или восстановить часть изображения. Это один из важных способов предварительного обучения современных моделей, но не единственный режим их последующего применения.

6. Когда модель действительно научилась: обобщение

Главная цель обучения — не идеально воспроизвести ответы из обучающей таблицы, а научиться работать с новыми примерами из той же целевой области применения.

Generalization (обобщение) — способность модели сохранять приемлемое качество на новых данных, которые не использовались для подбора её параметров. Если модель хорошо отвечает только на уже показанные примеры, её практическая ценность ограничена.

Сравнение недообучения, разумного обучения и переобученияТри условных графика: слишком простая прямая не улавливает структуру данных; плавная кривая отражает общий тренд; извилистая кривая проходит почти через все точки и запоминает шум. НедообучениеУмеренная сложностьПереобучение Слишком простая зависимостьУлавливает общий сигналПодстраивается под шум
Рисунок 4. Три режима сложности модели. Недообученная модель не улавливает закономерность. Модель подходящей сложности описывает общий сигнал. Переобученная модель подстраивается под случайные особенности обучающих примеров. Схема условная: реальное качество подтверждают только корректные эксперименты на отложенных данных.

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

Для проверки обобщения данные обычно разделяют на части. Обучающая выборка используется для настройки параметров; валидационная — для выбора конфигурации и настройки гиперпараметров; тестовая — для итоговой независимой оценки выбранного решения. Подробно разбирать метрики, стратегии разделения и корректный тестовый протокол будем в 1.2.4 · 1.2.6 · 1.4.3 · 1.5.1–1.5.7.

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

7. Что влияет на результат обучения

8. Практический эксперимент без программирования

Эксперимент: сможет ли простое правило прогнозировать расход?

Исследовательский вопрос: как изменится прогноз энергопотребления, если учитывать только температуру, а затем добавить число людей?

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

Что должно получиться: вы увидите, что модель зависит не только от алгоритма, но и от того, какие сведения представлены в данных. Добавление признака может помочь, если он несёт полезную информацию, но само по себе увеличение числа столбцов не гарантирует улучшения.

9. Практический эксперимент с Python

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

Требуется Python 3.10+ и библиотека NumPy. Установка: python -m pip install numpy.

import numpy as np

# Температура и условное энергопотребление
X = np.array([-5, 2, 8, 14], dtype=float)
y = np.array([1820, 1540, 1310, 1090], dtype=float)

# Начальные параметры модели
w = 0.0
b = float(y.mean())  # стартуем с среднего целевого значения
learning_rate = 0.001
n = len(X)

for step in range(5000):
    predictions = w * X + b
    errors = predictions - y

    # Градиенты средней квадратичной ошибки
    dw = (2 / n) * np.sum(errors * X)
    db = (2 / n) * np.sum(errors)

    # Обновление параметров
    w = w - learning_rate * dw
    b = b - learning_rate * db

print("w =", round(w, 2))
print("b =", round(b, 2))
print("Прогноз при +5 °C =", round(w * 5 + b, 1))

Разбор кода

Обратите внимание: мы выбрали скорость обучения и число шагов вручную. В реальной работе эти настройки проверяют, масштабируют признаки, оценивают устойчивость результата и сравнивают модель с базовым прогнозом. 1.4.1 · 1.4.2 · 1.4.5 · 3.1.6 разберёт, что такое модель и её параметры подробнее; 1.2.4 · 1.2.6 · 1.4.3 · 1.5.1–1.5.7 — как оценить результат без самообмана.

10. Границы и частые заблуждения

11. Словарь терминов

Dataset — набор данных
Организованная совокупность примеров для анализа и обучения.
Observation / Sample — наблюдение / пример
Один объект или случай в наборе данных.
Feature — признак
Характеристика объекта, используемая как вход модели.
Target — целевая переменная
Значение, которое требуется прогнозировать.
Label — метка
Известный правильный ответ в задаче обучения с учителем.
Learning algorithm — алгоритм обучения
Процедура настройки параметров модели по данным.
Model — модель
Настроенная зависимость, преобразующая входы в прогноз.
Loss function — функция потерь
Числовая мера ошибки, которую алгоритм стремится уменьшить.
Optimization — оптимизация
Поиск параметров, улучшающих заданный критерий.
Gradient descent — градиентный спуск
Метод обновления параметров в направлении уменьшения функции потерь.
Inference — вывод / применение модели
Получение результата обученной моделью на новых входных данных.
Generalization — обобщение
Способность сохранять качество на новых данных.
Overfitting — переобучение
Чрезмерная подстройка под обучающие примеры и шум.
Data leakage — утечка данных
Попадание в обучение информации, недоступной или недопустимой в реальном прогнозе.

12. Проверка понимания

Вопрос 1

В таблице есть температура, площадь здания и энергопотребление. Что является целевой переменной, если мы хотим прогнозировать расход?

  1. Температура
  2. Площадь
  3. Энергопотребление
  4. Номер строки

Ответ: C. Цель — то значение, которое модель должна предсказать. Температура и площадь в этой постановке являются признаками.

Вопрос 2

Что делает алгоритм обучения?

  1. Всегда переписывает исходные данные
  2. Подбирает параметры модели по выбранному критерию
  3. Гарантирует отсутствие ошибок
  4. Удаляет необходимость проверки

Ответ: B. Алгоритм использует данные и критерий обучения для настройки модели.

Вопрос 3

Модель почти безошибочна на обучающих данных, но плохо работает на новых. Как называется типичная проблема?

  1. Переобучение
  2. Нормализация
  3. Кластеризация
  4. Инференс

Ответ: A. Модель могла запомнить особенности обучающих примеров, не научившись обобщать.

Вопрос 4

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

  1. Потому что это число
  2. Потому что это может быть утечкой целевой информации
  3. Потому что признаки должны быть только текстовыми
  4. Потому что модели не работают с датами

Ответ: B. В момент реального прогноза итоговое значение ещё неизвестно. Использование будущей информации делает оценку нечестной.

13. Итоги и следующий шаг

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

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

Следующая планета 1.4.1 · 1.4.2 · 1.4.5 · 3.1.6 — «Что такое модель машинного обучения». Мы подробнее разберём устройство модели, параметры и гиперпараметры, архитектуру, обучение и инференс, а также различие между моделью, алгоритмом и программной системой.

Источники для дальнейшего изучения