人人都能看懂的循环神经网络RNN
循環(huán)神經(jīng)網(wǎng)絡(luò)
基礎(chǔ)篇
??我們假設(shè)您有一個(gè)管家,他很擅長(zhǎng)做蘋果派、漢堡以及炸雞這三樣食物。管家制作食物的種類取決于天氣,若是晴天,他會(huì)做蘋果派;若是雨天,他會(huì)做漢堡。這樣制作食物的規(guī)則很容易用神經(jīng)網(wǎng)絡(luò)來(lái)表示。 ??我們接下來(lái)用數(shù)學(xué)語(yǔ)言描述上述過(guò)程,利用一些向量表示食物,再用一些向量表示天氣。
蘋果派=[100]漢堡=[010]炸雞=[001]晴天=[10]雨天=[01]蘋果派= \left[ \begin{matrix} 1\\ 0\\ 0 \end{matrix} \right] 漢堡= \left[ \begin{matrix} 0\\ 1\\ 0 \end{matrix} \right] 炸雞= \left[ \begin{matrix} 0\\ 0\\ 1 \end{matrix} \right]\\ 晴天= \left[ \begin{matrix} 1\\ 0 \end{matrix} \right] 雨天= \left[ \begin{matrix} 0\\ 1 \end{matrix} \right] 蘋果派=???100????漢堡=???010????炸雞=???001????晴天=[10?]雨天=[01?]
??我們可以利用圖形描述這一過(guò)程
??這個(gè)神經(jīng)網(wǎng)絡(luò)其實(shí)是一個(gè)非常簡(jiǎn)單的矩陣,我們可以構(gòu)建一個(gè)矩陣與天氣向量相乘從而得到廚師要做的食物名稱。不難發(fā)現(xiàn)天氣與食物之間滿足線性映射。具體映射過(guò)程如下:
??我們同樣可以利用神經(jīng)元之間的連接關(guān)系表示上述過(guò)程:
進(jìn)階篇
??假設(shè)現(xiàn)在管家做飯不依賴于天氣,而是遵循一個(gè)順序,比如第一天是蘋果派、第二天是漢堡、第三天是炸雞,接下來(lái)又是蘋果派、漢堡、炸雞……
??我們用循環(huán)神經(jīng)網(wǎng)絡(luò)表示上述過(guò)程:
??我們繼續(xù)沿用上文中食物的向量表示,但此處我們將用新的矩陣來(lái)表示神經(jīng)網(wǎng)絡(luò):
[001100010]\left[ \begin{matrix} 0 & 0 & 1\\ 1 & 0 & 0\\ 0 & 1 & 0 \end{matrix} \right] ???010?001?100????
??具體的計(jì)算過(guò)程如下:
??不難發(fā)現(xiàn),此處的神經(jīng)網(wǎng)絡(luò)依然是一個(gè)簡(jiǎn)單的線性映射,將蘋果派映射到漢堡,將漢堡映射到炸雞,將炸雞映射到蘋果派。我們接下來(lái)用神經(jīng)元描述上述過(guò)程,其中我們只繪制權(quán)重為1的邊,權(quán)重為0的邊將被省略:
終極篇
??我們現(xiàn)在來(lái)考慮一種更為復(fù)雜的情況,管家依然只做3種食物:蘋果派、漢堡、炸雞,但是當(dāng)天制作的食物與天氣有關(guān),若今天是晴天,那么管家會(huì)外出享受好天氣,所以依然制作昨天的食物。若今天是雨天,管家將不會(huì)出門,所以按照順序會(huì)制作新的食物。我們用圖片表示如下:
??目前的神經(jīng)網(wǎng)絡(luò)工作方式如下:
??我們繼續(xù)沿用食物以及天氣的向量表示,現(xiàn)在我們的神經(jīng)網(wǎng)絡(luò)具有多層,所以需要通過(guò)多個(gè)矩陣進(jìn)行表示。我們先來(lái)觀察食物矩陣是如何工作的,不難發(fā)現(xiàn)上部分就是一個(gè)單位陣。我們這里以蘋果派為例進(jìn)行展示:
??我們接下來(lái)來(lái)看天氣矩陣是如何工作的:
??我們接下來(lái)將食物矩陣和天氣矩陣進(jìn)行相加:
??具體的相加以及合并的過(guò)程如下圖所示,例如我們昨天吃了蘋果派,并且今天下雨,那今天該吃什么呢:
??不難發(fā)現(xiàn),在合并的過(guò)程中會(huì)保留矩陣相加結(jié)果中最大的元素,并將其置為1,而對(duì)于其它元素都會(huì)被置0。我們接下來(lái)將用神經(jīng)元描述上述過(guò)程,同樣,我們只保留邊權(quán)為1的邊而將邊權(quán)為0的邊進(jìn)行忽略:
??此處的網(wǎng)絡(luò)結(jié)構(gòu)如下圖所示:
訓(xùn)練方式
??隨機(jī)給矩陣中的每個(gè)元素賦予初始值,給定誤差函數(shù),使用梯度下降訓(xùn)練模型,確定每個(gè)參數(shù)的具體數(shù)值:
應(yīng)用場(chǎng)合
1、股票預(yù)測(cè)
2、序列生成
3、文本生成
4、語(yǔ)音識(shí)別
總結(jié)
以上是生活随笔為你收集整理的人人都能看懂的循环神经网络RNN的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Mathematica初学者第二讲
- 下一篇: 通俗易懂的Word Embeddings