شبکه عصبی بازگشتی چیست؟
شبکه عصبی بازگشتی (RNN: Recurrent Neural Network) یکی از انواع شبکههای عصبی مصنوعی است که برای پردازش دادههای سری زمانی و دادههایی که وابستگی به دادههای قبلی دارند، طراحی شده است.
- حوزه های کاربردی شبکه عصبی بازگشتی
- انواع شبکه عصبی بازگشتی
- شبکه عصبی بازگشتی ساده RNN
- شبکه عصبی بازگشتی GRU
- شبکه عصبی بازگشتی LSTM
- شبکه عصبی بازگشتی Highway RNN
- شبکه عصبی بازگشتی BRNN
- شبکه LSTM-CNN
در این شبکه، علاوه بر لایههای قابل مشاهده، یک حالت پنهان (Hidden State) نیز وجود دارد که اطلاعات قبلی را در خود نگه میدارد. این حالت پنهان با گذشت زمان به شکل بازگشتی به لایه اصلی بازمیگردد و اطلاعات جدید را با اطلاعات قبلی ترکیب میکند.
دلیل ظهور شبکههای عصبی بازگشتی، این است که در بسیاری از مسائل پردازش زبان طبیعی، تشخیص الگو و پردازش سیگنالهای سری زمانی نیازمند دسترسی به دادههای وابسته به دادههای قبلی هستیم. به عنوان مثال، در تشخیص کلمه بعدی در یک جمله، باید به کلمات قبلی نیز توجه کرد.
حوزه های کاربردی شبکه عصبی بازگشتی
بنابراین، شبکههای عصبی بازگشتی به دلیل قابلیت پردازش دادههای سری زمانی و دادههای وابسته به دادههای قبلی، در بسیاری از مسائل پردازش زبان طبیعی، تشخیص الگو و پردازش سیگنالهای سری زمانی به خوبی عملکرد میکنند و به دلیل قابلیت بازگشتی حالت پنهان، این شبکهها میتوانند اطلاعات طولانی مدت را نیز در خود نگه دارند.
شبکههای عصبی بازگشتی در بسیاری از حوزههای کاربردی مورد استفاده قرار میگیرند. در ادامه، برخی از حوزههای کاربردی شبکههای عصبی بازگشتی به همراه مثالهایی برای هر حوزه ذکر شده است:
- پردازش زبان طبیعی: تشخیص خودکار اسم افراد و محلها در یک متن
- تبدیل گفتار به متن: تبدیل مستندات صوتی به متن
- ترجمه ماشینی: ترجمه خودکار متون به زبانهای دیگر
- تشخیص ویدیو: تشخیص حرکت اشیاء و تشخیص حرکت چهره در ویدیو
- تحلیل بازار سرمایه: پیشبینی قیمتهای سهام و تحلیل بازار سرمایه
انواع شبکه های عصبی بازگشتی
شبکههای عصبی بازگشتی (RNN) انواع مختلفی دارند که هر کدام برای کاربردهای مختلف طراحی شدهاند. در ادامه، به توضیح انواع مختلف شبکههای عصبی بازگشتی، مزایا و معایب هر کدام پرداخته میشود:
شبکههای عصبی بازگشتی ساده (Simple RNN):
این نوع شبکه بازگشتی، سادهترین و پایهایترین شبکه بازگشتی است. شبکه RNN یک نوع از شبکههای عصبی هستند که هر نود یا لایه از شبکه، علاوه بر ورودیهایی که به آن داده میشود، ورودی قبلی را نیز به عنوان ورودی دریافت میکند. این ویژگی باعث میشود که شبکه بتواند اطلاعاتی را که در دادههای قبلی به دست آورده است، در پردازش داده جدید مورد استفاده قرار دهد.
در این شبکه، دادههای ورودی به صورت توالی به شبکه داده میشوند و خروجی برای هر گام زمانی، به عنوان ورودی برای گام بعدی استفاده میشود. مزیت این شبکه، سادگی طراحی و پیادهسازی آن است، اما از جمله مشکلاتی که در شبکههای RNN ممکن است به وجود آید، مشکل از بین رفتن اطلاعات در دنبالههای طولانی است. به عبارت دیگر، اطلاعاتی که در دنبالههای اولیه به دست آمده است، در دنبالههای بعدی به صورت کامل حفظ نمیشوند و به تدریج از بین میروند. برای حل این مشکل، شبکههای GRU,LSTM پیشنهاد شد که قابلیت حفظ اطلاعات در دنبالههای طولانیتر را دارند.
شبکههای عصبی بازگشتی GRU:
شبکههای عصبی واحد بازگشتی گیتی GRU (Gated Recurrent Unit)، یک نوع از شبکههای عصبی بازگشتی هستند که برای پردازش دادههای دنبالهای مانند متن، صوت و ویدئو استفاده میشوند. GRU همانند LSTM، یک روش برای حل مشکل از بین رفتن اطلاعات در دنبالههای طولانیتر است.
در شبکههای GRU، گیتها برای کنترل جریان اطلاعات در شبکه استفاده میشوند. در GRU، دو گیت به کار میرود: گیت بازگردانی (reset gate) و گیت بهروزرسانی (update gate).
- گیت بازگردانی، مشابه گیت فراموشی در LSTM، به شبکه کمک میکند تا تصمیم بگیرد کدام اطلاعات باید از دادههای قبلی حفظ شود و کدام اطلاعات باید فراموش شوند.
- گیت بهروزرسانی نیز به شبکه کمک میکند تا تصمیم بگیرد کدام اطلاعات باید در محاسبات بعدی شبکه مورد استفاده قرار گیرد و کدام اطلاعات باید در نظر گرفته نشوند.
استفاده از گیتها در شبکههای GRU، باعث میشود تا اطلاعات بیشتری در دنبالههای طولانی حفظ شوند و شبکه توانایی بهتری در پردازش دادههای دنبالهای داشته باشد. به عنوان نمونه، شبکههای GRU در حوزه ترجمه ماشینی و تشخیص گفتگویی بسیار موفق عمل کردهاند.
شبکههای عصبی بازگشتی LSTM:
شبکه بازگشتی حافظه طولانی کوتاه مدت LSTM (Long Short-Term Memory)، با افزودن چندین دروازه کنترل جریان اطلاعات و حافظه بلندمدت به شبکه، از مشکلات شبکههای عصبی بازگشتی ساده مثل بروز مشکلات در آموزش و از دست دادن اطلاعات در طولانی مدت جلوگیری میکند. این شبکه، قابلیت پیشبینی دقیق در زمانهای بعدی را دارد و در بسیاری از مسائل پردازش زبان طبیعی، ترجمه ماشینی و تشخیص الگو موثر است.
در شبکههای LSTM، از سه گیت برای کنترل جریان اطلاعات در شبکه استفاده میشود. این سه گیت شامل گیت فراموشی (forget gate)، گیت ورودی (input gate) و گیت خروجی (output gate) هستند.
- گیت فراموشی به شبکه کمک میکند تا تصمیم بگیرد کدام اطلاعات باید از دادههای قبلی حفظ شود و کدام اطلاعات باید فراموش شوند.
- گیت ورودی، به شبکه کمک میکند تا تصمیم بگیرد کدام اطلاعات باید به حافظه جدید اضافه شوند.
- گیت خروجی نیز به شبکه کمک میکند تا تصمیم بگیرد کدام اطلاعات باید در محاسبات بعدی شبکه مورد استفاده قرار گیرد و کدام اطلاعات باید در نظر گرفته نشوند.
استفاده از گیتها در شبکههای LSTM، باعث میشود تا اطلاعات بیشتری در دنبالههای طولانی حفظ شوند و شبکه توانایی بهتری در پردازش دادههای دنبالهای داشته باشد. به عنوان نمونه، شبکههای LSTM در حوزه ترجمه ماشینی و تشخیص گفتگویی بسیار موفق عمل کردهاند.
شبکههای عصبی بازگشتی بلند شده (Highway RNN):
شبکه عصبی Highway RNN یک نوع از شبکههای عصبی بازگشتی (RNN) است که با استفاده از مفهوم "Highway Networks" سعی در بهبود عملکرد شبکه دارد.
در شبکه Highway RNN، هر یک از واحدهای بازگشتی (RNN) با یک دروازه (gate) برای کنترل اطلاعاتی که از واحد قبلی به آن وارد میشود، مجهز شده است. این دروازهها از ترکیبی از توابع فعالسازی (activation functions) و وزنهای قابل یادگیری (learnable weights) تشکیل شدهاند و به شبکه امکان میدهند که به صورت پویا تصمیم بگیرد که کدام اطلاعات را از واحد قبلی به واحد جدید منتقل کند و کدام اطلاعات را حفظ کند.
از طریق این دروازهها، شبکه Highway RNN قادر است تا بهبود قابل توجهی در عملکرد شبکههای بازگشتی کلاسیک (مانند LSTM و GRU) داشته باشد. این شبکهها در بسیاری از مسائل پردازش زبان طبیعی (NLP)، تشخیص گفتار، ترجمه ماشینی و دیگر مسائل دادهکاوی مورد استفاده قرار میگیرند.
شبکههای عصبی بازگشتی دوطرفه (Bidirectional RNN):
شبکههای عصبی بازگشتی دوطرفه (Bidirectional RNN)، از دو لایه بازگشتی (شبکه مجزا) یکی به صورت معمول (از چپ به راست) و دیگری به صورت معکوس (از راست به چپ) می باشد.
در این شبکهها، ورودی به دو حالت مختلف ارائه میشود؛ یکی به صورت معمول از چپ به راست و دیگری از راست به چپ. هر دو لایه بازگشتی به طور جداگانه ورودی را پردازش میکنند و سپس خروجیهای آنها با هم ترکیب میشوند تا خروجی نهایی بدست آید. این ترکیب خروجیها، امکان دسترسی به اطلاعات قبل و بعد از هر کلمه را به شبکه میدهد و بدین ترتیب، شبکه میتواند اطلاعات بیشتری را درباره متن ورودی به دست آورد.
شبکههای عصبی بازگشتی دوطرفه در بسیاری از مسائل پردازش زبان طبیعی (NLP) مانند تشخیص احساسات و ترجمه ماشینی مورد استفاده قرار میگیرند.
شبکههای عصبی بازگشتی با حافظه بلند کوتاه مدت (LSTM-CNN):
این نوع از شبکه بازگشتی، از ترکیب لایههای شبکه بازگشتی LSTM و لایههای شبکه عصبی پیچشی (CNN) برای پردازش دادههای سری زمانی استفاده میکند. در این شبکه، لایههای CNN برای استخراج ویژگیهای مهم از دادههای ورودی استفاده میشوند و لایههای LSTM برای یادگیری الگوهای طولانی مدت از دادههای ورودی استفاده میکنند. مزیت این شبکه، قابلیت استفاده از اطلاعات ویژگیهای بازنمایی شده توسط لایههای CNN و دقت بالای آن در پردازش دادههای زمانی است.
شبکه LSTM-CNN در بسیاری از مسائل پردازش تصویر و متن مانند تشخیص شیء، تشخیص چهره، تشخیص اشیاء و فعالیتهای انسانی و تشخیص شنیداری کاربرد دارد. این شبکه به دلیل توانایی پردازش همزمان دو نوع ورودی مختلف (تصویر و دنباله)، میتواند در مسائل پیچیده و چالشبرانگیز بهتر از شبکههای تنها بازگشتی یا پیچشی عمل کند.
هر کدام از این نوع شبکههای بازگشتی، برای کاربردهای خاص خود مناسب هستند و مزایا و معایب خود را دارند. برای انتخاب بهترین نوع شبکه بازگشتی برای کاربردهای خود، باید با نیازهای مسئله خود آشنا شده و به دقت مزایا و معایب هر کدام را بررسی کنید.
برای مقالات آینده به بررسی هر یک از شبکه های عصبی بازگشتی اشاره خواهیم کرد.
One thought on “شبکه های عصبی بازگشتی”