深層強化学習の概要
深層強化学習の概要
Hugging FaceとのDeep Reinforcement Learningクラスの第1章
⚠️ この記事の新しい更新版はこちらでご覧いただけます 👉 https://huggingface.co/deep-rl-course/unit1/introduction
この記事はDeep Reinforcement Learningクラスの一部です。初心者からエキスパートまでの無料コースです。シラバスはこちらをご確認ください。
⚠️ この記事の新しい更新版はこちらでご覧いただけます 👉 https://huggingface.co/deep-rl-course/unit1/introduction
この記事はDeep Reinforcement Learningクラスの一部です。初心者からエキスパートまでの無料コースです。シラバスはこちらをご確認ください。
人工知能の最も魅力的なトピックへようこそ: Deep Reinforcement Learning(深層強化学習)
Deep RLは、エージェントが行動を実行し、結果を観察することで、環境内でどのように振る舞うかを学習する機械学習の一種です。
2013年のDeep Q-Learning論文以来、私たちは多くのブレークスルーを目撃してきました。世界の一流のDota2プレイヤーに勝るOpenAI Fiveから、デクステリティプロジェクトまで、私たちは深層強化学習研究の興奮する時期に生きています。
さらに、2018年以降、あなたは今、素晴らしい環境やライブラリにアクセスできるようになりました。自分のエージェントを構築するための。
だからこそ、学び始める最高の時期です。そして、このコースでは、そのための正しい場所にいるあなたです。
はい、なぜなら、この記事はDeep Reinforcement Learningクラスの第1ユニットであり、Stable Baselines3、RL Baselines3 Zoo、RLlibなどの有名なDeep RLライブラリを使用して理論と実践を学ぶ無料のクラスです。
この無料のコースでは、以下のことができます:
- 📖 理論と実践でDeep Reinforcement Learningを学ぶ。
- 🧑💻 Stable Baselines3、RL Baselines3 Zoo、RLlibなどの有名なDeep RLライブラリを使用する方法を学ぶ。
- 🤖 SnowballFight、Huggy the Doggo 🐶などのユニークな環境でエージェントをトレーニングする。また、Space InvadersやPyBulletなどの古典的な環境でもトレーニングできます。
- 💾 トレーニング済みのエージェントを1行のコードでHubに公開することができます。また、コミュニティからパワフルなエージェントをダウンロードすることもできます。
- 🏆 他のチームとのチャレンジに参加し、あなたのエージェントを評価することができます。
- 🖌️🎨 UnityやGodotで作成した環境を共有する方法を学ぶ。
ですから、この第1ユニットでは、Deep Reinforcement Learningの基礎を学びます。そして、最初のランダーエージェントをトレーニングして、正しく月に着陸させ、Hugging Face Hubにアップロードします。 Hugging Face Hubは、MLモデル、データセット、デモを共有できる無料のオープンプラットフォームです。
Deep Reinforcement Learningエージェントの実装に取り組む前に、これらの要素を習得することは非常に重要です。この章の目標は、堅固な基礎を提供することです。
お好みで、この章の📹ビデオバージョンをご覧いただけます:
それでは始めましょう! 🚀
- 強化学習とは何か?
- 全体像
- 形式的な定義
- 強化学習フレームワーク
- RLプロセス
- 報酬の仮説:強化学習の中心的なアイデア
- マルコフ特性
- 観測/状態空間
- 行動空間
- 報酬と割引率
- タスクの種類
- 探索/利用のトレードオフ
- RL問題を解決するための2つの主要なアプローチ
- 方策π:エージェントの脳
- 方策ベースの手法
- 価値ベースの手法
- 強化学習における「Deep」の意味
強化学習とは何ですか?
強化学習を理解するために、大局から始めましょう。
大局
強化学習のアイデアは、エージェント(AI)が環境と相互作用し(試行錯誤を通じて)、行動のパフォーマンスに対するフィードバックとして報酬を受け取ることから学ぶというものです。
環境との相互作用からの学習は、私たちの自然な経験から生じます。
例えば、あなたの弟をプレイしたことのないビデオゲームの前に置き、彼にコントローラーを渡してひとりにしてみましょう。
あなたの弟は環境(ビデオゲーム)と相互作用します(アクションを実行する)。彼はコインを手に入れました。それは+1の報酬です。それはポジティブです。彼はこのゲームではコインを取る必要があると理解しました。
しかし、彼は再び右を押し、敵に触れてしまいました。彼は-1の報酬を受け取りました。
試行錯誤を通じて環境と相互作用することで、あなたの弟はこの環境ではコインを取る必要があるが、敵を避ける必要があることを理解しました。
監督なしで、子供はゲームを上手にプレイするようになっていきます。
これが人間や動物が学ぶ方法であり、相互作用を通じた学習は単に行動から学ぶための計算的アプローチです。
形式的な定義
形式的な定義を見てみましょう:
強化学習は、環境と相互作用することによって学習するエージェントを構築することで、制御タスク(または意思決定問題とも呼ばれる)を解決するためのフレームワークです。エージェントは、試行錯誤を通じて環境と相互作用し、報酬(ポジティブまたはネガティブ)を受け取ることで学習します。
⇒ では、強化学習はどのように機能するのでしょうか?
強化学習フレームワーク
RLプロセス
RLプロセスを理解するために、プラットフォームゲームをプレイするエージェントの学習を想像してみましょう:
- エージェントは環境から状態 S 0 S_0 S 0 を受け取ります – 最初のフレーム(環境)を受け取ります。
- その状態 S 0 S_0 S 0 に基づいて、エージェントはアクション A 0 A_0 A 0 を取ります – エージェントは右に移動します。
- 環境は新しい 状態 S 1 S_1 S 1 に移行します – 新しいフレームです。
- 環境はエージェントにいくつかの報酬 R 1 R_1 R 1 を与えます – 我々は死んでいません(ポジティブな報酬+1)。
このRLループは、状態、アクション、報酬、次の状態のシーケンスを出力します。
エージェントの目標は、累積報酬である期待リターンを最大化することです。
報酬仮説:強化学習の中心的なアイデア
⇒ エージェントの目標が期待リターンを最大化することの理由は何ですか?
それは、RLが報酬仮説に基づいているためです。報酬仮説は、すべての目標は期待リターンの最大化(期待累積報酬)として記述できるというものです。
だから強化学習では、最良の振る舞いをするためには、期待累積報酬を最大化する必要があります。
マルコフ特性
論文では、強化学習プロセスはマルコフ決定過程(MDP)と呼ばれています。
マルコフ特性については、後のユニットで再度話します。しかし、今日について何か覚えておく必要がある場合は、マルコフ特性は、エージェントが現在の状態だけで行動を決定する必要があり、すべての過去の状態および行動の履歴は必要ないことを意味します。
観測/状態空間
観測/状態は、エージェントが環境から得る情報です。ビデオゲームの場合、フレーム(スクリーンショット)になることもあります。取引エージェントの場合、ある株の値などになることもあります。
観測と状態の間には次のような区別があります:
- 状態 s: 世界の状態の完全な説明です(隠された情報はありません)。完全観測環境です。
チェスゲームでは、全てのチェス盤の情報にアクセスできるため、環境から状態を受け取ります。
チェスゲームでは、完全に観測可能な環境にいます。
- 観測 o: 状態の部分的な説明です。一部しか観測できない環境です。
スーパーマリオブラザーズでは、プレイヤーに近い部分のみが表示されるため、観測を受け取ります。
スーパーマリオブラザーズでは、部分的に観測できる環境にいます。レベルの一部しか見えないため、観測を受け取ります。
実際には、このコースでは「状態」という用語を使用しますが、実装では区別をします。
まとめると:
行動空間
行動空間は環境内のすべての可能な行動の集合です。
行動は離散的または連続的な空間から来ることがあります:
- 離散的な空間: 可能な行動の数は有限です。
スーパーマリオブラザーズでは、4つの方向とジャンプのみの有限な行動セットがあります。
-
連続的な空間: 可能な行動の数は無限です。
まとめると:
この情報を考慮することは重要です。将来の強化学習アルゴリズムの選択に重要な役割を果たします。
報酬と割引
報酬はRL(強化学習)において基本的であり、エージェントに対する唯一のフィードバックです。これにより、エージェントは行動が良かったのかどうかを知ることができます。
各時間ステップtにおける累積報酬は以下のように書くことができます:
これは以下と同等です:
しかしながら、現実の中では、単純にそれらを足し合わせることはできません。ゲームの初めの方に起こる報酬は、長期的な未来の報酬よりも予測しやすいため、より頻繁に起こる可能性があります。
たとえば、エージェントが一度に1つのタイル移動できる小さなネズミであり、相手は移動できる猫です。あなたの目標は猫に捕まる前に最大量のチーズを食べることです。
図で見ると、私たちに近い場所のチーズを食べる可能性が高く、猫に近いチーズを食べる可能性は低い(猫に近づくほど危険性が高くなります)。
そのため、猫の近くの報酬は、それが大きい(より多くのチーズ)にも関わらず、より割引されます。なぜなら、それを食べることができるかどうかははっきりしないからです。
報酬を割引するためには、次のように進めます:
- 我々はガンマと呼ばれる割引率を定義します。0から1の間でなければなりません。ほとんどの場合、0.99から0.95の間です。
-
ガンマが大きいほど、割引が小さくなります。つまり、エージェントは長期的な報酬により重きを置きます。
-
一方、ガンマが小さいほど、割引が大きくなります。つまり、エージェントは短期的な報酬(最も近いチーズ)により重きを置きます。
2. それから、各報酬は時間ステップのガンマの指数で割り引かれます。時間ステップが増えるにつれて、猫が私たちに近づいてきますので、将来の報酬はますます起こりにくくなります。
割引された累積予測報酬は次の通りです:
タスクの種類
タスクは強化学習問題のインスタンスです。2つのタイプのタスクがあります:エピソード型と連続型です。
エピソード型タスク
この場合、開始点と終了点(終端状態)があります。これにより、エピソードが作成されます:状態、行動、報酬、および新しい状態のリストです。
例えば、スーパーマリオブラザーズを考えてみましょう:エピソードは新しいマリオのレベルの開始時に始まり、死亡するかレベルの終わりに到達するまで続きます。
連続型タスク
これらは永遠に続くタスクです(終端状態はありません)。この場合、エージェントは最良の行動を選択し、同時に環境と対話する方法を学ぶ必要があります。
例えば、自動株取引を行うエージェントです。このタスクでは、開始点と終端状態はありません。 エージェントは私たちが停止するまで実行し続けます。
探索/活用のトレードオフ
最後に、異なる方法で強化学習問題を解決する前に、もう1つ非常に重要なトピックをカバーしなければなりません:探索/活用のトレードオフ。
-
探索は、環境を探索するためにランダムなアクションを試みることで、環境に関するより多くの情報を見つけることです。
-
活用は、既知の情報を活用して報酬を最大化することです。
忘れないでください、強化学習エージェントの目標は、期待累積報酬を最大化することです。しかし、私たちはよくある罠にはまる可能性があります。
例を見てみましょう:
このゲームでは、私たちのネズミは無限の小さなチーズ(各々+1)を持つことができます。しかし迷路の上部には、巨大な量のチーズ(+1000)があります。
しかし、もし私たちが活用にのみ焦点を当てると、エージェントは巨大なチーズを絶対に手に入れることはありません。代わりに、近くの報酬源(活用)だけを活用します。
しかし、エージェントが少しの探索を行えば、大きな報酬(大量のチーズ)を発見することができます。
これが探索/活用のトレードオフと呼ばれるものです。私たちは、どれだけ環境を探索するかと、環境について知っていることをどれだけ活用するかのバランスを取る必要があります。
したがって、このトレードオフを扱うのに役立つルールを定義する必要があります。将来の章で、さまざまな方法を見ていきます。
まだわかりにくい場合は、実際の問題を考えてみてください:レストランの選択です。
- 活用:いつも同じレストランに行って、他の素晴らしいレストランを逃すリスクを取ります。
- 探索:以前に行ったことのないレストランに行ってみることで、悪い経験をするリスクがありますが、素晴らしい経験の機会があります。
まとめると:
RL問題を解決するための2つの主なアプローチ
⇒ 強化学習のフレームワークを学んだので、RL問題をどのように解決するのでしょうか?
つまり、期待累積報酬を最大化するためのアクションを選択するRLエージェントを構築する方法は何ですか?
方策π:エージェントの脳
方策πはエージェントの脳です。状態に応じてどのアクションを取るかを教えてくれる関数です。したがって、与えられた時間におけるエージェントの行動を定義します。
方策をエージェントの脳と考え、状態に応じてどのアクションを取るかを教えてくれる関数として考えましょう
この方策は私たちが学びたい関数です。私たちの目標は、最適な方策π、エージェントがそれに従って行動したときに期待リターンを最大化する方策を見つけることです。このπはトレーニングによって見つけます。
エージェントがこの最適な方策πを見つけるための2つのアプローチがあります:
- 直接的に、エージェントに状態に応じてどのアクションを取るかを学習させること:方策ベースの手法。
- 間接的に、より価値のある状態を学習させ、それに続くアクションを取ること:価値ベースの手法。
ポリシーベースの手法
ポリシーベースの手法では、直接ポリシー関数を学習します。
この関数は、各状態に対して最適な対応するアクションにマッピングします。または、その状態での可能なアクションの確率分布にマッピングします。
ポリシーには2つのタイプがあります:
- 決定論的:ある状態のポリシーは常に同じアクションを返します。
- 確率論的:アクションの確率分布を出力します。
繰り返しにすると:
価値ベースの手法
価値ベースの手法では、ポリシー関数をトレーニングする代わりに、状態をその状態での期待値にマッピングする価値関数をトレーニングします。
状態の価値とは、エージェントがその状態で開始し、ポリシーに従って行動した場合に得られる割引されたリターンの期待値です。
「ポリシーに従って行動する」ということは、ポリシーが「価値が最も高い状態に移動する」ことを意味します。
ここでは、価値関数が各可能な状態に対して値を定義しています。
価値関数のおかげで、各ステップでのポリシーは価値関数によって定義された最も大きな値を持つ状態を選択します:-7、次に-6、次に-5(以降)目標を達成するために。
繰り返しにすると:
強化学習における「ディープ」の意味
⇒ 今まで話してきたのは強化学習です。しかし、「ディープ」はどこで重要な役割を果たすのでしょうか?
ディープ強化学習では、ディープニューラルネットワークを使用して強化学習の問題を解決します。だからこそ「ディープ」という名前が付いています。
例えば、次の記事では、Q学習(クラシックな強化学習)とディープQ学習の両方を扱います。両方とも価値ベースのRLアルゴリズムです。
違いは、最初のアプローチでは、伝統的なアルゴリズムを使用して、各状態に対してどのアクションを取るかを見つけるためのQテーブルを作成することです。
第二のアプローチでは、ニューラルネットワークを使用します(q値を近似するために)。
Deep Learningに慣れていない場合は、必ずfastai Practical Deep Learning for Coders(無料)を見るべきです。
これは多くの情報でしたが、要約すると:
-
強化学習は、行動から学習する計算的なアプローチです。環境との相互作用によってエージェントを構築し、試行錯誤を通じてフィードバックとして報酬(負または正)を受け取ることで学習します。
-
どのRLエージェントも、期待される累積報酬(または期待リターンとも呼ばれる)を最大化することを目標としています。なぜなら、RLは報酬の仮説に基づいており、すべての目標は期待される累積報酬の最大化として説明できるからです。
-
RLプロセスは、状態、行動、報酬、および次の状態のシーケンスを出力するループです。
-
期待される累積報酬(期待リターン)を計算するために、報酬を割引します。ゲームの序盤に得られる報酬は、長期的な将来の報酬よりも予測しやすいため、より確率的に発生する傾向があります。
-
RLの問題を解決するためには、最適な方策を見つける必要があります。方策はAIの「脳」であり、状態が与えられたときにどの行動をとるかを示します。最適な方策は、期待リターンを最大化する行動を提供する方策です。
-
最適な方策を見つける方法は2つあります:
- 方策を直接トレーニングすること:方策ベースの手法。
- 各状態でエージェントが得る期待リターンを示す値関数をトレーニングし、この関数を使用して方策を定義すること:価値ベースの手法。
-
最後に、Deep RLについて話します。これは、行動を推定するために深層ニューラルネットワークを導入する(方策ベース)か、状態の価値を推定するために深層ニューラルネットワークを導入する(価値ベース)ため、「深層」という名前が付いています。
強化学習の基礎を学んだので、最初のランダーエージェントを正しく月に着陸させ、コミュニティと共有する準備ができました🌕。
チュートリアルはこちらから始めてください 👉 https://github.com/huggingface/deep-rl-class/blob/main/unit1/unit1.ipynb
そして、学習し、能力の錯覚を避けるために自分自身をテストするのは最良の方法です。私たちはあなたが学習を強化する必要がある場所を見つけるのを助けるためにクイズを作成しました。知識をチェックするには、こちらをご覧ください 👉 https://github.com/huggingface/deep-rl-class/blob/main/unit1/quiz.md
この章を終えておめでとうございます!これが最も大きな章でありました、そして多くの情報がありました。また、チュートリアルを終えておめでとうございます。あなたはまさに最初のDeep RLエージェントをトレーニングし、Hubで共有しました🥳。
これらの要素についてまだ混乱している場合は、それは正常です。これらの要素をしっかりと理解し、しっかりとした基盤を築くために続行する前に時間をかけることは重要です。楽しい部分に入る前に。
詳細については、追加の参考資料をシラバスに掲載しましたので、ご覧ください👉 https://github.com/huggingface/deep-rl-class/blob/main/unit1/README.md
もちろん、コース中にはこれらの用語を再度使用して説明しますが、次の章に飛び込む前に理解しておくことがベターです。
次の章では、Q学習について学び、価値ベースの手法にさらに深く入り込みます。
学びたい友達と共有するのを忘れないでください🤗!
最後に、フィードバックを受けてコースを改善し、更新したいと思っています。何かあれば、このフォームに記入してください👉 https://forms.gle/3HgA7bEHwAmmLfwh9
学び続けて、素晴らしいままでいてください。
We will continue to update VoAGI; if you have any questions or suggestions, please contact us!
Was this article helpful?
93 out of 132 found this helpful
Related articles