در درس قبلی در مورد شبکههای عصبی بازگشتی صحبت کردیم. این شبکهها به دلیل استفاده گسترده در صنعت، رشد زیادی داشتهاند و انواع مختلفی از آنها ایجاد شده است. در این درس به انواع معماریهای مشهورِ موجود در RNNها خواهیم پرداخت و کاربرد هر کدام را با هم مرور میکنیم.
در طراحی شبکههای عصبی بازگشتی (RNN)، انواع معماری زیر پرکاربرد هستند:
RNN یک به یک
این شبکهها به نوعی همان شبکههای عصبی ساده هستند و تفاوتی با آنها ندارند. به ازای یک نمونه ورودی (با ویژگیهای مختلف)، یک خروجی در هر لحظه تولید میشود.
RNN یک به چند
این شبکهها یک نمونه (بدون توالی) را گرفته و یک توالی خروجی را برمیگردانند. یکی از کاربردهای این شبکهها، تولید متن از روی تصویر است (image captioning) است. یک تصویر به عنوان ورودی (بدون توالی) به الگوریتم داده میشود و الگوریتم یک جمله که ترکیبی از کلمات متوالی هست را برمیگرداند.
RNN چند به یک
این دسته از شبکهها یک نمونه با توالی را گرفته و فقط یک خروجی (بدون توالی) برمیگردانند. برای مثال تشخیص احساس (sentiment analysis) بر روی دادههای متنی، نمونهای از کاربرد این شبکههاست. در این مثال یک جمله که توالیای از چند کلمه است به الگوریتم داده میشود و الگوریتم با مشاهدهی آخرین کلمه از آن جمله میتواند تشخیص دهد که این جمله مثبت است یا منفی.
RNN چند به چند
در این شبکهها یک توالی از یک نمونه به الگوریتم داده شده و الگوریتم بعد از دریافت آخرین عنصر، شروع به تولید توالی از یک نمونه در خروجی میکند. ساخت یک سیستم مترجم ماشینی یکی از کاربردهای این دسته از شبکههای RNN است. در این مثال یک جمله که ترکیبی از توالی کلمات در خود دارد به الگوریتم تزریق شده و الگوریتم با مشاهدهی آخرین کلمه، شروع به تولید جملهی ترجمه شده با توالی کلمات در زبان مقصد میکند.
RNN چند به چند (همزمان)
این مدل از طراحی RNN مانند مدل چند به چند قبلی است با این تفاوت که در هنگام دریافت توالیای از نمونهها، خروجی را ایجاد میکند. معمولاً این مدل طراحی در یادگیری ماشینِ بلادرنگ استفاده میشود. برای مثال تبدیل صوت به متن در لحظه، میتواند از نمونه کاربردهای این مدل طراحی شبکههای عصبی بازگشتی باشد. در این مثال توالی از قطعات صوتیِ گوینده به الگوریتم داده شده و الگوریتم به محض دریافت اولین قطعه، شروع به تبدیل صوت به توالیِ کلمات میکند و جملات ساخته شده را در خروجی نمایش میدهد.
معماریهای گفته در بالا از معماریهای پرکاربرد در مشهور در شبکههای عصبی بازگشتی بودند. در دروس آینده معماریهای بیشتری از RNN را خواهیم دید و کاربرد هر یک را بررسی خواهیم کرد.
- ۱ » یادگیری عمیق (Deep Learning) چیست؟
- ۲ » تفاوت یادگیری عمیق (Deep Learning) با یادگیری ماشین کلاسیک
- ۳ » تفاوت شبکههای عصبی (Neural Networks) با یادگیری عمیق (Deep Learning) چیست؟
- ۴ » مشکل محوشدگی گرادیان (Gradient Vanishing) در شبکههای عصبی عمیق
- ۵ » مشکل انفجار گرادیان (Exploding Gradients) در شبکههای عصبی عمیق
- ۶ » توابع فعالسازی (Activation Functions) در شبکههای عصبی عمیق
- ۷ » شبکه عصبی پیچشی (Convolutional Neural Network) در یادگیری عمیق
- ۸ » شبکه عصبی بازگشتی (Recurrent Neural Network)
- ۹ » انواع شبکههای عصبی بازگشتی (RNN) و کاربرد آنها
- ۱۰ » شبکه عصبی بازگشتی با حافظهی طولانی کوتاه مدت (LSTM)
- ۱۱ » شبکه عصبی واحد بازگشتی دروازهدار (GRU)
- ۱۲ » شبکههای عصبی عمیق توالی به توالی (Seq2Seq)