報酬の学習
強化学習は心理学ではオペラント条件付けと呼ばれ、報酬は強化因子と呼ばれている。
山脇さんの論文*1に強化因子、つまり報酬の種類として3つあげられていた。強化因子とは人を動かす力のあるものであり、嗜好品のような一次性強化因子、賞賛のような社会的強化因子、達成感のような自己強化因子などがあるらしい。
これらを報酬と見なすってのは本能・遺伝だけとは思えない。つまり、何を報酬とするかというのも学習によっているのではないか?設計者が予め報酬を明示的に与えるってのははっきり言ってつまらない。
上に書いた内発的動機付けをエージェントに実装するにはどうしたらいいのか?せめて、何を報酬とするか(つまりやりたいタスクの目標)を学習の間に獲得できるようにすればいいんじゃないだろうか。強化学習のメタ学習みたいな感じ。エージェントがいきなり自分から「これをしたい!(=これに報酬を設定したい!)」って言い出すのは無理だから、何に価値があるかを人間が教えられるように(ってこれも無理なのかな?)。さらに言えば、教えた中から推論によって新しい価値観を自動的に計算し、内発的動機付けができるようになってほしい。
今までの強化学習では一つのタスクを学習させようとしていたから、報酬設定は一つだけでよかった。でも自律エージェントを作るなら様々なタスクができないといけない。学習最中にその目標を獲得できる手段が必要だと思う。
追加だが、強化学習の「報酬は設計者が設定する」ってのは欠点だと、現在読んでいる『知の創成』でも指摘されている。
価値に基づく学習は、機械学習の分野で用いられているような強化学習のアプローチ(このアプローチでは、環境が何らかの方法によって強化信号を与えることを前提としている)とは異なるということである。従来の強化学習の考えは、立脚性を有するエージェントの考えとは相容れない。というのは、立脚性を有するエージェントは、自身の観点に基づいて環境と相互作用を行い、それを通して経験を積み重ねていくことが求められるからである。そのため、エージェントの価値システムが、環境から与えられる強化信号を解釈できないのであれば、強化信号は環境からでなく、エージェントの内部で生成されなければならない。例えば、もし母親が子供に「いいことをしたね」と言えば、その子供は母親が言ったことを知覚し、理解し、そして肯定的な強化信号として解釈しなければならない。
p.486
*1:山脇, 岡本: 強化学習と精神医学, 医学のあゆみ, Vol.202, No.3, pp.193-196, 2002