一、GRU算法
GRU(Gate Recurrent Unit,循環門單元)是循環神經網絡(Recurrent Neural Network, RNN)的一種。和LSTM(Long-Short Term Memory)一樣,也是為了解決長期記憶和反向傳播中的梯度等問題而提出來的。
在LSTM中引入了三個門函數:輸入門、遺忘門和輸出門來控制輸入值、記憶值和輸出值。而在GRU模型中只有兩個門:分別是更新門和重置門。具體結構如下圖所示:

圖中的zt和rt分別表示更新門和重置門。更新門用於控制前一時刻的狀態信息被帶入到當前狀態中的程度,更新門的值越大說明前一時刻的狀態信息帶入越多。重置門控制前一狀態有多少信息被寫入到當前的候選集 ℎ̃t上,重置門越小,前一狀態的信息被寫入的越少。
GRU組合了遺忘門和輸入門到一個單獨的更新門當中,也合並了細胞狀態 C和隱藏狀態h,並且還做了一些其他的改變,使得其模型比標准LSTM模型更簡單,其數學表達式為:
![[公式]](/image/aHR0cHM6Ly93d3cuemhpaHUuY29tL2VxdWF0aW9uP3RleD0lNUNiZWdpbiU3QmVxdWF0aW9uJTdEKyU1Q2JlZ2luJTdCYWxpZ25lZCU3RCt6XyU3QnQlN0QrJTI2JTNEJTVDc2lnbWElNUNsZWZ0JTI4V18lN0J6JTdEKyU1Q2Nkb3QlNUNsZWZ0JTVCaF8lN0J0LTElN0QlMkMreF8lN0J0JTdEJTVDcmlnaHQlNUQlNUNyaWdodCUyOSslNUMlNUMrcl8lN0J0JTdEKyUyNiUzRCU1Q3NpZ21hJTVDbGVmdCUyOFdfJTdCciU3RCslNUNjZG90JTVDbGVmdCU1QmhfJTdCdC0xJTdEJTJDK3hfJTdCdCU3RCU1Q3JpZ2h0JTVEJTVDcmlnaHQlMjkrJTVDJTVDKyU1Q3RpbGRlJTdCaCU3RF8lN0J0JTdEKyUyNiUzRCU1Q3RhbmgrJTVDbGVmdCUyOFcrJTVDY2RvdCU1Q2xlZnQlNUJyXyU3QnQlN0QrJTVDb2RvdCtoXyU3QnQtMSU3RCUyQyt4XyU3QnQlN0QlNUNyaWdodCU1RCU1Q3JpZ2h0JTI5KyU1QyU1QytoXyU3QnQlN0QrJTI2JTNEJTVDbGVmdCUyODEtel8lN0J0JTdEJTVDcmlnaHQlMjkrJTVDb2RvdCtoXyU3QnQtMSU3RCUyQnpfJTdCdCU3RCslNUNvZG90KyU1Q3RpbGRlJTdCaCU3RF8lN0J0JTdEKyU1Q2VuZCU3QmFsaWduZWQlN0QrJTVDZW5kJTdCZXF1YXRpb24lN0QlNUMlNUMr.png)
其中,門控信號zt的范圍為0~1。門控信號越接近1,代表”記憶“下來的數據越多;而越接近0則代表”遺忘“的越多。
二、總結
GRU輸入輸出的結構與普通的RNN相似,其中的內部思想與LSTM相似。
與LSTM相比,GRU內部少了一個”門控“,參數比LSTM少,但是卻也能夠達到與LSTM相當的功能。考慮到硬件的計算能力和時間成本,因而很多時候我們也就會選擇更加”實用“的GRU。
參考:
https://zhuanlan.zhihu.com/p/32481747
https://www.cnblogs.com/jiangxinyang/p/9376021.html
