理解RNN的結構 特點 計算公式

2021-10-01 08:22:30 字數 2096 閱讀 1926

在某一些情況下,我們是無法使用標準的全連線神經網路的。比如,**句子中哪幾個單詞是人名,如果使用標準的全連線神經網路,網路結構如下:

如果使用這種結構,會存在兩個問題

輸入句子長度和輸出向量的維度,可能會不一樣。對不同的樣本,其輸入/輸出維度都不同。

改結構無法共享從文字不同位置上學到的特徵

網路引數很多

在本例中,輸入句子中的單詞數tx,與輸出向量維度ty相等。(若不相等,如下的rnn結構就要做一些改變了)

下圖表示乙個普通的全連線層神經網路,網路的輸入只有乙個單詞,輸出label也是乙個類別數。當其讀到句子中的第乙個單詞,就根據這個單詞**乙個輸出值,如下圖所示:

後面的y**與之同理,但一般會為y<1>的**,增加乙個輸入a<0>,一般a<0>為零向量,或隨機數。rnn完整過程如下所示

對y<3>進行**時,考慮的x<3>與a<2>。而a<2>考慮了x<2>與a<1>,a<1>又考慮了x<1>。所以y<3>**其實考慮了x<1>, x<2>, x<3>。這可以推理到一般的情況,**y時,rnn是根據x<1>到x來進行**的。

該圖展開後,就跟我們的第1種表示法是一樣的,如下圖。andrew ng認為,第2種表示法容易讓人迷惑,所以他更喜歡第一種表示法。

第1種表示法,雖然看上去網路結構很大,但其實真實的網路結構只是第2種表示法中那部分。所以第1種表示法中的大部分權重是相同的,如下圖所示,紅色字型表示權重:

這種傳統的rnn,有乙個缺點,就是在**y時,只用了之前的x<1>,x<2>,…,x的資訊,而沒有參考之後的x, …, x的資訊。

這會導致**的結果可能不準確。具體舉例來說,比如給定如下兩句話,讓你判斷teddy是不是人名中的一部分:

句子(1)中的teddy是人名的一部分;句子(2)中的teddy是泰迪熊的意思,並不是人名。

如果用rnn來**teddy是不是人名,它只會根據這三個單詞(he, said, teddy)來進行**,而這3個單詞是無法**準確的。

要準確**,就必須考慮teddy之後的資訊,而傳統的rnn並不會考慮之後的資訊。(後面會講到brnn就能解決這個問題)

所謂forward propagation,就是給定rnn的引數(waa, wax, wya)後,計算具體的y值的過程。計算過程與計算公式如下:

其中g()為啟用函式,這個y的計算公式,相對好理解。這個計算公式,還可以被簡化為如下表示

這裡用wa,wy兩個引數矩陣,來簡化表示。這種記法的好處是,將兩個引數矩陣(waa, wax)壓縮成乙個(wa)。所以當我們要建立複雜模型時,這就簡化了我們要用到的符號。

這種模型的第乙個優點,是無論你輸入多少個單詞,它都能給出相應的輸出。這就很好的解決了不定長輸入的問題。對rnn模型來說,輸入不同字數的句子,它也能很好的匹配輸入。

第二個優點,是它可以將先前的資訊鏈結到當前的任務。即上面講的**y時,rnn是根據x<1>到x來進行**的。所以,相同的單詞,出現在句子中不同的位置,它都能根據該單詞之前的資訊,來進行準確的**。

auc計算公式的理解

對於auc的計算參考 m是正樣本的個數,n是負樣本的個數 如何理解分子,下面是我個人的理解。總體原則 負樣本數 樣本總數 正樣本數,然後構造樣本總數 每次取概率不同的正樣本,其排序也不一樣,構造樣本總數的表達方式也不一樣 rank1,樣本總數為rank1 rank2 再加1個就是樣本總數,為rank...

形象理解AUC計算公式

auc是評價乙個二分類器效能的主流數值指標,定義為roc曲線下方的面積,但這個算起來比較複雜,需要統計假陽性。另乙個定義更直觀,隨機給乙個正樣本和乙個負樣本,多大概率正樣本的score更高。換一種說法,假設正樣本有m mm個,負樣本有n nn個,在所有m n m nm n個正負樣本對中,有多少正樣本...

環形電流計算公式 環形電感的計算公式

電感公式 環形電感的計算公式 針對環形core,有以下公式可利用 iron l n2 al l 電感量 h al 感應係數 h dc 0.4 ni l n 繞線匝數 圈 h dc 直流磁化力 i 通過電流 a l 磁路長度 cm l及al值大小,可參照micrometa對照表。例如 以t50 52材...