Re:ゼロから学ぶ強化学習 – QLearningによる合理的判断の獲得 –

機械学習やAIなどで代表されるニューラルネットワークなどの教師あり学習は、人間が判断した正解データを与えることによって、人間と同じ能力をコンピュータに実現させようというものです。

一方、機械学習の中には教師ありではなく、「半教師あり学習」という機械学習も存在します。

一般的にそれは、「強化学習」と呼ばれ、「報酬」という教師データを人間が与えることで機械が試行錯誤の中、得られる報酬を最大化するというような学習方法になります。

ではこのような機械学習の手法で一体なにができるのか、今日はそんなことを解説していきたいと思っています。

私の自論では、強化学習の面白いところは、「人間を超えた合理的判断を学習することができる」というところにあると思っています。

考える問題

強化学習はソフトウエア工学の領域よりはむしろ、ロボティクスの分野で発展してきました。

例えばロボットは今自分が置かれている環境を探索しながら、得られる報酬(例えばゴールにたどり着くなど)を最大化することによっていち早くゴールにたどり着くルートを探索するなどです。

今回はそれと同じように、スタートからゴールまでを行く合理的なルートを学習させたいと思います。

今回考える迷路はこのようなものとします。

黒色が動ける道、灰色のスペースには行くことができません。

白色の場所は特殊な場所で、今回は「危険地帯」としましょう

そして、赤色の場所がスタート地点、黄色がゴール地点です。

ここであと2つ成約を設けます。

「黄色のゴールにたどり着くと+20の報酬を得ることができる」

「白色の危険地帯を通るには-25の報酬を払わなければならない」

さて、皆さんはこのような成約が設けられた迷路で、下方向と危険地帯を通る右方向、どちらを通ってゴールまでたどり着きますか?

おそらく大半の方が、危険地帯を通らずに、遠回りをしてゴールまで行くルートを選択するでしょう。

なぜなら、報酬を最大化するという目的において、遠回りすることは危険地帯を通るよりも得られる報酬が高くなるルートだからです。

人間はそれを瞬時に判断できますが、はたして機械はどうでしょうか。

Q-learnig

この問題を解決するために強化学習の解法の一つとして、Q-learningというものがあります。

Q-learningはその環境(今回は迷路の現在位置)である行動(今回は4方向どこに行くか)の価値(Q値)を定義します。

その環境(今回は迷路の現在位置)である行動(今回は4方向どこに行くか)の価値(Q値)がわかるのであれば、迷路内において、現在地からどこに行けばいいかが瞬時にわかります。

しかしその価値はまだわからないので、次に示す方法を使ってその価値を計算します。

その方法が「死に戻り」です。

…Re:ゼロわからない人すみません

要するにQ-learningではとりあえずいろんな行動をしてみて、うまく行けばそれを覚えておいて、うまく行かなければ死んでもう一度やりなおすという恐ろしい方法です。

しかし無作為な行動ばかりをしていてもダメなのでQ-Learningでは、うまくいった前の行動や状態にうまく行ったときの報酬より少ない報酬を設定させます。

するとうまく行った(+20)、その前の状態と行動(+15)、その前の前の状態と行動(+5)のように、徐々にその行動の価値が伝搬していきます。

学習が終わったら、あとはその状態において一番価値が高い行動をすれば、最大報酬を得られる方策となります。

実際に動きを見てみる

今回はMDPというモデルで考えます。

下図のgifを見てください。

一番左は最初に示した環境の状態です。

真ん中は「その状態(位置)における最大価値を持つ行動の価値」です。

一番右は「学習結果である0,0から3,6の座標に移動するベストなルートです」

far

真ん中の図ではゴール位置から0,0に向かって徐々に白色になっていっていることがわかります(白色になるほど価値の値が高いです)

(ただし、真ん中の図は必ずしも白色ほど最適なルートではありません。最適ルートは右図です)

ゴールから上向きに向かって白色が伝搬しにくいのは、危険地帯(報酬-25)があるため、そこ周辺の行動や状態は伝搬された価値が低くなるからです。

結果、右図を見ると、我々が想定していたことと同じ遠回りのルートを学習することができました。

合理的判断をしてみる

最初に述べたように、私が考える強化学習のすばらしいところは、「合理的な判断をさせることができる」ところにあるとおもっています。

例えば同じ下図の環境で、「1つの行動をするたびに-2の報酬を払わなければいけない」というルールならばどうでしょうか。

1つの行動をするたびに-2の報酬を払わなければならないならば、「危険地帯を通って(-25)でも近道を行きたいところです」

つまりこの環境では遠回り自体にリスクを伴うんですね。

 

ではQ-learningはこれと同じ合理的判断をすることができるのでしょうか

結果は下図の通りです

near

機械学習でコンピュータが「多少危険地帯を通ってでも近道のほうが合理的だから近道を選ぶ」という考えを獲得させることができました。

人間を超えた合理的判断をさせる

さて、強化学習のさらにおもしろいところは、人間を超えることができるというところです。

下図の環境を考えてみてください。

白色が-25の報酬を払う危険地帯、黒色が道、灰色は道ではありません

あと、1回の行動に-2の報酬を払わなければならない場合、(0,0)から(3,6)の座標(報酬+30)へのルートはどれが一番合理的でしょうか?

結果は….僕の貧弱PCでは収束しませんでした。

しかし強化学習を利用することによって、このような人間には難しい合理的判断を機械にまかせることができるようになります。

強化学習の応用例

さて、このような「多少目の前のリスクに目をつぶってでも、最終的にえられる報酬を最大化する合理的判断」という技術をつかって研究が盛んに行われている分野があります。

それは「対話システム」です。

我々は人と対話するとき、話が上手い人は相手に喜んでもらえたという報酬を意識しながら相手の出方を伺いつつ会話というアクションを行っています。

これはまさに先ほど述べた強化学習で合理的な対話アクション選択をすることができるシナリオですよね。

そのような対話システムは「統計的対話システム」と呼ばれ、盛んに研究されています。

 

ホントはそこら辺の話とか、Re:ゼロのスクショを踏まえた解説とかもしようと思っていたのですが、今カプセルホテルで「カタカタ」タイピングをし続けてそろそろ下段の人に怒られそうなのでまた次回…

Re:ゼロと強化学習は奥が深かったんですねぇ…(深くない)

http://re-zero-anime.jp/