LSTMをつかって、​複数インプットから一​つのアウトプットを出​したいのですが、、、

こんばんは。
現在、水量変動予測ができる時系列解析ネットワークを構築したく奮闘中です。
現在はLSTMを使いたいと思っているのですが、
インプットが4個、対応するデータが1個のアウトプットで学習させたいと思っています。
そして以下のように組んでみたのですが
numFeatures = 4;
numResponses = 1;
numHiddenUnits = 200;
layers = [ ...
sequenceInputLayer(numFeatures)
lstmLayer(numHiddenUnits)
fullyConnectedLayer(numResponses)
regressionLayer];
options = trainingOptions('adam', ...
'MaxEpochs',250, ...
'GradientThreshold',1, ...
'InitialLearnRate',100, ...
'LearnRateSchedule','piecewise', ...
'LearnRateDropPeriod',125, ...
'LearnRateDropFactor',0.2, ...
'Verbose',0, ...
'Plots','training-progress');
net = trainNetwork(input,pump3,layers,options); %inputは4個(4×881)のインプットデータ、pump3は対応データ
で学習を行うと、以下のようになります。
figure1 11.05.png
・LSTMのチュートリアルでは縦軸はaccuracy(%)でしたが、なぜかRMSE(Root Mean Square)になっていたり
・学習の挙動がおかしかったり しています。
これはインプットでーたの形式がおかしいのでしょうか?
もしくはLSTMのコードがおかしいため起こるのでしょうか?

 采纳的回答

Hiro Yoshino
Hiro Yoshino 2019-11-11

0 个投票

この様子だと、データの対が1つしかない状況でしょうか?
input{1,1:4} --> pump3(1)
input{2, 1:4} --> pump3(2)
....
input{n, 1:4} --> pump3(n)
のようにいくつか対が無いと学習は上手く行かないかなと思います。
どのチュートリアルか?分かりかねますが、今回は回帰モデルなのでRMSEで良いと思います。
分類でしたらAccuracyかなと思います。

2 个评论

Shuhei IKEDA
Shuhei IKEDA 2019-11-11
回答いただきありがとうございます!
浅学で恐縮ですが
input{1, 1:4} --> pump3(1)
の(1)は時系列のことでしょうか。
現状は、インプット(4種類)に
・気温
・降水量
・上流からの水(1)
・上流からの水(2)
アウトプット(1種類)に
・下流への水
で学習させようと試みております。
この場合においても、データの対が1つということになるのでしょうか...?
-------------------------------------------------
RMSEの件については、
分類 → Accuracy(%)
回帰 → RMSE で出るようです!勉強不足でした、ありがとうございます。
Kenta
Kenta 2020-2-23
ここの会話でいう、「データの対」とは、
・気温
・降水量
・上流からの水(1)
・上流からの水(2) ⇔ ・下流への水
という5つで1セットのデータが何個あるかということを言ってるのだと思います。
「・学習の挙動がおかしかったり」
に関しては、例えば初期学習率が100になっていて、少し大きいのかもしれません。local minimumを飛び越えてしまって、学習曲線がこのようにガタガタすることも多いかと思います。

请先登录,再进行评论。

更多回答(1 个)

Hiro Yoshino
Hiro Yoshino 2019-11-11

0 个投票

「入力」と「答え」 の対が必要です。(現状、一つだけ?)
「答え」は未知の入力が有った場合に得られる出力と同じフォーマットである必要が有ります。
(一つの値なら一つの値、連続値なら連続値)
LSTMが特殊に見えるかもしれませんが、普通の回帰モデルと同じです。
入力データ間の相関を考慮しているモデルということだけが異なる点です。

类别

帮助中心File Exchange 中查找有关 Deep Learning Toolbox 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!