強化学習の解説(基本情報技術者シラバス用語)

目次

強化学習とは

強化学習(Reinforcement Learning)とは、コンピュータ(エージェント)が特定の環境のなかで「どのような行動をとるべきか」を試行錯誤を通じて自ら学習する手法です。コンピュータが良い結果を出したときには「報酬(プラスの点数)」を、悪い結果のときには「ペナルティ(マイナスの点数)」を与えることで、得られる報酬の合計が最大になるような最適な行動パターンを自発的に学習していきます。正解を与えるのではなく、行動の良し悪しをスコアで評価するのが特徴です。

具体例

将棋やチェス、囲碁などのゲームAIが、自分自身と何百万回も対局を繰り返しながら、勝つ確率が最も高くなる(報酬が最大になる)「次の一手」を自ら学習していく仕組みがこれにあたります。

# 強化学習のサイクルイメージ
while not game_over:
    action = agent.decide_action(state)
    reward = environment.step(action)
    agent.learn_from_reward(reward) # 報酬を元に行動を改善

もう少し詳しく

強化学習は、エージェントと呼ばれる主体が、現在の状態を観測し、選択可能な行動の中から一つを実行することで、環境から得られる将来の「累積報酬」を最大化するような意思決定の戦略(方策)を自律的に学習する手法です。教師データのように一歩一歩の「正解の行動」が直接与えられるわけではなく、一連の行動の結果として最終的に得られる「報酬(スコア)」のフィードバックのみを頼りに学習を進めます。エージェントは、すでに効果的だとわかっている行動を繰り返す「利用(Exploitation)」と、まだ試したことのない新しい行動に挑戦する「探索(Exploration)」のトレードオフを制御しながら、試行錯誤を通じて最適な行動パターン(Q学習やDQNなど)を獲得します。ロボットの歩行制御、自動運転の経路探索、ゲームでの対戦戦略などに広く応用されています。

試験でのポイント

試験では、強化学習の基本的な構成要素である「エージェント(行動の主体)」「環境(行動の対象)」「状態(現在の状況)」「行動(選択するアクション)」「報酬(結果に対する評価)」といった用語の役割と関係性を問う問題が出題されます。また、他の学習手法(教師あり・教師なし)との違いとして、「正しい答えではなく、得られる報酬の合計が最大になるような手順を自発的に学習する」という特徴を捉えておくことが重要です。ゲームや自動運転など、具体的な応用シナリオと絡めて出題されることが多いです。

関連する用語

エージェント(強化学習で行動を決定する主体)、報酬(行動の結果に対して与えられる評価値)、Q学習(強化学習の代表的なアルゴリズムの一つ)。

読んだ内容を10問練習と実技で確認

記事で理解した用語を、StudyQuestの演習とクラウド実技ラボで定着させます。

10問練習 実技ラボ