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

از testwiki
پرش به ناوبری پرش به جستجو
یک بلوک حافظه طولانی کوتاه-مدت

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

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

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

ایده

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

انواع

معماری پایه

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

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)

متغیرها

  • xtd: بردار ورودی
  • ft(0,1)h: بردار دروازه‌ی
  • cth: بردار سلول
  • ht(1,1)h: بردار مخفی سلول (با عنوان خروجی سلول نیز شناخته می‌شود.)
  • Wh×d، Uh×h و bh: وزن‌ها و بایاس‌های مدل که در پروسه‌ی یادگیری، بهینه می‌شوند.
  • ft,it,ot(0,1)h: بردارهای دروازه
    • ft: بردار دروازه فراموشی. وزن به یادداری اطلاعات قدیمی.
    • it: بردار دروازه ورودی. وزن اندوختن اطلاعات جدید.
    • ot: بردار دروازه خروجی. کاندید خروجی.

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

توابع فعال‌سازی

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

معماری روزنه‌ای

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

بلوک LSTM با اتصالات روزنه‌ای. 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)

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

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

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)

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

یادگیری مدل

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

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

جستارهای وابسته

منابع

الگو:پانویس

پیوند به بیرون