Copyright 2021 Os autores do TF-Agents.
Introdução
Multi-Armed Bandit (MAB) é uma estrutura de aprendizado de máquina em que um agente deve selecionar ações (armas) para maximizar sua recompensa cumulativa a longo prazo. A cada rodada, o agente recebe algumas informações sobre o estado atual (contexto), a seguir escolhe uma ação com base nessas informações e na experiência adquirida nas rodadas anteriores. Ao final de cada rodada, o agente recebe a recompensa associada à ação escolhida.
Talvez o exemplo mais puro é o problema que emprestou seu nome ao MAB: imaginar que somos confrontados com k
máquinas caça-níqueis (slot machines), e precisamos descobrir qual deles tem a melhor pagamento, sem perder muito dinheiro.
Tentar cada máquina uma vez e, em seguida, escolher a que pagou mais não seria uma boa estratégia: o agente pode cair na escolha de uma máquina que teve um resultado feliz no início, mas é subótima em geral. Em vez disso, o agente deve voltar repetidamente a escolher as máquinas que não parecem muito boas, a fim de coletar mais informações sobre elas. Este é o principal desafio em Multi-Armed Bandits: o agente tem que encontrar a mistura certa entre explorar o conhecimento prévio e explorar, de forma a evitar negligenciar as ações ótimas.
As instâncias mais práticas do MAB envolvem um pedaço de informação lateral sempre que o aluno toma uma decisão. Chamamos essas informações secundárias de "contexto" ou "observação".
Bandidos Multi-Armados e Aprendizagem por Reforço
Por que há um MAB Suite na biblioteca TF-Agents? Qual é a conexão entre RL e MAB? Os Bandidos Multi-Armados podem ser vistos como um caso especial de Aprendizagem por Reforço. Para citar Introdução à RL :
Em cada passo de tempo, o agente realiza uma ação sobre o meio ambiente com base em sua política , onde é a observação atual do meio ambiente, e recebe uma recompensa ea próxima observação do ambiente . O objetivo é aprimorar a política de forma a maximizar a soma das recompensas (retorno).
No caso geral RL, a próxima observação depende do estado anterior ea ação tomado pela política. Esta última parte é o que separa o MAB do RL: no MAB, o próximo estado, que é a observação, não depende da ação escolhida pelo agente.
Essa semelhança nos permite reutilizar todos os conceitos existentes nos TF-Agents.
- Um ambiente saídas observações e responde a ações com recompensas.
- A política gera uma ação baseada em uma observação, e
- Um agente atualiza repetidamente a política com base em tuplas observação-ação-recompensa anteriores.
O ambiente do cogumelo
Para fins ilustrativos, usamos um exemplo de brinquedo chamado "Ambiente de cogumelo". O conjunto de dados de cogumelo ( Schlimmer, 1981 ) consiste de exemplos marcados de cogumelos comestíveis e venenosos. As características incluem formas, cores, tamanhos de diferentes partes do cogumelo, bem como odores e muito mais.
O conjunto de dados cogumelo, assim como todos os conjuntos de dados de aprendizagem supervisionada, pode ser transformado em um problema MAB contextual. Usamos o método também usado por Riquelme et al. (2018) . Nessa conversão, o agente recebe as características de um cogumelo, decide comê-lo ou não. Comer um cogumelo comestível resulta em uma recompensa de +5, enquanto comer um cogumelo venenoso dará +5 ou -35 com a mesma probabilidade. Não comer o cogumelo resulta em 0 recompensa, independentemente do tipo de cogumelo. A tabela a seguir resume as atribuições de recompensa:
| edible | poisonous
-----------|--------|----------
eating it | +5 | -35 / +5
leaving it | 0 | 0
O Agente LinUCB
Ter um bom desempenho em um ambiente de bandido contextual requer uma boa estimativa da função de recompensa de cada ação, dada a observação. Uma possibilidade é estimar a função de recompensa com funções lineares. Ou seja, para cada ação , estamos tentando encontrar o parâmetro para o qual as estimativas
estão o mais próximos possível da realidade. Aqui é o contexto recebida no passo de tempo . Então, se o agente está muito confiante em suas estimativas, ele pode escolher para obter a maior recompensa esperada.
Conforme explicado acima, simplesmente escolher o braço com a melhor estimativa de recompensa não leva a uma boa estratégia. Há muitas maneiras diferentes para misturar a exploração e exploração de agentes estimador lineares, e uma das mais famosas é a confiança Linear Limite Superior (LinUCB) algoritmo (ver, por exemplo Li et al. 2010 ). LinUCB tem dois blocos de construção principais (com alguns detalhes omitidos):
- Mantém estimativas para os parâmetros de cada braço com linear de mínimos quadrados: , onde e são os contextos e recompensas de rodadas empilhadas onde braço foi escolhido, e é o inverso pseudo .
- Ele mantém elipsóides de confiança definidos pelo inverso covariância para as estimativas anteriores.
A ideia principal do LinUCB é "Otimismo em Frente à Incerteza". O agente incorpora a exploração por meio do aumento das estimativas em um montante que corresponde à variância dessas estimativas. É aí que os elipsóides confiança entram em cena: para cada braço, a estimativa otimista é , onde é o elipsóide em torno . Os escolhe agente mais bonito braço .
Claro que a descrição acima é apenas um resumo intuitivo, mas superficial do que o LinUCB faz. Uma implementação pode ser encontrado na nossa base de código aqui
Qual é o próximo?
Se você quiser ter um tutorial mais detalhadas sobre a nossa biblioteca Bandits dar uma olhada em nosso tutorial para bandidos . Se, em vez disso, você gostaria de começar a explorar nossa biblioteca imediatamente, você pode encontrá-lo aqui . Se você está ainda mais ansioso para começar a treinar, olhada em alguns dos nossos exemplos end-to-end aqui , incluindo o ambiente cogumelo acima descrito com LinUCB aqui .