Introdução aos Bandidos Multi-Armados

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.

Bandidos Multi-Armados

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 π(at|st), onde st é a observação atual do meio ambiente, e recebe uma recompensa rt+1 ea próxima observação st+1 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 st+1 depende do estado anterior st ea ação at 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.

cogumelo

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 i, estamos tentando encontrar o parâmetro θiRd para o qual as estimativas

rt,ivt,θi

estão o mais próximos possível da realidade. Aqui vtRd é o contexto recebida no passo de tempo t. Então, se o agente está muito confiante em suas estimativas, ele pode escolher argmax1,...,Kvt,θk 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):

  1. Mantém estimativas para os parâmetros de cada braço com linear de mínimos quadrados: θ^iXi+ri, onde Xi e ri são os contextos e recompensas de rodadas empilhadas onde braço i foi escolhido, e ()+ é o inverso pseudo .
  2. Ele mantém elipsóides de confiança definidos pelo inverso covariância XiXi 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 é r^i=maxθEivt,θ, onde Ei é o elipsóide em torno θ^i. Os escolhe agente mais bonito braço argmaxir^i.

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 .