Проблема зникання градієнту

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку

В машинному навчанні пробле́ма зника́ння градіє́нту (англ. vanishing gradient problem) виникає при тренуванні штучних нейронних мереж методами навчання на основі градієнту та зворотного поширення. В таких методах кожен з вагових коефіцієнтів нейронної мережі отримує уточнення пропорційно до частинної похідної функції похибки по відношенню до поточної ваги на кожній ітерації тренування. Проблема полягає в тім, що в деяких випадках градієнт буде зникомо малим, тим самим перешкоджаючи вазі змінювати своє значення. В найгіршому випадку це може повністю зупинити нейронну мережу від подальшого натреновування. Як один із прикладів причини цієї проблеми, традиційні передавальні функції, такі як гіперболічний тангенс, мають градієнти в проміжку (0, 1), а зворотне поширення обчислює градієнти за ланцюговим правилом. Це має ефект перемножування n цих малих чисел для обчислення градієнтів перших шарів в n-шаровій мережі, а це означає, що градієнт (сигнал похибки) експоненційно спадає з n, і перші шари тренуються дуже повільно.

Зворотне поширення дозволило дослідникам тренувати керовані глибокі нейронні мережі з нуля, спочатку з невеликим успіхом. Дипломна[en] праця Гохрайтера[en] 1991 року формально ідентифікувала причину цієї невдачі в «проблемі зникання градієнту»,[1][2] яка впливає не лише на багатошарові мережі прямого поширення,[3] а й на рекурентні мережі.[4] Останні тренуються розгортанням їх у дуже глибокі мережі прямого поширення, в яких для кожного моменту часу вхідної послідовності, оброблюваної мережею, створюється новий шар. (Таке поєднання розгортання зі зворотним поширенням називають зворотним поширенням у часі.)

Коли застосовують такі передавальні функції, похідні яких можуть набувати великих значень, виникає ризик зіткнутися з пов'язаною пробле́мою ви́буху градіє́нту (англ. exploding gradient problem).

Розв'язання

[ред. | ред. код]

Багаторівнева ієрархія

[ред. | ред. код]

Для подолання цієї проблеми було запропоновано декілька методів. Одним з них є багаторівнева ієрархія мереж Юргена Шмідгубера (1992 року), попередньо тренована по одному рівню за раз шляхом некерованого навчання, і тонко налаштовувана зворотним поширенням.[5] Тут кожен рівень навчається стисненого подання спостережень, яке подається до наступного рівня.

Споріднений підхід

[ред. | ред. код]

Подібні ідеї було застосовано в нейронних мережах прямого поширення для некерованого попереднього тренування, щоби структурувати нейронну мережу, даючи їй спочатку навчитися в цілому корисних детекторів ознак[en]. Тоді мережу тренують далі керованим зворотним поширенням, класифікувати мічені дані. Глибока мережа переконань від Гінтона та ін. (2006 року) включає навчання розподілу високорівневого подання із застосуванням послідовних шарів двійкових або дійснозначних латентних змінних. Для моделювання кожного нового шару ознак вищого рівня вона застосовує обмежену машину Больцмана. Кожен новий шар гарантує збільшення нижньої межі логарифмічної правдоподібності даних, тим самим покращуючи модель, за правильного тренування. Після того, як було навчено достатньо багато шарів, цю глибоку архітектуру можна використовувати як породжувальну модель шляхом відтворення даних при здійсненні вибірки вниз по моделі («родовий прохід», англ. "ancestral pass"), починаючи зі збудження ознак найвищого рівня.[6] Гінтон повідомляє, що його моделі є ефективними для виділяння ознак зі структурованих даних високої розмірності.[7]

Довга короткочасна пам'ять

[ред. | ред. код]

Іншою методикою, що зокрема застосовують для рекурентних нейронних мереж, є мережа довгої короткочасної пам'яті (ДКЧП) 1997 року від Гохрайтера[en] та Шмідгубера.[8] 2009 року глибокі багатовимірні мережі ДКЧП продемонстрували потужність глибокого навчання з багатьма нелінійними шарами, вигравши три змагання ICDAR[en] 2009 року з розпізнавання неперервного рукописного тексту без жодного попереднього знання про три різні мови, яких треба було навчитися.[9][10]

