Модель с идеальным результатом на обучающих данных может быть совершенно бесполезной. Как это выглядит, почему случается и как поймать.
Студент выучил наизусть ответы к тридцати задачам из методички. На экзамене по этим задачам — отлично. Дали тридцать первую, немного другую — ноль. Он не решал задачи, он запоминал пары «условие — ответ».
Сеть с достаточным количеством параметров умеет ровно это. Если весов хватает, она может просто запомнить обучающую выборку целиком, не выведя из неё ни одной закономерности.
На обучающих данных точность 99%. На новых — 60%. Разрыв между этими двумя числами и есть переобучение. Чем он больше, тем больше модель запоминала и меньше понимала.
| Часть | Доля | Для чего | Правило |
|---|---|---|---|
| Обучающая | около 70% | На ней подбираются веса | Модель видит постоянно |
| Проверочная | около 15% | Настройка параметров обучения, выбор момента остановки | Модель не учится на ней, но вы на неё смотрите |
| Тестовая | около 15% | Финальная честная оценка | Смотреть один раз, в самом конце |
Если вы прогнали тест, увидели плохой результат, что-то поменяли и прогнали снова — тест перестал быть честным. Вы начали подгонять модель под него, просто медленнее и вручную. Это называется утечкой, и именно так получаются модели, которые прекрасно выглядят в отчёте и разваливаются в деле.
ошибка │ │╲ ← обучающая: падает всегда │ ╲___________________________ │╲ │ ╲______ ← проверочная: сначала падает, │ ‾‾‾─────────── потом разворачивается вверх │ ↑ │ здесь надо было остановиться └──────────────────────────────► шаги обучения
Момент, когда проверочная ошибка перестала падать и пошла вверх, — это точка, после которой модель начала запоминать вместо обобщения. Приём «остановиться здесь» так и называется — ранняя остановка, и это самое простое лекарство.
| Способ | Как работает | Аналогия |
|---|---|---|
| Больше данных | Запомнить всё становится дороже, чем понять | Тысяча задач вместо тридцати — заучить нереально |
| Ранняя остановка | Прекратить, когда проверочная ошибка развернулась | Закончить подготовку до того, как начнёте зубрить |
| Dropout | На каждом шаге случайно отключать часть нейронов | Заставить схему работать с любой половиной элементов — резервирование |
| Регуляризация весов | Штрафовать за большие веса | Запрет на решения «в упор», только плавные |
| Аугментация | Искусственно варьировать примеры | Та же плата под разным светом и углом — это всё ещё та же плата |
| Модель поменьше | Меньше весов — нечем запоминать | Не давать шпаргалке столько места |
Идея контринтуитивная: во время обучения случайно выключают часть нейронов на каждом шаге. Сеть не может положиться на конкретный нейрон, потому что он может исчезнуть, — и вынуждена распределять знание по многим путям. Получается что-то вроде горячего резервирования в схемотехнике: система устойчива к отказу любого узла.
| Недообучение | Переобучение | |
|---|---|---|
| На обучающих | Плохо | Отлично |
| На новых | Плохо | Плохо |
| Причина | Модель слишком проста или мало училась | Модель слишком сложна или училась слишком долго |
| Лечение | Больше слоёв, дольше учить | Всё из таблицы выше |
Диагностика однозначная: смотрите на обе ошибки вместе. Обе плохи — недообучение. Одна отличная, другая плохая — переобучение. Обе хороши — вы закончили.
Вы будете дообучать LoRA в главах 13 и 17 — там это встретится напрямую. Но есть и более общий смысл.
Волк на снегу — частный случай той же болезни. Сеть нашла признак, который прекрасно работал на обучающих данных и не имел отношения к задаче. Все модели, которыми вы пользуетесь, содержат в себе такие выученные «снега» — просто менее заметные. Отсюда странные провалы на вещах, где вы ждали успеха.
Практический вывод: когда модель уверенно ошибается на чём-то простом, это обычно не «глупость», а признак, который она выучила вместо настоящего. И ваш способ это обойти — переформулировать задачу так, чтобы ложный признак не срабатывал.
Пригодится, когда дойдёте до глав 13 и 17.
Фундамент готов. Переходим к идее, без которой не понять ни языковые модели, ни поиск по смыслу, ни генерацию картинок: как превратить смысл в числа.
Бесплатная книга · tariel.ge · версии инструментов и команды проверяйте в документации проектов
Книга бесплатна для чтения. Автор — Тариел Бежанидзе, компьютерный мастер в Батуми · tariel.ge · все бесплатные книги. Копировать текст целиком на другие сайты — только со ссылкой на источник.