中文字幕理论片,69视频免费在线观看,亚洲成人app,国产1级毛片,刘涛最大尺度戏视频,欧美亚洲美女视频,2021韩国美女仙女屋vip视频

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
詳解循環(huán)神經(jīng)網(wǎng)絡(luò)RNN(實踐篇)

閱讀大概需要8分鐘

跟隨小博主,每天進(jìn)步一丟丟


作者 劉博

鏈接 https://zhuanlan.zhihu.com/p/32755043


昨天的是理論篇,想看的小伙伴點擊這里啦。


導(dǎo)讀

目錄

  1. 我們需要一個用于處理序列的神經(jīng)網(wǎng)絡(luò)

  2. 什么是循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)

  3. 理解循環(huán)神經(jīng)元(Recurrent Neuron)的細(xì)節(jié)

  4. 用Excel實現(xiàn)循環(huán)神經(jīng)元的前向傳播

  5. 循環(huán)神經(jīng)網(wǎng)絡(luò)的后向傳播(BPTT)


用Excel實現(xiàn)循環(huán)神經(jīng)元的前向傳播

我們先來看看輸入。

我們對輸入進(jìn)行one-hot編碼。這是因為我們的整個詞匯表只有四個字母{h,e,l,o}。

接下來我們將利用把輸入轉(zhuǎn)換為隱藏狀態(tài),這里我們采取隨機的方式將權(quán)重初始化為3x4的矩陣。

(注:這里矩陣的大小為什么是3x4?因為我們想計算

其中
是4x1的one-hot矩陣,根據(jù)矩陣乘法運算的法則,
大小必須是nx4,n一般取比4小的值,因此
的矩陣維度取3x4)

步驟1:

輸入網(wǎng)絡(luò)的第一個字母是“h”, 我們想要得到隱藏層狀態(tài),那么首先我們需要計算

。通過矩陣相乘,我們得到

步驟2:

現(xiàn)在我們看一下循環(huán)神經(jīng)元, 權(quán)重

是一個1x1的矩陣,值為0.427043,偏差也是1x1的矩陣,值為0.56700.

對于字母“h”,沒有前一個狀態(tài),所以我們也可以認(rèn)為前一個狀態(tài)是[0,0,0,0]。

接下來計算


(譯者注:讀者一定注意到了,1x1的矩陣與一個4x1的矩陣相乘再加上一個1x1的矩陣,根據(jù)矩陣乘法的規(guī)則,是無法運算的。因此這里應(yīng)該是使用了矩陣廣播運算,而得到的結(jié)果應(yīng)該是4x1的矩陣,而不是3x1的矩陣,但是被強制轉(zhuǎn)換為了3x1的矩陣,原因是步驟1的輸出結(jié)果是3x1的矩陣,接下來的步驟3將計算步驟1和步驟2的相加,所以步驟2的輸出必須是3x1)

步驟3:

Ok,有了前兩步,我們就可以計算當(dāng)前循環(huán)神經(jīng)元的狀態(tài)了,根據(jù)以下公式

將前兩步的結(jié)果代入公式即可得到當(dāng)前步的狀態(tài),計算如下

步驟4:

現(xiàn)在我們繼續(xù)關(guān)注下一個字母“e”被傳入網(wǎng)絡(luò)。上一步計算得到的

現(xiàn)在變成了這一步的
,而e的one-hot向量是
.現(xiàn)在我們來計算以下這一步的
.

首先計算

再計算

(譯者注:注意觀察,計算上一步的狀態(tài)與計算此步驟的狀態(tài)使用的權(quán)重是一樣的,也就是說使用的是同樣的
,所以說循環(huán)神經(jīng)元的特點是**權(quán)重共享)

步驟5:

有了步驟4的結(jié)果,代入公式可得輸入字母“e”后的狀態(tài)

同樣,這一步得到的狀態(tài)將變成下一步的

,而循環(huán)神經(jīng)元將使用這個狀態(tài)和新輸入字母來計算下一個狀態(tài).

步驟6:

在每一個狀態(tài),循環(huán)神經(jīng)元還會計算輸出. 現(xiàn)在我們來計算一下字母e的輸出

(譯者注:注意,一個循環(huán)神經(jīng)元根據(jù)輸入和前一時間步的狀態(tài)計算當(dāng)前時間步的狀態(tài),然后根據(jù)當(dāng)前時間步的狀態(tài)計算輸出。另外需要注意的是,這里的

的維度大小是4x3,這是因為我們想得到4x1的輸出,因為one-hot的維度是4x1,而通過下一步的計算每一個維度可以代表該維度的字母出現(xiàn)的概率)