Швидше апаратне забезпечення

[ред. | ред. код]

Вдосконалення апаратного забезпечення призвело до того, що з 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]

Див. також

[ред. | ред. код]

Примітки

[ред. | ред. код]
  1. Hochreiter, S. (1991). Untersuchungen zu dynamischen neuronalen Netzen (PDF) (Diplom thesis). Institut f. Informatik, Technische Univ. Munich. (нім.)
  2. 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. ISBN 0-7803-5369-2. (англ.)
  3. Goh, Garrett B.; Hodas, Nathan O.; Vishnu, Abhinav (15 червня 2017). Deep learning for computational chemistry. Journal of Computational Chemistry (англ.). 38 (16): 1291—1307. arXiv:1701.04503. Bibcode:2017arXiv170104503G. doi:10.1002/jcc.24764. PMID 28272810. S2CID 6831636. (англ.)
  4. Pascanu, Razvan; Mikolov, Tomas; Bengio, Yoshua (21 листопада 2012). On the difficulty of training Recurrent Neural Networks. arXiv:1211.5063 [cs.LG]. (англ.)
  5. J. Schmidhuber., "Learning complex, extended sequences using the principle of history compression," Neural Computation, 4, pp. 234–242, 1992. (англ.)
  6. а б Hinton, G. E.; Osindero, S.; Teh, Y. (2006). A fast learning algorithm for deep belief nets (PDF). Neural Computation[en]. 18 (7): 1527—1554. CiteSeerX 10.1.1.76.1541. doi:10.1162/neco.2006.18.7.1527. PMID 16764513. (англ.)
  7. Hinton, G. (2009). Deep belief networks. Scholarpedia. 4 (5): 5947. Bibcode:2009SchpJ...4.5947H. doi:10.4249/scholarpedia.5947. (англ.)
  8. Hochreiter, Sepp; Schmidhuber, Jürgen (1997). Long Short-Term Memory. Neural Computation. 9 (8): 1735—1780. doi:10.1162/neco.1997.9.8.1735. PMID 9377276. S2CID 1915014. (англ.)
  9. 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 (англ.)
  10. 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. CiteSeerX 10.1.1.139.4502. doi:10.1109/tpami.2008.137. PMID 19299860. S2CID 14635907. (англ.)
  11. Schmidhuber, Jürgen (2015). Deep learning in neural networks: An overview. Neural Networks. 61: 85—117. arXiv:1404.7828. doi:10.1016/j.neunet.2014.09.003. PMID 25462637. S2CID 11715509. (англ.)
  12. Residual neural networks are an exciting area of deep learning research. 28 квітня 2016.{{cite web}}: Обслуговування CS1: Сторінки з параметром url-status, але без параметра archive-url (посилання) (англ.)
  13. http://www.fit.vutbr.cz/research/groups/speech/servite/2010/rnnlm_mikolov.pdf [Архівовано 2017-05-16 у Wayback Machine.] (англ.)
  14. а б He, Kaiming; Zhang, Xiangyu; Ren, Shaoqing; Sun, Jian (2015). Deep Residual Learning for Image Recognition. arXiv:1512.03385 [cs.CV]. (англ.)
  15. ResNets, HighwayNets, and DenseNets, Oh My! – Chatbot's Life. 14 жовтня 2016. (англ.)
  16. Veit, Andreas; Wilber, Michael; Belongie, Serge (20 травня 2016). Residual Networks Behave Like Ensembles of Relatively Shallow Networks. arXiv:1605.06431 [cs.CV]. (англ.)
  17. Glorot, Xavier; Bordes, Antoine; Bengio, Yoshua (14 червня 2011). Deep Sparse Rectifier Neural Networks. PMLR (англ.): 315—323. (англ.)
  18. Sven Behnke (2003). Hierarchical Neural Networks for Image Interpretation (PDF). Lecture Notes in Computer Science. Т. 2766. Springer. (англ.)
  19. Sepp Hochreiter's Fundamental Deep Learning Problem (1991). people.idsia.ch. Процитовано 7 січня 2017. (англ.)