Лагідний вступ до раннього зупинення, щоб уникнути перетренування нейронних мереж
Останнє оновлення 6 серпня 2019 року
Основною проблемою у навчанні нейронних мереж є те, як довго їх тренувати.
Занадто мало тренувань означатиме, що модель буде оснащувати поїзд та тестові набори. Занадто багато тренувань означатиме, що модель перевершить навчальний набір даних і матиме низьку ефективність на тестовому наборі.
Компромісом є тренування на наборі даних тренувань, але припинення тренування в той момент, коли продуктивність набору даних перевірки починає погіршуватися. Цей простий, ефективний та широко використовуваний підхід до навчання нейронних мереж називається ранньою зупинкою.
У цьому дописі ви дізнаєтесь, що припинення тренування нейронної мережі до того, як вона переобладнає навчальний набір даних, може зменшити переобладнання та покращити узагальнення глибоких нейронних мереж.
Прочитавши цю публікацію, ви дізнаєтесь:
- Проблема навчання нейронної мережі досить довга, щоб засвоїти картографування, але не настільки довга, що вона перевершує дані навчання.
- Ефективність моделі на наборі даних перевірки затримки можна контролювати під час навчання, а навчання припиняється, коли помилка узагальнення починає збільшуватися.
- Використання ранньої зупинки вимагає вибору показника продуктивності для моніторингу, спускового гачка для припинення тренування та підбору ваг моделі для використання.
Почніть свій проект з моєю новою книгою «Краще глибоке навчання», включаючи покрокові підручники та файли вихідного коду Python для всіх прикладів.
Давайте розпочнемо.

Лагідний вступ до раннього зупинення для уникнення перетренованості моделей нейронних мереж
Фото Бенсона Куа, деякі права захищено.
Огляд
Цей підручник розділений на п’ять частин; вони є:
- Проблеми навчання просто достатньо
- Зупиніть навчання, коли збільшується помилка генералізації
- Як рано припинити тренування
- Приклади раннього зупинення
- Поради щодо раннього зупинення
Проблеми навчання просто достатньо
Навчання нейронних мереж є складним завданням.
Під час навчання великої мережі під час навчання буде момент, коли модель перестане узагальнювати і почне вивчати статистичний шум у наборі даних тренувань.
Це переобладнання набору навчальних даних призведе до збільшення помилки узагальнення, що зробить модель менш корисною для прогнозування нових даних.
Завдання полягає в тому, щоб навчити мережу досить довго, щоб вона могла засвоїти відображення від входів до результатів, але не навчити модель настільки довго, що вона перевершує дані навчання.
Однак усі стандартні архітектури нейронних мереж, такі як повністю підключений багатошаровий персептрон, схильні до переоснащення [10]: Хоча мережа, здається, стає все кращою і кращою, тобто похибка навчального набору зменшується, в певний момент під час навчання насправді знову починає погіршуватися, тобто похибка на невидимих прикладах зростає.
Одним із підходів до вирішення цієї проблеми є обробка кількості навчальних епох як гіперпараметра та багаторазове тренування моделі з різними значеннями, а потім вибір кількості епох, що призводять до найкращих показників у поїзді або наборі даних про тестування.
Недоліком цього підходу є те, що він вимагає навчання декількох моделей та відмови від них. Це може бути обчислювально неефективним та трудомістким, особливо для великих моделей, що навчаються на великих наборах даних протягом днів або тижнів.
Зупиніть навчання, коли збільшується помилка генералізації
Альтернативний підхід - це тренування моделі один раз для великої кількості навчальних епох.
Під час навчання модель оцінюється на основі даних перевірки витримки після кожної епохи. Якщо продуктивність моделі на наборі даних перевірки починає погіршуватися (наприклад, втрати починають збільшуватися або точність починає зменшуватися), тоді навчальний процес зупиняється.
… Помилка, виміряна щодо незалежних даних, яку зазвичай називають набором перевірки, спочатку часто демонструє зменшення, а потім збільшення, оскільки мережа починає переоснащуватися. Отже, навчання може бути припинено в точці найменшої помилки щодо набору даних перевірки
Потім використовується модель на момент припинення навчання, і, як відомо, вона має хороші результати узагальнення.
Ця процедура називається "ранньою зупинкою" і є, мабуть, однією з найдавніших та найбільш широко використовуваних форм регуляризації нейронних мереж.
Ця стратегія відома як рання зупинка. Це, мабуть, найбільш часто використовувана форма регуляризації в процесі глибокого навчання. Його популярність обумовлена як ефективністю, так і простотою.
Якщо методи регуляризації, такі як зменшення ваги, які оновлюють функцію втрат для заохочення менш складних моделей, вважаються "явною" регуляризацією, то раннє зупинення можна розглядати як тип "неявної" регуляризації, подібно до використання меншої мережі, яка має меншу пропускну здатність.
Регуляризація також може бути неявною, як це відбувається у випадку з ранньою зупинкою.
Хочете отримати кращих результатів із глибоким навчанням?
Пройдіть мій безкоштовний 7-денний курс збою електронної пошти зараз (із зразком коду).
Клацніть, щоб зареєструватися, а також отримати безкоштовну версію курсу у форматі PDF для електронних книг.
Як рано припинити тренування
Для ранньої зупинки потрібно налаштувати мережу на обмежені можливості, тобто вона має більшу ємність, ніж потрібно для вирішення проблеми.
Під час навчання мережі використовується більша кількість епох тренувань, ніж зазвичай може знадобитися, щоб надати мережі достатньо можливостей, щоб відповідати, а потім починати переоблаштовувати навчальний набір даних.
Є три елементи використання ранньої зупинки; вони є:
- Моніторинг роботи моделі.
- Тригер, щоб припинити тренування.
- Вибір моделі для використання.
Моніторинг ефективності
Під час тренувань слід контролювати результативність моделі.
Це вимагає вибору набору даних, який використовується для оцінки моделі, і метрики, що використовується для оцінки моделі.
Загальноприйнятим є розділення набору навчальних даних та використання підмножини, наприклад, 30%, як набору перевірок, що використовується для моніторингу роботи моделі під час навчання. Цей набір перевірок не використовується для навчання моделі. Також часто використовується втрата на наборі даних перевірки як метрика для моніторингу, хоча ви також можете використовувати помилку передбачення у разі регресії або точність у випадку класифікації.
Втрата моделі на наборі даних тренувань також буде доступна як частина навчальної процедури, а додаткові показники також можуть бути розраховані та відстежуватися на наборі даних тренувань.
Ефективність моделі оцінюється на основі перевірки, встановленої в кінці кожної епохи, що додає додаткові обчислювальні витрати під час навчання. Це можна зменшити, оцінюючи модель рідше, наприклад кожні 2, 5 або 10 навчальних епох.
Рання зупинка тригера
Після того, як обрана схема оцінки моделі, потрібно вибрати тригер для зупинки тренувального процесу.
Тригер використовуватиме відстежувану метрику продуктивності, щоб вирішити, коли припинити тренування. Це часто ефективність моделі на наборі даних про вичерпання, наприклад, втрата.
У найпростішому випадку навчання припиняється, як тільки продуктивність набору даних валідації зменшується порівняно з продуктивністю набору даних валідації на епоху попереднього навчання (наприклад, збільшення втрат).
На практиці можуть знадобитися більш складні тригери. Це тому, що навчання нейронної мережі є стохастичним і може бути шумним. Побудована на графіку продуктивність моделі на наборі даних перевірки може зростати і зменшуватися багато разів. Це означає, що перша ознака переобладнання може бути не найкращим місцем для припинення тренувань.