強化学習は過去 1 年間で大きな進歩を遂げ、最先端のテクノロジが 2 か月ごとにリリースされています。 AlphaGo が世界チャンピオンの囲碁プレイヤー、柯潔に勝利したり、マルチエージェントがかくれんぼをしたり、さらには AlphaStar が StarCraft で健闘したりするのを見てきました。 これらのアルゴリズムを実装するには、ディープラーニングと強化学習の両方を十分に理解する必要があるため、非常に困難になる可能性があります。 この記事の目的は、強化学習の学習を簡単に開始できるように、いくつかの便利なパッケージをすぐに使い始めることができるようにすることです。 SOTA 深層強化学習アルゴリズムを実装する方法についての詳細なチュートリアルについては、こちらをご覧ください。 ぜひ注意深く読んでみてください! 1. 環境 これらのアルゴリズムの実装を始める前に、まず作業環境、つまりゲームを作成する必要があります。 アルゴリズムでは、アクション空間と観察空間が何であるかを理解することが重要です。 この目的のために、興味深い環境を選択するために使用できるいくつかのソフトウェア パッケージを紹介します。 1. ジム Gym は、強化学習アルゴリズムを開発および比較するためのツールキットです。 環境を操作するための使いやすいインターフェースを提供するため、実験や研究の目的でよく使用されます。 次のコマンドを使用してパッケージをインストールするだけです。
その後、次のコードを使用して環境を作成できます。
CartPole 環境では、カートに先端が取り付けられたポールが落ちないようにすることがタスクです。 env 変数には、環境 (ゲーム) に関する情報が含まれます。 CartPole のアクション空間が何であるかを調べるには、env.action_space を実行して Discrete(2) を生成します。 これは、2 つの個別のアクションが可能であることを意味します。 観測空間を表示するにはenv.observation_spaceを実行し、Box(4)を生成します。 このボックスはn(4)個の閉区間の直積を表します。 ゲームをレンダリングするには、次のコードを実行します。
ランダムなアクションを選択した場合、カートは失敗し続けることがわかります。 最終的な目標は、この問題を解決する方法を学習する強化学習アルゴリズムを実行することです。 Gym の環境の完全なリストについては、こちらをご覧ください。 注: Atari ゲームの実行中に問題が発生した場合は、https://github.com/openai/gym/issues/1726 を参照してください。 2. レトロ 興味深い環境を作成するためのもう 1 つのオプションは、Retro を使用することです。 OpenAI によって開発されたこのパッケージを使用すると、ROM を使用して Airstriker-Genesis などのゲームをエミュレートできます。 次のコマンドを使用してパッケージをインストールするだけです。
次に、以下を使用して環境を作成および表示できます。
同様に、ゲームをレンダリングするには、次のコードを実行します。
ROM をインストールするには、対応する .sha ファイルを見つけて、次のコマンドを実行する必要があります。
注: 簡単に利用できる環境の完全なリストについては、次のコマンドを実行してください。
3. プロジェクション 強化学習の典型的な問題は、結果として得られるアルゴリズムが特定の環境ではうまく機能することが多いものの、一般化可能なスキルを学習できないことです。 たとえば、ゲームの見た目や敵の反応を変えたい場合はどうすればよいでしょうか? この問題に対処するために、OpenAI は手続き的に生成された環境の作成を可能にする Procgen というパッケージを開発しました。 このパッケージを使用すると、強化学習エージェントが一般的なスキルをどれだけ早く学習するかを測定できます。 ゲームのレンダリングは非常に簡単です:
これにより、アルゴリズムをトレーニングできる単一のレベルが生成されます。 同じ環境のさまざまなバージョンを手順的に生成するには、いくつかのオプションがあります。
2. 強化学習 さて、いよいよ実際の強化学習をやってみましょう。 トレーニング アルゴリズムに使用できるパッケージは多数ありますが、ここでは実装が堅牢な Stable Baselines に焦点を当てます。 この投稿では、RL アルゴリズムが実際にどのように機能するかについては説明しません。そのためには、まったく新しい投稿が必要になります。 PPO、SAC、TD3 などの最先端のアルゴリズムの概要については、以下を参照してください。 https://github.com/dennybritz/reinforcement-learning. 1. 安定したベースライン 安定ベースライン (SB) は OpenAI ベンチマークに基づいており、研究コミュニティと業界が新しいアイデアをより簡単に複製、改善、特定できるように設計されています。 彼らはベースラインを改良し、より安定したシンプルなツールにして、初心者が実装の詳細に煩わされることなく強化学習を試すことができるようにしました。 SB は、最先端の強化学習アルゴリズムを簡単かつ迅速に適用できるため、よく使用されます。 さらに、RL モデルの作成とトレーニングには、数行のコードだけが必要です。 インストールは、pip install stable-baselines で簡単に実行できます。 次に、RL モデル (例: PPO2) を作成して学習するには、次のコード行を実行します。
いくつかの点については説明が必要かもしれません:
このモデルを CartPole の例に適用するには、環境を Dummy でラップして SB で利用できるようにする必要があります。 次に、CartPole 環境で PPO2 をトレーニングする完全な例を示します。
上のグラフからわかるように、PPO2 はわずか 50,000 ステップでポールを安定させる方法を見つけることができました。 これには、数行のコードと数分の処理だけが必要です。 これを Procgen または Retro に適用する場合は、観測空間が環境の現在の状態のイメージになる可能性が高いため、畳み込みベースのネットワークを許可するポリシーを選択してください。 最後に、CartPole の例は非常にシンプルで、50,000 ステップのみトレーニングされます。 他のほとんどの環境では、大幅な改善が見られるようになるまでに通常数千万ステップが必要になります。 注: StableBenchmark の作成者は、初心者がパッケージを本番環境で使用する前に、強化学習について十分に理解しておくように警告しています。 強化学習には多くの重要な要素があり、そのうちのどれかに問題があれば、アルゴリズムは失敗し、ほとんど説明がつかない可能性があります。 2. その他のソフトウェアパッケージ RL アルゴリズムを適用するために一般的に使用される他のパッケージがあります。
結論 強化学習は、コードに問題が発生した場合にデバッグするのが難しいため、扱いにくいテーマになる可能性があります。 この投稿が強化学習を始める助けになれば幸いです。 |
<<: ドローンは5G開発をフィードバックし、インテリジェントな運用と保守の新たなアップグレードを促進する
>>: DevOps 2 または 3: 継続的インテグレーションによる自動モデルトレーニング システムを構築するための理論と実践のガイド
TechCrunchのウェブサイト、北京時間9月25日によると、多くの競合他社と同様に、Micro...
最近、Llama 2 のオープン ソース化により、Yann LeCun 氏や業界関係者の多くが「ビッ...
序文機械学習プロジェクトを実行するには、まずモデルを(ほとんどの場合は予測 API として)デプロイ...
この記事は、公開アカウント「Reading the Core」(ID: AI_Discovery)か...
Google と他のチームは、遺伝的プログラミングの最新の成果である AutoRobotics-Ze...
著者: 徐潔成校正:Yun Zhao 「使ってみて、もうMidjourneyには興味がなくなった」。...
わずか5年で、人工知能は急速に発展しました。最近、GPT-3が再び白熱した議論を巻き起こしています。...
[[182792]]協調フィルタリング推奨アルゴリズムにおける行列分解の応用では、推奨アルゴリズムに...
[[428302]] 2021年9月26日にarXivにアップロードされた論文「人間のガイダンスによ...
[[340795]]ビッグデータダイジェスト制作近年、ディープラーニング エンジニアは市場で最も人気...
01 機械学習モデルが説明できない理由数日前、あるピア交換グループで熱く議論されたトピックがありまし...