Soft Actor Critic (SAC)は、以前の記事で紹介した強化学習アルゴリズムです。その際には、効率的にネットワークを学習させる手法としてPythonやONNXの活用についても触れました。今回は、このアルゴリズムを改めて取り上げ、Pythonでよく使われるテンソルや計算グラフを活用することを目的としています。
Soft Actor Critic (SAC)は、ニューラルネットワークを訓練する際に使用される強化学習アルゴリズムの一つです。復習として、強化学習は、教師あり学習や教師なし学習と並ぶ、機械学習における新しい訓練手法の一つです。
新しい記事「知っておくべきMQL5ウィザードのテクニック(第54回):SACとテンソルのハイブリッドによる強化学習」はパブリッシュされました:
Soft Actor Critic (SAC)は、ニューラルネットワークを訓練する際に使用される強化学習アルゴリズムの一つです。復習として、強化学習は、教師あり学習や教師なし学習と並ぶ、機械学習における新しい訓練手法の一つです。
リプレイバッファは、SACのオフポリシー型強化学習アルゴリズムにおいて非常に重要なコンポーネントです。これは、過去の経験(状態、行動、報酬、次の状態、およびエピソードの完了を示すdoneフラグ)を記録し、それらを小さなミニバッチに分けて訓練データとして使用します。リプレイバッファの主な目的は、経験同士の相関を減らすことであり、それによってエージェントはより多様な経験から学習できるようになり、学習の安定性やサンプル効率の向上につながります。
SACを実装する際にはMQL5言語を使用することも可能ですが、Pythonおよびそのオープンソースライブラリ(たとえばTensorFlowやPyTorch)で作成されたネットワークほど効率的に学習させることはできません。そのため、前回の強化学習に関する記事ではPythonを用いて基本的なSACネットワークを構築しましたが、今回はその続きとして、Pythonのテンソルグラフを活用することを目的とします。リプレイバッファをPythonで実装する方法は、基本的に2通りあり、手動で構築する方法と、テンソルベースの方法です。
作者: Stephen Njuki