CNNを使って波形から回帰を行うことはできますか?
Ältere Kommentare anzeigen
https://jp.mathworks.com/help/nnet/examples/train-a-convolutional-neural-network-for-regression.html 上記では,たたみ込みニューラル ネットワークを使用して回帰モデルにあてはめ、画像の回転角度を予測する方法を 説明していますが,この入力を波形にして音声の距離を推定する回帰をしたいです. 具体的には,波形は1×4500の行列になっています.一つの波形に正解値(距離)は1つです. CNNを使って波形から回帰を行うことは可能でしょうか?方法もできれば教えていただきたいです. ちなみにAutoencoderを使って特徴量を抽出し,重回帰分析にて推定を行うことはできました.
Akzeptierte Antwort
Weitere Antworten (1)
mizuki
am 24 Dez. 2017
> CNNを使って波形から回帰を行うことは可能でしょうか?
はい、可能です。
例にも含まれていますが、回帰用の層 regressionLayer が用意されていますのでこれでCNN回帰をすることができます。また、入力が画像ではなく信号とのことですので、入力層を SequenceInputLayer にします。層の定義はだいたいこんな感じです。
layers = [ ...
sequenceInputLayer(*)
convolution2dLayer(*)
reluLayer
maxPooling2dLayer(*)
fullyConnectedLayer(*)
softmaxLayer
regressionLayer]
4 Kommentare
Kengo Atomi
am 30 Dez. 2017
Bearbeitet: michio
am 19 Jan. 2018
mizuki
am 4 Jan. 2018
入力波形は行列の形ではなく、セル配列にするようです。 train_x{i} を i 番目の波形の
#features x 波形の点数
のように定義します。具体的には
load JapaneseVowelsTrain
をして XTrain を確認すると分かりやすいかと思います。同じ現象を再現できていないのでこれだけで解決するかは不明です。もし先に進めなければ追加でご質問ください。
- 参考: sequenceInputLayer https://jp.mathworks.com/help/nnet/ref/nnet.cnn.layer.sequenceinputlayer.html
Kengo Atomi
am 4 Jan. 2018
R2017b のバージョンでは、sequenceInputLayer() に対して convolution2dLayer() を適用することができない状況のようです。誤情報ですみませんでした。
LSTMと回帰を組み合わせて使用する方法については将来のバージョンで検討がされているということです。
Kategorien
Mehr zu Deep Learning Toolbox finden Sie in Hilfe-Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!