×
オートマトン・形式言語・AI

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

強化学習とは

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

具体例

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

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

もう少し詳しく