GRU دوطرفه (Bidirectional GRU - BiGRU)، در ریاضیات (Mathematics)
انواع شبکه های عصبی (Neural Networks) را در آموزش زیر شرح دادیم :
GRU دوطرفه (Bidirectional GRU - BiGRU) :
BiGRU مشابه BiLSTM است، با این تفاوت که به جای LSTM از GRU استفاده می کند. GRU دو گیت دارد (به روزرسانی و تنظیم مجدد) و ساختار ساده تری نسبت به LSTM دارد. BiGRU دو لایه GRU در جهت های مخالف روی دنباله اعمال می کند و خروجی ها را ترکیب می کند.
فرمول های GRU در جهت forward:
\[ z_t = \sigma(W_z x_t + U_z h_{t-1} + b_z) \] \[ r_t = \sigma(W_r x_t + U_r h_{t-1} + b_r) \] \[ \tilde{h}_t = \tanh(W_h x_t + U_h (r_t \odot h_{t-1}) + b_h) \] \[ h_t = (1 - z_t) \odot h_{t-1} + z_t \odot \tilde{h}_t \]جهت backward نیز مشابه با
\[ h_{t+1} \]به عنوان حالت قبلی. خروجی BiGRU ترکیبی از
\[ \overrightarrow{h}_t \]و
\[ \overleftarrow{h}_t \]است.
BiGRU نسبت به BiLSTM پارامترهای کمتری دارد (حدود ۲۵٪ کمتر) و در نتیجه سریع تر آموزش می بیند و احتمال overfitting آن کمتر است. در بسیاری از مسائل، عملکرد آن مشابه BiLSTM است، بنابراین انتخاب بین آنها بستگی به حجم داده و نیاز محاسباتی دارد.
کاربردها: مشابه BiLSTM در پردازش زبان طبیعی، طبقه بندی اسناد، مدل سازی گفتار. BiGRU به دلیل سرعت بیشتر، در معماری های encoder-decoder برای ترجمه ماشینی نیز رایج است.
مانند BiLSTM، BiGRU نیز نمی تواند به صورت موازی روی دنباله اجرا شود و برای دنباله های بلند زمان بر است. با این حال، برای بسیاری از مسائل با طول متوسط، گزینه ای عالی است.