人の経験とエージェントの経験の融合
強化学習は知識なし学習(そうじゃないという人もいるが)。学習過程で人の手助けは借りず、環境との相互作用のみから試行錯誤をとおして学習していく。しかし、その代償として学習速度を犠牲にしなければならない。学習が遅いことは大きな問題点としてあげられている。
それなら人の手助けを与えて学習を効率的に行なえるようにしようという考えは当然のごとく起きる。アドバイスあり強化学習(2003/4/5)にも書いたが教師あり学習と強化学習の中間部分にあたる領域。強化学習に教師あり学習の要素を取り入れた研究はいろいろ行なわれている。
今日は、倒立振子制御問題を例にして「人による教示」の効果を調べてみた。つまり、最初は台車を人が制御してエージェントにお手本を見せてやる。エージェントは人の経験(状態、行動、次状態、報酬)を観察して、それを自分の経験として取り込み学習する。その後、人が「はい、後は自分でやってみな」ってエージェントにやらせてみると、エージェントは結構うまくできるようになっているってのを想定している。下図みたいな感じ。
普通の強化学習と同様エージェントは環境と相互作用し、状態、行動、報酬を得て学習する。人も環境と相互作用し、状態、行動、報酬を得て学習する(棒を長時間立てるのって「こつ」つかむまで結構難しかった)。人の経験はエージェントの経験にもなる。最初は人の方が圧倒的にうまいので「生まれたばかりの」エージェントにはよいお手本になる。最終的にエージェントは人よりずっとうまくなるので、エージェントが人に教示するっていう風になってしまうけれど・・・倒立振子をうまく立てられたって掃除時間くらいしか役に立たない、エージェントにはいずれもっとすごいことを教えてほしい。
プログラムと結果は明日書く。