卷积神经网络基础:(8)递归神经网络RNN
1、RNN網絡由來
RNN:Recurrent Neural Network。遞歸神經網絡只是在傳統神經網絡上進行一個改進而已。
正常流程是:輸入---->隱層---->輸出?(數據來了經過隱層最終得到輸出就完事了)
當我們在使用遞歸神經網絡的時候一些限制,現在我拿到一些數據它是有一些時間順序相關,
比如說我現在有一些數據時刻的一個特征,時刻的一個特征......一直到時刻的一個特征,相當于我自己加進來一個時間序列,當我這個網絡在訓練過程當中,他能考慮時間序列這個事情嗎?不能,因為每一次他的輸入,比如說第一次它的輸入是,那他跟就沒關系了,我這個網絡只把輸進去了,他沒有考慮,所以他認為和是沒有關系的,以及他們每兩個互相之間都是沒有任何關系的,因為此時我們會先進行洗牌再進行一個batch的選擇,模型傳遞過程當中不會考慮之間他們的一個關系的,每一步操作都是獨立來進行的,所以這里就會遇見一些小問題,有了一個時序數據,時刻與?......他們之間有一個時間相關性,那網絡能不能學習到由于時間的一個相關性對結果產生一些影響,這個就是我們RNN網絡在處理時間序列上的先天優勢。
2、RNN網絡的架構定義:
?首先看隱層:隱層上有一個特別之處,多了一個圈給他連回來了(解釋:意思就是我們現在有一個數據,數據經過隱層之后得到經過隱層之后當前的一個特征h1,比如說隱層會把當前數據轉換成64個特征,64個特征再經過輸出得到10個概率輸出值,多出來的這個圈連回來就是他會把你隱層當前得到的64個特征拿回來,相當于一會我要再去利用一下中間這個特征h1,RNN網絡的基本出發點:前一個時刻我訓練出來的中間的這一個結果特征,也會對后一個時刻產生影響的,因為特征他無非就是數據的特征表達,數據之間在時序上呈現這樣一個相關性,我在特征上也會呈現這樣一個相關性的意思。)?
?所以說當我的數據點來了之后,此時我的輸入是兩個箭頭,也就是說我在進行輸入的同時,我的中間特征結果也要進行一個輸入,他倆是同時傳入到隱層當中的,這個就是RNN當中他的一個小細節(他會把前一層得到的中間結果保存下來,參與下一層的一起運算)。來了之后,他會把這一次的計算結果也帶過來,因為表示我第二次的中間特征h2。
當來了之后,此時就是這個中間特征h2和一起同時傳入,此時h2這個中間特征不只是只包含這個數據點的特征,他也會融合了一部分這個點的特征,因為當你想得到h2的這個過程當中,你需要把之前的h1考慮進來,也就是說當我們使用RNN網絡在進行建模的過程當中,我可以考慮時間序列的一個數據了,在這個時間序列當中,它是由一個前后關系的,在、......他們之間最后是有一個關系的,如果說沒有關系那還不如使用傳統的神經網絡呢?這個就是說RNN網絡他是如何去解決不同的問題的。
PS:所以說CNN主要應用在計算機視覺(CV)當中;RNN主要應用到自然語言處理(NLP)當中;
?他會把之前看到的所有東西都記下來,這是RNN網絡的特點。記的太多了,所以說需要讓它忘記一些沒必要的特征,就引出來了LSTM。
總結
以上是生活随笔為你收集整理的卷积神经网络基础:(8)递归神经网络RNN的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 卷积神经网络基础:(7)经典的网络架构
- 下一篇: PyTorch框架:(1)基本处理操作