将来のタイムステップの予測について

7 views (last 30 days)
misato abe
misato abe on 23 Dec 2019
Commented: Kenta on 23 Feb 2020
現在評価版を使用しており、深層学習を使用した時系列予測について質問があります。
以下ページにある例題を使い2入力1出力したい場合、どのようにして将来のタイムステップを予測すると良いのでしょうか。
[net,YPred] = predictAndUpdateState(net,YTrain(end));
ですとYTrain(end)1入力しかできず実行できません。
YTrain_new = [YTrain(1:end-1);YTrain(2:end)];
[net,YPred] = predictAndUpdateState(net,YTrain_new(:,end));
そこで、YTrainを分けてみましたがこういう意味ではありませんよね?
どのように行うと最後まで実行可能でしょうか。
  1 Comment
Kenta
Kenta on 23 Feb 2020
こんにちは、こちらすでに解決されていますか?
こちらのpredictAndUpdateState関数では、時刻t+1の値を予測し、次は、その値をインプットさせ更新させながらどんどん先の方向の値を予測していきます。
一方、質問者さまの課題はおそらく、若干異なっていて、たとえでいうと、
時刻tのcosxとsinxの値からtanxの値を予測し、次は時刻t+1のcosxとsinxの値からtanxの値を予測...
という感じなのかなと思いました。センサーデータのようなインプットデータが時刻t以降も入るうえで、そのデータから時刻t以降のほしいデータを予測したい、といったことなのかと推測しました。
その場合は、「sequence to one」の回帰をどんどん先の時間まで繰り返せばよいかと思います。

Sign in to comment.

Accepted Answer

Hiro Yoshino
Hiro Yoshino on 26 Dec 2019
この例題は、入力と出力が同じタイプのものです。
何が行っているのかをご理解されれば、技術的な問題では無いとご理解いただけるかなと思います。
まず、学習段階では X --> Y (未来のX) のペアで教師あり学習をします
テスト段階ではX_test --> Y_test (未来のX_test)です。
predictAndUpdateState は未来のX_testの予測を使って上げて、更に未来を予測しようとしています。
つまり、Y_test --> Y_test_1 (未来のY_test)
つまり2入力1出力では、出てきた1出力のモノを再度入力にすることは出来ないのですよね。

More Answers (0)

Categories

Find more on Deep Learning Toolbox 入門 in Help Center and File Exchange

Products


Release

R2019b

Community Treasure Hunt

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

Start Hunting!