お客様: 大手製造業の研究部門様
ご依頼内容
- Pythonで実装している時系列向けの深層学習モデルを、MATLABでも同じように学習できる形にしたい、というご相談。
- そもそも移植できるのかを、まず調べたい。
- 潜在変数の時間発展を予測する部分まで含めて、動くプロトタイプで確かめたい。
- 移植したコードと報告書を受け取り、社内で検討を続けられる状態にしたい。
課題
- 画像向けに書かれたMATLABの公式例を、時系列データに合う構成へ、作り替えること。
- 標準の学習関数では扱えない損失関数と学習ループを、自前で実装すること。
- Python版と同じ条件で比べられるように、入力データと潜在変数の次元を、揃えること。
- 移植できた範囲と、学習が収束しない範囲を、切り分けて報告すること。
ソリューション
- Python版と同じ入力データ、同じ潜在変数の次元を用い、時系列向けのVAEをMATLABで構築した。
- ELBOとKLダイバージェンスを含むカスタム損失関数と、学習ループを、自前で実装した。
- 再パラメータ化のためのカスタムレイヤーを作り、ノイズの大きさを調整して、学習が進む条件を確保した。
- Python版との実装の違いは、意図的な選択として、理由とともに報告書に明記した。
- 一つ前の潜在変数から次の状態を推定し、Decoderへ渡す遷移ネットワークを、追加した。
- 遷移を学習させるには入力系列に時間的な因果が必要と判断し、検証用のデータを因果のある系列へ差し替え、学習時のシャッフルを止めた。
- 遷移部分は全結合層の多段構成とLSTM構成を比較し、収束しなかった構成も、そのまま報告した。
- 再構成誤差とKL項のスケール差など、未収束の原因候補と次の検討項目を、整理した。





結果
- VAE部分は学習の損失が減少し、入力した時系列をおおむね再構成できることを、確認した。
- 遷移ネットワークを含む枠組みまで作成したが、この部分は収束せず、未収束であることを明記して報告した。
- 移植できる範囲と、追加の研究が必要な範囲を切り分け、原因の候補と次に試すべき項目まで示したので、顧客側で検討を引き継げる状態になった。
ひとこと
- MATLABの公式例は画像向けのものが多く、時系列データに合わせるには、ネットワークの構成から損失関数まで組み替えることになります。標準の学習関数が使えない構成では、学習ループそのものを書くことになるため、深層学習の中身を理解している人が担当するのが良いと思います。
- 移植の可能性を調べる仕事では、できたことと同じくらい、できなかったことの理由が次の検討の材料になります。収束しなかった構成と、その原因の候補も含めてお渡ししています。
- 「Pythonで動いているものを、MATLABでも動かせるか」というご相談は、よくいただきます。まず調べる段階からお引き受けし、動く範囲と動かない範囲を切り分けてご報告します。
お問い合わせ
開発事例にご興味ありましたら、お気軽にお問い合わせ下さい。
下記の、「今すぐお問い合わせ」をクリックして、フォームにご記入下さい。
早急に回答致します。