步驟7:

通過應(yīng)用softmax函數(shù),我們可以得到詞匯表中一個特定字母的出現(xiàn)的概率,所以我們現(xiàn)在計算

我們來理解一下得到的概率值。我們看到,這個模型認(rèn)為字母e后面將出現(xiàn)的字母是h,因為概率最高的是代表字母h的那一維??墒菍嶋H上下一個字母應(yīng)該是l,我們哪里做錯了嗎?并沒有,只是我們還沒有訓(xùn)練我們的網(wǎng)絡(luò)。

好,我們面對的下一個大問題就是:RNN網(wǎng)絡(luò)中如何實現(xiàn)后向傳播?如何通過反饋循環(huán)來升級我們的權(quán)重?


循環(huán)神經(jīng)網(wǎng)絡(luò)的后向傳播(BPTT)

很難憑想象理解一個遞歸神經(jīng)網(wǎng)絡(luò)的權(quán)重是如何更新的。因此,為了理解和可視化反向傳播,讓我們按照時間步展開網(wǎng)絡(luò)。在其中我們可以計算也可以不計算每一個時間步的輸出。

在向前傳播的情況下,輸入隨著每一個時間步前進(jìn)。在反向傳播的情況下,我們“回到過去”改變權(quán)重,因此我們叫它通過時間的反向傳播(BPTT)。

如果
是預(yù)測值,
是對應(yīng)的實際值,那么,誤差通過交叉熵?fù)p失來計算:

我們通常把整個序列(單詞)看作一個訓(xùn)練樣本,所以總的誤差是每個時間步(字符)中誤差的和。權(quán)重在每一個時間步長是相同的(所以可以計算總誤差后一起更新)。讓我們總結(jié)一下反向傳播的步驟。

  1. 首先使用預(yù)測輸出和實際輸出計算交叉熵誤差

  2. 網(wǎng)絡(luò)按照時間步完全展開

  3. 對于展開的網(wǎng)絡(luò),對于每一個實踐步計算權(quán)重的梯度

  4. 因為對于所有時間步來說,權(quán)重都一樣,所以對于所有的時間步,可以一起得到梯度(而不是像神經(jīng)網(wǎng)絡(luò)一樣對不同的隱藏層得到不同的梯度)

  5. 隨后對循環(huán)神經(jīng)元的權(quán)重進(jìn)行升級

展開的網(wǎng)絡(luò)看起來像一個普通的神經(jīng)網(wǎng)絡(luò)。反向傳播也類似于普通的神經(jīng)網(wǎng)絡(luò),只不過我們一次得到所有時間步的梯度。我知道你在擔(dān)心什么,現(xiàn)在如果有100個時間步,那么網(wǎng)絡(luò)展開后將變得非常巨大(這是個挑戰(zhàn)性的問題,我們后面講介紹如何克服)。

如果你不想深入了解這背后的數(shù)學(xué),所有你需要知道的是,按照時間步展開后的反向傳播類似于常規(guī)神經(jīng)網(wǎng)絡(luò)的反向傳播。


每日托福單詞


inclined adj.趨向于...的  v. 使...傾向(incline的過去式)

synthetic adj.綜合的;合成的,人造的  n.合成物

excusable adj.可原諒的;可辯解的;可免除的

prohibit vt.阻止,禁止

recipe n.食譜;處方;秘訣


優(yōu)質(zhì)公眾號推薦


公眾號名稱:癡海

簡介:只要把握風(fēng)口,豬也能飛起來。如今時代編程風(fēng)口「Python」,值得每個人關(guān)注。癡海,一個專注于 Python 編程,每天定時推送各種 Python 干貨文章。但這不僅僅是一個技術(shù)公眾號,每周還會分享職場、人生、認(rèn)知原創(chuàng)文章。

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
神經(jīng)網(wǎng)絡(luò)基本原理及Python編程實現(xiàn)
深度學(xué)習(xí)入門
人工智能神經(jīng)網(wǎng)絡(luò)中的基礎(chǔ)概念有哪些?
從零學(xué)習(xí):從Python和R理解和編碼神經(jīng)網(wǎng)絡(luò)
深度學(xué)習(xí)系列 自己手寫一個卷積神經(jīng)網(wǎng)絡(luò)
CS224N課程筆記:神經(jīng)網(wǎng)絡(luò)與反向傳播
更多類似文章 >>
生活服務(wù)
熱點新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服