1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

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

        共 2831字,需瀏覽 6分鐘

         ·

        2022-02-26 22:59

        0引言

        現(xiàn)在,關(guān)于機器學(xué)習(xí)、深度學(xué)習(xí)和人工神經(jīng)網(wǎng)絡(luò)的討論越來越多了。但程序員往往只想把這些魔幻的框架用起來,大多并不想知道背后到底是如何運作的。但是如果我們能夠掌握這些背后的原理,對于使用起來豈不更好。今天我們就來討論下循環(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)提供一個直觀的認識。

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

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

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

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

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

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

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

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

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

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

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

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

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

        1RNN 如何做到的呢?

        1各類 RNN 模型

        1、一對多

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

        2、多對一

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

        3、多對多

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

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

        this 的時間戳是 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)值。

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

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

        在圖片中,我們正在計算隱藏層的時間步長 t 的值:

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

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

        步驟:

        • 1、從 計算?

        • 2、由 計算?

        • 3、從 、、 計算?

        • 4、由 計算 ,依此類推。

        需要注意的是:

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

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

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

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

        2BPTT(時間反向傳播)

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

        我們需要計算下面各項,

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

        因為 W 對于所有的時間步長都是一樣的,我們需要返回到前面,來進行更新。

        ? RNN 中的 BPTT。

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

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

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

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

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

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

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

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

        2回到實例

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

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

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

        由于 W 對于所有的時間步長都是一樣的,在反向傳播過程中,當(dāng)我們回去調(diào)整權(quán)重時,信號會變得要么太弱要么太強,從而導(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. 機器學(xué)習(xí)理論基礎(chǔ)到底有多可靠?

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

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

        三連在看,月入百萬??

        瀏覽 108
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            欧美国产一二三区 | 超碰影院在线 | 乳色吐息免费观看 | 亚洲国产小视频 | 日韩无码一级黄片 | 中文字幕成人A片毛 | 农村寡妇三级在线观看 | 国产激情网址 | 一级特黄录像免费看 | 四川少如四川BBB相关新闻 |