Por que o Q-Learning usa epsilon-greedy durante os testes?


18

No artigo da DeepMind sobre o Deep Q-Learning para videogames da Atari ( aqui ), eles usam um método épsilon-ganancioso para exploração durante o treinamento. Isso significa que, quando uma ação é selecionada no treinamento, ela é escolhida como a ação com o valor q mais alto ou uma ação aleatória. A escolha entre esses dois é aleatória e baseada no valor de epsilon, e o epsilon é recozido durante o treinamento, de modo que, inicialmente, muitas ações aleatórias sejam tomadas (exploração), mas, à medida que o treinamento avança, muitas ações com os valores q máximos são tomadas. (exploração).

Então, durante o teste, eles também usam esse método epsilon-ganancioso, mas com o epsilon com um valor muito baixo, de modo que existe um forte viés em direção à exploração sobre a exploração, favorecendo a escolha da ação com o maior valor q em relação a uma ação aleatória. No entanto, algumas vezes, ações aleatórias ainda são escolhidas (5% do tempo).

Minha pergunta é: por que alguma exploração é necessária neste momento, dado que o treinamento já foi realizado? Se o sistema aprendeu a política ideal, por que a ação não pode sempre ser escolhida como aquela com o valor q mais alto? A exploração não deve ser feita apenas no treinamento e, depois que a política ideal é aprendida, o agente pode simplesmente escolher repetidamente a ação ideal?

Obrigado!


De alguma forma, pode estar conectado à natureza determinística do ambiente ALE. Se você não executar ações aleatórias durante as avaliações, sempre fará a mesma sequência de ações (já que a sequência de estados é a mesma). Eles também iniciam aleatoriamente - aguarde até 30 quadros sem fazer nada por esse motivo.
perfil completo de Yobibyte

Respostas:


10

No artigo sobre natureza, eles mencionam:

Os agentes treinados foram avaliados jogando cada jogo 30 vezes por até 5 minutos cada vez, com diferentes condições aleatórias iniciais ('noop'; consulte a Tabela de dados estendidos 1) e uma política e-gananciosa com o epsilon 0,05. Este procedimento é adotado para minimizar a possibilidade de sobreajuste durante a avaliação.

Eu acho que o que eles querem dizer é "anular os efeitos negativos do ajuste excessivo / insuficiente". Usar epsilon de 0 é uma escolha totalmente exploradora (como você indica) e faz uma afirmação forte.

Por exemplo, considere um jogo de labirinto em que as estimativas Q atuais do agente são convergidas para a política ideal, exceto por uma grade, em que ele avidamente escolhe se mover em direção a um limite que resulta em permanecer na mesma grade. Se o agente atingir esse estado e escolher a ação Max Q, ele ficará preso por toda a eternidade. No entanto, manter um elemento vagamente explorador / estocástico em sua política (como uma pequena quantidade de epsilon) permite que ele saia desses estados.

Dito isto, a partir das implementações de código que eu observei (e me codifiquei) na prática, o desempenho é muitas vezes medido com uma política gananciosa pelos motivos exatos que você lista na sua pergunta.


3

A resposta está no próprio jornal. Eles usaram para evitar ajustes excessivos. Este modelo é usado como linha de base. E os yobibytes mencionados no comentário, eles iniciam aleatoriamente pelo mesmo motivo. E então o algoritmo é avaliado quanto ao desempenho em relação a um especialista humano. O algoritmo não tem modelo de seu oponente, portanto o pequeno épsilon. Se você tem o modelo do seu oponente, seu problema será determinístico em vez de estocástico. Espero que isso responda sua perguntaϵ =0,05


2

Acho que o objetivo do teste é ter uma noção de como o sistema responde em situações do mundo real.

Opção 1:
Eles podem realmente colocar algum ruído no jogo do mundo real - fazendo movimentos verdadeiramente aleatórios. Isso poderia fazer -policy comutação perfeitamente reflexivo de jogo real. ϵ

