Градієнтний відсікання при навчанні глибоких нейронних мереж


10

Коли хочеться виконати відсікання градієнта під час тренування RNN чи CNN? Мене особливо цікавить останнє. Яке б було гарним початковим значенням для відсікання? (це, звичайно, можна налаштувати)

Відповіді:


4

Ви хочете виконати відсікання градієнта, коли у вас виникає проблема зникнення градієнтів або вибуху градієнтів. Однак для обох сценаріїв є кращі рішення:

  • Вибух градієнта трапляється, коли градієнт стає занадто великим і ви отримуєте числовий перелив. Це можна легко виправити, ініціалізуючи ваги мережі до менших значень. Якщо це не працює, можливо, в коді є помилка.

  • Зникаючий градієнт трапляється, коли оптимізація застрягає в точці сідла, градієнт стає занадто малим, щоб оптимізація прогресувала. Це можна виправити, використовуючи спуск градієнта з імпульсом або опорою RMS або обидва (також відомий як оптимізатор Адама).

Початкові значення для верхньої межі відсікання градієнта були б чимось меншими, ніж найбільше число, яке може приймати змінна. Що стосується нижньої межі, я б сказав, що це конкретна проблема, але, можливо, почніть з чогось типу 1e-10.


1
Я не впевнений, якщо контекст цієї відповіді повинен виключати RNN, але якщо це не так, то обидва запропоновані рішення не є кращими від градієнтного відсікання, особливо у випадку з RNN.
Алекс Р.

Вибачте, що я більше думав у контексті CNN, не соромтесь редагувати
Мігель
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.