حافظه طولانی کوتاه مدت

از ویکی‌پدیا، دانشنامهٔ آزاد
یک بلوک حافظه طولانی کوتاه-مدت

حافظه طولانی کوتاه مدت ( Long short-term memory یا به اختصار LSTM) یک معماری شبکه عصبی بازگشتی است که در سال ۱۹۹۷ میلادی توسط سپ هوخرایتر و یورگن اشمیدهوبر ارائه شد[۱]، و بعداً در سال ۲۰۰۰ میلادی توسط فیلیکس ژرس و دیگران بهبود داده شد.[۲][۳]

در شبکه عصبی بازگشتی برخلاف شبکه عصبی پیشخور، ورودی می‌تواند به صورت دنباله (مثل صوت یا ویدیو) باشد. این ویژگی باعث شده شبکه‌های عصبی بازگشتی برای پردازش داده‌های زمانی بسیار مناسب باشند زیرا الگوها در داده‌های سری زمانی می‌توانند در فواصل مختلف واقع شوند. برای مثال، شبکه LSTM در حوزه‌هایی همچون تشخیص دست خط[۴]، ترجمه ماشینی[۵][۶]، تشخیص گفتار[۷][۸]، کنترل ربات‌ها[۹] [۱۰] و بازی‌های ویدیویی[۱۱][۱۲] قابل استفاده است.

