Neural Network Toolbox でのモデル作成方法について

5 views (last 30 days)
yu uchimura
yu uchimura on 31 Oct 2018
Edited: Kazuya on 20 Nov 2018
現在、空調制御に関する研究を行っており、モデル予測制御を使用してSimulink上でシミュレーションを行っています。以前はモデルとして伝達関数モデルを使用していましたが、現在ニューラルネットワークモデルを使用したシミュレーションを行おうと試行錯誤しています。その際Neural Network Toolbox(Neural Net Fitting)を使用して、入力データに空調機の吹出風量、出力データにセンサ温度を用いてモデル作成を行っているのですが、うまくモデル作成ができません。以下に質問をまとめました。
・3層のニューラルネットワークを作成したいのですが、アプリ上でそのような操作は可能でしょうか?もし可能であるならば、教えて頂きたいです
・アプリ上で試しにモデル作成をした場合、隠れ層の数を増加させても(1000~8000ほど)Rの値があまり変化しないのですが、そのような場合どうしたら良いでしょうか
以上二つに関して回答して頂けると幸いです。どうぞよろしくお願い致します。

Accepted Answer

mizu
mizu on 6 Nov 2018
Neural Net Fitting のアプリの Network Architecture というページで3層ネットワークを作れますよ. うまくモデル作成ができませんとありますが,どこで問題が起きているのでしょうか. (エラーですか?方法がわからないのですか?精度が良くないのですか?)
(隠れ層の数ではなく)隠れ層のユニット数を増加させると特徴次元が増えて表現力が増えますが,多くしすぎると計算効率が悪くなり汎用性がないモデルとなります.1000から8000という大きな数字で表現力を上げるのではなく,もう少し小さな値で実行してはいかがでしょうか.ユニット以外にも学習係数など他のパラメーターもあるのでハイパーパラメーターの調節をすると結果が変わるかもしれません
  3 Comments
yu uchimura
yu uchimura on 8 Nov 2018
ご回答ありがとうございます。
質問中にあった「うまくモデル作成が出来ません」というのは、R値が低いという意味です。また、アプリを操作したところ、3層ネットワークは作成できるようになりました。ありがとうございます。
こちらの知識不足で隠れ層の数という風に表記してしまいましたが、隠れ層のユニット数についての質問でした。申し訳ありません。
一応、隠れ層のユニット数は小さな値(10や20など)でも試していたのですが、大きな数字の場合と比較してもあまり精度に変化がありませんでした。 ですので、学習係数等のハイパーパラメーターの調節方法を教えて頂けると幸いです。どうぞよろしくお願い致します。
Kazuya
Kazuya on 20 Nov 2018
Edited: Kazuya on 20 Nov 2018
そもそも学習データの限界、予測が原理的に不可能なデータである可能性も考える必要があるかもしれません。
ハイパーパラメータの最適化に関しては下記にコード例があります。ベイズ最適化を使用します。
Statistics & Machine Learning Toolbox の機械学習関数であればオプション設定で最適化できますが、ニューラルネットワークの場合は少し作りこむ必要があります。。
参考:

Sign in to comment.

More Answers (0)

Products


Release

R2017a

Community Treasure Hunt

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

Start Hunting!