次の状況を考えてみましょう。
- あなたはロボットに卓球を教える
- あなたは平方根を計算するプログラムを教えています
- あなたは学校で子供に数学を教えています
これらの状況(すなわち、教師あり学習)、および他の多くの(共通して)共通点が1つあります。学習者はそのパフォーマンスに基づいて報酬を受け取ります。
私の質問は、報酬関数はどのように見えるべきですか?「最良の」答えはありますか、それとも状況に依存しますか?状況に依存する場合、どの報酬関数を選択するかをどのように決定しますか?
たとえば、次の3つの報酬関数を使用します。
- 機能
A
は言う:- 特定のポイントより下では、悪いことも悪いことも同じです。何も得られません
- ほぼ良いものと完璧なものの間には明確な違いがあります
- 機能
B
は言う:- あなたのパフォーマンスに比例して報酬を得る
- 機能
C
は言う:- あなたのパフォーマンスが悪い場合、それは大丈夫、あなたはベストを尽くしました:あなたはまだいくつかの報酬を得る
- 完璧なものとほとんど良いものとの間に大きな違いはありません
直感的にはA
、ロボットを非常に集中させて正確なパターンを学習させると思いますが、同様のパターンを扱うと愚かになる一方C
で、完全性を失うという犠牲を払って変化に適応しやすくなります。
また、表示するためだけに、より複雑な機能を考えることもできます。
それで、どの関数を選ぶべきかをどうやって知るのでしょうか?(少なくとも)基本的なA
、B
およびC
機能からどの動作が現れるかはわかっていますか?
サイド質問は、これはロボットと人間の子供にとって根本的に異なるでしょうか?
A
た。ロボットは正確なタスクで非常に優れたものになる可能性がありますが、類似しているがわずかに異なるタスクではひどくなります。それは私の推測です。
X
することで最良の結果が得られると考えた」という答えは、完全に正しいとは言えませんが、大体の経験則を与えます。