Opção 2:
Se eles estão preocupados em ser quebradiços, jogando contra um jogador menos "racionalmente primitivo", eles podem estar "recozendo" suas pontuações de treinamento para não superestimá-las.

Opção 3:
Essa é a fumaça mágica deles. Haverá partes que eles não podem e não querem compartilhar. Eles poderiam estar publicando isso para ocultar algo proprietário ou excepcionalmente relevante para os negócios que eles não desejam compartilhar.

Opção 4:
eles poderiam usar testes repetidos e vários valores de epsilon para testar a quantidade de "gordura" restante no sistema. Se eles tivessem uma randomização fraca, ou tantas amostras que até mesmo uma randomização justa começasse a se repetir, o método poderia "aprender" um comportamento falso para o viés pseudo-aleatório. Isso pode permitir a verificação disso na fase de teste.

Tenho certeza de que há meia dúzia de outras razões significativas, mas era nisso que eu conseguia pensar.

EDIT: note para si mesmo, eu realmente gosto do pensamento "quebradiço". Eu acho que pode ser uma fraqueza existencial da IA ​​intermediária de primeira geração.


1

A razão para usar -greedy durante o teste é que, diferentemente do aprendizado de máquina supervisionado (por exemplo, classificação de imagens), no aprendizado por reforço, não há um conjunto de dados retidos e invisíveis disponíveis para a fase de teste. Isso significa que o algoritmo é testado na mesma configuração em que foi treinado. Agora o artigo menciona (seção Métodos, Procedimento de avaliação):ϵ

Os agentes treinados foram avaliados jogando cada jogo 30 vezes por até 5 minutos cada vez, com diferentes condições aleatórias iniciais ('não-op'; consulte a Tabela de Dados Estendidos 1) e uma política -greedy com . Este procedimento é adotado para minimizar a possibilidade de sobreajuste durante a avaliação.ϵϵ=0,05

Especialmente porque a entrada pré-processada contém um histórico de estados encontrados anteriormente, a preocupação é que, em vez de generalizar para a jogabilidade subjacente, o agente apenas memorize as trajetórias ideais para esse jogo específico e as repita durante a fase de teste; é isso que significa "a possibilidade de sobreajuste durante a avaliação" . Para ambientes determinísticos, isso é óbvio, mas também pode ocorrer a memorização de transições de estado estocásticas (ou seja, super ajuste). O uso da randomização durante a fase de teste, na forma de partidas não operacionais de tamanho aleatório, bem como uma porção de ações aleatórias durante o jogo, força o algoritmo a lidar com estados imprevistos e, portanto, requer algum grau de generalização.

Por outro lado, -greedy não é usado para melhorar potencialmente o desempenho do algoritmo, ajudando-o a se soltar em regiões mal treinadas do espaço de observação. Embora uma determinada política sempre possa ser considerada apenas uma aproximação da política ideal (pelo menos para esse tipo de tarefa), eles treinaram muito além do ponto em que o algoritmo executaria ações sem sentido. Usandoϵϵ=0 0durante o teste potencialmente melhoraria o desempenho, mas o objetivo aqui é mostrar a capacidade de generalização. Além disso, na maioria dos jogos da Atari, o estado também evolui para um não-op e, portanto, o agente naturalmente fica "destroçado" se isso acontecer. Considerando o exemplo de outro labirinto mencionado em outro lugar, onde o ambiente não evolui em operações não operacionais, o agente aprenderia rapidamente que colidir com uma parede não é uma boa ideia se a recompensa tiver a forma adequada (-1 para cada etapa, por exemplo); especialmente ao usar valores iniciais otimistas, a exploração necessária acontece naturalmente. Caso você ainda encontre seu algoritmo travado em algumas situações, isso significa que você precisa aumentar o tempo de treinamento (por exemplo, executar mais episódios), em vez de introduzir alguma randomização auxiliar em relação às ações.

No entanto, se você estiver executando em um ambiente com dinâmica de sistema em evolução (ou seja, as transições ou recompensas de estado subjacentes mudam ao longo do tempo), mantenha um certo grau de exploração e atualize sua política de acordo para acompanhar as alterações.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.