神經網路學習筆記 04 迴圈神經網路演算法解釋

2022-06-20 05:42:10 字數 2700 閱讀 4263

本文是根據wildml的recurrent neural networks tutorial寫的學習筆記。

先看看計算公式:

\[x_e = ex_t \\

z = \sigma(u^zx_e + w^zs_ + b^z) \\

r = \sigma(u^rx_e + w^rs_ + b^r) \\

h = tanh(u^hx_e + w^h(s_ \circ r) + b^h) \\

s_t = (1 - z) \circ h + z \circ s_ \\

o_t = vs_t + c

\]首先,我們有乙個單詞集合,包含了常用的單詞和標點符號。

這個單詞集合,在訓練前就已經確定了。因此:單詞量在訓練和**的過程中是固定的。比如:8000。

我們想象現在正在學習需要句子,用來自動生成有一定含義的語句。

在訓練的過程中,會建立以下資料:

是否容易出現在開頭。

是否容易出現在結尾。

關係1關係1,我在前面

關係1,我在後面

關係2關係2,我在第一位

關係2,我在最後一位

...如果,兩個單詞的" 前後關係1「的值都為1。在前面的單詞已經出現了,那麼後面的那個單詞出現的可能性就大了。

* 上下文$s_t$的含義
可以很容易的注意到,上下文和單詞特徵有一對一的關係。

\(s_t\)是根據前乙個上下文\(s_\)和當前輸入單詞的特徵\(x_e\)變化而來。

\(s_t\)的值是直接從\(h\)來的,取值範圍是\([-1, 1]\)。有方向性的表示,比如:名詞的相關程度(和不相關程度)。

因此:\(s_t\)的含義是當前語境下,各個語言特徵的相關程度

比如:有乙個名字,乙個動詞,否定語氣。

\(s_t\)最終又決定了輸出單詞的概率。我們仔細看看它是如何決定\(o_t\)的?

通過和\(v\)的乘積!這是什麼意思呢?

我們要理解\(v\)。 \(v\)表示對每個單詞,上下文(語言特徵相關性)決定的下乙個單詞出現可能性的權值。

* $u^z$是單詞特徵值的保留權值。
在決定上下文中哪些特徵需要保留的時候,單詞特徵值的價值。

比如:如果這個單詞是個名詞的話,價值更大,需要保留。是個介詞的話,價值較小。

* $w^z$是前上下文的保留權值。
在決定上下文中哪些特徵需要保留的時候,前上下文的價值。

* $b^z$是保留偏差。

* $u^r$是單詞特徵值的重置權值。

在決定上下文中哪些特徵需要重置的時候,單詞特徵值的價值。

比如:如果這個單詞是個名詞的話,價值更大,需要重置上下文。是個介詞的話,價值較小,不太需要重置上下文。

* $w^r$是上下文的重置權值。
在決定上下文中哪些特徵需要重置的時候,前上下文的價值。

* \(b^r\)是重置偏差。

* \(u^h\)是單詞特徵值變成上下文值的權值。

* \(w^h\)是前上下文值變成當前上下文值的權值。

* \(b^h\)是上下文值的偏差。

* \(v\)是每個單詞對應上下文,產生輸出單詞的概率權值。

\(v\)表示對每個單詞,上下文(語言特徵相關性)決定的下乙個單詞出現可能性的權值。

* \(c\)是輸出單詞概率的偏差。

如果你看懂了我的上面的爛文。就明白\(e, v, s_t\)是核心。它們包含的資料到底有什麼意義呢?

\(e\)對每個單詞有乙個100維的向量。用來儲存每個單詞的特徵值。

\(v\)對每個單詞有乙個100維的向量。是計算輸出單詞概率的權值。

\(s_t\)是乙個100維的向量。用來儲存上下文。

很容易理解,這三個100維的資料,在同一維度上是關聯的。

單詞的每個特徵值的含義會是什麼?那麼,上下文和\(v\)的每維的含義呢?

我在這裡猜測一下。由於訓練的目的(被訓練資料決定)是學習如何產生一句自然語言。

那麼這些資料都是和單詞前後位置有關的資訊。這些資訊會是什麼?

比如:我會出現在首位,我會出現在末尾,我們幾個會一起出現等等等等,可能性很多。

\(e\)中每個單詞的特徵值可能是位置資訊。

\(s_t\)可能是當前已輸入單詞組成的句子結構。

\(v\)可能是每個單詞在句子結構中的位置可能性。

乙個常常想到的問題是:會不會有語法和語法結構的概念?

直觀的回答是:不會。因為,訓練資料中,並沒有這個東西。演算法也不可能知道那怕名詞、動詞這樣的概念。

如果,我們從機器的角度看,訓練結果可以理解為機器學習到的語法結構

機器沒有主謂賓的概念,所以不會說:「我學習到了主謂賓的語法結構」。

但是乙個有趣的問題是:機器的語法結構和人類的語法結構是否會匹配?

我覺得是很有可能的。畢竟它學習的是人類語言。

它很可能學會了"cannot help doing"這樣的關係;發現某些詞容易出現在有問號結尾的句字開頭;

發現有一類詞很可能出現在另一類詞的後面。

機器沒有給這些關係起名字,描述這些關係。而這些是我們可以做的。

迴圈神經網路學習

1.迴圈神經網路的應用 2.迴圈神經網路vs卷積神經網路 迴圈神經網路所做的任務 rnn和cnn的區別 1.基本結構 隱層的資料被存入到乙個 記憶 單元中 存在 記憶 中的資料會被作為另外乙個輸入與原始輸入一起輸入到神經網路中。2.深度rnn 3.雙向rnn 結構 優勢 當需要判斷乙個詞的語義時,需...

迴圈神經網路 機器學習 迴圈神經網路知識要點

迴圈神經網路特點是可以挖掘出資料序列之間的關係資訊,實際使用中每乙個樣本的輸入是資料序列,也就是一系列的資料,其中的每個資料是乙個時間步。rnn層也是由乙個或者多個神經元組成的,每個神經元的輸入由兩部分構成,一部分是序列資料中的某乙個資料,另一部分是這個資料的前乙個資料經過迴圈層神經元時,神經元輸出...

概述迴圈神經網路 學習筆記

曾經因為新冠肺炎疫情的原因得到了乙個超長假期,但是我沒有好好珍惜。等到快開學的時候我才追悔莫及,如果上天再給我一次機會我一定會好好學習,天天向上,不睡懶覺,勤勉讀書,勵精圖治,奮發圖強。誠惶誠恐地上一波學習筆記。迴圈神經網路 recurrent neural network 的作用 對於一些不僅依賴...