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?
fonte
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.Respostas:
Resposta curta: o efeito de reforço mais forte vem da entrega de uma recompensa valiosa em uma programação intermitente (aleatória).
Versão mais longa: Um aspecto da sua pergunta é sobre condicionamento operante , pelo menos no que se refere ao ensino de matemática para um organismo complexo. A aplicação disso ao aprendizado de máquina é conhecida como aprendizado por reforço .
A economia (conforme resposta de jwpat7 ) aborda apenas uma parte da história do reforço. A função Utilidade informa qual recompensa tem o efeito de reforço mais forte (maior impacto no comportamento) em um determinado contexto. É um elogio? chocolate? cocaína? estimulação elétrica direta para certas áreas do cérebro? Principalmente, minha resposta é sobre o efeito do contexto, assumindo uma utilidade de recompensa.
Para organismos / comportamentos complexos, a programação de recompensas é pelo menos tão importante quanto a utilidade da recompensa:
Se você é um supervisor de aprendizado com um orçamento de recompensa fixo, para uma determinada situação de aprendizado, haverá um equilíbrio ideal entre tamanho da recompensa (utilidade) e frequência. Provavelmente não é uma fatia muito pequena de recompensa com uma frequência muito alta, nem um pedaço muito grande de recompensa entregue muito raramente. Pode até ser uma recompensa de tamanho aleatório em uma programação aleatória - o ideal é geralmente determinado experimentalmente para uma situação específica.
Por fim, o cronograma "ideal" (frequência aleatória, quantidade aleatória {p (recompensa), p (valor)}) provavelmente varia em diferentes estágios do processo de aprendizagem. Por exemplo, um novo aluno pode estar sujeito ao efeito "primazia" (seja bem-vindo! Tenha uma jujuba) que rapidamente se torna uma recompensa por intervalo fixo, se você repeti-la. Pode haver um efeito de "recência" que obtenha mais valor de reforço de uma recompensa entregue no último teste ("finalizando com uma nota alta"). No meio, pode haver um "efeito de fé" acumulativo, onde, à medida que o aluno se torna mais experiente, o ideal pode mudar para uma probabilidade menor, maior utilidade ao longo do tempo. Mais uma vez, mais coisas para determinar empiricamente na sua situação.
fonte
"Aprendizado ideal" é um termo muito vago e totalmente dependente do problema específico em que você está trabalhando. O termo que você está procurando é " sobreajuste ":
(A linha verde é o erro em prever o resultado nos dados de treinamento, a linha roxa a qualidade do modelo e a linha vermelha é o erro do modelo aprendido sendo usado "em produção")
Em outras palavras: quando se trata de adaptar seu comportamento aprendido a problemas semelhantes, como você recompensou seu sistema é menos importante do que quantas vezes você o recompensou - você deseja reduzir erros nos dados de treinamento, mas não mantê-lo no treinamento. desde que perca a capacidade de trabalhar em modelos semelhantes.
Um método para resolver esse problema é reduzir pela metade os dados do treinamento: use metade para aprender e a outra metade para validar o treinamento. Ajuda a identificar quando você começa a se ajustar demais.
Funções de recompensa não lineares
A maioria dos algoritmos de aprendizado supervisionado espera que a aplicação da função de recompensa produza uma saída convexa. Em outras palavras, ter mínimos locais nessa curva impedirá que o seu sistema converja para o comportamento adequado. Este vídeo mostra um pouco da matemática por trás das funções de custo / recompensa .
fonte
Essas questões são tratadas, em certa medida, pelo estudo das funções de utilidade na economia. Uma função de utilidade expressa valores efetivos ou percebidos de uma coisa em termos de outra. (Embora as curvas mostradas na pergunta sejam funções de recompensa e expressem quanta recompensa será oferecida para vários níveis de desempenho, funções utilitárias de aparência semelhante podem expressar quanto desempenho resulta de vários níveis de recompensa.)
Qual função de recompensa funcionará melhor depende dos equilíbrios entre o pagador e o executor. O artigo da curva de contratos da wikipedia ilustra com as caixas de Edgeworth como encontrar alocações eficientes de Pareto . O teorema da utilidade de Von Neumann-Morgenstern delineia condições que asseguram que um agente seja racional ao VNM e possa ser caracterizado como tendo uma função de utilidade. A seção “Previsões comportamentais resultantes da utilidade HARA” do artigo Aversão ao risco absoluto hiperbólico na wikipedia descreve as conseqüências comportamentais de certas funções da utilidade.
Resumo: Esses tópicos foram objeto de enormes quantidades de estudos em economia e microeconomia. Infelizmente, extrair um resumo breve e útil que responda à sua pergunta também pode exigir uma quantidade enorme de trabalho ou a atenção de alguém um pouco mais experiente que eu.
fonte
A função de recompensa ideal depende do objetivo da aprendizagem, ou seja, o que deve ser aprendido. Para problemas simples, pode ser possível encontrar uma representação de formulário fechado para a função de recompensa ideal. De fato, para problemas realmente simples, estou confiante de que é possível, embora não conheça métodos formais para fazê-lo (suspeito que a teoria da utilidade resolva essa questão). Para problemas mais complexos, eu argumentaria que não é possível encontrar uma solução de formulário fechado.
Em vez de procurar a função ideal, poderíamos procurar um especialista para obter uma boa função de recompensa. Uma abordagem para fazer isso é uma técnica chamada Inverse Reinforcement Learning (IRL). Ele formula um problema de aprendizado como um problema de aprendizado por reforço, onde a função de recompensa é desconhecida e o objetivo do processo de aprendizado. O artigo Aprendizado de Aprendizagem via Aprendizado por Reforço Inverso de Pieter Abbeel e Andrew Ng é um bom lugar para começar a aprender sobre o IRL.
fonte
Qualquer forma de aprendizado supervisionado é uma pesquisa direcionada no espaço de políticas. Você tenta encontrar a política - para qual ação executar - que fornece a expectativa máxima de recompensa. Na sua pergunta, você recompensa em função do desempenho. Desde que essa função seja monotônica, qualquer método que converge acabará dando a você o máximo desempenho (também fique com sua terminologia).
A rapidez com que o método converge é outra questão e pode depender da curva. Mas acho que isso será diferente de método para método.
Um problema totalmente diferente é que, para cenários mais complexos, o desempenho não é um escalar simples e defini-lo pode ser bastante difícil. Qual é a função de recompensa por ser bom em matemática?
fonte