循环神经网络(RNN)模型与前向反向传播算法
在前面我們講到了DNN,以及DNN的特例CNN的模型和前向反向傳播算法,這些算法都是前向反饋的,模型的輸出和模型本身沒有關聯關系。今天我們就討論另一類輸出和模型間有反饋的神經網絡:循環神經網絡(Recurrent Neural Networks ,以下簡稱RNN),它廣泛的用于自然語言處理中的語音識別,手寫書別以及機器翻譯等領域。
1. RNN概述
在前面講到的DNN和CNN中,訓練樣本的輸入和輸出是比較的確定的。但是有一類問題DNN和CNN不好解決,就是訓練樣本輸入是連續的序列,且序列的長短不一,比如基于時間的序列:一段段連續的語音,一段段連續的手寫文字。這些序列比較長,且長度不一,比較難直接的拆分成一個個獨立的樣本來通過DNN/CNN進行訓練。
而對于這類問題,RNN則比較的擅長。那么RNN是怎么做到的呢?RNN假設我們的樣本是基于序列的。比如是從序列索引1到序列索引ττ的。對于這其中的任意序列索引號tt,它對應的輸入是對應的樣本序列中的x(t)x(t)。而模型在序列索引號tt位置的隱藏狀態h(t)h(t),則由x(t)x(t)和在t?1t?1位置的隱藏狀態h(t?1)h(t?1)共同決定。在任意序列索引號tt,我們也有對應的模型預測輸出o(t)o(t)。通過預測輸出o(t)o(t)和訓練序列真實輸出y(t)y(t),以及損失函數L(t)L(t),我們就可以用DNN類似的方法來訓練模型,接著用來預測測試序列中的一些位置的輸出。
下面我們來看看RNN的模型。
2. RNN模型
RNN模型有比較多的變種,這里介紹最主流的RNN模型結構如下:
總結
以上是生活随笔為你收集整理的循环神经网络(RNN)模型与前向反向传播算法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 卷积神经网络(CNN)反向传播算法
- 下一篇: tensorflow机器学习模型的跨平台