Dominando Q-Learning: exemplos práticos e conceitos-chave

O que é Q-Learning?
O Q-learning é um algoritmo de aprendizado por reforço sem modelo usado para determinar a política de seleção de ação ideal para qualquer processo de decisão de Markov (MDP). No Q-learning, o agente aprende a tomar decisões aprendendo as recompensas esperadas de longo prazo associadas a cada ação em um determinado estado, sem exigir um modelo do ambiente.
Como funciona o Q-Learning?
Aqui estão as etapas envolvidas no Q-learning:
- Defina o estado e o espaço de ação: O espaço de estado representa os possíveis estados em que o agente pode estar, enquanto o espaço de ação representa as possíveis ações que o agente pode realizar.
- Inicialize a tabela Q: A tabela Q é uma matriz que armazena a recompensa esperada para cada ação em cada estado. É inicialmente definido como 0.
- Observar o estado: O agente observa o estado atual do ambiente.
- Escolher uma ação: o agente seleciona uma ação a ser executada com base em uma troca exploração-exploração. O trade-off exploração-exploração é um equilíbrio entre a escolha de ações que renderam altas recompensas no passado (exploração) e a tentativa de novas ações para aprender mais sobre o ambiente (exploração).
- Execute a ação: O agente executa a ação escolhida no ambiente e observa a recompensa recebida.
- Atualize a tabela Q: A tabela Q é atualizada usando a recompensa observada, usando a regra de atualização do Q-learning. A regra de atualização do Q-learning atualiza a recompensa esperada para a ação escolhida no estado observado com base na recompensa observada e na recompensa esperada para o próximo par estado-ação.
- Repita as etapas 3 a 6 até a convergência: as etapas 3 a 6 são repetidas até que os valores Q convirjam para os valores ideais, que representam a recompensa máxima esperada a longo prazo para cada ação em cada estado.
O Q-learning é um algoritmo popular para resolver MDPs porque pode aprender políticas ótimas sem exigir um modelo do ambiente e pode lidar com grandes espaços de estado.
Exemplo de Q-Learning
aqui está um exemplo em tempo real de Q-learning em aprendizado de máquina para navegar em um labirinto:
Digamos que temos um labirinto 3x3, onde a posição inicial está no canto superior esquerdo e a posição final está no canto inferior direito. O agente pode se mover para cima, para baixo, para a esquerda ou para a direita para navegar no labirinto. Não há obstáculos neste labirinto, então a única recompensa é uma recompensa positiva de +10 por atingir o estado de objetivo.

A tabela Q para este problema seria uma matriz 3x3x4 (estados x ações). Os estados correspondem às posições no labirinto e as ações correspondem a movimentos para cima, para baixo, para a esquerda ou para a direita. O valor Q para um par estado-ação representa a recompensa esperada a longo prazo por realizar aquela ação daquele estado.
Inicialmente, a tabela Q é preenchida com zeros:
Q(s, a) = 0 for all s, a
1. Inicialize a tabela Q:
Q = [
[[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]],
[[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]],
[[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]
]
Digamos que o agente comece na posição (0, 0).
3. Escolha uma ação:
O agente escolhe uma ação com base no estado atual e nos valores da tabela Q. Inicialmente, o agente pode escolher uma ação aleatória para encorajar a exploração. Digamos que o agente opte por mover para a direita.
4. Execute a ação:
O agente se move para a direita e fica na posição (0, 1). Como o agente ainda não está no estado objetivo, não há recompensa.
5. Atualize a tabela Q:
O valor Q para o par estado-ação atual é atualizado usando a regra de atualização Q-learning:
Q(s, a) = Q(s, a) + alpha * (reward + gamma * max(Q(s', a')) - Q(s, a))
Nesse caso, alpha
e gamma
pode ser definido como 0,5 e 0,9, respectivamente. Como não há recompensa no novo estado, reward
é 0. O novo estado é (0, 1) e a ação que maximiza o valor-Q para esse estado está se movendo para baixo. Digamos que o valor Q para a ação (0, 1) para baixo seja 5. O valor Q para a ação correta (0, 0) é inicialmente 0, então o novo valor Q é:
Q(0, 0) = Q(0, 0) + 0.5 * (0 + 0.9 * 5 - 0) = 2.25
Q = [
[[0, 2.25, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]],
[[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]],
[[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]
]
O agente continua escolhendo ações, atualizando a tabela-Q e movendo-se pelo labirinto até atingir o estado objetivo. Assim que o agente atinge o estado de meta, ele recebe uma recompensa de +10 e o episódio termina.
7. Repita as etapas 1 a 6 para vários episódios:
Para melhorar ainda mais a Q-table, o algoritmo Q-learning pode ser executado para vários episódios, onde cada episódio é uma corrida completa pelo labirinto desde o estado inicial até o estado objetivo. Com o tempo, a tabela Q convergirá para a política ótima, que é a política que maximiza a recompensa esperada a longo prazo.
Esse é um exemplo simples de Q-learning em aprendizado de máquina para navegar em um labirinto usando uma Q-table e a regra de atualização do Q-learning.
“Todos os nossos sonhos podem se tornar realidade se tivermos a coragem de persegui-los.”