強化学習が哲学的すぎる

投稿者: | 2016年8月13日

教化学習の薄くて簡単な本を読んでいる。

イラストで学ぶ 人工知能概論 (KS情報科学専門書)機械学習と深層学習 ―C言語によるシミュレーション―

『イラストで学ぶ人工知能概論』は、サポートベクトルマシンとか、ニューラルネットワークのような流行の分類器には割と背を向けている本。人工知能を学ぶ一番のモチベーションは、老いも若きも分類器作ってデータかダウンロードしてきた学習済みモデル入れてイェイ……っていうことを考えると、一見するとフレンドリーに見えて、そうでもない本。

『機械学習と深層学習』は簡単なCNNのコードが載ってるというので買ってみたけれど、肝心の畳み込み層の重みはランダムで、重みの更新も実装されていない様子でがっかり。でも蟻コロニー最適化や、Q学習の書き方が載っていて興味深い。

それで、Q学習を眺めていると、なんだか哲学的な思考力のなさをずばずば追及されている気持ちになる。

というのは、Q学習の説明を読んでいるとすごく不完全な仕組みに不安と憤りを感じるけど、その気持ちをうまく説明できない。

「本当にやりたいことは別にあるけど、それを簡単なモデルに置き換えましたよ、どうよ?」
って、言われているような気持ち。

強化学習、こいつは、現実の世界と比較してはるかに不完全だ。

たとえば日本人が昔から大好きな文章に

 ゆく河の流れは絶えずして、しかももとの水にあらず。淀みに浮かぶうたかたは、かつ消えかつ結びて、久しくとどまりたるためしなし。世の中にある人とすみかと、またかくのごとし。

という平家物語の一節がある。日本人が考える世界が、この一文のなかに凝縮されている。もちろん現実の世界が本当にこういう風かわからない。でも神様が人間社会を眺めたら、きっとこんな風に見えるだろうと昔の日本人は考えた。世界を単純化しようとした。

ところが、Q学習は、この日本の伝統的な世界観と哲学を、何重もの意味で、バッサリと否定しているように感じる。
現実の世界をモデルに近似する段階で、「そこんところ別に大事じゃないから…」といって、切り捨ててしまう。

 ひとつは離散的なマルコフ連鎖に対する違和感だと思う。それから、同じ局面に何回も出会うというのは理想的な状況だが、現実の世界では再現性がなくて今まで一度も出会ったことがない状況でもある程度正しく対処しなければならない事が少なくない。ある状況を「同じ」だと認識することそのものが恣意的だ。。
 それから、Q値が高い方法を選ぶという単純化にも何か気に食わないものがある。Q値が高い選択肢が目前にあっても、突然トイレに行きたくなることもあるだろう。自分のいる場所は確率的にしかわからないとか、自分以外にもエージェントがいてとか、そういう事を考えていくと、どんどん複雑になっていく。

またQ学習のように物事を単純化することが、妥当で典型的な単純化と言えるのかどうか、直感的にはわからない。
でもそれは突き詰めると哲学的な問題につながっていく気がする。自由意志の問題とか。

もちろんQ学習の作者や利用者に言わせれば、Q学習は現実の世界を近似した哲学じゃないし、目的を達成するための一つの方法にすぎないということになるのでしょうが。

ずぶの素人が珍説で素直に偉大なアルゴリズムにケチをつけるというコンテンツは案外希少なので、つまらないことでも思ったことを正直に書いておく。

文系的な思考なら数式よりは簡単だと思っていたけど、哲学的なこともやっぱり難しい。難しいことだらけだ。


方策勾配

深層強化学習:ピクセルから『ポン』 – 前編

 この記事が面白かった。Q学習じゃなくて、方策学習(policy gradients)という手法が人気なんだって。ソースコードを読んでいないので詳しいことはわからないけれど、本文を読む限りは、
・勝利した場合は、ニューラルネットワークの重みをすべて足す(勝利したゲームの行動が強化される)
・失敗した場合は、ニューラルネットワークの重みを全て引く(敗北したゲームの行動が回避される)
というとてもシンプルな方法らしい。

 ということは多分 Ruby + NArray でも作れる。ニューラルネットに関する部分は。

 記事に添付されているソースコードを実行してみたら、CPU4コア使って日単位の時間がかかりそう。ということはRuby/NArrayではさらに時間がかかる。収束を早めるための何らかの工夫が必要か。球を取りこぼしたタイミングで敗北しているだろうから、敗北の10フェーズぐらい前までの行動を厳しめに減点するとかそういう方法が有効そう。

 Pongゲームについては、OpenAI Gymというツールキットを使っているようで、これもPython製。うーん。PythonとRubyをなんかの方法で接続すれば不可能ではない気がするけど。。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です