将来のタイムステップの予測について
7 ビュー (過去 30 日間)
古いコメントを表示
現在評価版を使用しており、深層学習を使用した時系列予測について質問があります。
以下ページにある例題を使い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 件のコメント
Kenta
2020 年 2 月 23 日
こんにちは、こちらすでに解決されていますか?
こちらのpredictAndUpdateState関数では、時刻t+1の値を予測し、次は、その値をインプットさせ更新させながらどんどん先の方向の値を予測していきます。
一方、質問者さまの課題はおそらく、若干異なっていて、たとえでいうと、
時刻tのcosxとsinxの値からtanxの値を予測し、次は時刻t+1のcosxとsinxの値からtanxの値を予測...
という感じなのかなと思いました。センサーデータのようなインプットデータが時刻t以降も入るうえで、そのデータから時刻t以降のほしいデータを予測したい、といったことなのかと推測しました。
その場合は、「sequence to one」の回帰をどんどん先の時間まで繰り返せばよいかと思います。
採用された回答
Hiro Yoshino
2019 年 12 月 26 日
この例題は、入力と出力が同じタイプのものです。
何が行っているのかをご理解されれば、技術的な問題では無いとご理解いただけるかなと思います。
まず、学習段階では X --> Y (未来のX) のペアで教師あり学習をします
テスト段階ではX_test --> Y_test (未来のX_test)です。
predictAndUpdateState は未来のX_testの予測を使って上げて、更に未来を予測しようとしています。
つまり、Y_test --> Y_test_1 (未来のY_test)
つまり2入力1出力では、出てきた1出力のモノを再度入力にすることは出来ないのですよね。
0 件のコメント
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Deep Learning Toolbox 入門 についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!