Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

強化学習とは

強化学習は目標指向型の計算手法で、コンピューターが不明な動的環境とやり取りすることによってタスクの実行を学習します。この学習手法により、コンピューターは人間の介入なしに、またタスクを達成するために明示的にプログラムされることなく、タスクの累積報酬を最大化するような一連の決定を下すことができるようになります。次の図は、強化学習のシナリオの全体像を示しています。

Diagram showing an agent that interacts with its environment. The observation signal goes from the environment to the agent, and the action signal goes from the agent to the environment. The reward signal goes from the environment to the reinforcement learning algorithm inside the agent. The reinforcement learning algorithm uses the available information to update a policy. The agent uses a policy to map an observation to an action.

強化学習の目的は、不明な "環境" 内でタスクを完了できるよう "エージェント" に学習させることです。エージェントは、環境から "観測値""報酬" を受け取り、環境に "アクション" を送信します。報酬は、タスク目標を完了することに関してアクションがどの程度成功したかを示す測定値です。

エージェントには、"方策""学習アルゴリズム" の 2 つのコンポーネントが含まれます。

  • 方策とは、環境からの観測値に基づくアクション選択のマッピングのことです。一般的に方策は、深層ニューラル ネットワークなどの調整可能なパラメーターをもつ関数近似器です。

  • 学習アルゴリズムは、アクション、観測値、および報酬に基づいて方策パラメーターを継続的に更新します。学習アルゴリズムの目標は、タスク実行中に受け取る累積報酬が最大になる最適な方策を見つけることです。

つまり、強化学習では、人間の介入なしに、エージェントが環境との試行錯誤のやり取りを繰り返して最適な動作を学習します。

例として、自動運転システムを使用して車両を駐車するタスクを考えてみましょう。このタスクの目標は、車両コンピューター ("エージェント") が車両を正しい位置に正しい向きで駐車することです。これを行うために、コントローラーはカメラ、加速度計、ジャイロスコープ、GPS 受信機、および LiDAR からの読み取り値 ("観測値") を使用して、ステアリング、ブレーキ、およびアクセルのコマンド ("アクション") を生成します。アクション コマンドは車両を制御するアクチュエータに送信されます。結果として得られる観測結果は、アクチュエータ、センサー、車両運動、路面、風、その他多くのそれほど重要ではない要素に依存します。これらすべての要素、つまりエージェント以外のすべてが強化学習における "環境" を構成します。

観測値から正しいアクションを生成する方法を学習するために、コンピューターは試行錯誤のプロセスを使用して車両の駐車を繰り返し試行します。学習プロセスをガイドするには、車が目的の位置と方向に正常に到達した場合は 1、そうでない場合は 0 の信号を提供します ("報酬")。各試行中に、コンピューターは、いくつかの既定値で初期化されたマッピング ("方策") を使用してアクションを選択します。各試行の後、コンピューターは報酬を最大化するためにマッピングを更新します ("学習アルゴリズム")。このプロセスは、車を正常に駐車できる最適なマッピングをコンピューターが学習できるまで続きます。

強化学習のワークフロー

強化学習を使用してエージェントに学習させる一般的なワークフローには、以下のステップが含まれます。

Figure showing the seven stages of a typical reinforcement learning workflow.

  1. 問題の定式化 — エージェントと環境のやり取りの方法やエージェントが達成しなければならない主な目標や 2 次的な目標など、エージェントに学習させるタスクを定義します。

  2. 環境の作成 — エージェントと環境の間のインターフェイスや環境の動的モデルなど、エージェントが動作する環境を定義します。詳細については、Reinforcement Learning Environmentsを参照してください。

  3. 報酬の定義 — タスク目標に対するパフォーマンスを測定するためにエージェントが使用する報酬信号と、環境からのこの信号を計算する方法を指定します。詳細については、Define Reward and Observation Signals in Custom Environmentsを参照してください。

  4. エージェントの作成 — エージェントを作成します。これには、方策近似器 (アクター) と価値関数近似器 (クリティック) の定義やエージェントの学習アルゴリズムの構成が含まれます。詳細については、Create Policies and Value Functions強化学習エージェントを参照してください。

  5. エージェントの学習 — 定義された環境、報酬、エージェント学習アルゴリズムを使用して、エージェント近似器に学習させます。詳細については、Train Reinforcement Learning Agentsを参照してください。

  6. エージェントのシミュレーション — エージェントと環境を一緒にシミュレーションすることにより、学習済みエージェントのパフォーマンスを評価します。詳細については、Train Reinforcement Learning Agentsを参照してください。

  7. 方策の展開 — 生成された GPU コードなどを使用して、学習済みの方策近似器を展開します。詳細については、Deploy Trained Reinforcement Learning Policiesを参照してください。

強化学習を使用したエージェントの学習は、反復プロセスです。後段での判定や結果によっては、学習ワークフローの初期の段階に戻らなければならないことがあります。たとえば、学習プロセスが妥当な時間内に最適な方策に収束しない場合、エージェントに再学習させる前に以下のいくつかを更新する必要があるかもしれません。

  • 学習の設定

  • 学習アルゴリズムの構成

  • 方策と価値関数 (アクターとクリティック) の近似器

  • 報酬信号の定義

  • アクションと観測値の信号

  • 環境ダイナミクス

関連する例

詳細