شبکه عصبی بازگشتی (Recurrent Neural Networks)

شبکه عصبی بازگشتی (RNN) که به آن شبکه عصبی مکرر نیز گفته می شود، نوعی از شبکه عصبی مصنوعی است که در تشخیص گفتار، پردازش زبان طبیعی (NLP) و همچنین در پردازش داده های ترتیبی (Sequential data) استفاده می شود. بسیاری از شبکه های عمیق مانند CNN شبکه های پیش خور (Feed Forward) هستند یعنی سیگنال در این شبکه ها فقط در یک جهت از لایه ورودی، به لایه های مخفی و سپس به لایه خروجی حرکت می کند و داده های قبلی به حافظه سپرده نمی شوند. اما شبکه های عصبی بازگشتی (RNN) یک لایه بازخورد دارند که در آن خروجی شبکه به همراه ورودی بعدی، به شبکه بازگرداننده می شود. RNN می تواند به علت داشتن حافظه داخلی، ورودی قبلی خود را به خاطر بسپارد و از این حافظه برای پردازش دنباله ایی از ورودی ها استفاده کند. به بیان ساده، شبکه‌های عصبی بازگشتی شامل یک حلقه بازگشتی هستند که موجب می شود اطلاعاتی را که از لحظات قبلی بدست آورده ایم از بین نروند و در شبکه باقی بمانند.


همانطور که در شکل می بینید، (X(0 را از دنباله ورودی می گیرد، خروجی (h(0 به همراه (X(1، ورودی مرحله بعدی است . در مرحله بعد، خروجی (h(1 و (X(2 ورودی مرحله بعد است. به این ترتیب، شبکه در هنگام آموزش قادر به یادآوری ورودی های قبلی خواهد بود.

کاربردهای شبکه عصبی بازگشتی:

  • شرح نویسی عکس (Image Captioning): شبکه عصبی بازگشتی با تحلیل حالت کنونی عکس، برای شرح نویسی عکس به کار می رود.
  • پیش بینی سری های زمانی (Time Series Prediction): هر مسئله سری زمانی مانند پیش بینی قیمت یک سهام در یک ماه خاص، با RNN قابل انجام است.
  • پردازش زبان طبیعی(Natural Language Processing): کاوش متن و تحلیل احساسات می تواند با استفاده از RNN انجام شود.
  • ترجمه ماشینی (Machine Translation): شبکه RNN می تواند ورودی خود را از یک زبان دریافت و آن را به عنوان خروجی به زبان دیگری ترجمه کند.

انواع شبکه عصبی بازگشتی:

به طور کلی 4 نوع شبکه عصبی بازگشتی داریم:

یک به یک (one to one) : این نوع شبکه عصبی به عنوان شبکه عصبی وانیلی نیز شناخته می شود و برای مسائل یادگیری ماشین که یک ورودی و یک خروجی دارند به کار می رود.


یک به چند (one to many): این شبکه عصبی بازگشتی دارای یک ورودی و چند خروجی است. یک نمونه آن، شرح نویسی عکس است.


چند به یک (many to one): این نوع از RNN ، دنباله ایی از ورودی ها را می گیرد و یک خروجی تولید می کند. تحلیل احساسات مثال خوبی از این نوع شبکه است که یک جمله را به عنوان ورودی می گیرد و آن را با احساس مثبت یا منفی طبقه بندی می کند.


چند به چند (many to many): دنباله ایی از ورودی ها را می گیرد و دنباله ایی از خروجی ها را تولید می کند. ترجمه ماشینی نمونه ایی از این نوع شبکه است.

منابع : سایت https://towardsdatascience.com/ و https://www.simplilearn.com/