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

조회 수: 17 (최근 30일)
Tomoki Haruyama
Tomoki Haruyama 2020년 7월 1일
댓글: Kenta 2020년 7월 10일
複数のモーダルを入力データとする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
Kenta
Kenta 2020년 7월 3일
こんにちは、上の図でいう、青のsequenceの3つは、それぞれ、タイムステップの数がちがう、ということですね。
その場合、タイムステップが少ないデータに関しては、はじめのデータは0で、埋めておいて、タイムステップを合わせ、そして、入力層を1つにまとめるのはいかがでしょうか。
たとえば、自然言語処理の簡単な例の以下の例でもそのようにしてうまくいっていました。
Tomoki Haruyama
Tomoki Haruyama 2020년 7월 8일
Kenta 様
ご回答頂き,ありがとうございます.
> 青のsequenceの3つは、それぞれ、タイムステップの数がちがう、ということですね。
そのとおりです.
> その場合、タイムステップが少ないデータに関しては、はじめのデータは0で、埋めておいて、タイムステップを合わせ、そして、入力層を1つにまとめるのはいかがでしょうか。
これは,特徴統合を行うイメージでよろしいでしょうか?個人的には,Late Fusion気味に持っていきたいというのはあるのですが,上の図のネットワークとあまり変わらさそうではありますね.
例のご紹介もいただきありがとうございます.トライしてみます!

댓글을 달려면 로그인하십시오.

채택된 답변

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

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Conway's Game of Life에 대해 자세히 알아보기

태그

제품

Community Treasure Hunt

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

Start Hunting!