شبکه های حافظه طولانی کوتاه مدت (LSTM) چیست؟


شبکه LSTM) Long Short-Term Memory) یک نوع از شبکه ‌های عصبی بازگشتی (RNN) است، که برای پردازش داده‌های دنباله‌ ای استفاده می‌شود، این شبکه به عنوان یک واحد حافظه طولانی و کوتاه مدت عمل می‌ کند و به شبکه امکان میدهد تا اطلاعات را در طول زمان حفظ  کند و از آن استفاده کند و همچنین دارای سلول حافظه است که در هر مرحله زمانی، اطلاعات جدید را دریافت کرده و براساس اطلاعات قبلی خود، تصمیم می ‌گیرد کدام اطلاعات را حفظ کند و کدام را فراموش کند. 

این قابلیت به شبکه LSTM اجازه می ‌دهد تا با دقت بالاتر و قابلیت یادگیری بهتر، الگوهای پیچیده در داده‌های دنباله ‌ای را تشخیص داده و پردازش کند. از این شبکه به خصوص در حوزه تولید متن، ترجمه ماشینی، تشخیص گفتار، پرسش و پاسخ و سایر بخش‌ های هوش مصنوعی استفاده می ‌شود.



کاربردهای شبکه های حافظه طولانی کوتاه مدت (LSTM)



این شبکه به خاطر قابلیت ذخیره و حفظ اطلاعات در طول زمان، در بسیاری از صنایع و کاربردها مورد استفاده قرار می گیرد. در زیر به برخی از کاربردهای این شبکه اشاره کرده ایم:


  • پردازش زبان طبیعی: شبکه LSTM به خاطر توانایی تشخیص الگو و تفسیر ساختار جملات، در پردازش زبان طبیعی استفاده می شود. این شبکه مورد استفاده قرار می گیرد برای تولید جملات، تحلیل عواطف و همچنین تشخیص و ترجمه متن.


  • پردازش گفتار: با استفاده از این شبکه می توان گفتار را به صورت خودکار تحلیل کرده و فقط بخش های مورد نظر را استخراج کرد. این کاربرد در سامانه های تشخیص سخنگو، تحلیل گفتار بالینی و همچنین سامانه های پاسخ به سوالات صوتی استفاده می شود.


  • پیش بینی: با استفاده از ین شبکه، مي توان الگو هاي پيچيده را در داده های دنباله دار مانند سقوط قیمت ها، کشف کرده و با کمک آن رویداد های آینده را پيش بينى كرد.


  •  بازاریابی: این شبکه، قابليت يافتن الگو در داده های دستورالعمل موجود در بازار را دارد، که یا کمک آن میتوان به الگو های مفید دست یافت و روندی مناسب برای بازاریابی ها انجام داد.



شبکه های حافظه طولانی کوتاه مدت (LSTM)



تابع های مهم در شبکه های حافظه طولانی کوتاه مدت (LSTM)



تابع تانژانت هایپربولیک

در این تابع مقادیری که در شبکه هستند تعدیل میشوند. این تابع مقادیر را تا بازه منفی یک و مثبت ی پیش میبرد تا مقدار خروجی نیز تعادل پیدا کند.


تابع سیگموید (Sigmoid)

این تابع مانند تابع قبلی عمل میکند اما مقادیر را میان صفر و یک قرار میدهد، تا این قابلیت را ایجاد کند که در زمان بروزرسانی یا فراموشی داده از آن بهره ببریم.

    

   

نحوه عملکرد شبکه های حافظه طولانی کوتاه مدت (LSTM)



این شبکه بر اساس واحد های حافظه طولانی و کوتاه مدت در حوزه پردازش زبان طبیعی و ترجمه ماشینی بسیار موثر است. نحوه عملکرد این شبکه به صورت زیر میباشد:


1.دروازه فراموشی: این دروازه قابلیت تصمیم گیری درباره اطلاعات داده ها را بر عهده دارد که کدام یک از آنها ضبط یا فراموش شود. اطلاعات ورودی همراه با اطلاعات پنهان وارد این دروازه شده و از تابع sigmoid عبور میکند. هر چه مقدار تابع sigmoid به صفر نزدیکتر باشد اطلاعات باید فراموش شوند و هر چه این مقدار به عدد یک نزدیکتر باشد این اطلاعات باید حفظ شوند.


2.دروازه ورودی: این دروازه برای به روز رسانی اطلاعات ایجاد شده است، اطلاعات ورودی جدید  با اطلاعات پنهان بخش قبلی از تابع sigmoid عبور کرده و تابع خود تصمیم میگیرد که کدام اطلاعات حذف شده و کدام به روزرسانی شوند. 


علاوه بر این اطلاعات ورودی جدید به همراه اطلاعات پنهان با هم از تابع Tanh وارد شده، تا مقادیرشان بین منفی یک و مثبت یک قرار گیرند، در آخر خروجی دو تابع sigmoid و Tanh با یکدیگر ضرب شده تا تابع sigmoid تایید کند که چه مقداری از خروجی تابع Tanh باقی بماند.



3.سلول حافظه: اطلاعات خارج شده از دروازه فراموشی و مقدار سلول حافظه را میتوان به روز رسانی کرده تا مقدار حافظه سلول در دروازه فراموشی در نقطه (Pointwise Multiplication) ضرب شود.


سپس، مقدار سلول حافظه را با مقدار نزدیک به صفر خروجی دروازه فراموشی ضرب شده،  فراموش میشود. بعد از آن مقدار سلول حافظه با خروجی دروازه ورودی جمع (Pointwise Addition) می‌شود تا مقدار سلول حافظه با مقدارهای جدید که شبکه خود آن را تشخیص داده است به روزرسانی میشوند.



4.دروازه خروجی: در دروازه خروجی تصمیم گیری انجام میشود که اطلاعات پنهان بعدی چه مقداری داشته باشد. اطلاعات پنهان، اطلاعات ورودی های قبل را در خود حفظ میکند.


سپس اطلاعات ورودی جدید با اطلاعات پنهان بخش قبل، وارد تابع sigmoid شده و مقدار به روز رسانی شده سلول حافظه به تابع Tanh وارد میشود.

سپس خروجی این دو تابع با یکدیگر ضرب شده تا اطلاعات پنهان تصمیم بگیرد چه اطلاعاتی را با خود به قدم بعدی ببرد، در آخر سلول حافظه و اطلاعات پنهان جدید به بخش زمانی بعدی منتقل میشوند. 



نحوه عملکرد شبکه های حافظه طولانی کوتاه مدت (LSTM)



خلاصه مقاله 

 

شبکه عصبی LSTM، یک شبکه عصبی مصنوعی است که در یادگیری عمیق و هوش مصنوعی بکار رفته است. این شبکه برای کنترل ربات ها، پردازش داده متوالی، مراقبت های بهداشتی و... بکار میرود. تفاوت این شبکه با شبکه عصبی بازگشتی به این صورت است که، شبکه عصبی بازگشتی حافظه ذخیره اطلاعات را در بلند مدت و کوتاه مدت ندارد.