做者:櫻花豬算法
摘要:網絡
本文爲七月算法(julyedu.com)12月機器學習第二十次課在線筆記。 多層反饋RNN(Recurrent neural Network、循環神經網絡)神經網絡是一種節點定向鏈接成環的人工神經網絡。這種網絡的內部狀態能夠展現動態時序行爲。不一樣於前饋神經網絡的是,RNN能夠利用它內部的記憶來處理任意時序的輸入序列,這讓它能夠更容易處理如不分段的手寫識別、語音識別等。機器學習
引言:函數
循環神經網絡的目的使用來處理序列數據。在傳統的神經網絡模型中,是從輸入層到隱含層再到輸出層,層與層之間是全鏈接的,每層之間的節點是無鏈接的。可是這種普通的神經網絡對於不少問題卻無能無力。RNN之因此稱爲循環神經網路,即一個序列當前的輸出與前面的輸出也有關。具體的表現形式爲網絡會對前面的信息進行記憶並應用於當前輸出的計算中,即隱藏層之間的節點再也不無鏈接而是有鏈接的,而且隱藏層的輸入不只包括輸入層的輸出還包括上一時刻隱藏層的輸出。理論上,RNNs可以對任何長度的序列數據進行處理。可是在實踐中,爲了下降複雜性每每假設當前的狀態只與前面的幾個狀態相關。學習
本次課程比較注重於實踐,spa
預備知識:.net
人工神經網絡orm
1、狀態和模型blog
IID數據:分類問題、迴歸問題、特徵表達。ci
大部分數據都不知足IID:序列分析、序列生成、內容提取。
1、序列樣本
序列樣本多種多樣,能夠一對1、一對多和多對多等。
RNN不單單可以處理序列輸出,同時也可以獲得序列輸出,所以咱們能夠說RNN學習出來的是程序而不是函數。
二、序列預測:
輸入:時間變化向量序列:
在t時刻經過模型來估計:
序列預測存在的問題:
A. 對內部狀態難以建模和觀察
B. 對長時間範圍的場景(context)難以建模和觀察
解決方案:引入內部隱含狀態變量
三、序列預測模型:
輸入離散列序列:
在時間t的更新計算:
預測計算:
整個計算過程當中,W保持不變,在0時刻初始化
2、RNN訓練
前向計算,相同W矩陣須要乘以屢次;多步以前的輸入x會影響當前的輸出;在後向計算的時候,一樣相同的矩陣也會乘以屢次。
一、BPTT算法(BackProp Through Time)
RNN前向計算
計算W的偏導,把全部的Time Step加起來
應用鏈式規則
二、LSTM(Long Short Term Memory)Cell
是一種應用最爲普遍、成功的RNN方案。
能夠長期保持某個狀態,cell state值經過forget gate控制實現保留多少「老」的狀態
Layer把輸入維度x變成輸出維度h。
參考文獻
http://blog.csdn.net/heyongluoyao8/article/details/48636251