romAI検証コーナー(その13)繰り返しトレーニング
本記事では、ver. 2023.1で実装された新機能であるromAIの繰り返しトレーニング(Repetition)機能を紹介します。
romAIのトレーニングでは、データの分割とハイパーパラメータの初期値に乱数を使用しますので、同じ設定(レイヤー数、ニューロン数、活性化関数)でもトレーニングの度に結果は変わります。
Repetitionを使用すると、自動で指定した回数のトレーニングを行いますので、その中から最も精度の良かったモデルを採用することが可能です。
本記事で使用したモデルは下記よりダウンロード可能です。
問題設定
第4回: 非線形回帰(インパクト関数)と同じモデルを使用します。
u=10を超えたところで、壁に衝突し、反力が立ち上がることをイメージしています。今回はこれをトレーニングデータとし、静的な問題として、この特性を捉えることができるかを確認します。
romAIの設定
静的ROMとしてInput / Outputのみ指定。
ニューラルネットワークはRelu [20, 20]。
さらにAuto ExplorationとRepetitionにチェックを入れ繰り返しトレーニングを有効にします。繰り返し回数はデフォルトの3です。任意の回数に変更可能です。
トレーニングを実行すると、3回トレーニングが行われ、3つのモデルが出力されます。
romAIの精度確認
トレーニングが完了し、Post-Processorのタブを開くと、3つのromが登録され、Test Lossの相対指標が表示されます。
Test Lossが最も小さかったケースを1とし、その比率が表示されます。
結果、rom3が最もTest Lossが小さく、rom1はrom3の3.8倍のTest Loss、rom2はrom3の2.4倍のTest Lossであることを示しています。
このように、同じ設定(レイヤー数、ニューロン数、活性化関数)でも使用する乱数により結果が変わることがわかります。
rom1を選択すると、rom1の結果をすぐに表示できます。rom1では、後半にずれがあることがわかります。
まとめ
前回バージョンの2023にてAuto Explorationが追加され、ニューラルネットワークの設定(レイヤー数、ニューロン数、活性化関数)を変えたトレーニングを自動で行えるようになりましたが、今回のRepetitionのほうが効果が高いケースもあります。
まずは、ニューラルネットワークの設定はデフォルト(Relu [20,20])でいいと思いますので、Repetitionをお試しください。
使用製品