tariel.ge › Полезное: бесплатные книги › ИИ изнутри: от нейрона до своей моделиБесплатно · автор Тариел Бежанидзе
← ИИ изнутри ЛИСТ 05ФундаментРЕВ. 1
Глава 05 · Фундамент

Переобучение: выучить, ничего не поняв

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

Зубрёжка против понимания

Студент выучил наизусть ответы к тридцати задачам из методички. На экзамене по этим задачам — отлично. Дали тридцать первую, немного другую — ноль. Он не решал задачи, он запоминал пары «условие — ответ».

Сеть с достаточным количеством параметров умеет ровно это. Если весов хватает, она может просто запомнить обучающую выборку целиком, не выведя из неё ни одной закономерности.

Как это выглядит в цифрах

На обучающих данных точность 99%. На новых — 60%. Разрыв между этими двумя числами и есть переобучение. Чем он больше, тем больше модель запоминала и меньше понимала.

Обязательное разделение данных

ЧастьДоляДля чегоПравило
Обучающаяоколо 70%На ней подбираются весаМодель видит постоянно
Проверочнаяоколо 15%Настройка параметров обучения, выбор момента остановкиМодель не учится на ней, но вы на неё смотрите
Тестоваяоколо 15%Финальная честная оценкаСмотреть один раз, в самом конце
Почему тестовую нельзя трогать

Если вы прогнали тест, увидели плохой результат, что-то поменяли и прогнали снова — тест перестал быть честным. Вы начали подгонять модель под него, просто медленнее и вручную. Это называется утечкой, и именно так получаются модели, которые прекрасно выглядят в отчёте и разваливаются в деле.

Как поймать по графику

ошибка по мере обучения
ошибка
  │
  │╲                             ← обучающая: падает всегда
  │ ╲___________________________
  │╲
  │ ╲______                      ← проверочная: сначала падает,
  │        ‾‾‾───────────           потом разворачивается вверх
  │              ↑
  │         здесь надо было остановиться
  └──────────────────────────────► шаги обучения

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

Шесть способов лечения

СпособКак работаетАналогия
Больше данныхЗапомнить всё становится дороже, чем понятьТысяча задач вместо тридцати — заучить нереально
Ранняя остановкаПрекратить, когда проверочная ошибка развернуласьЗакончить подготовку до того, как начнёте зубрить
DropoutНа каждом шаге случайно отключать часть нейроновЗаставить схему работать с любой половиной элементов — резервирование
Регуляризация весовШтрафовать за большие весаЗапрет на решения «в упор», только плавные
АугментацияИскусственно варьировать примерыТа же плата под разным светом и углом — это всё ещё та же плата
Модель поменьшеМеньше весов — нечем запоминатьНе давать шпаргалке столько места
Dropout стоит понять отдельно

Идея контринтуитивная: во время обучения случайно выключают часть нейронов на каждом шаге. Сеть не может положиться на конкретный нейрон, потому что он может исчезнуть, — и вынуждена распределять знание по многим путям. Получается что-то вроде горячего резервирования в схемотехнике: система устойчива к отказу любого узла.

Обратная беда: недообучение

НедообучениеПереобучение
На обучающихПлохоОтлично
На новыхПлохоПлохо
ПричинаМодель слишком проста или мало училасьМодель слишком сложна или училась слишком долго
ЛечениеБольше слоёв, дольше учитьВсё из таблицы выше

Диагностика однозначная: смотрите на обе ошибки вместе. Обе плохи — недообучение. Одна отличная, другая плохая — переобучение. Обе хороши — вы закончили.

Почему это важно знать, даже не обучая модели

Вы будете дообучать LoRA в главах 13 и 17 — там это встретится напрямую. Но есть и более общий смысл.

Эффект снега из главы 01

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

Практический вывод: когда модель уверенно ошибается на чём-то простом, это обычно не «глупость», а признак, который она выучила вместо настоящего. И ваш способ это обойти — переформулировать задачу так, чтобы ложный признак не срабатывал.

Признаки переобучения в вашей LoRA

Пригодится, когда дойдёте до глав 13 и 17.

Проверьте, что поняли

Что дальше

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

Глава05 — Переобучение: выучить, ничего не поняв
БлокФундамент
Далее06 — Вектор как смысл: почему близкое оказывается рядом
Ревизия1
↑ Оглавление Предыдущая глава← 04 · Как сеть находит веса: ошибка, градиент, шаг Следующая глава06 · Вектор как смысл: почему близкое оказывается рядом →

Бесплатная книга · tariel.ge · версии инструментов и команды проверяйте в документации проектов

Книга бесплатна для чтения. Автор — Тариел Бежанидзе, компьютерный мастер в Батуми · tariel.ge · все бесплатные книги. Копировать текст целиком на другие сайты — только со ссылкой на источник.