romAI検証コーナー(その13)繰り返しトレーニング

Kosuke_IKEDA
Kosuke_IKEDA
Altair Employee

本記事では、ver. 2023.1で実装された新機能であるromAIの繰り返しトレーニング(Repetition)機能を紹介します。

romAIのトレーニングでは、データの分割とハイパーパラメータの初期値に乱数を使用しますので、同じ設定(レイヤー数、ニューロン数、活性化関数)でもトレーニングの度に結果は変わります。

Repetitionを使用すると、自動で指定した回数のトレーニングを行いますので、その中から最も精度の良かったモデルを採用することが可能です。

本記事で使用したモデルは下記よりダウンロード可能です。

create_curve.scm

 

問題設定

第4回: 非線形回帰(インパクト関数)と同じモデルを使用します。

u=10を超えたところで、壁に衝突し、反力が立ち上がることをイメージしています。今回はこれをトレーニングデータとし、静的な問題として、この特性を捉えることができるかを確認します。

image

 

romAIの設定

静的ROMとしてInput / Outputのみ指定。

ニューラルネットワークはRelu [20, 20]。

さらにAuto ExplorationとRepetitionにチェックを入れ繰り返しトレーニングを有効にします。繰り返し回数はデフォルトの3です。任意の回数に変更可能です。

image

トレーニングを実行すると、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であることを示しています。

このように、同じ設定(レイヤー数、ニューロン数、活性化関数)でも使用する乱数により結果が変わることがわかります。

image

rom1を選択すると、rom1の結果をすぐに表示できます。rom1では、後半にずれがあることがわかります。

image

 

まとめ

前回バージョンの2023にてAuto Explorationが追加され、ニューラルネットワークの設定(レイヤー数、ニューロン数、活性化関数)を変えたトレーニングを自動で行えるようになりましたが、今回のRepetitionのほうが効果が高いケースもあります。

まずは、ニューラルネットワークの設定はデフォルト(Relu [20,20])でいいと思いますので、Repetitionをお試しください。

 

使用製品

Altair Twin Activate

romAI

Welcome!

It looks like you're new here. Sign in or register to get started.

Welcome!

It looks like you're new here. Sign in or register to get started.