<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          圖解 RNN(循環(huán)神經(jīng)網(wǎng)絡(luò)) 背后的數(shù)學(xué)原理

          共 2831字,需瀏覽 6分鐘

           ·

          2022-02-26 22:59

          0引言

          現(xiàn)在,關(guān)于機(jī)器學(xué)習(xí)、深度學(xué)習(xí)和人工神經(jīng)網(wǎng)絡(luò)的討論越來越多了。但程序員往往只想把這些魔幻的框架用起來,大多并不想知道背后到底是如何運(yùn)作的。但是如果我們能夠掌握這些背后的原理,對于使用起來豈不更好。今天我們就來討論下循環(huán)神經(jīng)網(wǎng)絡(luò)及其背后的基本數(shù)學(xué)原理,這些原理使得循環(huán)神經(jīng)網(wǎng)絡(luò)能夠做到其他神經(jīng)網(wǎng)絡(luò)做不到的事情。
          ? RNN(循環(huán)神經(jīng)網(wǎng)絡(luò))。

          這篇文章的目的是對循環(huán)神經(jīng)網(wǎng)絡(luò)的功能、結(jié)構(gòu)提供一個直觀的認(rèn)識。

          一個神經(jīng)網(wǎng)絡(luò)通常取自變量 (或一組自變量)和因變量 ,然后它學(xué)習(xí) 之間的映射(我們稱之為訓(xùn)練),一旦訓(xùn)練完成,當(dāng)給定一個新的自變量,就能預(yù)測相應(yīng)的因變量。

          但如果數(shù)據(jù)的順序很重要呢?想象一下,如果所有自變量的順序都很重要呢?

          讓我來直觀地解釋一下吧。

          只要假設(shè)每個螞蟻是一個獨(dú)立變量,如果一個螞蟻朝著不同的方向前進(jìn),對其他螞蟻來說都沒關(guān)系,對吧?但是,如果螞蟻的順序很重要怎么辦?

          此時(shí),如果一只螞蟻錯過或者離開了群體,它將會影響到后面的螞蟻。

          那么,在機(jī)器學(xué)習(xí)空間中,哪些數(shù)據(jù)的順序是重要的呢?

          • 自然語言數(shù)據(jù)的詞序問題
          • 語音數(shù)據(jù)
          • 時(shí)間序列數(shù)據(jù)
          • 視頻/音樂序列數(shù)據(jù)
          • 股市數(shù)據(jù)
          • 等等

          那么 RNN 是如何解決整體順序很重要的數(shù)據(jù)呢?我們用自然文本數(shù)據(jù)為例來解釋 RNN。

          假設(shè)我正在對一部電影的用戶評論進(jìn)行情感分析。

          這部電影好(This movie is good) — 正面的,再到這部電影差(This movie is bad) — 負(fù)面的。

          我們可以通過使用簡單的詞匯袋模型對它們進(jìn)行分類,我們可以預(yù)測(正面的或負(fù)面的),但是等等。

          如果影評是這部電影不好(This movie is not good),怎么辦?

          BOW 模型可能會說這是一個積極的信號,但實(shí)際上并非如此。而 RNN 理解它,并預(yù)測它是消極的信息。

          1RNN 如何做到的呢?

          1各類 RNN 模型

          1、一對多

          RNN 接受一個輸入,比如一張圖像,并生成一個單詞序列。

          2、多對一

          RNN 接受一個單詞序列作為輸入,并生成一個輸出。

          3、多對多

          接下來,我們正專注于第二種模式多對一。RNN 的輸入被視為時(shí)間步長。

          示例: 輸入(X) = [" this ", " movie ", " is ", " good "]

          this 的時(shí)間戳是 x(0),movie 的是 x(1),is 的是 x(2),good 的是 x(3)。

          2網(wǎng)絡(luò)架構(gòu)及數(shù)學(xué)公式

          下面讓我們深入到 RNN 的數(shù)學(xué)世界。

          首先,讓我們了解 RNN 單元格包含什么!我希望并且假設(shè)大家知道前饋神經(jīng)網(wǎng)絡(luò),F(xiàn)FNN 的概括,

          ? 隱藏層只有單一神經(jīng)元的前饋神經(jīng)網(wǎng)絡(luò)示例。
          ? 具有單一隱藏層的前饋神經(jīng)網(wǎng)絡(luò)。

          在前饋神經(jīng)網(wǎng)絡(luò)中,我們有 X(輸入)、H(隱藏)和 Y(輸出)。我們可以有任意多的隱藏層,但是每個隱藏層的權(quán)值 W 和每個神經(jīng)元對應(yīng)的輸入權(quán)值是不同的。

          上面,我們有權(quán)值 Wy10 和 Wy11,分別對應(yīng)于兩個不同的層相對于輸出 Y 的權(quán)值,而 Wh00、Wh01 等代表了不同神經(jīng)元相對于輸入的不同權(quán)值。

          由于存在時(shí)間步長,神經(jīng)網(wǎng)絡(luò)單元包含一組前饋神經(jīng)網(wǎng)絡(luò)。該神經(jīng)網(wǎng)絡(luò)具有順序輸入、順序輸出、多時(shí)間步長和多隱藏層的特點(diǎn)。

          與 FFNN 不同的是,這里我們不僅從輸入值計(jì)算隱藏層值,還從之前的時(shí)間步長值計(jì)算隱藏層值。對于時(shí)間步長,隱藏層的權(quán)值(W)是相同的。下面展示的是 RNN 以及它涉及的數(shù)學(xué)公式的完整圖片。

          在圖片中,我們正在計(jì)算隱藏層的時(shí)間步長 t 的值:

          • 是之前的時(shí)間步長。我說過 W 對所有時(shí)間步長來說都是一樣的。激活函數(shù)可以是 Tanh、Relu、Sigmoid 等。
          ? 不同的激活函數(shù)。

          上面我們只計(jì)算了 Ht,類似地,我們可以計(jì)算所有其他的時(shí)間步長。

          步驟:

          • 1、從 計(jì)算?

          • 2、由 計(jì)算?

          • 3、從 計(jì)算?

          • 4、由 計(jì)算 ,依此類推。

          需要注意的是:

          • 1、 是權(quán)重向量,每個時(shí)間步長都不同。

          • 2、我們甚至可以先計(jì)算隱藏層(所有時(shí)間步長),然后計(jì)算 值。

          • 3、權(quán)重向量一開始是隨機(jī)的。

          一旦前饋輸入完成,我們就需要計(jì)算誤差并使用反向傳播法來反向傳播誤差,我們使用交叉熵作為代價(jià)函數(shù)。

          2BPTT(時(shí)間反向傳播)

          如果你知道正常的神經(jīng)網(wǎng)絡(luò)是如何工作的,剩下的就很簡單了,如果不清楚,可以參考本號前面關(guān)于人工神經(jīng)網(wǎng)絡(luò)的文章。

          我們需要計(jì)算下面各項(xiàng),

          • 1、相對于輸出(隱藏和輸出單元)的總誤差如何變化?
          • 2、相對于權(quán)重(U, V, W)的輸出如何變化?

          因?yàn)?W 對于所有的時(shí)間步長都是一樣的,我們需要返回到前面,來進(jìn)行更新。

          ? RNN 中的 BPTT。

          記住 RNN 的反向傳播和人工神經(jīng)網(wǎng)絡(luò)的反向傳播是一樣的,但是這里的當(dāng)前時(shí)間步長是基于之前的時(shí)間步長計(jì)算的,所以我們必須從頭到尾遍歷來回。

          如果我們運(yùn)用鏈?zhǔn)椒▌t,就像這樣

          ? 反向傳播鏈?zhǔn)椒▌t。

          在所有時(shí)間步長上的 W 都相同,因此按鏈?zhǔn)椒▌t展開項(xiàng)越來越多。

          Richard Sochers 的循環(huán)神經(jīng)網(wǎng)絡(luò)講座幻燈片[1]中,可以看到一種類似但不同的計(jì)算公式的方法。

          • 類似但更簡潔的 RNN 公式:
          • 總誤差是各時(shí)間步長 t 對應(yīng)誤差的總和:
          • 鏈?zhǔn)椒▌t的應(yīng)用:

          所以這里, 與我們的 相同。

          可以用任何優(yōu)化算法來更新,比如梯度下降法。

          2回到實(shí)例

          現(xiàn)在我們回過頭來談?wù)勎覀兊那楦蟹治鰡栴},這里有一個 RNN,

          我們給每個單詞提供一個詞向量或者一個熱編碼向量作為輸入,并進(jìn)行前饋和 BPTT,一旦訓(xùn)練完成,我們就可以給出新的文本來進(jìn)行預(yù)測。它會學(xué)到一些東西,比如不+積極的詞 = 消極的

          RNN 的問題 → 消失/爆炸梯度問題

          由于 W 對于所有的時(shí)間步長都是一樣的,在反向傳播過程中,當(dāng)我們回去調(diào)整權(quán)重時(shí),信號會變得要么太弱要么太強(qiáng),從而導(dǎo)致要么消失要么爆炸的問題。為了避免這種情況,我們使用 GRU 或 LSTM,將在后續(xù)文章中介紹。

          ?參考資料?

          [1]

          Richard Sochers 的循環(huán)神經(jīng)網(wǎng)絡(luò)講座幻燈片: http://cs224d.stanford.edu/lectures/CS224d-Lecture7.pdf

          [2]

          英文鏈接: https://medium.com/towards-artificial-intelligence/a-brief-summary-of-maths-behind-rnn-recurrent-neural-networks-b71bbc183ff


          1. 準(zhǔn)備寫本書

          2. 如何評判一個深度學(xué)習(xí)框架?

          3. 機(jī)器學(xué)習(xí)理論基礎(chǔ)到底有多可靠?

          4. 吳恩達(dá)最新采訪:以數(shù)據(jù)為中心的AI

          5. 【機(jī)器學(xué)習(xí)基礎(chǔ)】優(yōu)化背后的數(shù)學(xué)基礎(chǔ)

          三連在看,月入百萬??

          瀏覽 108
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  看免费A片 | 免费少妇av| 抽插网| 欧美精品第一区 | 欧美日本一道本一区二区三区 |