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

Матеріал з testwiki
Версія від 21:03, 13 грудня 2023, створена imported>Olexa Riznyk (Часткове скасування редагування № 41131391 користувача 185.244.159.147 (обговорення) Зепп Хохрайтер — німець, "dataset" — набір даних, а не корпус, "squash" — розплющувати, а не розщеплювати, https://slovnyk.ua/index.php?swrd=вага)
(різн.) ← Попередня версія | Поточна версія (різн.) | Новіша версія → (різн.)
Перейти до навігації Перейти до пошуку

Шаблон:Машинне навчання

Блок вічкової ДКЧП з входовим, виходовим та забувальним вентилями. Виходові стрілки з вузла ct насправді позначають виходові стрілки з ct-1, крім єдиної стрілки зліва направо. Існує також і багато інших видів ДКЧП.[1]

До́вга короткоча́сна па́м'ять (ДКЧП, Шаблон:Lang-en) — це архітектура рекурентних нейронних мереж (РНМ, штучна нейронна мережа), запропонована 1997 року Шаблон:Нп та Юргеном Шмідгубером.[2] Як і більшість РНМ, мережа ДКЧП є універсальною в тому сенсі, що за достатньої кількості вузлів мережі вона може обчислювати будь-що, що може обчислювати звичайний комп'ютер, за умови, що вона має належну матрицю Шаблон:Нп, що може розглядатися як її програма. На відміну від традиційних РНМ, мережа ДКЧП добре підходить для навчання з досвіду з метою класифікації, обробки або передбачення часових рядів в умовах, коли між важливими подіями існують часові затримки невідомої тривалості. Відносна нечутливість до довжини прогалин дає ДКЧП перевагу в численних застосуваннях над альтернативними РНМ, прихованими марковськими моделями та іншими методами навчання послідовностей. Серед інших успіхів, ДКЧП досягла найкращих з відомих результатів у стисненні тексту природною мовою,[3] розпізнаванні несегментованого неперервного рукописного тексту,[4] і 2009 року виграла змагання з розпізнавання рукописного тексту Шаблон:Нп. Мережі ДКЧП також застосовувалися до автоматичного розпізнавання мовлення, і були головною складовою мережі, яка 2003 року досягла рекордного 17.7-відсоткового рівня пофонемних помилок на класичному наборі даних природного мовлення Шаблон:Нп.[5] Станом на 2016 рік основні технологічні компанії, включно з Google, Apple, Microsoft та Baidu, використовували мережі ДКЧП як основні складові нових продуктів.[6][7]

Архітектура

Мережа ДКЧП є штучною нейронною мережею, яка містить вузли ДКЧП замість, або на додачу, до інших вузлів мережі. Вузол ДКЧП — це вузол рекурентної нейронної мережі, який виділяється запам'ятовуванням значень для довгих, або коротких проміжків часу. Ключем до цієї здатності є те, що він не використовує функції активації в межах своїх рекурентних складових. Таким чином, значення, що зберігається, не розплющується ітеративно з плином часу, і член градієнту або вини (Шаблон:Lang-en) не має схильності розмиватися, коли для його тренування застосовується зворотне поширення в часі.

Вузли ДКЧП часто втілюють у «блоках» (Шаблон:Lang-en), які містять декілька вузлів ДКЧП. Така конструкція є типовою для «глибоких» багатошарових нейронних мереж, і сприяє реалізаціям на паралельному апаратному забезпеченні. В наведених нижче рівняннях кожна змінна курсивом у нижньому регістрі представляє вектор, що має розмір, який дорівнює числу вузлів ДКЧП у блоці.

Блоки ДКЧП містять три або чотири «вентилі» (Шаблон:Lang-en), які вони використовують для керування плином інформації до або з їхньої пам'яті. Ці вентилі реалізують із застосуванням логістичної функції для обчислення значень між 0 та 1. Для часткового дозволяння або заборони плину інформації до або з цієї пам'яті застосовується множення на це значення. Наприклад, «входовий вентиль» (Шаблон:Lang-en) керує мірою, до якої нове значення входить до пам'яті. «Забувальний вентиль» (Шаблон:Lang-en) керує мірою, до якої значення залишається в пам'яті. А «виходовий вентиль» (Шаблон:Lang-en) керує мірою, до якої значення в пам'яті використовується для обчислення активування виходу блоку. (В деяких втіленнях входовий та забувальний вентилі об'єднують в один. Ідея їхнього об'єднання полягає в тому, що час забувати настає тоді, коли з'являється нове значення, варте запам'ятовування.)

Єдині ваги, що є в блоці ДКЧП (W та U), використовуються для спрямовування дії вентилів. Ці ваги застосовуються між значеннями, які надходять до блоку (включно з входовим вектором xt та виходом з попереднього моменту часу ht1) та кожним із вентилів. Отже, блок ДКЧП визначає, яким чином підтримувати свою пам'ять як функцію від цих значень, і тренування ваг блока ДКЧП спричиняє його навчання такої функції, яка мінімізує втрати. Блоки ДКЧП зазвичай тренують за допомогою зворотного поширення в часі.

Традиційна ДКЧП

Традиційна ДКЧП із забувальними вузлами.[2][8] c0=0 і h0=0. позначає добуток Адамара (поелементний добуток).

ft=σg(Wfxt+Ufht1+bf)it=σg(Wixt+Uiht1+bi)ot=σg(Woxt+Uoht1+bo)ct=ftct1+itσc(Wcxt+Ucht1+bc)ht=otσh(ct)

Змінні

  • xt: входовий вектор
  • ht: виходовий вектор
  • ct: вектор стану комірки
  • W, U і b: матриці та вектор параметрів (W від Шаблон:Lang-en, вага, U від Шаблон:Lang-en?, уточнення, b від Шаблон:Lang-en?, упередження)
  • ft, it і ot: вектори вентилів
    • ft: Вектор забувального вентиля. Вага пам'ятання старої інформації.
    • it: Вектор входового вентиля. Вага отримання нової інформації.
    • ot: Вектор виходового вентиля. Кандидатність на вихід.

Функції активації

Вічкова ДКЧП

Вічкова ДКЧП із забувальними вентилями.[9][10] ht1 не застосовується, натомість у більшості місць застосовується ct1.

ft=σg(Wfxt+Ufct1+bf)it=σg(Wixt+Uict1+bi)ot=σg(Woxt+Uoct1+bo)ct=ftct1+itσc(Wcxt+bc)ht=otσh(ct)

Згорткова ДКЧП

Згорткова ДКЧП.[11] * позначає оператор згортки.

ft=σg(Wf*xt+Uf*ht1+Vfct1+bf)it=σg(Wi*xt+Ui*ht1+Vict1+bi)ot=σg(Wo*xt+Uo*ht1+Voct1+bo)ct=ftct1+itσc(Wc*xt+Uc*ht1+bc)ht=otσh(ct)

Тренування

Для мінімізації загальної похибки ДКЧП на тренувальних послідовностях може застосовуватися ітеративний градієнтний спуск, такий як зворотне поширення в часі, для зміни кожного вагового коефіцієнту пропорційно до його похідної по відношенню до похибки. Основною проблемою з градієнтним спуском для стандартних РНМ є те, що градієнти похибок зникають експоненційно швидко з розміром часової затримки між важливими подіями, як це було вперше з'ясовано 1991 року.[12][13] Проте у блоках ДКЧП, коли значення похибки зворотно поширюються з виходу, похибка виявляється в пастці в частині пам'яті блоку. Це називають «каруселлю похибки» (Шаблон:Lang-en), яка постійно подає похибку назад до кожного з вентилів, поки вони не стають натренованими відсікати це значення. Таким чином, регулярне зворотне поширення є дієвим при тренуванні блоку ДКЧП запам'ятовувати значення для дуже довгих тривалостей.

ДКЧП може також тренуватися поєднанням штучної еволюції для вагових коефіцієнтів прихованих вузлів, і псевдообернення або методу опорних векторів для вагових коефіцієнтів виходових вузлів.[14] У застосуваннях навчання з підкріпленням ДКЧП може тренуватися методами градієнту стратегії, еволюційними стратегіями або генетичними алгоритмами.

Застосування

Застосування ДКЧП включають:

Див. також

Шаблон:Div col

Шаблон:Div col end

Примітки

Шаблон:Примітки

Посилання

Шаблон:Диференційовні обчислення

  1. Шаблон:Cite arXiv Шаблон:Ref-en
  2. 2,0 2,1 Шаблон:Cite journal Шаблон:Ref-en
  3. Шаблон:Cite web Шаблон:Ref-en
  4. A. Graves, M. Liwicki, S. Fernandez, R. Bertolami, H. Bunke, J. Schmidhuber. A Novel Connectionist System for Improved Unconstrained Handwriting Recognition. IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 31, no. 5, 2009. Шаблон:Ref-en
  5. 5,0 5,1 Шаблон:Cite journal Шаблон:Ref-en
  6. Шаблон:Cite web Шаблон:Ref-en
  7. Шаблон:Cite web Шаблон:Ref-en
  8. Шаблон:Cite journal Шаблон:Ref-en
  9. 9,0 9,1 9,2 Шаблон:Cite journal Шаблон:Ref-en
  10. 10,0 10,1 10,2 Шаблон:Cite journal Шаблон:Ref-en
  11. Шаблон:Cite journal Шаблон:Ref-en
  12. S. Hochreiter. Untersuchungen zu dynamischen neuronalen Netzen. Diploma thesis, Institut f. Informatik, Technische Univ. Munich, 1991. Шаблон:Ref-de
  13. S. Hochreiter, Y. Bengio, P. Frasconi, and J. Schmidhuber. Gradient flow in recurrent nets: the difficulty of learning long-term dependencies. In S. C. Kremer and J. F. Kolen, editors, A Field Guide to Dynamical Recurrent Neural Networks. IEEE Press, 2001. Шаблон:Ref-en
  14. Шаблон:Cite journal Шаблон:Ref-en
  15. H. Mayer, F. Gomez, D. Wierstra, I. Nagy, A. Knoll, and J. Schmidhuber. A System for Robotic Heart Surgery that Learns to Tie Knots Using Recurrent Neural Networks. Advanced Robotics, 22/13–14, pp. 1521–1537, 2008. Шаблон:Ref-en
  16. J. Schmidhuber and D. Wierstra and F. J. Gomez. Evolino: Hybrid Neuroevolution / Optimal Linear Search for Sequence Learning. Proceedings of the 19th International Joint Conference on Artificial Intelligence (IJCAI), Edinburgh, pp. 853–858, 2005. Шаблон:Ref-en
  17. Шаблон:Cite journal Шаблон:Ref-en
  18. S. Fernandez, A. Graves, J. Schmidhuber. An application of recurrent neural networks to discriminative keyword spotting. Intl. Conf. on Artificial Neural Networks ICANN'07, 2007. Шаблон:Ref-en
  19. D. Eck and J. Schmidhuber. Learning The Long-Term Structure of the Blues. In J. Dorronsoro, ed., Proceedings of Int. Conf. on Artificial Neural Networks ICANN'02, Madrid, pages 284–289, Springer, Berlin, 2002. Шаблон:Ref-en
  20. Шаблон:Cite journal Шаблон:Ref-en
  21. Шаблон:Cite journal Шаблон:Ref-en
  22. A. Graves, J. Schmidhuber. Offline Handwriting Recognition with Multidimensional Recurrent Neural Networks. Advances in Neural Information Processing Systems 22, NIPS'22, pp 545–552, Vancouver, MIT Press, 2009. Шаблон:Ref-en
  23. A. Graves, S. Fernandez,M. Liwicki, H. Bunke, J. Schmidhuber. Unconstrained online handwriting recognition with recurrent neural networks. Advances in Neural Information Processing Systems 21, NIPS'21, pp 577–584, 2008, MIT Press, Cambridge, MA, 2008. Шаблон:Ref-en
  24. M. Baccouche, F. Mamalet, C Wolf, C. Garcia, A. Baskurt. Sequential Deep Learning for Human Action Recognition. 2nd International Workshop on Human Behavior Understanding (HBU), A.A. Salah, B. Lepri ed. Amsterdam, Netherlands. pp. 29–39. Lecture Notes in Computer Science 7065. Springer. 2011 Шаблон:Ref-en
  25. Шаблон:Cite journal Шаблон:Ref-en