romAI検証コーナー(その3)Regularization Coefficient
シンプルなモデルを使用して、romAIの機能をチェックしていきます。第3回はトレーニングパラメータのRegularization Coefficientの効果を確認します。
問題設定
第2回と同様に、3次関数の予測を行います。y=u+0.2u^3の3次関数に対し、今回はノイズはゼロとしました。
uの範囲は-15~15としています。これを学習データとしてromAIがy=u+0.2u^3の3次関数を予測する際に、Regularization Coefficientにより結果がどのように変わるかを確認します。
romAIの設定
romAIの設定を行います。
入出力
第1回、第2回と同様に、静的ROMとして、Inputs、Outputsのみを指定します。
関数
non linearのNeural Netを使用します。今回はtanhで、レイヤーの数、ニューロンの数は[20,20]としました。
- Non Linear: tanh [20,20]
トレーニングパラメータの設定
Regularization Coefficientの値を0~0.1(デフォルト1e-6)に変えてモデルを作成しました。
Regularization CoefficientはCost Functionの係数λです。λを大きくすることで、応答を滑らかにする特性があります。
romAIの精度確認
romAIの結果を学習データの3次関数と比較しました。
Regularization Coefficient = 0
最も急峻な応答を表現可能な設定です。3次関数を精度良く表現できています。
Regularization Coefficient = 1e-6
デフォルト設定です。
Regularization Coefficient = 1e-4
値を大きくすると、応答を滑らかにします。u=15近傍での勾配が小さくなっていることがわかります。
Regularization Coefficient = 1e-3
さらに大きくすると、線形応答に近づきます。
Regularization Coefficient = 1e-2
Regularization Coefficient = 1e-1
さらに大きくすると、応答は定数(平均値)に近づきます。
まとめ
今回はromAIのRegularization Coefficient の効果をパラメータスタディで確認しました。
Regularization Coefficient = 0で最も急峻な応答を表現し、値を大きくするにつれて、線形応答、一定応答に近づくことを確認しました。
Comments
-
本ブログで使用したモデルとその解説動画は下記よりご利用いただけます。
パラメータを変えていろいろお試しください。
https://community.altair.com/community/?id=kb_article_view&sysparm_article=KB0122130
0