Лого на 91. НЕГ „Проф. Константин Гълъбов“

Избираем модул · Урок 7

Обучение, тест и пренастройване

Защо моделът никога не се оценява върху данните, с които е обучен. Разделяне на обучаващи и тестови данни, пренастройване и недостатъчно обучение.

Ученикът, който е научил отговорите наизуст

Представете си съученик, който е получил контролното предварително и е запаметил отговорите. На това контролно взима шест. Знае ли материала? Ще разберем само ако му дадем друго контролно.

С модела е същото. Ако го проверим върху данните, с които е обучен, мерим неговата памет, а не способността му да се справя с нови случаи. Затова първото правило в машинното обучение е:

Правилото

Данните, върху които оценяваме модела, никога не участват в обучението му.

Разделяне на данните

Обучаващи данни (train)

Частта, от която моделът се учи. Обикновено 70–80% от примерите.

Тестови данни (test)

Останалите 20–30%, които моделът вижда само веднъж — при окончателната оценка.

Разделянето трябва да е случайно. Ако наборът е подреден по клас и отрежем последните 20%, тестът може да съдържа само примери от един клас. Затова се разбърква — и то по един и същи начин при всяко пускане, за да са сравними резултатите.

Трета част: валидация

Когато пробваме много варианти на модела и всеки път гледаме тестовата оценка, ние започваме бавно да „нагласяме“ модела към теста — и той престава да е честен. Затова се отделя и валидационна част: върху нея се сравняват вариантите, а тестът се пази недокоснат за самия край.

Пренастройване

Недостатъчнотвърде простаТочно колкото трябвахваща тенденциятаПренастроеноминава през всяка точка
Едни и същи шест точки. Червената крива минава точно през всяка от тях — и точно затова е безполезна за нови данни.

Пренастройване (overfitting)

Моделът е запомнил обучаващите данни заедно с техните случайности и шум. Отличен е върху тях и слаб върху нови.

Недостатъчно обучение (underfitting)

Моделът е твърде прост, за да улови закономерността. Слаб е и върху обучаващите, и върху тестовите данни.

ПренастройванеНедостатъчно обучение
Точност върху trainмного висока (99%)ниска (60%)
Точност върху testниска (70%)ниска (58%)
Признакголяма разлика между дветеи двете са слаби
Лекарствоповече данни, по-прост модел, ограниченияпо-сложен модел, повече признаци

Диагностика с две числа

Винаги гледайте двете точности една до друга. Разликата между тях казва повече от всяка от тях поотделно.

Как се бори пренастройването

  • Повече данни — най-надеждното средство. Колкото повече примери, толкова по-трудно е да се запаметят.
  • По-прост модел — дърво с дълбочина 4 вместо неограничена; по-малка мрежа.
  • Ограничения при обучението — регуляризация, ранно спиране; идеята е моделът да бъде наказван за прекалена сложност.
  • Обогатяване на данните — при изображения: завъртане, изрязване, промяна на яркостта, за да се получат нови примери от съществуващите.

Изтичане на информация

Ако някакъв признак съдържа скрито отговора — например колоната „дата на изписване от болница“ при предсказване на изхода от лечението, — моделът ще покаже блестящи резултати и ще се провали в реална употреба. Това се нарича изтичане на информация (data leakage) и е най-честата причина за „твърде хубав, за да е истина“ резултат.