Результаты обучения
После урока вы сможете:
- объяснить, что такое модель машинного обучения и чем она отличается от алгоритма обучения;
- различать данные, архитектуру, параметры и гиперпараметры;
- прочитать простую математическую запись модели и объяснить смысл её параметров;
- различать этапы training и inference;
- объяснить, что сохраняют в файле модели и почему одного файла часто недостаточно для воспроизводимости;
- узнавать линейные модели, деревья решений и нейронные сети на концептуальном уровне;
- объяснить границу модели внутри полной AI-системы.
1. Модель, алгоритм и данные — три разные вещи
В предыдущем уроке мы говорили, что алгоритм обучения анализирует примеры и подбирает параметры. Теперь важно развести три понятия, которые часто смешивают даже в технических обсуждениях.
- Данные — примеры, на которых система учится: наблюдения, признаки и, если задача обучается с учителем, целевые значения.
- Алгоритм обучения — процедура, которая по данным и заданным настройкам находит подходящие параметры или структуру модели.
- Модель — полученная математическая или вычислительная конструкция с конкретными параметрами, которую можно применять к новым входам.
Аналогия: данные похожи на набор учебных задач с ответами, алгоритм обучения — на метод решения и настройки, а модель — на сформированное правило или набор коэффициентов, позволяющий решать новые задачи. Аналогия ограничена: реальные модели могут быть очень сложными и не сводятся к одному человеческому правилу.
2. Из чего состоит модель
Для описания модели полезно различать архитектуру и параметры. Архитектура задаёт форму вычисления: какие операции выполняются, как связаны блоки и как вход преобразуется в выход. Параметры — числовые значения внутри этой структуры, которые настраиваются в ходе обучения.
2.1. Пример: линейная модель
Представим задачу прогноза энергопотребления здания по наружной температуре. Для простоты используем один признак — температуру (x). Линейная модель задаёт прогноз ŷ так:
- x — входной признак, например температура в градусах Цельсия;
- ŷ — прогноз модели;
- w — вес (weight), определяющий наклон прямой и вклад признака;
- b — смещение (bias), сдвигающее прогноз вверх или вниз.
Если (w=-35), то в этой учебной модели увеличение температуры на один градус связано с уменьшением прогноза примерно на 35 условных единиц при прочих равных. Это описание найденной зависимости, а не доказательство причинности. Реальное энергопотребление зависит от площади, режима работы, людей, оборудования, отопления и многих других факторов.
2.2. Параметры и гиперпараметры
Параметры (parameters) — внутренние значения, которые алгоритм настраивает по обучающим данным. В линейной модели это w и b; в нейросети — веса и смещения множества нейронных связей.
Гиперпараметры (hyperparameters) — настройки, которые задают до обучения или выбирают отдельной процедурой. Они управляют процессом обучения или сложностью модели, но обычно не являются коэффициентами, которые оптимизируются тем же шагом на каждой итерации.
Например, learning rate (скорость обучения) определяет размер шага при обновлении параметров оптимизатором. Слишком большой шаг может перескакивать через хорошее решение; слишком маленький — замедлять обучение. Глубина дерева решений ограничивает количество последовательных разбиений и тем самым влияет на сложность дерева.
| Характеристика | Параметр | Гиперпараметр |
|---|---|---|
| Кто задаёт? | Обычно алгоритм обучения | Исследователь, конфигурация или процедура подбора |
| Пример | Вес w, смещение b | Learning rate, max_depth |
| Роль | Определяет конкретное отображение входа в выход | Влияет на процедуру обучения или класс допустимых моделей |
| Когда меняется? | В ходе оптимизации | Между запусками или по отдельному алгоритму подбора |
Это полезное общее правило, но не абсолютная онтология: в разных библиотеках и алгоритмах терминология может немного отличаться. Например, некоторые методы автоматически подбирают гиперпараметры во внешнем цикле оптимизации.
3. Архитектура: почему модели бывают разными
Архитектура отвечает на вопрос: каким способом вычисляется выход? Даже если две модели получают одинаковые входные признаки и решают одну задачу, их внутреннее устройство может существенно отличаться.
3.1. Линейная модель
Линейная регрессия вычисляет взвешенную сумму признаков. Она проста, сравнительно легко интерпретируется и часто служит базовой моделью. Но если зависимость сложная и нелинейная, одной прямой может быть недостаточно.
3.2. Дерево решений
Дерево последовательно задаёт вопросы о признаках: например, «температура ниже 5 °C?», затем «число людей больше 20?». Ветвление приводит к листу, где хранится прогноз или класс. Дерево можно визуализировать как набор условий, но при большой глубине оно становится громоздким и склонным подстраиваться под шум.
3.3. Нейронная сеть
Нейронная сеть состоит из вычислительных блоков (нейронов или операций), объединённых в слои. Каждый слой преобразует представление данных. Во время обучения настраиваются веса и смещения. Сети могут приближать сложные зависимости, однако их внутреннее устройство обычно труднее анализировать напрямую.
| Семейство | Как устроено | Сильная сторона | Ограничение |
|---|---|---|---|
| Линейные модели | Взвешенная сумма признаков | Простота и прозрачность | Ограниченная форма зависимости |
| Деревья решений | Последовательность условий | Наглядные правила | Глубокие деревья могут переобучаться |
| Нейронные сети | Слои параметризованных преобразований | Сложные нелинейные зависимости | Высокие требования к данным и вычислениям, сложность интерпретации |
4. Обучение и применение — разные этапы
Один из важнейших терминов в машинном обучении — Training (обучение). Это этап, на котором алгоритм использует обучающие данные, функцию потерь и оптимизатор, чтобы найти параметры модели. После обучения модель обычно фиксируют и используют для новых запросов.
Inference (инференс, применение обученной модели) — вычисление результата для новых входных данных с использованием уже найденных параметров. В обычном режиме инференса модель не переобучается автоматически на каждом запросе.
4.1. Что сохраняют после обучения
Часто сохраняют не только веса, но и конфигурацию архитектуры, сведения о preprocessing, словари категорий, нормализаторы, токенизаторы, версии библиотек и метаданные эксперимента. Если забыть нормализатор или порядок признаков, модель может получить на вход данные в ином формате и выдать бессмысленный результат.
Checkpoint — контрольная точка, сохранённое состояние модели или обучения. Serialization — сериализация, то есть преобразование состояния объекта в формат, который можно сохранить и позже восстановить. Конкретный формат зависит от библиотеки и требований безопасности.
5. Модель — не вся AI-система
В реальном продукте модель находится внутри более широкой системы. До неё есть сбор и проверка данных, преобразование признаков и маршрутизация запросов. После неё могут быть постобработка, бизнес-правила, интерфейс, журналирование, мониторинг и механизм передачи решения человеку.
Например, модель обучалась на температуре в градусах Цельсия, а приложение передало значение в Фаренгейтах. Математически модель отработает правильно, но прогноз окажется неверным из-за ошибки интеграции. Другой пример — корректный прогноз после модели неверно преобразован в категорию или показан пользователю без единиц измерения.
6. Практический разбор: три модели для одной задачи
Пусть требуется оценить суточное энергопотребление здания по наружной температуре, числу людей и времени суток. Рассмотрим три варианта.
- Линейная регрессия. Получает числовые признаки и вычисляет взвешенную сумму. Её параметры — коэффициенты признаков и смещение.
- Дерево решений. Делит пространство признаков на области с помощью последовательных условий. Гиперпараметр max_depth ограничивает глубину дерева.
- Небольшая нейронная сеть. Преобразует входной вектор через несколько слоёв. Параметрами выступают веса и смещения, а гиперпараметрами — например, число слоёв, ширина слоёв и learning rate.
Все три модели могут решать одну задачу, но будут по-разному представлять закономерности. Нельзя объявить одну из них лучшей только по названию или сложности. Нужны корректное разделение данных, выбранная метрика, сравнение с базовым решением и проверка на новых примерах — этим займёмся в 1.2.4 · 1.2.6 · 1.4.3 · 1.5.1–1.5.7.
7. Эксперимент: меняем гиперпараметр дерева
Исследовательский вопрос
Как максимальная глубина дерева решений влияет на сложность модели и её способность обобщать?
- Возьмите один и тот же набор данных и зафиксируйте способ разделения на обучающую и проверочную части.
- Обучите дерево с max_depth = 1, затем 2, 3 и 5.
- Для каждого варианта запишите количество уровней и число листьев.
- Сравните, как меняются ошибки на обучающей и проверочной выборках.
- Не меняйте одновременно глубину, данные и метрику — иначе будет трудно понять причину эффекта.
Ожидаемое наблюдение: увеличение глубины обычно позволяет точнее подстроиться под обучающие примеры. Но слишком глубокое дерево может запоминать шум и хуже работать на новых данных. Это одна из причин, почему сложность модели нужно контролировать.
8. Минимальный эксперимент на Python
Ниже пример показывает, как создаётся линейная модель, как её обучают и как применяют. Код использует библиотеку scikit-learn. Он демонстрационный: реальные данные энергопотребления здесь не используются.
import numpy as np
from sklearn.linear_model import LinearRegression
# Температура (один признак) и условное энергопотребление
X = np.array([[-10], [-5], [0], [5], [10], [15]])
y = np.array([2100, 1950, 1780, 1600, 1450, 1280])
# Создаём архитектуру модели и обучаем параметры
model = LinearRegression()
model.fit(X, y)
# Получаем параметры обученной модели
print("Вес:", model.coef_[0])
print("Смещение:", model.intercept_)
# Inference: прогноз для нового значения температуры
new_temperature = np.array([[7]])
prediction = model.predict(new_temperature)
print("Прогноз:", prediction[0])Разбор кода.
importподключает библиотеку и нужный класс. NumPy используется для массивов, а LinearRegression — для линейной регрессии.np.arrayсоздаёт массивы. В scikit-learn вход X должен быть двумерным: строки — наблюдения, столбцы — признаки. Поэтому температура записана как [[-10], ...].LinearRegression()создаёт объект модели с выбранной архитектурой.fit(X, y)запускает обучение: алгоритм оценивает коэффициент и смещение по примерам.coef_иintercept_— атрибуты обученной модели, содержащие найденные параметры.predictвыполняет инференс для нового наблюдения. Метод использует уже найденные параметры, а не переобучает модель на новом запросе.
Проверьте: что произойдёт, если передать два столбца признаков, например температуру и число людей? Модель сможет оценить отдельный коэффициент для каждого признака. Однако перед этим необходимо убедиться, что данные подготовлены корректно и обучающая выборка содержит достаточно разнообразных примеров.
9. Ограничения и типичные заблуждения
- «Модель — это алгоритм». Нет: алгоритм обучения создаёт или настраивает модель.
- «Модель понимает предметную область». Модель отражает зависимости, которые может извлечь из данных и выбранной постановки. Это не гарантирует человеческого понимания.
- «Большая модель всегда лучше». Сложность может увеличить вычислительные затраты и риск переобучения; пригодность проверяется экспериментально.
- «Параметры объясняют причинность». Коэффициент или вес сам по себе не доказывает причинно-следственную связь.
- «Сохранённого файла достаточно». Для воспроизводимости важны preprocessing, версия данных, конфигурация, код и версии библиотек.
- «Инференс — это продолжение обучения». В стандартном сценарии это применение фиксированных параметров; обновление модели — отдельный процесс.
10. Словарь урока
Вычислительная зависимость, преобразующая входные данные в результат.
Структура модели и порядок выполняемых ею операций.
Внутреннее значение, которое алгоритм настраивает по обучающим данным.
Настройка структуры модели или процедуры обучения, выбираемая отдельно от обычного обновления параметров.
Параметр, определяющий вклад признака или связи в вычисление.
Дополнительный параметр, сдвигающий значение выхода модели.
Процесс настройки параметров модели на обучающих данных.
Применение обученной модели к новым входным данным.
Преобразование данных до передачи их модели.
Изменение статистических свойств данных между обучением и реальным применением.
Сохранённое состояние модели или процесса обучения.
Преобразование результата модели после вычисления.
11. Самопроверка с проверкой ответов
Вопрос 1
Что является результатом алгоритма обучения?
Вопрос 2
Какие значения обычно относятся к параметрам линейной модели?
Вопрос 3
Меняются ли параметры модели при обычном инференсе?
Вопрос 4
Что может входить в комплект для воспроизводимого применения модели?
Вопрос 5
Верно ли утверждение: «Чем больше нейронная сеть, тем лучше она для любой задачи»?
Вопрос 6
Какие компоненты могут находиться вокруг модели в рабочей AI-системе?
12. Итоги и переход к 1.2.4 · 1.2.6 · 1.4.3 · 1.5.1–1.5.7
Модель — это структура вычислений с конкретными параметрами. Алгоритм обучения находит эти параметры по данным; гиперпараметры задают условия построения и обучения. Training и inference — разные этапы. В реальной AI-системе модель является лишь одним компонентом, а качество результата зависит от всей цепочки.
Следующий вопрос: как проверить, что модель не просто запомнила обучающие примеры, а действительно работает на новых данных? В 1.2.4 · 1.2.6 · 1.4.3 · 1.5.1–1.5.7 мы разберём train/validation/test, baseline, метрики регрессии и классификации, дисбаланс классов и утечку данных.
Источники и дополнительное чтение
- Google Machine Learning Crash Course — основы машинного обучения.
- Scikit-learn User Guide — модели, оценка и API.
- Goodfellow, Bengio, Courville — Deep Learning.