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