شبکه‌های عصبی بازگشتی دو طرفه

**شبکه‌های عصبی بازگشتی دوطرفه**  انواعی از شبکه‌های عصبی بازگشتی (Recurrent Neural Networks) هستند که دو لایهٔ پنهان در دو جهت مختلف در یک شبکهٔ عصبی را به یک خروجی یکسان وصل می‌کند. این رویکرد یکی از رویکردهای مدل‌های یادگیری عمیق سازنده (Generative Deep Learning) است که به این ترتیب خروجی می‌تواند اطلاعات را هم از گذشته و هم از آینده به صورت همزمان دریافت کند. این نوع از شبکه‌های عصبی در سال ۱۹۹۷ میلادی توسط برند شوستر (Bernd Schuster) و دینش پالیوال (Dinesh Paliwal) ابداع شده‌است. این مدل برای افزایش حجم اطلاعات ورودی به شبکه‌های عصبی ابداع شدند. به عنوان نمونه مدل‌های پیشین نظیر مدل پرسپترون چند لایه (Multilayer perceptron) و شبکه عصبی با تأخیر زمانی (Time delay neural network) محدودیت‌هایی روی انعطاف‌پذیری دیتای ورودی دارند چراکه باید دادهٔ ورودی آنها به صورت ثابت و فیکس باشد. از طرفی شبکه‌های عصبی بازگشتی استاندارد (Recurrent Neural Networks) نیز محدودیت‌هایی دارند چراکه نمی‌توانند داده را از آینده دریافت نمایند. حال، راهکار تمامی این مشکلات استفاده از شبکه‌های عصبی بازگشتی دوطرفه است که هیچ‌یک از محدودیت‌های فوق را ندارند. به عبارتی هم لازم نیست دادهٔ ورودی آنها فیکس باشد و هم می‌توانند از هر استیتی گذشته و آینده را به صورت همزمان ببینند و اطلاعات بیشتری برای یادگیری مدل استفاده نمایند.

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

## معماری شبکه

ایدهٔ اولیه‌ای که از آن در شبکه‌های عصبی بازگشت‌پذیر دوطرفه استفاده می‌شود این است که نورون‌های یک شبکه عصبی بازگشت‌پذیر یک‌طرفهٔ استاندارد را به دو طرف تقسیم می‌نماییم. به عبارتی یک جهت در زمان در جهت مثبت داریم و یک جهت در زمان در جهت منفی که به اولی حالت‌های پسین (Forward States) و به دومی حالت‌های پیشین (Backward States) می‌گوییم. تنها نکته‌ای که باید دقت کنیم این است که خروجی این دو استیت به ورودی در استیت‌های جهت مخالف متصل نیستند.
ساختار کلی شبکه‌های بازگشت‌پذیر و شبکه‌های بازگشت‌پذیر دوطرفه در دیاگرام زیر آورده شده‌است. با استفاده از دو جهت در زمان بر خلاف شبکه‌های بازگشت‌پذیر استاندارد در شبکه‌های بازگشت‌پذیر دوطرفه اطلاعات می‌تواند به صورت همزمان هم از آینده و هم از گذشته در استیت فعلی دریافت شود.

## 
شبکه‌های عصبی بازگشت‌پذیر دوطرفه همانند شبکه‌های عصبی بازگشت‌پذیر استاندارد می‌توانند آموزش داده‌شوند. این اتفاق به سبب اینکه دو جهت در زمان هیچ تعاملی با هم ندارند محقق می‌شود و به صورت مستقل می‌توانند آموزش داده‌شوند. تنها تفاوت در زمان پس‌انتشار (Backpropagation) در زمان باید پردازش‌های اضافه‌ای هم انجام دهیم. به دلیل اینکه به‌روزرسانی خروجی‌ها و ورودی‌ها به صورت همزمان امکان انجام ندارد. به صورت کلی آموزش باید به صورت زیر انجام شود: برای حرکت پیش‌انتشار (Forward pass) استیت‌های پسین و پیشین در ابتدا طی می‌شوند و سپس نورون‌های خروجی طی می‌شوند. همچنین در حرکت پس‌انتشار (Backward pass) ابتدا نورون‌های خروجی طی می‌شوند و سپس استیت‌های پسین و پیشین طی می‌شوند. پس از حرکت پیش‌انتشار و حرکت پس‌انتشار هم وزن‌ها به روزرسانی می‌شوند.

## کاربردها
برخی کاربردهای شبکه‌های عصبی بازگشت‌پذیر دوطرفه به صورت زیر هستند:
* تشخیص صوت - تبدیل صوت به متن (Speech Recognition) 
* ترجمه(Translation) 
* تشخیص دست‌نوشته(Handwritten Recognition) 
* پیش‌بینی ساختار پروتئین (Protein Structure Prediction) 
* برچسب‌گذاری اجزای کلام (POS Tagging)
* تجزیه وابستگی (Dependency Parsing) 
* استخراج موجودیت (Entity Extraction) 

## منابع

رده:یادگیری ماشین
رده:معماری شبکه‌های عصبی