メインコンテンツ

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

強化学習とは

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

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 の信号を提供します ("報酬")。各試行中に、コンピューターは、いくつかの既定値で初期化されたマッピング ("方策") を使用してアクションを選択します。各試行の後、コンピューターは報酬を最大化するためにマッピングを更新します ("学習アルゴリズム")。このプロセスは、車を正常に駐車できる最適なマッピングをコンピューターが学習できるまで続きます。

強化学習で使用される一般的なワークフローの概要については、強化学習のワークフローを参照してください。

参考

トピック