یک بلوک LSTM به طور کلی از وزن‌های محتوای سلول(دروازه ورودی(دروازه خروجی() و دروازه فراموشی() تشکیل شده است.[۱۳][۱۴] محتوای سلول می‌تواند در بازه زمانی طولانی محتوای خود راه حفظ کند و در واقع اطلاعات پیشین را به خاطر بسپارد. دروازه‌ها نیز بردارهایی با مقادیر بین 0 و 1 هستند که چگونگی پیشروی اطلاعات قدیمی و اضافه شدن اطلاعات جدید را مشخص می‌کنند. به طور کلی 1 به معنای عبور و 0 به معنای حذف اطلاعات است. دروازه ورودی مشخص می‌کند چه بخش‌هایی از داده ورودی و به چه مقدار به محتوای سلول اضافه شوند. دروازه فراموشی مشخص می‌کند که چه بخش‌هایی از محتوای سلول از آن حذف شوند. دروازه خروجی نیز مشخص می‌کند محتوای وضعیت مخفی() حاوی چه بخشی از محتوای سلول باشد.

ایده[ویرایش]

یکی از مشکلات اصلی شبکه‌های عصبی بازگشتی، مشتق ناپدیدشونده یا vanishing gradient problem و مشتق انفجاری یا exploding gradient است. در بلوک LSTM به منظور حل این دو مشکل، راه‌هایی برای انتقال اطلاعات مهم پیشین در هنگام پیشروی ایجاد شده‌است. این مهم به طور کلی از طریق ضرب بردارهایی تحت عنوان دروازه، در ورودی‌های بلوک صورت می‌پذیرد.[۱۵]

انواع[ویرایش]

معماری پایه[ویرایش]

معادلات مربوط به پیشروی (forward pass) در یک بلوک LSTM عبارتند از:[۱][۱۴]

  • عملگر نشان دهنده ضرب هادامارد است.

متغیرها[ویرایش]

  • : بردار ورودی
  • : بردار دروازه‌ی
  • : بردار سلول
  • : بردار مخفی سلول (با عنوان خروجی سلول نیز شناخته می‌شود.)
  • ، و : وزن‌ها و بایاس‌های مدل که در پروسه‌ی یادگیری، بهینه می‌شوند.
  • : بردارهای دروازه
    • : بردار دروازه فراموشی. وزن به یادداری اطلاعات قدیمی.
    • : بردار دروازه ورودی. وزن اندوختن اطلاعات جدید.
    • : بردار دروازه خروجی. کاندید خروجی.

بالانویس‌های و به ترتیب نشان‌دهنده بعد بردار ورودی و بعد بردار مخفی سلول هستند.

توابع فعال‌سازی[ویرایش]

  • : تابع فعال‌سازی دروازه‌ها(در LSTM پایه تابع سیگموئید است.)
  • : تابع فعال‌سازی وضعیت سلول(در LSTM پایه تانژانت هذلولی است.)
  • : تابع فعال‌سازی تابع اصلی یک تانژانت هذلولی است اما ال‌اس‌تی‌ام روزنه‌ای .

معماری روزنه‌ای[ویرایش]

بلوک معماری روزنه‌ای

بلوک LSTM با اتصالات روزنه‌ای. استفاده نمی‌شود، در عوض از در بیش تر جاها استفاده می‌شود.[۱۶][۱۷]

معماری پیچشی[۱۸][ویرایش]

در مسایل حاوی spatial data همچون تصویر به عنوان ورودی، معماری‌های کاملا متصل(Fully Connected) عملکرد خوبی دارند، اما از لحاظ محاسباتی نابهینه هستند. معماری پیچشی با جایگزینی عملگر پیچش به جای ضرب ماتریسی، سعی در حذف این نابهینگی دارد.

  • * نشان‌دهنده‌ی عملگر پیچش(Convolution) است.

یادگیری مدل[ویرایش]

یادگیری در مدل LSTM را می‌تواند همچون دیگر مدل‌های شبکه عصبی بازگشتی، با استفاده از الگوریتم گرادیان کاهشی و برگشت در زمان یا Backpropagation through time انجام شود.

همانطور که گفته شد، یکی از مهمترین مشکلات معماری اولیه RNN ها مسئله مشتق ناپدیدشونده است. با افزایش طول ورودی شبکات RNN و در فرایند برگشت در زمان به توان‌های بالای ماتریس وزن‌ها بر می‌خوریم که نهایتا منجر به مشکل مشتق انفجاری یا ناپدیدشونده می‌شود. مشکل مشتق انفجاری بوسیله روش‌هایی همچون Gradient Clipping قابل حل است. بلوک LSTM با استفاده از دروازه‌ها امکان انتشار اطلاعات از لایه‌های اول و برگشت مشتق از لایه‌های آخر را فراهم می‌کند.[۱]

جستارهای وابسته[ویرایش]

منابع[ویرایش]

  1. ۱٫۰ ۱٫۱ ۱٫۲ Sepp Hochreiter; Jürgen Schmidhuber (1997). "Long short-term memory". Neural Computation. 9 (8): 1735–1780. doi:10.1162/neco.1997.9.8.1735. PMID 9377276. S2CID 1915014.
  2. Felix A. Gers; Jürgen Schmidhuber; Fred Cummins (2000). "Learning to Forget: Continual Prediction with LSTM". Neural Computation. 12 (10): 2451–2471. doi:10.1162/089976600300015015.
  3. Klaus Greff, Rupesh Kumar Srivastava, Jan Koutník, Bas R. Steunebrink, Jürgen Schmidhuber. "LSTM: A Search Space Odyssey". arXiv:1503.04069.{{cite arxiv}}: نگهداری یادکرد:استفاده از پارامتر نویسندگان (link)
  4. Graves, A.; Liwicki, M.; Fernández, S.; Bertolami, R.; Bunke, H.; Schmidhuber, J. (May 2009). "A Novel Connectionist System for 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. ISSN 0162-8828. PMID 19299860. S2CID 14635907.
  5. Wu, Yonghui; Schuster, Mike; Chen, Zhifeng; Le, Quoc V.; Norouzi, Mohammad; Macherey, Wolfgang; Krikun, Maxim; Cao, Yuan; Gao, Qin (2016-09-26). "Google's Neural Machine Translation System: Bridging the Gap between Human and Machine Translation". arXiv:1609.08144 [cs.CL].
  6. Ong, Thuy (4 August 2017). "Facebook's translations are now powered completely by AI". www.allthingsdistributed.com. Retrieved 2019-02-15.
  7. Sak, Hasim; Senior, Andrew; Beaufays, Francoise (2014). "Long Short-Term Memory recurrent neural network architectures for large scale acoustic modeling" (PDF). Archived from the original (PDF) on 2018-04-24.
  8. Li, Xiangang; Wu, Xihong (2014-10-15). "Constructing Long Short-Term Memory based Deep Recurrent Neural Networks for Large Vocabulary Speech Recognition". arXiv:1410.4281 [cs.CL].
  9. "Learning Dexterity". OpenAI Blog. July 30, 2018. Archived from the original on 17 February 2019. Retrieved 2019-01-15.
  10. Mayer, H.; Gomez, F.; Wierstra, D.; Nagy, I.; Knoll, A.; Schmidhuber, J. (October 2006). A System for Robotic Heart Surgery that Learns to Tie Knots Using Recurrent Neural Networks. 2006 IEEE/RSJ International Conference on Intelligent Robots and Systems. pp. 543–548. CiteSeerX 10.1.1.218.3399. doi:10.1109/IROS.2006.282190. ISBN 978-1-4244-0258-8. S2CID 12284900.
  11. Rodriguez, Jesus (July 2, 2018). "The Science Behind OpenAI Five that just Produced One of the Greatest Breakthrough in the History of AI". Towards Data Science. Archived from the original on 2019-12-26. Retrieved 2019-01-15.
  12. Stanford, Stacy (January 25, 2019). "DeepMind's AI, AlphaStar Showcases Significant Progress Towards AGI". Medium ML Memoirs. Retrieved 2019-01-15.
  13. Hochreiter, Sepp; Schmidhuber, Juergen (1996). LSTM can solve hard long time lag problems. Advances in Neural Information Processing Systems.
  14. ۱۴٫۰ ۱۴٫۱ Felix A. Gers; Jürgen Schmidhuber; Fred Cummins (2000). "Learning to Forget: Continual Prediction with LSTM". Neural Computation. 12 (10): 2451–2471. CiteSeerX 10.1.1.55.5709. doi:10.1162/089976600300015015. PMID 11032042. S2CID 11598600.
  15. Hochreiter, Sepp; Schmidhuber, Juergen (1996). LSTM can solve hard long time lag problems. Advances in Neural Information Processing Systems.
  16. Gers, F. A.; Schmidhuber, J. (2001). "LSTM Recurrent Networks Learn Simple Context Free and Context Sensitive Languages" (PDF). IEEE Transactions on Neural Networks. 12 (6): 1333–1340. doi:10.1109/72.963769. PMID 18249962. Archived from the original (PDF) on 10 July 2020. Retrieved 1 February 2023.
  17. Gers, F.; Schraudolph, N.; Schmidhuber, J. (2002). "Learning precise timing with LSTM recurrent networks" (PDF). Journal of Machine Learning Research. 3: 115–143.
  18. Xingjian Shi; Zhourong Chen; Hao Wang; Dit-Yan Yeung; Wai-kin Wong; Wang-chun Woo (2015). "Convolutional LSTM Network: A Machine Learning Approach for Precipitation Nowcasting". Proceedings of the 28th International Conference on Neural Information Processing Systems: 802–810.

پیوند به بیرون[ویرایش]