複数のモーダルを入力​データとするLSTM​の学習について

16 views (last 30 days)
Tomoki Haruyama
Tomoki Haruyama on 1 Jul 2020
Commented: Kenta on 10 Jul 2020
複数のモーダルを入力データとするLSTMによる学習についての質問です.
モーダルA,モーダルB,モーダルCから得られる時系列データを入力とするLSTMの学習を行おうと思っているのでうsが,そのデータの構築法ホがわからないため,質問させていただきました.
各モーダルの各サンプルの時系列データは,512×N次元のdouble型の行列で,512は特徴次元数,Nはタイムステップ数となります.
各サンプルのタイムステップ数は固有であるため,通常のLSTM(単モーダル)の学習の際は,以下のように学習データをcell配列として構築していました.
このデータと,ラベル情報をcategoricalデータとして定義し,以下のようなネットワークで学習を行いました.
layers = [ ...
sequenceInputLayer(inputSize)
bilstmLayer(numHiddenUnits1,'OutputMode','sequence')
dropoutLayer(0.2)
bilstmLayer(numHiddenUnits1,'OutputMode','last')
dropoutLayer(0.2)
fullyConnectedLayer(numClasses)
softmaxLayer
classificationLayer]
.
.
.
net = trainNetwork(Train_Data,Train_Label,layers,options);
このLSTMだと,しっかり学習を行うことが出来るのですが,複数のモーダルを入力とした時,つまり下のような図のネットワーク(BiLSTMになっていますが)に対してどのように学習データを構築すればよいのかわかりません.
サンプル数×3(モーダル数)のcell配列を作ってみたりしてみたのですが,うまく行きませんでした.
複数の入力層(sequence)を有する際,どのように学習データおよびラベルデータを構築すればよいのかわかる方がいらっしゃいましたら教えていただきたく思っております.
よろしくお願いいたします.
  2 Comments
Kenta
Kenta on 3 Jul 2020
こんにちは、上の図でいう、青のsequenceの3つは、それぞれ、タイムステップの数がちがう、ということですね。
その場合、タイムステップが少ないデータに関しては、はじめのデータは0で、埋めておいて、タイムステップを合わせ、そして、入力層を1つにまとめるのはいかがでしょうか。
たとえば、自然言語処理の簡単な例の以下の例でもそのようにしてうまくいっていました。
Tomoki Haruyama
Tomoki Haruyama on 8 Jul 2020
Kenta 様
ご回答頂き,ありがとうございます.
> 青のsequenceの3つは、それぞれ、タイムステップの数がちがう、ということですね。
そのとおりです.
> その場合、タイムステップが少ないデータに関しては、はじめのデータは0で、埋めておいて、タイムステップを合わせ、そして、入力層を1つにまとめるのはいかがでしょうか。
これは,特徴統合を行うイメージでよろしいでしょうか?個人的には,Late Fusion気味に持っていきたいというのはあるのですが,上の図のネットワークとあまり変わらさそうではありますね.
例のご紹介もいただきありがとうございます.トライしてみます!

Sign in to comment.

Accepted Answer

Kenta
Kenta on 8 Jul 2020
こんにちは、コメントのほう、返信ありがとうございます。
>>特徴統合を行うイメージでよろしいでしょうか?個人的には,Late Fusion気味に持っていきたいというのはあるのですが
そうですね、統合しているイメージです。こちらは、late fusionというより、early fusion感がありますね。データの内容を知らないので何とも言えませんが、あまり精度は変わらない気もします。
こちらは、「カスタムループ」とドキュメントの言っている方式でlate fusion的に複数入力でしたものです。参考になれば幸いです。
  2 Comments
Tomoki Haruyama
Tomoki Haruyama on 10 Jul 2020
コメントいただきありがとうございます.
まだ,early fusionの方に手が付けられていないので,それができ次第,こちらもやってみようと思います!(できるかわかりませんが...).
こちらのカスタムループができれば,質問の際に出した図(全結合層の手前でfusion?)ができそうですよね.
お力かしていただければ幸いです.
Kenta
Kenta on 10 Jul 2020
はい、うまくいくといいですね。またearly fusionのほう、結果がわかれば教えていただけると幸いです。カスタムループのほうは、カスタムループでLSTMは難しいかもしれませんが、何らかのヒントになればうれしです。よろしくお願いいたします。

Sign in to comment.

More Answers (0)

Categories

Find more on Conway's Game of Life in Help Center and File Exchange

Tags

Products

Community Treasure Hunt

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

Start Hunting!