O Q-learning é uma abordagem fora do contexto do cálculo de aprendizagem que procura localizar o melhor movimento a fazer dado o estado atual. É considerada fora da estratégia, com base no argumento de que a tomada de Q no trabalho ganha com atividades que estão fora do presente arranjo, como a tomada de atividades arbitrárias, e desta forma uma abordagem não é necessária. Ainda mais explicitamente, o q-learning tenta se familiarizar com uma abordagem que amplifica a compensação absoluta.
O que é ‘Q’?
O ‘q’ em q-learning representa qualidade. Qualidade para esta situação fala de quão útil uma determinada atividade é para aumentar alguma recompensa futura.
Faça uma q-table
No momento em que o q-learning é realizado, fazemos o que é conhecido como q-table ou framework que persegue o estado de [estado, ação] e instauramos nossas qualidades a zero. Neste ponto nós atualizamos e armazenamos nossos valores q após uma cena. Esta q-table se transforma em uma tabela de referência para o nosso especialista escolher a melhor atividade dependente da q-esteem.
importação numérica como np
# Introduzir qualidades q-table a 0
Q = np.zeros((state_size, action_size))
Q-learning e fazendo refrescos
A etapa subsequente é apenas para o especialista se conectar com a terra e fazer atualizações para as partidas de atividade do estado em nossa Q-table [estado, ação].
Fazendo um movimento: Investigar ou Aventura
Um operador associado com a terra de 1 de 2 maneiras diferentes. A primeira é utilizar a q-table como uma fonte de perspectiva e visualizar cada atividade imaginável para um determinado estado. O operador nesse ponto escolhe a atividade – dependendo da estimativa máxima dessas atividades. Isto é conhecido como mau uso, uma vez que utilizamos os dados a que temos acesso para nos ajustarmos a uma escolha.
O método subseqüente para fazer um movimento é agir de forma aleatória. Isto é chamado de investigar. Ao invés de escolher atividades dependentes da máxima recompensa futura, selecionamos uma atividade arbitrária. Agir ao acaso é significativo, pois permite ao especialista investigar e encontrar novas expressões que geralmente não podem ser escolhidas durante o procedimento de mau uso. Você pode ajustar a investigação/uso utilizando o epsilon (ε) e definir a estimativa de quão regularmente você precisa investigar versus abuso. Aqui estão alguns códigos desagradáveis que vão depender de como o estado e o espaço de atividade são um arranjo.
importação arbitrária
# Defina o percentual que você precisa investigar
epsilon = 0.2
no caso de random.uniform(0, 1) < epsilon:
“””
Investigue: selecione uma atividade arbitrária
“””
senão:
“””
Endeavor: selecione a atividade com a máxima estima (recompensa futura)
“””
Refrescando a q-table
As atualizações acontecem após cada progressão ou atividade e fechamentos quando uma cena é finalizada. Feito para esta situação implica chegar a algum ponto terminal pelo operador. Um estado terminal, por exemplo, pode ser de qualquer forma semelhante a chegar em uma página de checkout, chegar ao final de algum jogo, terminar algum gol ideal, e assim por diante. O especialista não se adaptará muito depois de uma cena solitária, porém inevitavelmente com bastante investigação (passos e cenas) ele irá se combinar e se familiarizar com as q-qualidades ideais ou q-star (Q∗).
Aqui estão os 3 avanços fundamentais:
Especialista começa em um estado (s1) faz um movimento (a1) e recebe uma recompensa (r1)
O operador escolhe a atividade referenciando Q-table com valor mais elevado (max) OU por arbitrário (epsilon, ε)
Atualização dos valores q
Esta é a regra de atualização essencial para o q-learning:
# Atualização q estima
Q[state, action] = Q[state, action] + lr * (compensar + gama * np.max(Q[new_state, :]) – Q[state, action])
Na atualização acima, há dois ou três fatores que não referimos neste momento. O que está ocorrendo aqui é que mudamos nossos valores q dependendo da distinção entre as novas qualidades limitadas e as qualidades antigas. Nós abatemos as novas qualidades utilizando gama e modificamos nosso tamanho de progressão utilizando taxa de aprendizado (lr). A seguir estão algumas referências.
Taxa de aprendizagem: lr ou taxa de aprendizagem, regularmente aludido como alfa ou α, pode ser caracterizado basicamente como o valor que você reconhece o novo valor versus o valor antigo. Acima estamos fazendo a distinção entre novo e velho e depois aumentando esse incentivo pela taxa de aprendizado. Esse valor, nesse ponto, é adicionado à nossa estimativa q passada, o que basicamente o move em direção à nossa atualização mais recente.
Gama: Gama ou γ é um fator de marcação para baixo. É utilizado para ajustar recompensas rápidas e futuras. A partir da nossa regra de atualização acima você pode ver que aplicamos o desconto para a recompensa futura. Normalmente, este valor pode variar de 0,8 a 0,99.
Recompensa: remuneração é o valor obtido após o término de uma atividade específica em um determinado estado. Uma recompensa pode ocorrer em alguma etapa de tempo aleatória ou apenas na etapa de tempo terminal.
Max: np.max() utiliza a biblioteca numpy e está tomando o limite das coisas a serem remuneradas e aplicando-a à recompensa pelo estado atual. O que isto faz é balançar a atividade presente pela recompensa futura concebível. Esta é a magnificência do q-