LSTMによる信号の分類において,それぞれ長さの違う複数特徴量を学習させる方法について
12 views (last 30 days)
Show older comments
LSTMによる信号分類における学習方法についての質問です.
実験環境を簡易的に設定します.
まず,Wi-Fi電波を,条件A, B(例:A...無人, B...有人)でそれぞれ観測します.
ここで,観測した信号は{1×10000 double}であるとして,条件A, Bにおいて3つずつ(合計6つ)を用意します.
Signals
ans = 6 × 1 cell array
{1×10000 double}
{1×10000 double}
{1×10000 double}
{1×10000 double}
{1×10000 double}
{1×10000 double}
Labels
ans = 6 × 1 categorical array
A
A
A
B
B
B
次に,特徴量を抽出します.そこで,例として平均値とエントロピーを用います.
平均値は,Window Sizeを100としてWindow毎に求めます.
x = Signals{1} % 最初に,一つ目の信号の平均値を求めます
w = 100; % Window size
nw = size(x,2)/w % the number of windows
for i = 1 : nw
mu1 = mean(x(1,(i-1)*w+1:i*w)); % Window毎の平均値
end
mu1 = {1 × 100 double}
エントロピーは,時系列全体について求めます.ここで,Wi-Fiを観測するサンプリング周波数としては不適切ですが,本題とは関係ないので適当に100Hzと設定します.
fs = 100; % サンプリング周波数
se1 = pentropy(x,fs).';
se1 = {1 × 261 double}
以上のことを,他の5つの信号でも同様に求めて,LSTMによって学習させたいです.
そのためには,2つの特徴量の配列mu1,se1を垂直方向に結合する必要があります.
c1 = [mu1; se1];
c2 = [mu2; se2];
...
c6 = [mu6; se6];
しかし,このままでは,結合する配列の次元が一致しないためエラーがでます.
理想としては,これらのトレーニングデータをcell配列としてまとめ,学習させるのが理想です.
このように,LSTMによる信号分類において複数の特徴量を用いる場合,それぞれの特徴寮の長さが異なるときはどのように学習・検証させればよろしいのでしょうか.
お答え頂ければ幸いです.
0 Comments
Accepted Answer
Kenta
on 13 Sep 2020
こんにちは、長さは最も長い特徴量のものにあわせ、短いほうの特徴量のほうは、はじめの値を0で埋めて、合計の長さがあうようにすればどうでしょうか?
分野やデータによってこの前処理の適切さはかわるのでなんともいえませんが、例えば、LSTMによるテキストの分類だと、このように最初を0でうめて、文字の長さを統一しています。
データの性質によっては最後を0で埋めても良いかもしれません。
2 Comments
Kenta
on 15 Sep 2020
はい、参考になってようでよかったです。データの性質で、どのようなゼロパディングが有効なのかなど検討するのはおもしろそうですね、またもしよろしければ教えてください。
More Answers (0)
See Also
Categories
Find more on Build Deep Neural Networks in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!