2018-04-09 第三周

????????首先,介紹一下lstm神經(jīng)網(wǎng)絡(luò):

????????長短期記憶(英語:Long Short-Term Memory,LSTM)是一種時間遞歸神經(jīng)網(wǎng)絡(luò)(RNN)[1],論文首次發(fā)表于1997年。由于獨特的設(shè)計結(jié)構(gòu),LSTM適合于處理和預(yù)測時間序列中間隔和延遲非常長的重要事件。

????????LSTM的表現(xiàn)通常比時間遞歸神經(jīng)網(wǎng)絡(luò)及隱馬爾科夫模型(HMM)更好,比如用在不分段連續(xù)手寫識別上[2]。2009年,用LSTM構(gòu)建的人工神經(jīng)網(wǎng)絡(luò)模型贏得過ICDAR手寫識別比賽冠軍。LSTM還普遍用于自主語音識別,2013年運用TIMIT自然演講資料庫達(dá)成17.7%錯誤率的紀(jì)錄。作為非線性模型,LSTM可作為復(fù)雜的非線性單元用于構(gòu)造更大型深度神經(jīng)網(wǎng)絡(luò)。

? ? ? ? ? 根據(jù)前一周的學(xué)習(xí),首先設(shè)計訓(xùn)練參數(shù):

learning_rate:學(xué)習(xí)的速度,根據(jù)Hinton 的BP算法中的梯度下降法則,數(shù)值越小,越能找出趨近于最合適的參數(shù)值。

training_iters:訓(xùn)練迭代的次數(shù),次數(shù)的選擇需要一點一點地查看,過多會導(dǎo)致過擬合,過少很引起欠擬合。

batch_size:使用批梯度下降,再次,注意一下,批梯度下降與隨機(jī)梯度下降的區(qū)別:

批量梯度下降的求解思路如下:

(1)將J(theta)對theta求偏導(dǎo),得到每個theta對應(yīng)的的梯度


(2)由于是要最小化風(fēng)險函數(shù),所以按每個參數(shù)theta的梯度負(fù)方向,來更新每個theta


(3)從上面公式可以注意到,它得到的是一個全局最優(yōu)解,但是每迭代一步,都要用到訓(xùn)練集所有的數(shù)據(jù),如果m很大,那么可想而知這種方法的迭代速度??!所以,這就引入了另外一種方法,隨機(jī)梯度下降。

隨機(jī)梯度下降的求解思路如下:

(1)上面的風(fēng)險函數(shù)可以寫成如下這種形式,損失函數(shù)對應(yīng)的是訓(xùn)練集中每個樣本的粒度,而上面批量梯度下降對應(yīng)的是所有的訓(xùn)練樣本:


(2)每個樣本的損失函數(shù),對theta求偏導(dǎo)得到對應(yīng)梯度,來更新theta


(3)隨機(jī)梯度下降是通過每個樣本來迭代更新一次,如果樣本量很大的情況(例如幾十萬),那么可能只用其中幾萬條或者幾千條的樣本,就已經(jīng)將theta迭代到最優(yōu)解了,對比上面的批量梯度下降,迭代一次需要用到十幾萬訓(xùn)練樣本,一次迭代不可能最優(yōu),如果迭代10次的話就需要遍歷訓(xùn)練樣本10次。但是,SGD伴隨的一個問題是噪音較BGD要多,使得SGD并不是每次迭代都向著整體最優(yōu)化方向。

lr =0.001 # learning rate

training_iters =10000? ? # train step 上限

batch_size =64

inputs:一次性輸入的量

steps:輸入完一整個數(shù)據(jù)的次數(shù),因為詞向量的長度為300,所以均為300的公因數(shù)

hidden_units:lstm內(nèi)部的神經(jīng)元的個數(shù)

n_inputs = 50 # input of each neuronn_steps = 6 # time stepsn_hidden_units = 512 # neurons in hidden layern_classes = 3 # result(bad, not good, good)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容