Bonsaiによるトレーニング
トレーニングの概要
強化学習アルゴリズムのトレーニングをはじめる前に、強化学習に関する主要な概念を必ず復習してください。トレーニングを開始する前に、次のタスクを終えている必要があります。
- Bonsaiワークスペースでbrainを作成し、正しいinklingコードを用意する。
- シミュレーターを作成し、Bonsaiワークスペースにそのシミュレーターを認識させる。
これらのタスクのいずれかが完了していない場合、トレーニングは実行できません。これらのタスクについては、「Bonsaiの使用を開始する」を参照してください。
トレーニングを開始する方法
トレーニングを開始するには、次の手順を実行します。
- Bonsaiワークスペースに移動します。
- 左側のパネルで、トレーニングするbrainを選択します。
- 右側のパネルの[Learned Concept]ボックスをクリックします。このボックスには、左上にアイコンがあります。
- 右側のパネルの左上にある緑の[Train]ボタンをクリックします。
- 使用すべきシミュレーターがInklingコードで指定されていない場合は、メニューが表示され、そこからシミュレーターを選択できます。
JobSchedulingサンプルには[Programmed Concept]が含まれています。トレーニングを行う前に、このコンセプトを構築する必要があります。このコンセプトを構築するには、次の手順を実行します。
- 右側のパネルの[Programmed Concept]ボックスをクリックします。このボックスには、左上にアイコンがあります。
- 右側のパネルの左上にある緑の[Build]ボタンをクリックします。
- 構築が完了すると、[Learned Concept]ボックスをクリックして通常どおりトレーニングを行うことができます。
トレーニングを監視する
トレーニングを開始すると、トレーニング中のbrainの[Train]タブにUIが切り替わります。このインターフェイスから離れる場合、戻るには次の手順を実行します。
- 右側のパネルで、現在トレーニング中のbrainをクリックします。
- 中央のパネルで、[Teach]タブの横にある[Train]タブをクリックします。
- 左側のパネルで、[Learned Concept]のボックスをクリックします。中央のパネルにそのコンセプトのデータが表示されます。
Bonsaiの進捗を監視できるエリアがあります。最初は、コンセプトパフォーマンスチャートです。
このチャートは、トレーニング中のLearned Conceptのパフォーマンスを示します。Y軸を変更して、コンセプトの目標に関する統計情報を表示すると便利です。このエリアのデータはそれほど頻繁に更新されるわけではありません。上の例では、反復回数約850,000回の部分で2つのデータポイントに分かれています。
もう1つの便利なエリアがシミュレーションステータスチャートです。
このチャートは、トレーニングに使用されている任意のインスタンスの監視スペースから得られた値を示します。このチャートを使用すると、Bonsaiによってモデルから取得された値が期待どおりかどうかを確認できます。
最後に説明するエリアは、ページの下部にある[Notes]タブと[出力]タブです。
このエリアにはBonsaiからのメッセージが表示されます。inklingコードとシミュレーターの間に不一致がある場合、このエリアにエラーが表示されます。
トレーニングを停止する方法
Bonsaiは次の理由でトレーニングを停止します。
- ユーザーがBonsaiインターフェイスの[Stop Training]ボタンを押した。
- Bonsaiで改善が検知されないままNoProgressIterationLimitに達した。
- BonsaiがTotalIterationLimitに達した。
トレーニングを早期に停止する例として、FlexSimとBonsai間の接続をテストする場合があります。トレーニングが可能であることを確認できた時点でトレーニングの早期停止を選択できます。あるいは、監視した値が期待とは一致しないことに気づいた場合にも、トレーニングを早期に停止する可能性があります。
トレーニングを改善する方法
トレーニングの目標は、良好に機能するエージェントを生み出すことです。とはいえ、こうしたエージェントを生み出すためにBonsaiが必要とする学習時間は、多くの要因の影響を受けます。Bonsaiが期待とおりに実行されない一般的な理由をいくつか示します。
- 役に立たないデータが監視スペースに含まれている。監視スペースに不要なデータを追加したくなることがありますが、これを行うと、トレーニング時間がかなり長くなります。これは、重要な値と無視してよい値をBonsaiが学習しなければならないためです。
- 役立つデータが監視スペースに含まれていない。監視スペースには、Bonsaiがインテリジェントなアクションを行うために使用するデータが含まれている必要があります。探偵と同様に、Bonsaiは比較的少ない情報からでも学習することはできますが、重要な情報がすべて揃っていれば、はるかに優れた結論を導き出すことができます。
- Bonsaiが判断の影響を監視できない。前のポイントと同様に、これは監視スペースに含まれる値に関係します。監視スペースには、シミュレーションの実行方法に関するデータが含まれている必要があります。さらに、Bonsaiがアクションの結果を認識できるまでシミュレーションを続ける必要があります。たとえば、シミュレーション実施日の早い段階で行われる低実績のアクションによって同日中に問題が発生する可能性がある場合、Bonsaiは終日シミュレーションを監視できなければなりません。
- 目標の定義が不適切。Bonsaiは、シミュレーションに関して学習し、良好に機能するエージェントを生み出しますが、それは指定された目標に基づいて行われます。指定された目標をBonsaiが達成するものの、システムの改善が見られないケースもあります。たとえば、機器のアイドル時間を最小限にするという目標をBonsaiに課したものの、予想に反して別のメトリック(全体のスループットなど)を犠牲にする選択をBonsaiが行うケースです。この場合、目標を変更または追加して、Bonsaiにより良い方向性を示すことができます。
良好なエージェントを育成するbrainとシミュレーターを作成するには、多くの試行錯誤が必要となる場合があります。こうした理由から、Bonsaiでは各brainに複数のバージョンを作成できます。また、brainごとに記録を取り、複数のバージョンを同時にトレーニングできます。そのため、複数の変更内容(目標、エピソード/反復回数制限、シミュレーターなどを変更)を一度にテストすることができます。
brainのトレーニングが完了した時点で、次のトピック「学習済みブレインの使用」に進んでください。