Neural Network Tuning
Оновлено: 31.07.2023
Нейронні мережі DL елементарно визначити завдяки широкому використанню фреймворків з відкритим вихідним кодом.
Тим не менш, нейронні мережі продовжують залишатися складними у побудові та навчанні. Налаштування нейронної мережі може бути складним. Якщо гіперпараметри системи підібрані неправильно, мережа не зможе навчатися достатньо швидко, якщо взагалі зможе. Цей глосарій має на меті надати деякі загальні рекомендації щодо налаштування нейронної мережі.
Приховані шари
Почнемо налаштування параметрів нейронної мережі з прихованих шарів. Кількість прихованих шарів - це важливий гіперпараметр, який впливає на базову основу нейронної мережі, і його можна розділити на три категорії:
- 0 - Якщо набір даних лінійно розділяється, прихований шар не потрібен. Оскільки нейронна мережа призначена для вирішення складних завдань, вам навіть не потрібно використовувати її, коли все, що вам потрібно - це лінійна межа.
- 1 або 2 - Якщо набір даних не можна розділити лінійно, прихований шар є обов'язковим. І в більшості випадків достатньо одного прихованого шару, оскільки ступінь збільшення системи за рахунок розширення прихованих шарів є незначним у порівнянні з додатковою роботою, що вимагається. Як наслідок, у багатьох практичних ситуаціях достатньо одного або двох прихованих шарів.
- Багато- Нарешті, якщо ви намагаєтеся вирішити таку складну проблему, як категоризація об'єктів, вам знадобиться багато прихованих шарів, які виконують коригування своїх вхідних даних.
Нейрони
Тепер вам потрібно вирішити, скільки нейронів додати до прихованого шару. Пошук оптимальної кількості нейронів має вирішальне значення, оскільки менша кількість нейронів може призвести до недостатнього навчання, а надмірна кількість - до надмірного навчання і збільшення часу навчання. Насправді, краще вибрати кількість нейронів на межі вхідних та вихідних даних, яка залежить від складності задачі.
- Якщо проблема проста і зв'язок між вхідними та вихідними даними очевидний, то розумною початковою точкою може бути точка, що дорівнює приблизно 2/3 розміру вхідних даних. Однак, якщо зв'язок складний, число може коливатися між розміром вхідних даних і набагато меншим, ніж подвійний розмір вхідних даних.
Це здається неоднозначним, але точного методу, якого ви могли б дотримуватися, не існує, оскільки налаштування нейронних мереж все ще активно вивчається, і кожне значення є унікальним для кожної ситуації. Як результат, вам слід використовувати їх лише як відправну точку і експериментувати, щоб побачити, яке значення найкраще підходить для вашого сценарію.
Швидкість навчання, розмір партії та епоха
Нарешті, ми розглянемо налаштування гіперпараметрів у нейронних мережах, які пов'язані з тривалістю навчання та продуктивністю.
Зі збільшенням розміру партії кожна партія стає більш порівнянною з усім набором даних, оскільки кожна партія містить більше спостережень. Це означає, що кожна партія буде схожа на інші. Як наслідок, її шум зменшується, що робить раціональним використання високої швидкості навчання для коротшого часу навчання. Однак, коли ми використовуємо малий розмір партії, шум зростає. В результаті ми використовуємо низьку швидкість навчання, щоб компенсувати шум. Отже, який розмір партії ми повинні використовувати? Люди все ще проводять дослідження, але ми можемо вчитися на досвіді інших.
Великий розмір партії може призвести до поганого узагальнення, як було продемонстровано емпірично. Коли ми використовуємо малий розмір партії, збурення допомагає мережі уникнути локального мінімуму, що призводить до підвищення точності. Вона також намагається прийти до відповідного рішення швидше, ніж мережа з великим розміром партії. В принципі, розмір партії 32 може бути непоганою відправною точкою, однак це число сильно залежить від розміру вибірки, складності проблеми та середовища обробки. Як наслідок, пошук по сітці також може бути корисним.
Зазвичай ми починаємо з 0.1 для швидкості навчання, але ми також можемо використовувати пошук по сітці в діапазоні від 0.1 до 1e-5. Коли швидкість навчання низька, потрібно більше ітерацій, щоб знайти мінімальну точку. Як наслідок, потрібно більше епох, але скільки?
- Налаштування функції втрат нейронної мережі може бути використане як у попередньому навчанні для отримання кращих ваг, так і в класифікації - на вихідному шарі для досягнення результату.
Функція втрат, яку ви виберете, буде визначатися метою вашої мережі. Виберіть ентропію реконструкції для попереднього навчання. Використовуйте багатокласову перехресну волатильність для класифікації.
Нарешті, кількість епох, необхідних для збіжності, варіюється в залежності від проблеми та випадкової ініціалізації. Як наслідок, не існує ідеальної кількості епох, яка б підходила для всіх обставин. На практиці ми часто встановлюємо велику кількість епох і використовуємо ранню зупинку, щоб нейронна мережа припиняла навчання, коли покращення від зміни її значень не перевищує певного порогу.