【LSTM分类】基于双向长短时记忆(BiLSTM)实现数据分类含Matlab源码
生活随笔
收集整理的這篇文章主要介紹了
【LSTM分类】基于双向长短时记忆(BiLSTM)实现数据分类含Matlab源码
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
?1 簡介
LSTM 是循環(huán)神經(jīng)網(wǎng)絡中的一個特殊網(wǎng)絡,它能夠很好的處理序列信息并從中學習有效特征,它把以往的神經(jīng)單元用一個記憶單元( memory cell) 來代替,解決了以往循環(huán)神經(jīng)網(wǎng)絡在梯度反向傳播中遇到的爆炸和衰減問題. 一個記憶單元利用了輸入門 it、一個記憶細胞 ct、一個忘記門 ft、一個輸出門 ot 來控制歷史信息的儲存記憶,在每次輸入后會有一個當前狀態(tài) ht,ht 計算如下:
其中,xt?為?t?時刻輸入的情感詞向量,σ?為?sigmoid?函數(shù),?代表向量對應元素依次相乘,其中水電費?Wi,Ui,Vi,bi,?Wg,Ug,bg,Wo,Uo,Vo,bo?為?LSTM?參數(shù).
2 部分代碼
%加載序列數(shù)據(jù)%數(shù)據(jù)描述:總共270組訓練樣本共分為9類,每組訓練樣本的訓練樣個數(shù)不等,每個訓練訓練樣本由12個特征向量組成,clcclear allclose all[XTrain,YTrain] = japaneseVowelsTrainData;%數(shù)據(jù)可視化figureplot(XTrain{1}')xlabel('Time Step')title('Training Observation 1')legend('Feature ' ,'Location','northeastoutside')%%%LSTM可以將分組后等量的訓練樣本進行訓練,從而提高訓練效率%如果每組的樣本數(shù)量不同,進行小批量拆分,則需要盡量保證分塊的訓練樣本數(shù)相同%首先找到每組樣本數(shù)和總的組數(shù)numObservations = numel(XTrain);for i=1:numObservations sequence = XTrain{i}; sequenceLengths(i) = size(sequence,2);end%繪圖前后排序的各組數(shù)據(jù)個數(shù)figuresubplot(1,2,1)bar(sequenceLengths)ylim([0 30])xlabel('Sequence')ylabel('Length')title('Sorted Data')%按序列長度對測試數(shù)據(jù)進行排序[sequenceLengths,idx] = sort(sequenceLengths);XTrain = XTrain(idx);YTrain = YTrain(idx);subplot(1,2,2)bar(sequenceLengths)ylim([0 30])xlabel('Sequence')ylabel('Length')title('Sorted Data')%%?3 仿真結(jié)果
4 參考文獻
[1]黃賢英, 劉廣峰, 劉小洋,等. 基于word2vec和雙向LSTM的情感分類深度模型[J]. 計算機應用研究, 2019, 36(12):6.?
博主簡介:擅長智能優(yōu)化算法、神經(jīng)網(wǎng)絡預測、信號處理、元胞自動機、圖像處理、路徑規(guī)劃、無人機等多種領(lǐng)域的Matlab仿真,相關(guān)matlab代碼問題可私信交流。
部分理論引用網(wǎng)絡文獻,若有侵權(quán)聯(lián)系博主刪除。
總結(jié)
以上是生活随笔為你收集整理的【LSTM分类】基于双向长短时记忆(BiLSTM)实现数据分类含Matlab源码的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: tkinter浏览器组件
- 下一篇: ppt to html c,PPTC参数