離散値ってなんや?
こんにちは!
ぷもんです。
前回、棒のバランスを取るCartPoleの動かし方 強化学習を始める前に
というnoteで強化学習を始める前段階として
CartPoleという棒のバランスをとって立った状態を維持するゲームの
動かし方を勉強しました。
ここからは強化学習のQ-learningというやり方を勉強します。
Q-learningを始める前に
まずは離散値にしないといけません。
「離散値ってなんや?なんで離散値にしないとあかんねん!」
という疑問が出てくると思います。
離散値が何か?を説明する前に
強化学習の仕組みを理解するといいと思います。
・強化学習ってなんや?
強化学習の特徴は行動の結果に対して報酬が出ることです。
上のサイトのサッカーの例えがわかりやすかったのですが
強化学習ではサッカーのゴールに対して報酬を与えますが
そこに至るまでのドリブルやパスには報酬が出ません。
ゴールが決まったところから逆算して
その前のシュート、さらにその前のドリブル、さらにさらにその前のパス
がよかったというように逆算していい行動を学習して行きます。
さらに話を具体的にします...。
・迷路を解く
下の画像のような迷路があったとすると
(ちょっと図が雑ですが...笑)
マスが9つあって上下左右に動かせる迷路です。
こんな迷路なら全ての選択肢を出して
その中からスタートからゴールまでの最短のルートを見つけて
報酬を与えることができそうなので
強化学習で解くこともできそうです。
・CartPoleなら?
では、これから強化学習をしようとしているCartPoleではどうでしょうか?
動きの選択肢は左右だけなので
迷路より選択肢が少ないですが
マスが決まっていないので
目標達成に向かっているのか判別するための
状態がわかりずらいです。
・離散化が登場!
そこで出てくるのが離散化です。
横にずっと繋がっている線だとわかりずらいので
4分割して下の画像のようにすると
迷路のマスがある状態に近づき状態を判別しやすくなります。
CartPoleの状態を示す値は
・カート位置
・カート速度
・棒の角度
・棒の角速度
の4つの値があるので
同じようにして
4の4乗で256の離散値にすることができ
扱いやすくなります。
今回は離散値にする意味について書きました。
次回以降にコードを交えながら具体的に強化学習をやって行きます。
参考にしたサイトはこちらです!
最後まで読んでいただきありがとうございました。
ぷもんでした!