Gated Recurrent Unit (GRU)
前言
由於存在vanishing gradient的問題,讓兩個距離很遠sequence data(ex. 文字),很難建立相連的關係,所以提出了GRU來解決這樣的問題。
內容
RNN unit
- 2個input。
- xt,當前的input。
- at-1,之前所生成output。
- 進行線性組合(tanh),產生at。
- 將at分成兩條路送出。
- 送到下個unit,當input。
- 經過sigmoid或softmax,產生y^。
GRU (simplified)
- ct(memory cell) = at
與上面傳統的RNN unit有兩個差異的部分。
- Tu(用sigmoid),會介於0~1,大部分的值都會接近於0或接近於1。
- Tu跟C~t(就是RNN unit中的at)的合併,利用Tu來當開關,來決定Ct是否要更新。
- 若Tu=0,就不更新,則用前一個ct-1。
- 若Tu=1,更新,則用目前的ct。
利用Tu=0,來記住單數的cat,把單數訊息一直傳遞下去,直到遇到動詞,才可以正確選擇動詞性態was,在把Tu設置為1。
- ct會是一個vector,這樣才處理每個詞的記憶的處理。
Full GRU
- 跟simple GRUt有兩個差異的部分。
- Tr。
- C~t的計算。
該學到的
- GRU單元,是如何解決vanishing gradient的問題。