В машинному навчанніпробле́ма зника́ння градіє́нту (англ.vanishing gradient problem) виникає при тренуванні штучних нейронних мережметодами навчання на основі градієнту та зворотного поширення. В таких методах кожен з вагових коефіцієнтів нейронної мережі отримує уточнення пропорційно до частинної похідної функції похибки по відношенню до поточної ваги на кожній ітерації тренування. Проблема полягає в тім, що в деяких випадках градієнт буде зникомо малим, тим самим перешкоджаючи вазі змінювати своє значення. В найгіршому випадку це може повністю зупинити нейронну мережу від подальшого натреновування. Як один із прикладів причини цієї проблеми, традиційні передавальні функції, такі як гіперболічний тангенс, мають градієнти в проміжку (0, 1), а зворотне поширення обчислює градієнти за ланцюговим правилом. Це має ефект перемножування n цих малих чисел для обчислення градієнтів перших шарів в n-шаровій мережі, а це означає, що градієнт (сигнал похибки) експоненційно спадає з n, і перші шари тренуються дуже повільно.
Зворотне поширення дозволило дослідникам тренувати керовані глибокі нейронні мережі з нуля, спочатку з невеликим успіхом. Дипломна[en] праця Гохрайтера[en] 1991 року формально ідентифікувала причину цієї невдачі в «проблемі зникання градієнту»,[1][2] яка впливає не лише на багатошарові мережі прямого поширення,[3] а й на рекурентні мережі.[4] Останні тренуються розгортанням їх у дуже глибокі мережі прямого поширення, в яких для кожного моменту часу вхідної послідовності, оброблюваної мережею, створюється новий шар. (Таке поєднання розгортання зі зворотним поширенням називають зворотним поширенням у часі.)
Коли застосовують такі передавальні функції, похідні яких можуть набувати великих значень, виникає ризик зіткнутися з пов'язаною пробле́мою ви́буху градіє́нту (англ.exploding gradient problem).
Цей розділ містить посилання на джерела, що можуть не відповідати вимогам Вікіпедії до авторитетних джерел. Будь ласка, перевірте, чи відповідають вказаним критеріям джерела, використані в цьому розділі.(листопад 2019)
Багаторівнева ієрархія
Для подолання цієї проблеми було запропоновано декілька методів. Одним з них є багаторівнева ієрархія мереж Юргена Шмідгубера (1992 року), попередньо тренована по одному рівню за раз шляхом некерованого навчання, і тонко налаштовувана зворотним поширенням.[5] Тут кожен рівень навчається стисненого подання спостережень, яке подається до наступного рівня.
Споріднений підхід
Подібні ідеї було застосовано в нейронних мережах прямого поширення для некерованого попереднього тренування, щоби структурувати нейронну мережу, даючи їй спочатку навчитися в цілому корисних детекторів ознак[en]. Тоді мережу тренують далі керованимзворотним поширенням, класифікувати мічені дані. Глибока мережа переконань від Гінтона та ін. (2006 року) включає навчання розподілу високорівневого подання із застосуванням послідовних шарів двійкових або дійснозначних латентних змінних. Для моделювання кожного нового шару ознак вищого рівня вона застосовує обмежену машину Больцмана. Кожен новий шар гарантує збільшення нижньої межілогарифмічної правдоподібності даних, тим самим покращуючи модель, за правильного тренування. Після того, як було навчено достатньо багато шарів, цю глибоку архітектуру можна використовувати як породжувальну модель шляхом відтворення даних при здійсненні вибірки вниз по моделі («родовий прохід», англ."ancestral pass"), починаючи зі збудження ознак найвищого рівня.[6] Гінтон повідомляє, що його моделі є ефективними для виділяння ознак зі структурованих даних високої розмірності.[7]
Вдосконалення апаратного забезпечення призвело до того, що з 1991 по 2015 рік обчислювальна потужність (особливо забезпечувана ГП) зросла приблизно в мільйон разів, що робить стандартне зворотне поширення прийнятним для мереж на декілька шарів глибше, ніж коли було усвідомлено проблему зникання градієнту. Шмідгубер зауважує, що це «є, в основному, тим, що нині виграє багато зі змагань з розпізнавання зображень», але що воно «не долає насправді проблему фундаментальним чином»,[11] оскільки оригінальні моделі Гінтона та інших, що бралися до проблеми зникання градієнту, було треновано на процесорі Xeon, а не на ГП.[6]
За́лишкові мережі
Одним із найновіших та найдієвіших способів розв'язування проблеми зникання градієнту є застосування за́лишкових нейронних мереж, або ResNet[12] (не плутати з рекурентними нейронними мережами).[13]ResNet називають нейронні мережі, в яких про́пускові з'єднання (англ.skip connections) та за́лишкові з'єднання (англ.residual connections) є частиною архітектури мережі. Ці про́пускові з'єднання дозволяють інформації градієнту проходити крізь шари, створюючи інформаційні «магістралі», в яких вихід попереднього шару/збудження додається до виходу глибшого шару. Це дозволяє інформації з раніших частин мережі передаватися до її глибших частин, що допомагає підтримувати поширення сигналу навіть у глибших мережах. Про́пускові з'єднання є критичною складовою того, що уможливило успішне тренування глибших нейронних мереж.[14]
ResNet[15] видавали нижчу похибку тренування (та похибку перевірки) за свої менш глибокі аналоги, просто повторно вводячи до мережі виходи з менш глибоких рівнів, щоби компенсувати зникання даних.[14] Зауважте, що ResNet є ансамблем відносно неглибоких мереж, і не розв'язують проблему зникання градієнту шляхом зберігання плину градієнту через всю глибину мережі, — натомість, вони уникають цієї проблеми, просто будуючи ансамблі багатьох коротких мереж разом. (Ансамбль за побудовою, англ.Ensemble by Construction[16])
Інші передавальні функції
Випрямлячі, такі як ReLU, потерпають від проблеми знимання градієнту менше, оскільки вони насичуються лише в одному напрямку.[17]
Інше
Свен Бенке, коли тренував свою Нейронну піраміду абстракцій (англ.Neural Abstraction Pyramid)[18] для розв'язування задач на кшталт відбудови зображень та локалізації облич, покладався лише на знак градієнту (Rprop[en]).[джерело?]
Нейронні мережі можливо також оптимізовувати, застосовуючи універсальний алгоритм пошуку на просторі ваг нейронної мережі, наприклад, випадкове вгадування[en], або, систематичніше, генетичний алгоритм. Цей підхід не ґрунтується на градієнті, й уникає проблеми його зникання.[19]
↑Hochreiter, S.; Bengio, Y.; Frasconi, P.; Schmidhuber, J. (2001). Gradient flow in recurrent nets: the difficulty of learning long-term dependencies. У Kremer, S. C.; Kolen, J. F. (ред.). A Field Guide to Dynamical Recurrent Neural Networks. IEEE Press. ISBN0-7803-5369-2. (англ.)
↑Pascanu, Razvan; Mikolov, Tomas; Bengio, Yoshua (21 листопада 2012). On the difficulty of training Recurrent Neural Networks. arXiv:1211.5063 [cs.LG]. (англ.)
↑J. Schmidhuber., "Learning complex, extended sequences using the principle of history compression," Neural Computation, 4, pp. 234–242, 1992. (англ.)
↑Graves, Alex; and Schmidhuber, Jürgen; Offline Handwriting Recognition with Multidimensional Recurrent Neural Networks, in Bengio, Yoshua; Schuurmans, Dale; Lafferty, John; Williams, Chris K. I.; and Culotta, Aron (eds.), Advances in Neural Information Processing Systems 22 (NIPS'22), December 7th–10th, 2009, Vancouver, BC, Neural Information Processing Systems (NIPS) Foundation, 2009, pp. 545–552 (англ.)
↑Graves, A.; Liwicki, M.; Fernandez, S.; Bertolami, R.; Bunke, H.; Schmidhuber, J. (2009). A Novel Connectionist System for Improved Unconstrained Handwriting Recognition. IEEE Transactions on Pattern Analysis and Machine Intelligence. 31 (5): 855—868. CiteSeerX10.1.1.139.4502. doi:10.1109/tpami.2008.137. PMID19299860. S2CID14635907. (англ.)