شبکه عصبی بازگشتی دوطرفه (Bidirectional Recurrent Neural Network - BiRNN)، در ریاضیات (Mathematics)
انواع شبکه های عصبی (Neural Networks) را در آموزش زیر شرح دادیم :
شبکه عصبی بازگشتی دوطرفه (Bidirectional Recurrent Neural Network - BiRNN) :
شبکه عصبی بازگشتی دوطرفه (BiRNN) توسط شوستر و پالیوال در سال ۱۹۹۷ معرفی شد. ایده اصلی این است که در هر گام زمانی، از هر دو جهت (گذشته و آینده) اطلاعات دریافت کنیم. برای این کار، دو لایه RNN مجزا داریم: یکی دنباله را از چپ به راست (forward) و دیگری از راست به چپ (backward) پردازش می کند. سپس خروجی این دو لایه در هر گام با هم ترکیب می شوند (معمولا الحاق یا جمع).
فرمول خروجی در گام
\[ t \]:
\[ \overrightarrow{h}_t = \text{RNN}_{\text{fwd}}(x_t, \overrightarrow{h}_{t-1}) \] \[ \overleftarrow{h}_t = \text{RNN}_{\text{bwd}}(x_t, \overleftarrow{h}_{t+1}) \] \[ y_t = W_y [\overrightarrow{h}_t; \overleftarrow{h}_t] + b_y \]که [;] عملگر الحاق است.
این معماری برای مسائلی که در هر گام به اطلاعات هر دو طرف نیاز داریم بسیار مفید است. مثلا در برچسب گذاری توالی (مانند POS tagging)، برای تعیین نقش کلمه "bank" در جمله "I went to the bank to deposit money" نیاز به کلمه بعدی (deposit) داریم که در آینده است. BiRNN با استفاده از جهت معکوس این اطلاعات را فراهم می کند.
BiRNN می تواند با هر نوع سلول RNN (ساده، LSTM، GRU) ترکیب شود که به آن ها BiLSTM و BiGRU می گویند. این مدل ها در کارهای NLP مانند تشخیص موجودیت های اسمی، ترجمه ماشینی، و مدل سازی زبان عملکرد بهتری دارند.
محدودیت: BiRNN برای پردازش برخط (online) مناسب نیست، زیرا نیاز به دیدن کل دنباله دارد. اما در بسیاری از کارهای آفلاین، استاندارد است.