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-