強化学習を学ぶ

強化学習

本記事では、Hugging faceで筆者が強化学習で学んだことを随時更新していきます。

Welcome to the 🤗 Deep Reinforcement Learning Course - Hugging Face Deep RL Course
We’re on a journey to advance and democratize artificial intelligence through open source and open science.

Unit 1

Unit 1では強化学習の基本的なフレームワークである、Action, Reward, Stateについて学んだ。強化学習はPolicy-based MethodとValue-based Methodの二つの種類に大きく区分される。また、ExplorationとExploitationにはトレードオフがあり、一般的に学習が進むにつれExploitationが減ることが多いが、改良の余地はありそう。

Hands-onではGymを環境として用い、stable-baseline3のPPO(あとで学ぶ)を実装した。

Unit 2

Unit 2では、Q-learningについて学んだ。これは、value-based methodという、盤面の動きの評価値を学ぶことによって、方策を決定する方法である。Q-Tableというテーブルを用いることで学習をしていき、Bellman equationで値が更新される。エピソード毎に更新されるMonte-Carlo法と、一コマごとに更新されるTemporal Difference法とがあり、いずれを使用してもQ-Tableの値は必ず収束する。

盤面及び取りうる動きがdiscreteで少ない時、強力な手段となりうる。

Hands-onではGymnasiumを環境として用い、Python/NumPyでTableを実装した。

Unit 3

Unit 3では、Deep Q-learningについて学んだ。これはQ-valueについて、表を用いるのではなくNeural networkを用いて推定する手法である。一般化により強く、また連続的な環境にも対応できる。学習を安定させるために、2つのQ-Networkを用いることがある。一つは常にアップデートされ、もう一つは報酬の計算に用いられ、一定のエピソード毎にアップデートされる。

Hands-onではまたGymnasiumが環境として用いられ、RL-Baselines3-ZooのCnnPolicyを実装した。

Unit 4

Unit 4では、Policy Gradientについて学んだ。Policy Gradientは、直接Policyを、gradient descentを用いてアップデートしていく方法である。Stochasticな方策を取ることができるのが強みである。Policy Gradient Theorem という数学的式変形をすることで、大幅に必要な情報および計算量が減るのがこの方法の肝である。一方で学習に時間がかかること、また局所的な解に落ち着くことが多いのが弱点である。

Hands-onではGymを環境として、PytorchでReinforce(Monte-Carlo policy-gradient)という方策を実装した。

Unit 5

Unit 5では、Unity ML-Agentsについて学んだ。これは、Unityの3DエンジンとPythonとをつなぐ便利なAPIである。Raycastというagentの「視線」に相当するものがある。また、理論としてはIR (Intrinsic Reward)という、未来予測誤差を用いた報酬で、より探検をさせるという手法について学んだ。シミュレーションの動作を確認できること、また柔軟で複雑な世界を作れることが、Unityを使う強みである。

コメント

タイトルとURLをコピーしました