برای دیدن دوره های ما کلیک کنید...

RNN

معماری و هوش مصنوعی

RNN

RNN یا شبکه عصبی بازگشتی (RNN)( Recurrent neural network) بخش عظیمی از داده ها همانند گفتار (speech), داده های مبتنی بر زمان یا سری های زمانی (time series) (مثل داده های پیش بینی هوا داده های مالی و …) داده های دریافتی از سنسورها, ویدئوها, متن ها و… ذاتا به صورت سریال/سری( sequential) اند. در حقیقت شبکه های عصبی قدیمی ، توانایی پرداختن به ورودی های بعدی براساس موارد قبلی را ندارند. برای مثال ، یک شبکه عصبی معمولی نمی تواند بر اساس دنباله های قبلی ، کلمه بعدی را در دنباله پیش بینی کند شبکه های عصبی بازگشتی (یا به اختصارRNN) خانواده ای از شبکه های عصبی اند که بطور ویژه جهت پردازش داده های سری(یا دنباله ها) طراحی شده اند.

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

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

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

  • شرح نویسی عکس (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): دنباله ایی از ورودی ها را می گیرد و دنباله ایی از خروجی ها را تولید می کند. ترجمه ماشینی نمونه ایی از این نوع شبکه است.

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

  1. شبکه عصبی بازگشتی می‌تواند دنباله داده‌ها را به نحوی مدل کند که هر نمونه، وابسته به نمونه‌های قبلی فرض شود.
  2. شبکه عصبی بازگشتی حتی با لایه‌های کانولوشنی برای گسترش همسایگی موثر پیکسلی مورد استفاده قرار می‌گیرد.

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

  1. مشکل محوشوندگی تدریجی (Gradient vanishing) و انفجار (exploding).
  2. آموزش این نوع شبکه کار بسیار دشواری است.
  3. اگر از tanh یا relu به عنوان یک تابع فعال سازی استفاده کند، نمی‌تواند دنباله‌های بسیار طولانی را پردازش کند.

برای مثال در معماری:

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

ارسال دیدگاه

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *