Темп навчання
Шаблон:Машинне навчання У машинному навчанні те́мп навча́ння (Шаблон:Lang-en) або коефіціє́нт шви́дкості навча́ння — це гіперпараметр алгоритму оптимізації, який задає розмір кроку на кожній ітерації пошуку мінімуму функції втрат.[1] Оскільки він визначає те, якою мірою нова отримана інформація замінює попередню інформацію, він образно представляє швидкість, з якою модель машинного навчання «навчається». У літературі з адаптивного керування швидкість навчання зазвичай називають коефіціє́нтом підси́лення (Шаблон:Lang-en).[2]
При встановленні темпу навчання існує проблема компромісу між швидкістю збіжності та перестрибуванням мінімуму. В той час як Шаблон:Нп зазвичай отримується з градієнта функції втрат, коефіцієнт швидкості навчання визначає, наскільки великий крок буде зроблено в цьому напрямку. Занадто високий темп навчання змусить алгоритм перестрибнути через мінімум, а навчання з занадто низьким коефіцієнтом або займе занадто багато часу, або застрягне у небажаному локальному мінімумі.[3]
Щоб досягти швидшої збіжності, запобігти гойданню і застряганню в небажаних локальних мінімумах, темп навчання часто змінюється під час навчання або відповідно до графіка темпу навчання, або за допомогою алгоритмів адаптивного темпу навчання.[4] Коефіцієнт швидкості навчання та його підбір може відрізнятися для різних параметрів моделі, і в такому випадку отримуємо діагональну матрицю, яку можна розглядати як наближення оберненої матриці Гесе, що використовується в методі Ньютона[5]. Темп навчання подібен до довжини кроку, отримуваної неточним лінійним пошуком у квазіньютонових методах і відповідних алгоритмах оптимізації.[6][7]
Мініпакетна підвибірка (МППВ, Шаблон:Lang-en) під час лінійного пошуку торкається характеристик функцій втрат, за якими необхідно визначати темп навчання.[8] Статична МППВ утримує мініпакет незмінним уздовж напрямку пошуку, що призводить до плавності функції втрат уздовж напрямку пошуку. Динамічна МППВ уточнює мініпакет на кожному обчисленні функції, що призводить до поточкової розривності функції втрат уздовж напрямку пошуку. До видів лінійного пошуку, які адаптивно встановлюють темп навчання для функцій втрат статичної МППВ, належить параболічно наближувальний лінійний (ПНЛ, Шаблон:Lang-en) пошук.[9] До видів лінійного пошуку, які адаптивно встановлюють темп навчання для функцій втрат динамічної МППВ, належать імовірнісні види лінійного пошуку,[10] виключно градієнтні види лінійного пошуку (Шаблон:Lang-en)[11] та квадратичні наближення.[12]
Графік темпу навчання
Початковий коефіцієнт можна залишити за замовчуванням або вибрати за допомогою низки методів.[13] Графік темпу навчання змінює коефіцієнт швидкості навчання під час навчання і найчастіше оновлюється між епохами/ітераціями. В основному це робиться з двома параметрами: загасанням та імпульсом. Існує багато різних графіків швидкості навчання, але найпоширенішими є часові, покрокові та експоненційні.[4]
Загасання (Шаблон:Lang-en) — це гіперпараметр, що служить для того, щоб уникнути гойдань — ситуації, яка може виникнути, коли занадто високий постійний темп навчання змушує алгоритм перестрибувати вперед і назад через мінімум.
Імпульс (Шаблон:Lang-en) аналогічний кулі, що котиться з пагорба, якщо ми хочемо, щоб м'яч опустився в найнижчу точку пагорба (відповідає найменшій похибці). Імпульс прискорює навчання (збільшуючи коефіцієнт швидкості), коли градієнт функції втрат рухається в одному напрямку протягом тривалого часу, а також уникає локальних мінімумів, «перекочуючись» через невеликі нерівності. Імпульс контролюється гіперпараметром, аналогічним масі м'яча, який потрібно підібрати вручну — занадто висока, і м'яч перекотиться через мінімуми, які ми хочемо знайти, занадто низька, і він не допоможе оптимізувати пошук. Формула для вибору імпульсу є складнішою, ніж для загасання, але найчастіше вбудована в бібліотеки глибокого навчання, такі як Keras.
Часовий (Шаблон:Lang-en) графік темпу навчання змінює коефіцієнт швидкості навчання залежно від темпу навчання на попередньому проміжку часу. З урахуванням загасання, формула темпу навчання в наступному проміжку часу виглядає так:
де — це коефіцієнт швидкості навчання, є параметром загасання, а — це номер кроку.
Кроковий (Шаблон:Lang-en) графік темпу навчання змінює темп навчання відповідно до деяких попередньо визначених кроків. Формула з урахуванням загасання визначається як:
де — темп навчання на ітерації , — початковий темп навчання, — це наскільки темп навчання повинен змінюватися на кожному кроці, а відповідає швидкості зменшення або тому, як часто слід скидати швидкість (10 відповідає падінню кожні 10 кроків). Функція floor () округлює всі значення менші за 1 до 0.
Експоненційний (Шаблон:Lang-en) графік темпу навчання схожий на покроковий, але замість кроків використовується експоненційно спадна функція. Формула експоненційного графіка виглядає як:
де є параметром загасання.
Адаптивний темп навчання
Проблема з графіками темпу навчання полягає в тому, що всі вони залежать від гіперпараметрів, які потрібно обирати вручну для кожного конкретного сеансу навчання, і вони можуть сильно відрізнятися залежно від задачі або використовуваної моделі. Для подолання цієї проблеми існує багато різних адаптивних алгоритмів градієнтного спуску, таких як Шаблон:Нп, Adadelta, Шаблон:Нп та Шаблон:Нп[14], які зазвичай вбудовуються в бібліотеки глибокого навчання, такі як Keras.[15]
Див. також
- Гіперпараметр (машинне навчання)
- Оптимізація гіперпараметрів
- Стохастичний градієнтний спуск
- Методи змінної метрики
- Перенавчання
- Зворотне поширення
- АвтоМН
- Обирання моделі
- Автоналаштування
Примітки
Література
Посилання
- ↑ Шаблон:Cite book Шаблон:Ref-en
- ↑ Шаблон:Cite journal Шаблон:Ref-en
- ↑ Шаблон:Cite book Шаблон:Ref-en
- ↑ 4,0 4,1 Шаблон:Cite book Шаблон:Ref-en
- ↑ Шаблон:Cite arXiv
- ↑ Шаблон:Cite book Шаблон:Ref-en
- ↑ Шаблон:Cite book Шаблон:Ref-en
- ↑ Шаблон:Cite paper Шаблон:Ref-en
- ↑ Шаблон:Cite arXiv Шаблон:Ref-en
- ↑ Шаблон:Cite arXiv Шаблон:Ref-en
- ↑ Шаблон:Cite paper Шаблон:Ref-en
- ↑ Шаблон:Cite arXiv Шаблон:Ref-en
- ↑ Шаблон:Cite arxiv Шаблон:Ref-en
- ↑ Шаблон:Cite book Шаблон:Ref-en
- ↑ Шаблон:Cite web Шаблон:Ref-en