Deep Q-Networkベースでの強化学習の俯瞰②|強化学習フォローアップシリーズ #2

f:id:lib-arts:20190131195140p:plain

#1では連載の経緯とDQNの理解にあたって簡単な全体像について言及しました。

#2では#1で上がった話題であるマルコフ決定過程(MDP; Markov Decision Process)について詳しく解説していきたいと思います。

以下、この記事の目次になります。

1. 前回の復習
2. マルコフ決定過程の詳細
2.1 確率過程とマルコフ性
2.2 マルコフ過程と具体例
2.3 マルコフ過程からマルコフ決定過程への拡張
2.4 強化学習におけるマルコフ決定過程
3. まとめ

 

1. 前回の復習
軽く前回の復習から入ります。

大枠の問題設定自体がマルコフ過程なので系列データを取り扱うということです。系列というと難しく聞こえますが、簡単に考えると時系列のような取り扱いが必要だということです。

という風に書きましたが、強化学習は系列データの取り扱いを行います。系列データの取り扱いに環境の観測やエージェントのアクション、環境からエージェントへの報酬などを加えると非常に問題の設定の幅が広がり、教師あり学習のようなある時点での明確な正解が定義できる話ではなくとも問題設定が可能になります。
強化学習は一見非常にとっつきづらそうに見えるのですが、実は人間も似ているような学習を行っているのではと思わせるほどなかなか面白い学習方法だったりします。

2節では前回解説しきれなかったマルコフ決定過程の詳細部分について解説できればと思います。

 

2. マルコフ決定過程の詳細
2.1 確率過程とマルコフ性

系列データについて軽く言及しましたが、マルコフ決定過程マルコフ過程の拡張です。マルコフ過程を理解するにはその前段階として確率過程(stochastic process)を理解する必要があります。ざっくりいうと確率的に状態が遷移するものと考えればよく、有名どころだとブラウン運動を元にしたウィーナー過程が有名です。

ウィーナー過程 - Wikipedia
ウィーナー過程って聞くと難しく聞こえますが、俗にランダムウォーク(酔歩)とも呼ばれており、酔っ払いが家にたどり着けるか問題をモデリングするのにも使えたりします。
少々話が逸れましたが、ざっくり言うと確率的に変動する時系列データを扱うのが確率過程です。ここでマルコフ過程は確率過程の一種で、現在や直近の過去の状態に依存して次が決まると言うイメージです。天気や言語モデルなどがこの例として挙げられます。

前回の記事で上記のように言及しました。ここまで書いたところでこれをもう少し噛み砕くと同じ粒度で最後まで書けないとなってしまったため、#2に残りを振り分けた形になります。物理系の方やマルコフ系の話に馴染みがある工学系の方などを除くと確率過程って聞いただけで頭が痛くなる話な気がします。

確率過程 - Wikipedia
上記が確率過程のWikipediaですが、こちらも小難しいので前回の説明でわからなければわけがわからないと思います。
そのため、ちょっと噛み砕きます。確率過程というのは時間の変化を確率的に取り扱ったものです。具体的な例を出すと前回のランダムウォークもそうなんですが、ギャンブラーの総資産を考えると良いのかなと思います。ギャンブラーAは70%で勝てる腕利き、ギャンブラーBは勝率53%の新入り、ギャンブラーCは勝率99.9%の闇に舞い降りた天才とします。この際に、毎月15回ギャンブルを行うとして、2ヶ月後(30回行ったのち)までの総資産をカウントしていくものとします。これが確率過程のイメージです。最初はBが絶好超とかあるかもしれませんが、長い目で見てAがBを上回ります。闇に舞い降りた天才は倍プッシュを使い過ぎて別のトラブルになっているかもしれませんがそれはさておき、長い目で見ると確率的にAがBを上回っていきます。
このように何らかの確率変数に着目してその時間遷移を追っていくというのが確率過程の考え方です。

また、この時のマルコフ性はこれまでの履歴に関係なく現在の状態のみに基づいて次の遷移が決まるということです。なので、勝ち過ぎているから痛い目に合わされるというのはないです。従って闇に舞い降りた天才もマルコフ性を仮定すれば問題なしとなります。


2.2 マルコフ過程からマルコフ決定過程への拡張

さて、2.1節では話が若干脱線しましたが、マルコフ過程というのをおさえました。
要は過去の来歴に関係なく現在の状況のみ見られるということです。

ここではマルコフ決定過程への拡張について触れますが、具体的には行動(action)や報酬(reward)を加えたものとされています。これまでのマルコフ過程は単なる観測だったのですが、マルコフ決定過程では何かしら独自の判断基準を持ったエージェントが常に意思決定を行い、徐々に状況が変化したりエージェントにとって良いことや悪いことが起きたりなどをモデリングしています。
これは具体例としては、普段の生活も考えられるのではないでしょうか。例えば何かを成し遂げたいと考えたとして、一日30分勉強すると決めていたとします。基本的には勉強は楽しいものですが、時には辛い時があるかもしれません。このブログも1日1〜2本投稿を目標としていますが時には辛い日もあるかもしれません。確かに短期的な良い悪いを考えると続けないというのも一つです、が、それを行うことにより将来的に実現するのが不可能になったときはマイナスになります。

 
2.3 強化学習におけるマルコフ決定過程

2.2で言及したように普段の生活ではなんらかの意思決定を多くこなし、それに基づく報酬を得て我々は日々学習をして過ごしています。このように考えると強化学習の扱う対象ってなんか擬人的で面白い問題設定だなという気がしてきます。

とにかく、現在のアクションに対して報酬を得るという一連の流れをマルコフ決定過程として強化学習の問題定義として設定します。強化学習では、何か一連の単位をエピソードとし、エピソード単位で全体の報酬を考えそれぞれの行動の判断に対してフィードバックします。具体的には中間テスト、期末テストのように一度一度をエピソードとし、それぞれの結果を行動にフィードバックして行動の判断基準を強化していきます。例としてはオセロ、将棋、囲碁などは対局の1局を一つのエピソードとしますし、サッカーや野球では1つのゲームもしくは1点を入れるにあたっての流れを1つのエピソードとみなせます。

とにかく、マルコフ決定過程におけるある程度の時間幅をエピソードとみなし、そのエピソード内でエージェントが得た報酬を元に戦略(行動の選択基準)をアップデートするというのが強化学習の目的になります。


3. まとめ

なんとか書き切りました。このように現ステップでの報酬を考えた際にやめたくても、3日後に辛くなるならエピソード単位ではやはり損をします。#3では報酬をどう扱うのかについて取り扱います。

若干ネタを仕込んでしまいましたが、とっつきづらい話題を初心者向けに取り扱っていますしたまには良いのかなと開き直ることにします。にしても、人生倍プッシュでいきたいものですね。