その他
    ホーム エンジニア AI 強化学習の基礎
    強化学習の基礎
     

    強化学習の基礎

    AI技術を学ぶ上で理解必須の強化学習の基礎的な内容を数式を使わずに簡潔に説明します。

    • AIに興味がある人
    • 強化学習の基礎的な仕組みを知りたい

    という人向けの記事です。

    そもそも強化学習とは?

    ある環境でエージェントが行動を選択し環境を変化させ、その状態を確認し 最終的に報酬が最も多く得られるような方策を学習します。
    まずは単語の意味から説明していきます。

    そして今回はイメージがつきやすいように自社ゲームのゴエティアクロスを例に説明します。
    その前にゴエティアクロスの説明を簡単にするとプレイヤー(魔導師)と魔神と呼ばれるキャラクター達が協力して敵を倒すゲームです。
    魔神にはスキルやレベルがあり、戦闘時は前衛、後衛などの編成を考えながら戦っていきます。
    この記事はゲーム紹介の記事ではないので詳しい説明は省きます。

    環境

    今回はこのゴエティアクロスそのものが環境です。

    エージェント

    今回はプレイヤー(魔導士)がエージェントになります。

    状態

    魔神達のHP,レベル,コスト,などです。

    行動

    ゴエティアクロスでは基本的に敵との戦闘はオートで進行するので出撃させる魔神を変える、レベルをあげる、セットしてるスキルを変更するなどが行動になります。
    今回は魔神の編成を変えるだけにします。

    報酬

    敵を倒す、レアアイテムを取る、短時間でクリアするなどが報酬にあたります。
    環境によってはマイナスの報酬もあります。
    例えば敵から受けたダメージが大きければマイナスの報酬を与えるなどです。
    今回は分かりやすく敵に与えたダメージが前回より多ければ報酬を 少なければマイナスの報酬を与えます。

    方策(ポリシー)

    方策とは貰える報酬を最大化するために行動ルールです。
    今回は敵に与えるダメージを増やすにはどのように編成を変えるべきか?というのが方策になります。

    基本的な流れ

    単語の意味が一通り分かったところで実際に学習の流れを説明していきます。
    強化学習で学習をする際にはゴールが設定されます。
    今回はこの深淵の森の受注できる全てのクエストクリアをゴールとします。

    エピソード1

    環境 水霊、火霊討伐

    #01 行動

    水霊、火霊討伐から開始します。
    エージェントが方策を元に行動。
    1回目は敵と戦闘をしていないので編成もランダムで組まれます。

    #02 環境の変化

    戦闘が終了しました。
    これにより現在の環境が
    水霊、火霊討伐 → 火霊、氷翼竜討伐に変わりました。

    #03 状態の確認

    与えたダメージ5828

    戦闘したことによってHPなどが減っています。
    エージェントはこの時点の与えたダメージと残りHPを確認し前回の戦闘より与えたダメージが多ければ報酬が与えられます。
    しかし、逆に前回より与えたダメージが前回より少なければマイナスの報酬が与えられます。

    #04 方策の更新

    この与えられた報酬を使って方策を更新します。
    1回目は前回与えたダメージとの比較ができないので報酬はなしです。
    なので方策の更新も行いません。
    このまま残りのクエストも進めていきます。

    環境 火霊、氷翼竜討伐

    与えたダメージ7377
    環境 火霊、氷翼竜討伐 → 氷翼竜、白蛇討伐
    報酬 なし
    方策の更新 なし

    環境 氷翼竜、白蛇討伐

    与えたダメージ6744
    環境 火霊、氷翼竜討伐 → クリア
    報酬 なし
    方策の更新 なし

    ゴール設定は深淵の森の全てのクエストクリアなのでここで1回目の学習は終了です。
    この行動開始からゴールまで1ステップをエピソードと言います。
    まずはエピソード1終了です。

    エピソード2

    環境 水霊、火霊討伐

    #01 行動

    エピソード1と同様に編成はランダムで組まれます。

    #02 環境の変化

    ここもエピソード1と同じです。

    #03 状態の確認

    与えたダメージ6096

    エピソード1の5828ダメージより多いので報酬を与えます。
    エージェントが与えたダメージと残りHPと報酬を確認しているのはエピソード1と同じです。

    #04 方策の更新

    エピソード2では報酬が貰えたので方策を更新します。
    環境 水霊、火霊討伐では今回の編成の方がより多くダメージを与えたので次回の戦闘時ではこの編成が選ばれるように方策を更新します。
    このまま残りのクエストも進めていきます。

    以降から#02 環境の変化は同じ流れなので省略します。

    【環境 火霊、氷翼竜討伐】

    #01 行動

    #03 状態の確認

    与えたダメージ6998


    エピソード1では7377ダメージだったので与えたダメージが少なくなってしまいました。
    この場合はペナルティとしてマイナスの報酬を与えます。

    #04 方策の更新

    この編成では与えたダメージが少なくなってしまったので選ばれないように方策を更新します。

    環境 氷翼竜、白蛇討伐

    #01 行動

    #03 状態の確認

    与えたダメージ8195

    エピソード1の6744より多いので報酬を与えます。

    #04 方策の更新

    この編成が選ばれるように方策を更新します。
    ここでクエストは全てクリアしたのでエピソード2は終了です。
    次からはエピソード3です。

    エピソード3

    【環境 水霊、火霊討伐】

    #01 行動

    今まではどの編成を組めばより多くのダメージを与えるか分からなかったので
    編成はランダムで選ばれていましたが今回からは方策を参考に編成を組めそうです。
    水霊、火霊討伐ではエピソード2の編成の方がより多くのダメージを与えることが分かっているのでエピソード2の編成が選ばれました。

    #03 状態の確認

    与えたダメージ量はエピソード2と同じなので報酬はありません。

    #04 方策の更新

    報酬がなかったので方策の更新もなしです。

    環境 火霊、氷翼竜討伐

    #01 行動

    エピソード2の編成では与えたダメージが少なくなってしまったのでエピソード1の編成が選ばれました。

    #03 状態の確認

    与えたダメージ量はエピソード2より多いので報酬を与えます。

    #04 方策の更新

    この編成が選ばれるように方策を更新します。

    環境 氷翼竜、白蛇討伐

    #01 行動

    エピソード2の編成の方が選ばれました。
    #02~#04は環境 水霊、火霊討伐と同じ流れです。
    これでエピソード3は終了です。

    エピソード4以降でもこれを繰り返し最終的にはどの編成が最もダメージを与える事が出来るか学習していきます。
    実際の強化学習では、何もしないと特定の編成ばかり選ばれて他の編成がどのくらいダメージを与えるか試さなくなるので、一定の確率で方策を無視してランダムで行動するというテクニックが使われます。

    関連:ゴエティアクロス

    記事を共有