واحد بازگشتی دروازه‌ای

**واحدهای بازگشتی** **دروازه‌ای** (**GRUs**) یک مکانیسم دروازه‌ای در شبکه‌های عصبی بازگشتی هستند که در سال ۲۰۱۴ توسط کیونگ‌هیون چو و همکارانش ایجاد شدند. **واحد بازگشتی** **دروازه‌ای** مانند یک حافظه طولانی کوتاه مدت (LSTM) با یک دروازه فراموشی کار می‌کند، اما پارامترهای کمتری نسبت به LSTM دارد، زیرا فاقد دروازه خروجی است. عملکرد GRU در برخی از وظایف مانند مدل‌سازی موسیقی چندصدایی، مدل‌سازی سیگنال گفتار و پردازش زبان طبیعی مشابه عملکرد LSTM است. GRUها عملکرد بهتری در مجموعه داده‌های کوچکتر و داده‌های کم‌بسامد دارند.

## معماری
تغییرات مختلفی در واحد دروازه کامل وجود دارد، با استفاده از حالت مخفی قبلی و بایاس در ترکیب‌های مختلف، و یک شکل ساده به نام واحد حداقل دروازه‌ای.

اپراتور \odot محصول هادامارد را در زیر نشان می‌دهد.

### واحد تمام دروازه‌ای
بندانگشتی| واحد بازگشتی دردار، نسخه کاملاً دردار
در ابتدا، برای t = 0 ، بردار خروجی عبارت است از h_0 = 0 .

: 
\begin{align}
z_t &= \sigma_g(W_{z} x_t + U_{z} h_{t-1} + b_z) \\
r_t &= \sigma_g(W_{r} x_t + U_{r} h_{t-1} + b_r) \\
\hat{h}_t &= \phi_h(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 \hat{h}_t
\end{align}


#### متغیرها
* x_t : بردار ورودی
* h_t : بردار خروجی
* \hat{h}_t : بردار فعال‌سازی
* z_t : بردار به روز رسانی
* r_t : بردار ریست
* W ، U و b : ماتریس پارامتر و بردار
#### توابع فعال سازی
بندانگشتی| نوع ۱
* \sigma_g : تابع سیگموئید.
* \phi_h : تابع هذلولی.
از سایر توابع فعال‌سازی نیز می‌توان استفاده کرد مشروط بر اینکه \sigma_g(x) \isin [0, 1] .
بندانگشتی| نوع ۲
بندانگشتی| نوع ۳
با تغییر z_t و r_t  می‌توان شکلهای دیگری از مدل را ایجاد کرد:
* نوع اول، هر دروازه فقط به حالت پنهان قبلی و b بستگی دارد.

: 
\begin{align}
z_t &= \sigma_g(U_{z} h_{t-1} + b_z) \\
r_t &= \sigma_g(U_{r} h_{t-1} + b_r) \\
\end{align}


* نوع دوم، هر دروازه فقط به حالت پنهان قبلی بستگی دارد.

: 
\begin{align}
z_t &= \sigma_g(U_{z} h_{t-1}) \\
r_t &= \sigma_g(U_{r} h_{t-1}) \\
\end{align}


* نوع سوم، هر دروازه فقط با استفاده از b محاسبه می‌شود.

: 
\begin{align}
z_t &= \sigma_g(b_z) \\
r_t &= \sigma_g(b_r) \\
\end{align}


### واحد حداقل دروازه‌ای
واحد حداقل دروازه‌ای مشابه واحد تمام دروازه‌ای است، به جز اینکه بردار به روز رسانی و ریست در یک دروازه فراموشی ادغام شده‌است.

: 
\begin{align}
f_t &= \sigma_g(W_{f} x_t + U_{f} h_{t-1} + b_f) \\
\hat{h}_t &= \phi_h(W_{h} x_t + U_{h} (f_t \odot h_{t-1}) + b_h) \\
h_t &= (1-f_t) \odot h_{t-1} + f_t \odot \hat{h}_t
\end{align}


#### متغیرها
* x_t : بردار ورودی
* h_t : بردار خروجی
* \hat{h}_t : بردار فعال سازی
* f_t : بردار فراموشی
* W ، U و b : ماتریس‌های پارامتر و بردار
## واحد تکراری تطبیقی محتوا
بندانگشتی|435x435پیکسل| معماری کامل CARU. جهت جریان داده‌ها با فلش‌ها، توابع درگیر با مستطیل‌های زرد و گیت‌های مختلف (عملیات) با دایره‌های آبی نشان داده شده‌است.
واحد تکراری تطبیقی محتوا یا Content Adaptive Recurrent Unit (CARU) گونه‌ای از GRU است که در سال ۲۰۲۰ توسط کاهو چان و همکاران وی ایجاد شد. CARU شامل گیت به روز رسانی مانند GRU است، اما به جای گیت ریست، یک گیت تطبیقی با محتوا معرفی می‌کند. CARU برای کاهش مشکل وابستگی طولانی مدت مدل‌های RNN طراحی شده‌است. CARU پارامترهای کمتری نسبت به GRU دارد و در مسائل پردازش زبانهای طبیعی عملکردش تنها قدری بهتر از GRU است.

در معادلات زیر، متغیرهای حروف کوچک نشان دهنده بردارها و \left[W;B\right] پارامترهای مدل را نشان می‌دهد که لایه‌های خطی هستند که از وزن‌ها و بایاس‌ها تشکیل شده‌اند. در ابتدا، برای t=0 ، CARU مستقیماً بردارد h^{(1)}\gets W_{vn} v^{(0)}+B_{vn}  را برمی‌گرداند؛ برای t>0  خروجی‌ها عبارتند از:

\begin{align}
x^{(t)}&={W_{vn}}v^{(t)}+{B_{vn}}\\
n^{(t)}&=\phi(({W_{hn}}h^{(t)}+{B_{hn}})+x^{(t)})\\
z^{(t)}&=\sigma({W_{hz}}h^{(t)}+{B_{hz}}+{W_{vz}}v^{(t)}+{B_{vz}})\\
l^{(t)}&=\sigma(x^{(t)})\odot z^{(t)}\\
h^{(t+1)}&=(1-l^{(t)})\odot h^{(t)} + l^{(t)}\odot n^{(t)}
\end{align}

در اینجا اپراتور \odot نشان دهنده ضرب هادامارد است، و \sigma و \phi به ترتیب نشان‌دهنده تابع سیگموئید و هذلولی است.

## پیوند به بیرون

* واحد بازگشتی دروازه‌ای در keras
* واحد بازگشتی دروازه‌ای در PyTorch 

## منابع

رده:شبکه‌های عصبی مصنوعی
رده:نرم‌افزارهای ۲۰۱۴ (میلادی)
رده:معماری شبکه‌های عصبی