強化学習こんにちは三谷です。今回は、強化学習の中でも代表的なアルゴリズムであるDQNについて解説します。Q-Networkの略です。DQNとは、と行きたいところですが、DQNを理解するためには、Q学習について理解している必要がありますので、そこからご説明していきます。AIエンジニアになるための3日間集中セミナー開催中Q学習(Qラーニング)とは?Q学習とは、ある状態のときにとったある行動の価値を、Qテーブルと呼ばれるテーブルで管理し、行動する毎にQ値を更新していく手法です。学習時にはQテーブルを更新していくことで、学習済みモデルはQテーブルとなります。強化学習を理解する上で、必ず覚えておくべき用語があります。エージェント:環境に対して行動を起こす学習者。強化学習では、このエージェントが環境に対して様々な試行を繰り返すことで行動を最適化していきます。環境:エージェントの行動に対して状態の更新と報酬の付与を行います。強化学習では、与えられた「環境」における価値を最大化するように「エージェント」を学習させます。状態(s_t):環境が保持する環境の様子で、エージェントが起こす行動によって変化します。行動(a):エージェントが、ある状態()のときに取ることができる行動のことです。報酬(r):エージェントの行動に対する環境からの報酬です。Aをスタート、Dをゴールとする迷路があったとします。迷路と言ってもとってもシンプルなものですが・・・この迷路が環境で、動いていくのがエージェントです。スタートのマスにいる状態からスタートし、右か上に移動することを行動と呼びます。ここでの報酬はゴールに到達した際の100ですね。ゴールに到達する際の即時報酬は、このような表で表すことができます。Bという状態からDに行くという行動をとったら、報酬が100点得られますね。先程の表とは別に、Qテーブルと呼ばれる表を用意するのがQ学習です。経験(探索)して得た知識を記録するQテーブルを用意し、状態と行動におけるQ値を更新していくことで、最適な行動ができるようにしていくのです。Qテーブルの更新は以下のように行われます。γ:割引率と呼ばれるもので範囲は0~1です。ランダムに指定された状態(部屋)から始まり、最大の報酬(D部屋)に到着した時点で終了する。これをエピソードと言う単位で表す。現在の部屋(状態)から移動できるアクション(行動)の中から1つを選択する。Qの値を上記のQ値更新の式で計算して、Qテーブルを更新する。移動先がD部屋(ゴール)ならエピソード終了。ない場合は移動先の部屋を現在の部屋にする。エピソード(学習)を何度も繰り返して、エピソード終了ごとにQテーブルに値を記録する。Bを初期の状態として、Dに移動する行動をしたとすると、Qを求める計算式に当てはめると以下のような式になります。100このQ値をQテーブルに記入します。続いて、Aを初期の状態として、Bに移動する行動をしたとします。すると、先程のQテーブルも考慮して計算すると、以下のようになります。80Qテーブルはこのように更新されます。このような行動を繰り返していくことで、Qテーブルがどんどん更新されていきます。Qテーブルが学習によって埋まると、ある状態の時に取るべき行動は、Q値が最も大きい行動であることがわかります。このようにして、最適な行動を学習するのがQ学習(Qラーニング)です。Q-Networkの略です。ごとのQ値を推定できれば、一番いいQ値の行動=取るべき最善の行動がわかるという仕組みです。一般的にディープラーニングと呼ばれるところですね。ディープラーニングは、隠れ層が複数の層あるニューラルネットワークによって重みを更新していく学習手法ですので、ディープニューラルネットワークを使用した強化学習のことを深層強化学習と呼んだりもしています。Q学習では、Qテーブルを更新していく仕組みのため、連続的な「状態」、例えばロボットアームの動きのようななめらかなものを表現しようとすると、Qテーブルが膨大な量となるため、現実的に計算ができなくなるデメリットがあります。それに対し、DQNはQ値そのものを推定するのにニューラルネットワークを使うことで、Q値の近似関数を得てしまおうという考え方ですので、連続的な行動にも対応できるようになっています。Q-Network)は以下のような学習手順で学習します。