接續上一篇。
那大家所熟知的 RNN 是怎麼回事呢?我們把假設改了一下:
首先,在這邊的狀態會以一個向量做表示,大家應該也知道 RNN 的 input 是一個向量,當中的狀態也是一個向量,最後的 output 也是一個向量。而這些向量當中的的值都是連續的 (假設向量大小為 n),不像上面的模型都是離散的 k(假設有 k 個狀態),所以在空間上的大小可以說是擴大非常多。
接下來我們來看看時間的狀態轉換:
在 RNN 中一樣含有內在狀態,但不同的是 RNN 可以在每個時間點上給輸入向量(),所以可以根據前一個時間點的內在狀態()跟輸入向量去計算輸出,或是外在狀態()。
所以大家會在一些論文上看到模型的狀態關係式長下面這個樣子:
這邊特別引入了非線性的轉換()來讓模型更強大。
隨著從一開始的馬可夫模型到這邊應該對這幾個模型有點感覺,其實 RNN 可以說是很大的突破,在假設上放了很多元素讓模型變得更強大。
人們為了改進 RNN這個模型的記憶性,希望他可以記住更遠以前的東西,所以設計了 LSTM 來替換他的 hidden layer 的運作模式,後期更有 GRU,還有人說只需要 forget gate 就有很強大的效能的 MGU。這些都是對於記憶性做的改進,個人覺得這些在工程上的貢獻比較大,真正學術上的突破其實還好。
今天的整理就先到這邊啦!