Vamos pensar nas seguintes situações:
- Você está ensinando um robô a jogar pingue-pongue
- Você está ensinando um programa para calcular raiz quadrada
- Você está ensinando matemática para uma criança na escola
Essas situações (isto é, aprendizado supervisionado) e muitas outras têm uma coisa (entre outras) em comum: o aluno recebe uma recompensa com base em seu desempenho.
Minha pergunta é: como deve ser a função de recompensa? Existe uma resposta "melhor" ou depende da situação? Se depender da situação, como determinar qual função de recompensa escolher?
Por exemplo, tome as três funções de recompensa a seguir:
- A função
A
diz:- abaixo de um certo ponto, ruim ou pior são as mesmas: você não ganha nada
- existe uma clara diferença entre quase bom e perfeito
- A função
B
diz:- você recebe recompensa linearmente proporcional ao seu desempenho
- A função
C
diz:- se seu desempenho for ruim, tudo bem, você fez o seu melhor: você ainda recebe alguma recompensa
- não há muita diferença entre perfeito e quase bom
Intuitivamente, eu acho A
que tornaria o robô muito focado e aprenderia o padrão exato, mas se tornaria estúpido ao lidar com padrões semelhantes, enquanto C
o tornaria mais adaptável à mudança com o custo de perder a perfeição.
Pode-se também pensar em funções mais complexas, apenas para mostrar mas poucas:
Então, como saber qual função escolher? É conhecido que o comportamento surgiria a partir de (pelo menos) o básico A
, B
e C
funções?
Uma outra questão é: isso seria fundamentalmente diferente para robôs e crianças humanas?
A
, o robô pode se tornar extremamente bom na tarefa exata, mas terrível em tarefas semelhantes, mas um pouco diferentes. Esse é apenas o meu palpite.
X
me deu o melhor resultado", mesmo que não esteja perfeitamente correta, daria uma grande regra de ouro.