matlab使用長短期記憶(LSTM)神經(jīng)網(wǎng)絡對序列數(shù)據(jù)進行分類|附代碼數(shù)據(jù)
全文下載鏈接:http://tecdat.cn/?p=19751
本示例說明如何使用長短期記憶(LSTM)網(wǎng)絡對序列數(shù)據(jù)進行分類 。 最近我們被客戶要求撰寫關(guān)于LSTM的研究報告,包括一些圖形和統(tǒng)計輸出。
要訓練深度神經(jīng)網(wǎng)絡對序列數(shù)據(jù)進行分類,可以使用LSTM網(wǎng)絡。LSTM網(wǎng)絡使您可以將序列數(shù)據(jù)輸入網(wǎng)絡,并根據(jù)序列數(shù)據(jù)的各個時間步進行預測。
本示例使用日語元音數(shù)據(jù)集。此示例訓練LSTM網(wǎng)絡來識別給定時間序列數(shù)據(jù)的說話者,該時間序列數(shù)據(jù)表示連續(xù)講話的兩個日語元音。訓練數(shù)據(jù)包含九位發(fā)言人的時間序列數(shù)據(jù)。每個序列具有12個特征,并且長度不同。數(shù)據(jù)集包含270個訓練觀察和370個測試觀察。
加載序列數(shù)據(jù)
加載日語元音訓練數(shù)據(jù)。?XTrain
?是包含長度可變的維度12的270個序列的單元陣列。?Y
?是標簽“ 1”,“ 2”,...,“ 9”的分類向量,分別對應于九個揚聲器。中的條目??XTrain
?是具有12行(每個要素一行)和不同列數(shù)(每個時間步長一列)的矩陣。
XTrain(1:5)
ans=5×1 cell array
? ?{12x20 double}
? ?{12x26 double}
? ?{12x22 double}
? ?{12x20 double}
? ?{12x21 double}
可視化圖中的第一個時間序列。每行對應一個特征。
figureplot(Train')xlabel("時間步長")title("訓練樣本 1")
numFeatures = size(XTrain{1},1);legend("特征 "

點擊標題查閱往期內(nèi)容

R語言用FNN-LSTM假近鄰長短期記憶人工神經(jīng)網(wǎng)絡模型進行時間序列深度學習預測4個案例
左右滑動查看更多
01

02

03

04

準備填充數(shù)據(jù)
在訓練過程中,默認情況下,該軟件默認將訓練數(shù)據(jù)分成小批并填充序列,以使它們具有相同的長度。太多的填充可能會對網(wǎng)絡性能產(chǎn)生負面影響。
為防止訓練過程增加太多填充,您可以按序列長度對訓練數(shù)據(jù)進行排序,并選擇小批量的大小,以使小批量中的序列具有相似的長度。下圖顯示了對數(shù)據(jù)進行排序之前和之后的填充序列的效果。

獲取每個觀察的序列長度。
按序列長度對數(shù)據(jù)進行排序。
在條形圖中查看排序的序列長度。
figurebar(sequenceLengths)ylim([0 30])xlabel("序列")ylabel("長度")title("排序后數(shù)據(jù)")

選擇大小為27的小批量可均勻劃分訓練數(shù)據(jù)并減少小批量中的數(shù)量。下圖說明了添加到序列中的填充量。

定義LSTM網(wǎng)絡架構(gòu)
定義LSTM網(wǎng)絡體系結(jié)構(gòu)。將輸入大小指定為大小為12的序列(輸入數(shù)據(jù)的大?。?。指定具有100個隱藏單元的雙向LSTM層,并輸出序列的最后一個元素。最后,通過包括大小為9的完全連接層,其后是softmax層和分類層,來指定九個類。
如果可以在預測時使用完整序列,則可以在網(wǎng)絡中使用雙向LSTM層。雙向LSTM層在每個時間步都從完整序列中學習。例如,如果您無法在預測時使用整個序列,比如一次預測一個時間步長時,請改用LSTM層。
layers =
?5x1 Layer array with layers: ? ? 1 ? '' ? Sequence Input ? ? ? ? ?Sequence input with 12 dimensions ? ? 2 ? '' ? BiLSTM ? ? ? ? ? ? ? ? ?BiLSTM with 100 hidden units ? ? 3 ? '' ? Fully Connected ? ? ? ? 9 fully connected layer ? ? 4 ? '' ? Softmax ? ? ? ? ? ? ? ? softmax ? ? 5 ? '' ? Classification Output ? crossentropyex
現(xiàn)在,指定訓練選項。將優(yōu)化器指定為??'adam'
,將梯度閾值指定為1,將最大歷元數(shù)指定為100。要減少小批量中的填充量,請選擇27的小批量大小。與最長序列的長度相同,請將序列長度指定為??'longest'
。為確保數(shù)據(jù)仍按序列長度排序,請指定從不對數(shù)據(jù)進行隨機排序。
由于批處理的序列短,因此訓練更適合于CPU。指定??'ExecutionEnvironment'
?為??'cpu'
。要在GPU上進行訓練(如果有),請將設置??'ExecutionEnvironment'
?為??'auto'
?(這是默認值)。
訓練LSTM網(wǎng)絡
使用指定的訓練選項來訓練LSTM網(wǎng)絡??trainNetwork
。

測試LSTM網(wǎng)絡
加載測試集并將序列分類為揚聲器。
加載日語元音測試數(shù)據(jù)。?XTest
?是包含370個長度可變的維度12的序列的單元陣列。?YTest
?是標簽“ 1”,“ 2”,...“ 9”的分類向量,分別對應于九個揚聲器。
XTest(1:3)
ans=3×1 cell array
? ?{12x19 double}
? ?{12x17 double}
? ?{12x19 double}
LSTM網(wǎng)絡??net
?是使用相似長度的序列進行訓練的。確保測試數(shù)據(jù)的組織方式相同。按序列長度對測試數(shù)據(jù)進行排序。
分類測試數(shù)據(jù)。要減少分類過程引入的數(shù)據(jù)量,請將批量大小設置為27。要應用與訓練數(shù)據(jù)相同的填充,請將序列長度指定為??'longest'
。
計算預測的分類準確性。
acc = sum(YPred == YTest)./numel(YTest)acc = 0.9730

點擊文末?“閱讀原文”
獲取全文完整代碼數(shù)據(jù)資料。
本文選自《matlab使用長短期記憶(LSTM)神經(jīng)網(wǎng)絡對序列數(shù)據(jù)進行分類》。
點擊標題查閱往期內(nèi)容
Python TensorFlow循環(huán)神經(jīng)網(wǎng)絡RNN-LSTM神經(jīng)網(wǎng)絡預測股票市場價格時間序列和MSE評估準確性
數(shù)據(jù)分享|PYTHON用KERAS的LSTM神經(jīng)網(wǎng)絡進行時間序列預測天然氣價格例子
Python對商店數(shù)據(jù)進行l(wèi)stm和xgboost銷售量時間序列建模預測分析
Matlab用深度學習長短期記憶(LSTM)神經(jīng)網(wǎng)絡對文本數(shù)據(jù)進行分類
RNN循環(huán)神經(jīng)網(wǎng)絡 、LSTM長短期記憶網(wǎng)絡實現(xiàn)時間序列長期利率預測
結(jié)合新冠疫情COVID-19股票價格預測:ARIMA,KNN和神經(jīng)網(wǎng)絡時間序列分析
深度學習:Keras使用神經(jīng)網(wǎng)絡進行簡單文本分類分析新聞組數(shù)據(jù)
用PyTorch機器學習神經(jīng)網(wǎng)絡分類預測銀行客戶流失模型
PYTHON用LSTM長短期記憶神經(jīng)網(wǎng)絡的參數(shù)優(yōu)化方法預測時間序列洗發(fā)水銷售數(shù)據(jù)
Python用Keras神經(jīng)網(wǎng)絡序列模型回歸擬合預測、準確度檢查和結(jié)果可視化
Python用LSTM長短期記憶神經(jīng)網(wǎng)絡對不穩(wěn)定降雨量時間序列進行預測分析
R語言中的神經(jīng)網(wǎng)絡預測時間序列:多層感知器(MLP)和極限學習機(ELM)數(shù)據(jù)分析報告
R語言深度學習:用keras神經(jīng)網(wǎng)絡回歸模型預測時間序列數(shù)據(jù)
Matlab用深度學習長短期記憶(LSTM)神經(jīng)網(wǎng)絡對文本數(shù)據(jù)進行分類
R語言KERAS深度學習CNN卷積神經(jīng)網(wǎng)絡分類識別手寫數(shù)字圖像數(shù)據(jù)(MNIST)
MATLAB中用BP神經(jīng)網(wǎng)絡預測人體脂肪百分比數(shù)據(jù)
Python中用PyTorch機器學習神經(jīng)網(wǎng)絡分類預測銀行客戶流失模型
R語言實現(xiàn)CNN(卷積神經(jīng)網(wǎng)絡)模型進行回歸數(shù)據(jù)分析
SAS使用鳶尾花(iris)數(shù)據(jù)集訓練人工神經(jīng)網(wǎng)絡(ANN)模型
【視頻】R語言實現(xiàn)CNN(卷積神經(jīng)網(wǎng)絡)模型進行回歸數(shù)據(jù)分析
Python使用神經(jīng)網(wǎng)絡進行簡單文本分類
R語言用神經(jīng)網(wǎng)絡改進Nelson-Siegel模型擬合收益率曲線分析
R語言基于遞歸神經(jīng)網(wǎng)絡RNN的溫度時間序列預測
R語言神經(jīng)網(wǎng)絡模型預測車輛數(shù)量時間序列
R語言中的BP神經(jīng)網(wǎng)絡模型分析學生成績
matlab使用長短期記憶(LSTM)神經(jīng)網(wǎng)絡對序列數(shù)據(jù)進行分類
R語言實現(xiàn)擬合神經(jīng)網(wǎng)絡預測和結(jié)果可視化
用R語言實現(xiàn)神經(jīng)網(wǎng)絡預測股票實例
使用PYTHON中KERAS的LSTM遞歸神經(jīng)網(wǎng)絡進行時間序列預測
python用于NLP的seq2seq模型實例:用Keras實現(xiàn)神經(jīng)網(wǎng)絡機器翻譯
用于NLP的Python:使用Keras的多標簽文本LSTM神經(jīng)網(wǎng)絡分類