آشنایی با شبکه‌های LSTM

انسان قادر است در هر لحظه‌ای اطلاعات گذشته‌ی خود را به یاد بیاورد اما شبکه‌های عصبی سنتی این طور نیستند. فرض کنید می‌خواهید فیلمی را به لحاظ اینکه در هر نقطه از فیلم چه رویدادی اتفاق می‌افتد، طبقه‌بندی کنید. شبکه‌های عصبی سنتی نمی‌توانند به این مسئله پاسخ دهند؛ اما شبکه‌های عصبی بازگشتی برای این موارد کاربرد دارند (در مورد شبکه‌های عصبی بازگشتی می‌توانید در این مقاله بخوانید). شبکه‌های LSTM نوعی از شبکه‌های بازگشتی (RNN) هستند که قادر به یادگیری روابط طولانی مدت (مانند آنچه که در بازارهای سهام و بورس رخ می‌دهد) هستند.

 

مقدمه

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

 

LSTM مخفف عبارت Long Short-Term Memory

این نوع شبکه می‌تواند روابط میان داده‌های توالی‌دار (Sequential) را یاد گرفته و هنگامی که با یک توالی جدید از داده‌ها روبه‌رو می‌شود، مقدار بعدی را پیش‌بینی کند. برای مثال، می‌توان از شبکه LSTM در پیش‌بینی کلمه در یک جمله بر اساس کلمات قبلی استفاده نمود. یک مثال دیگر، داده‌های مربوط به بورس و سهام است. همانطور که می‌دانید عملکرد موفق در بازار بورس و سهام نیازمند پیش‌بینی صحیح از مقدار بعدی قیمت سهام در روز یا روزهای آتی است. بنابراین، با استفاده از LSTM می‌توان روابط و الگو‌های میان قیمت‌های یک سهام در روزهای قبل را درک، و با توجه به روند قبلی قیمت و سهام و مقدار فعلی آن، روند صعودی یا نزولی آن را پیش‌بینی کرد.

تفاوت اصلی میان شبکه‌های RNN سنتی و LSTM در این است که وقتی شکاف معنایی میان داده‌های قبلی و داده‌ای که می‌خواهیم آن را پیش‌بنی کنیم زیاد باشد، شبکه‌های RNN عملکرد ضعیفی دارند. این در حالی است که LSTMها به دلیل تفاوت ساختاری قادر به یادگیری روابط و وابستگی‌های طولانی مدت بوده و در چنین شرایطی عملکرد بهتری نسبت به RNNهای سنتی خواهند داشت. این موضوع به دلیل پدیده‌ی ناپدید شدن گرادیان (Vanishing Gradient) رخ می‌دهد.

ماژول تکرار شده در RNN استاندارد شامل یک لایه واحد است.
ماژول تکرار شده در RNN استاندارد شامل یک لایه واحد است.

 

برای مثال فرض کنید می‌خواهیم آخرین کلمه‌ را در جمله‌ی”I grew up in France… I speak fluent French.” پیش‌بینی کنیم. کلمات قبلی نشان می‌دهد که احتمالا نام یک زبان را باید بیاوریم اما چه زبانی؟

برای فهمیدن آن باید به جملات قبلی مراجعه کنیم تا به کلمه‌ی “France” برسیم. شکاف بزرگی بین کلمه‌ای که می‌خواهیم پیش‌بینی کنیم و کلمه‌ی “France” می‌‌باشد. هنگامیکه این شکاف‌ها بزرگ باشد RNN‌ها قادر به یادگیری اتصال این اطلاعات نیستند اما LSTM‌ها این مشکل را ندارند!

 

ماژول تکرار شونده در LSTM که 4 لایه درحال تعامل دارد.
ماژول تکرار شونده در LSTM که 4 لایه درحال تعامل دارد.

LSTM‌ها نیز ساختار زنجیره‌ای دارند اما ساختار ماژول تکرار شده‌ی آن‌ها متفاوت است. به جای داشتن یک لایه، 4 لایه شبکه عصبی دارند. همچنین، LSTMها دارای یک واحد به نام “سلول حافظه” می‌باشند که می‌تواند اطلاعات را تا زمان زیادی در خود نگه‌داری کند. یک سری از دروازه‌ها (Gate) نیز وجود دارند که زمان ورود، خروج و فراموش شدن اطلاعات از سلول را کنترل می‌کنند. این دروازه‌ها در واقع پدیده‌ی ناپدید شدن گرادیان را کنترل می‌کنند.

در تصویر فوق هر خط نمایانگر برداری است که مقداری را از خروجی هر node می‌گیرد و به بقیه‌ی ورودی‌ها می‌دهد. دایره‌های صورتی عملیات برداری را نشان می‌دهند مانند جمع برداری. مستطیل‌های زرد رنگ، جعبه هایی هستند که شبکه‌های عصبی را یاد گرفته‌اند. ادغام خطوط نشانه‌ی جمع شدن است.

خطوط انشعابی نشان دهنده‌ی کپی کردن و بردن کپی‌ها به مکان‌های دیگر می‌باشد. در این شکل، لایه‌ی سیگموییدی و عملگر ضرب در واقع نمایشگر دروازه‌های کنترل سلول حافظه هستند. لایه‌ی سیگموئیدی اعداد را بین 0 و 1 تولید می‌کند که بیانگر این است که چه مقدار مؤلفه باید از طریق آن‌ها بگذرد. عدد 0 به این معنی است که هیچ مؤلفه‌ای منتقل نشود درحالیکه عدد 1 بیان می‌کند همه‌ی مؤلفه‌ها باید عبور کنند. یک LSTM برای محافظت و کنترل وضعیت سلول 3 دروازه مطابق شکل فوق دارد.

برای پیاده‌سازی شبکه‌های LSTM نیازی به نوشتن کد از اول ندارید و به راحتی می‌توانید با استفاده از کتابخانه Tensorflow این شبکه را برای کاربردهای مختلف پیاده‌سازی کنید.

 

ارسال یک پاسخ

آدرس ایمیل شما منتشر نخواهد شد.