神野さんに言われました。

読者です 読者をやめる 読者になる 読者になる

神野さんに言われました。

AIの勉強をしています @sesenosannko

深層強化学習について理解する①強化学習

サークルのメンバーに「深層強化学習による東方AI」という同人誌を貸してもらいました



前半に機械学習の基礎知識から書いてあって、後半で東方AIについて書いてあります。
22ページの本としては非常に丁寧かつ充実した内容でした。
当然手法を学ぶ本ではないので、基礎的な内容については確認程度です。

僕は強化学習についてはちょうど勉強をした文献に書いてなかったこともあり概要を知っている程度だったので、この機会に理解を深めたいと思います。
強化学習という手法はロボットとかゲームとかによく使われるみたいです。
PRMLとかにも載っていないので、特殊なのかもしれないですね。
どうやら新しいというわけでもないみたいですし。

とりあえず、基礎的なところから理解していきます。
いろいろな記事を読みながら咀嚼して書いているつもりですが、間違っていたら指摘していただけると嬉しいです。

正直、この記事を読んでくれれば完璧に理解できます。
僕の記事の存在意義は僕が理解できるっていうだけです。

qiita.com

そのほかに参考にしている記事です。

www.sist.ac.jp


  1. 強化学習

そもそも強化学習とはなんなのか。
いろいろ探しましたが、「深層強化学習による東方AI」に書いてある定義が一番わかりやすかったので引用します。

強化学習とは、ある環境の状態に置かれたエージェントが、行動を選択したときに与えられる報酬をもとに、初期状態からゴールまでの累積報酬を最大化するような方策を獲得する仕組み


ひとつひとつ、言葉を拾っていきます。

  • 状態

環境から観測されるものです。たとえば、オセロだったらどこに自分の石があって、どこに敵の石があるかといったようなものですね。「深層強化学習による東方AI」ではゲーム画面のスクリーンショットそのものを状態として用いていました。

  • エージェント

状態を観測し、意思を決定する部分のこと。簡単に言えば、ゲームのプレイヤーに値する部分ことですね。文献によっては「学習主体」や「コントローラー」と書いてある場合もありました。

  • 報酬

直前の行動の良し悪しを示す値です。たとえば、「敵を倒すと+2」、「アイテムを取ると+1」、「被弾すると-1」といったようなものをよく見ます。

ただ、DQNという手法では少し違うようです。これはまた後日理解しようと思います。

  • 方策

行動を決定するルールのこと。強化学習の目標は最適(=累計報酬が最大)の方策を得ることです。

「深層強化学習による東方AI」では「行動」と「状態」の関数で表されていますが、Ugo-Namaさんの記事には

今のように環境の状態がエージェントの観測として直接渡される場合は必ず、行動を出力とするある決定論的な関数で表すことが可能な最適方策が、少なくとも1つ存在することが理論的に知られています。


と書いてあるので、「状態」を入力することで「行動」を出力する関数と考えていいと思います。



これが強化学習の基本的な考え方です。
次回は、マルコフ決定過程を理解したいと思います。


↓次回です

sesenosannko.hatenablog.com



余談ですが、こういう記事を書くのは学習として非常に効果があることだなと思います。
こういうことを学習する際には、

  • 読むだけ
  • 自分の言葉でまとめる
  • 実装する

の順で理解度が進むのかなと思います。
まぁもっと細かく段階はいくらでも書けるとは思いますが。
読んで理解したつもりになっていても、意外と全くわかってないことが僕には多いです。
いざ人に話そうとすると、よくわかっていないことが発覚する。
理想としては全て実装するべきなのだとは思いますが、まだそこまでの実装力がないので(つけるためにもやれっていうのはいつも言ってる)、時間的な兼ね合いもあるのでとりあえずまとめてみてます。はい。