深層学習を使用した序列对序列分類
この例では,長短期記憶(LSTM)ネットワークを使用してシーケンスデータの各タイムステップを分類する方法を説明します。
シーケンスデータの各タイムステップを分類するよう深層ニューラルネットワークに学習させるために,“序列对序列LSTMネットワ,ク”を使用できます。sequence-to-sequence LSTMネットワークでは,シーケンスデータの個々のタイムステップで異なる予測を行うことができます。
この例では,体に装着したスマ,トフォンから得られたセンサ,デ,タを使用します。この例では3つの異なる方向での加速度計の測定値を表す時系列データを与えて,装着者の行動を認識するように,LSTMネットワークに学習させます。学習デ,タには,7人分の時系列デ,タが含まれています。各シケンスには3の特徴があり,。デタセットには6の学習観測値と1のテスト観測値が含まれています。
シ,ケンスデ,タの読み込み
行動認識デ,タを読み込みます。学習データには,体に装着したスマートフォンから得られたセンサーデータの6つのシーケンスが含まれています。各シケンスには3の特徴があり,。3 .。
负载HumanActivityTrainXTrain
XTrain =6×1单元格数组{3×64480 double} {3×53696 double} {3×56416 double} {3×50688 double} {3×51888 double} {3×54256 double}
1の学習シケンスをプロットで可視化します。最初の学習シ,ケンスの最初の特徴をプロットし,対応する行動に応じてプロットに色を付けます。
X = XTrain{1}(1,:);classes = categories(YTrain{1});数字为J = 1:编号(类)标签=类(J);idx = find(YTrain{1} == label);持有在情节(idx X (idx))结束持有从包含(“时间步”) ylabel (“加速”)标题(“训练序列1,特征1”)传说(类,“位置”,“西北”)
LSTMネットワ,クア,キテクチャの定義
LSTMネットワ,クア,キテクチャを定義します。入力をサズ3(入力デタの特徴の数)のシケンスになるように指定します。200個の隠れユニットを持LSTM層を指定して,シ,ケンス全体を出力します。最後に,サイズが5の全結合層を含めることによって5個のクラスを指定し,その後にソフトマックス層と分類層を配置します。
numFeatures = 3;numHiddenUnits = 200;numClasses = 5;层= [...sequenceInputLayer numFeatures lstmLayer (numHiddenUnits,“OutputMode”,“序列”) fullyConnectedLayer(numClasses) softmaxLayer classificationLayer];
学習オプションを指定します。ソルバ,を“亚当”
に設定します。学習を60エポック行います。勾配の発散を防ぐために,勾配のしきい値を2に設定します。
选项= trainingOptions(“亚当”,...“MaxEpochs”现年60岁的...“GradientThreshold”2,...“详细”0,...“阴谋”,“训练进步”);
trainNetwork
を使用し,指定した学習オプションでLSTMネットワ,クに学習させます。各ミニバッチには学習セット全体が含まれているので,プロットはエポックごとに更新されます。シ,ケンスが非常に長いため,各ミニバッチの処理とプロットの更新に時間がかかる場合があります。
net = trainNetwork(XTrain,YTrain,图层,选项);
LSTMネットワ,クのテスト
テストデタを読み込み,タムステップごとに行動を分類します。
行動のテストデ,タを読み込みます。XTest
には3次元の単一シケンスが含まれます。欧美
には,各タ。
负载HumanActivityTest图(XTest{1}')“时间步”)传说(“特性”+ (1:numFeatures))“测试数据”)
分类
を使用してテストデ,タを分類します。
YPred = category (net,XTest{1});
または,classifyAndUpdateState
を使用して1タ▪▪▪▪ムステップず▪▪▪▪▪予測できます。これは,タムステップの値がストリムで到着する場合に役立ます。通常,1タ▪▪ムステップず▪▪予測するよりも,シ▪▪ケンス全体に▪いて予測する方が高速です。1つのタイムステップでの予測間にネットワークを更新して将来のタイムステップを予測する方法を示す例については,深層学習を使用した時系列予測を参照してください。
予測の精度を計算します。
acc = sum(YPred == YTest{1})./ nummel (YTest{1})
Acc = 0.9998
プロットを使用して予測をテストデ,タと比較します。
图绘制(YPred,“。”)举行在情节(欧美{1})从包含(“时间步”) ylabel (“活动”)标题(“预测活动”)传说([“预测”“测试数据”])
参考
trainNetwork
|trainingOptions
|lstmLayer
|sequenceInputLayer