370 likes | 469 Views
Agentes Baseados em Utilidade. Gustavo Danzi de Andrade Geber Ramalho {gda,glr}@cin.ufpe.br. Na aula passada. Funções de Utilidade: Associam a cada estado um valor real Indica a “felicidade” do agente em estar em cada estado Princípio de Maximização da Utilidade:
E N D
Agentes Baseados em Utilidade Gustavo Danzi de Andrade Geber Ramalho {gda,glr}@cin.ufpe.br
Na aula passada... • Funções de Utilidade: • Associam a cada estado um valor real • Indica a “felicidade” do agente em estar em cada estado • Princípio de Maximização da Utilidade: “Um agente racional deve escolher a ação que maximiza sua utilidade esperada” • Utilidade Esperada • Indica a utilidade de uma ação a que pode resultar em diversos estados s i UE(s,a) = ∑ i T(s,a,s i) . U(s i)
Roteiro • Problemas de Decisões Seqüenciais • PDM • Funções de Utilidade para Problemas Seqüenciais • Aprendizagem por Reforço • Funções Valor • Q-Learning • Exploração vs. Usufruto • Semi-MDPs • PDMPOs
Problemas de Decisões Seqüenciais • Anteriormente estávamos lidando com problemas de decisão episódicos: • Utilidade de cada resultado de uma ação conhecido • Suficiente para tomar uma única decisão • Agora: Problemas de decisões seqüenciais: • Utilidade do agente depende de uma seqüência de decisões • Envolvem utilidades, incertezas e percepção • Podem ser vistos como uma generalização dos problemas de busca e planejamento
0.8 0.1 0.1 3 +1 2 -1 1 INÍCIO 1 2 3 4 Exemplo: Ambiente 4x3 • Regras: • Interação termina quando agente alcança um dos estados finais • (+1 ou -1) • Ações disponíveis: • Up, Down, Left e Right • Ambiente totalmente observável • Agente sabe onde está • Se bater em uma parede, permanece no mesmo quadrado • Objetivo: • Definir como o agente deve se movimentar... • Dificultando: ações não confiáveis • Locomoção estocástica
3 +1 2 -1 1 1 2 3 4 Como são as soluções desse problema? • Seqüência fixa de ações não resolve: • Ações não confiáveis não geram estados deterministicamente • Uma solução deve especificar o que o agente deve fazer em qualquer estados em que possa chegar • Solução: construir uma Política (Policy): • (s) = ação recomendada para estado s • Assim, o agente sabe como atuar em qualquer estado • Utilidade esperada de uma política é dada pelas seqüências de ações que ela pode gerar • Política Ótima *: • Política que produz a mais alta utilidade esperada
Processo de Decisão de Markov (PDM) Especificação de um problema de decisão seqüencial em um ambiente totalmente observável • Definido pelos seguintes componentes: • Conjuntos de estados S e ações A • Estado Inicial: S0 • Modelo de Transição: T(s,a,s’) • Probabilidade de chegar a s’ como resultado da execução da ação a no estado s • Função de Recompensa: R(s) • Utilidade do estado s para o agente • Hipótese de transições Markovianas: • Próximo estado depende apenas da ação atual e do estado atual, não dependendo de estados passados
Roteiro • Problemas de Decisões Seqüenciais • PDM • Funções de Utilidade para Problemas Seqüenciais • Aprendizagem por Reforço • Funções Valor • Q-Learning • Exploração vs. Usufruto • Semi-MDPs • PDMPOs
Funções de Utilidade para Problemas Seqüenciais • Como definir funções de utilidade para problemas seqüenciais? U ([s0, s1, ... , sn]) • Primeiro deve-se responder as seguintes perguntas: • O Horizonte Temporal para a tomada de decisão é Finito ou Infinito ?
3 2 1 1 2 3 4 Horizontes Finitos e Infinitos • Horizontes Finitos: • Existe um tempo limite N após o qual nada mais importa • Uh ([s0, s1, ... , sn+k]) = Uh ([s0, s1, ... , sn]), para todo k > 0 • Exemplo: • Supondo que o agente inicia em (3,1) • N = 3: para atingir +1 agente deve executar a ação Up • N = 100: há tempo suficiente para executar a ação Left e seguir a rota mais segura • Política ótima para um ambiente finito é não estacionária • Pode mudar com o passar do tempo • Horizontes infinitos: • Ação ótima depende apenas do estado atual • Política ótima é estacionária +1 -1 INÍCIO
Cálculo de Utilidade para Seqüência de Estados • Com o que Uh ([s0, s1, ... , sn]) se parece ? • Função de utilidade com vários atributos... • Existem duas maneiras de atribuir utilidades a seqüências de estados: • Recompensas aditivas (horizontes finitos) • Uh ([s0, s1, ... , sn]) = R(s0) + R(s1) + ... + R(sn) • Recompensas descontadas (horizontes finitos e infinitos) • Uh ([s0, s1, ... , sn]) = R(s0) + R(s1) + 2 R(s2) + ... • Onde é chamado fator de desconto e tem valor entre 0 e 1 • Fator de desconto: • Descreve a preferência de um agente com relação a recompensas atuais sobre recompensas futuras • próximo a 0 recompensas no futuro distante são irrelevantes • = 1 recompensa aditiva
E a solução? • Conseguimos identificar a utilidade de seqüências de ações... • ... mas ainda não sabemos como codificar o comportamento do agente • Em outras palavras, como achar a política ótima *?
Roteiro • Problemas de Decisões Seqüenciais • PDM • Funções de Utilidade para Problemas Seqüenciais • Aprendizagem por Reforço • Funções Valor • Q-Learning • Exploração vs. Usufruto • Semi-MDPs • PDMPOs
O que é Aprendizagem por Reforço • Problema de aprendizagem (não é uma técnica) • Agentes capazes de aprender a escolher ações apenas interagindo com o ambiente • Um agente, em um ambiente • A cada instante de tempo t: • o agente está em um estados • executa uma açãoa • vai para um estados’ • recebe uma recompensar (determinística ou estocástica) • Processo de Decisão de Markov (PDM) • Problema da aprendizagem por reforço: • Encontrar a política de ações que maximize o total de recompensas recebidas pelo agente
Função valor dos Estados V(s) • Algoritmo Value Iteration • Como saber se um determinado estado é bom ou ruim? • V(s) R • Representa a recompensa recebida em um estado s, mais as recompensas futuras se seguir uma política de ações • V(s0) = r0 + r1 + r2 + r3 + ... • Problema: se o tempo for infinito, a função valor do estado tende a infinito • Para diferenciar recompensas distantes do estado atual, usa-se um fator de desconto • 0 1 • V(st) = rt + rt+1 + 2 rt+2 + 3 rt+3 ... • V(st) = rt + V(St+1) • Ex. Se = 90%, então: • V(st) = rt + 0.9 rt+1 +0.81 rt+2 +0.729 rt+3 ...
Função valor das Ações Q(s,a) • Q(s,a) R • Analogamente, ela diz a soma das recompensas a obter dado que: • o agente está no estado s • executou uma ação a • a partir daí, seguiu uma política de ações • Q(s,a) = r(s,a) + V(s’), onde: • s’ = (s,a)
Aprendizagem por reforço • Tarefa de aprendizagem por reforço: • Aprender uma política de ações * ótima, que maximiza a função V (V*) ou a função Q (Q*) • * = argmax[V(s)] • Se o ambiente é conhecido, ou seja, e r(s,a) são conhecidos: • V*(s) =maxa[ r(s,a) + V*((s,a) ) ] • *(s) = argmaxa[r(s,a) + V*((s,a) )] • Equações de Bellman: • Programação dinâmica computa uma política ótima em tempo polinomial • Em geral, não temos conhecimento prévio do ambiente ou é difícil estimar estas funções...
Roteiro • Problemas de Decisões Seqüenciais • PDM • Funções de Utilidade para Problemas Seqüenciais • Aprendizagem por Reforço • Funções Valor • Q-Learning • Exploração vs. Usufruto • Semi-MDPs • PDMPOs
Q-Learning • Algoritmo de aprendizagem para computar a função Q ótima (valor das ações) • *(s) = argmaxa[Q(s,a)] • não é função de • Q*(s,a) = r(s,a) + maxa’ [Q(s’,a’)]
Q-Learning para mundos determinísticos • Para todo estado s e ação a, inicialize a tabela Q[s][a] = 0; • Para sempre, faça: • Observe o estado atual s; • Escolha uma ação a e execute; • Observe o próximo estado s’ e recompensa r • Atualize a tabela Q: • Q[s][a] = r + maxa’ (Q[s’][a’])
Ambientes não determinísticos • Recompensas serão não determinísticas • Suponha que a sequência de recompensas recebidas em um determinado estado foi: • 100, 98, 101, 97, 90, 103, 10 • O valor da função Q vai refletir apenas o último valor! • Solução: usar uma taxa de aprendizagem • Qn(s,a) = (1-)Qn-1(s,a) + [r + maxa’Qn-1(s’,a’)] • A atualização de Q não “esquece” dos valores anteriores
Roteiro • Problemas de Decisões Seqüenciais • PDM • Funções de Utilidade para Problemas Seqüenciais • Aprendizagem por Reforço • Funções Valor • Q-Learning • Exploração vs. Usufruto • Semi-MDPs • PDMPOs
Dilema: Exploration x Exploitation • Usufruir • Escolher a ação que atualmente está com maior valor Q(s,a) • Explorar • Escolher uma ação randômica, para que seu valor Q(s,a) seja atualizado • Dilema • Dado que eu aprendi que Q(s,a) vale 100, vale a pena tentar executar a ação a’ se Q(s,a’) por enquanto vale 20 ? • Depende do ambiente, da quantidade de ações já tomadas e da quantidade de ações restantes
Métodos para balancear exploration e exploitation • -Greedy • A cada iteração, escolhe uma ação exploratória(randômica) com probabilidade • Escolha de ações softmax • A probabilidade de uma ação ser escolhida varia de acordo com o valor de Q(s,a) • Pode-se usar o conceito de temperatura de simulated annealing: • T = infinito, ação totalmente exploratória • T = zero, ação totalmente gulosa
Roteiro • Problemas de Decisões Seqüenciais • PDM • Funções de Utilidade para Problemas Seqüenciais • Aprendizagem por Reforço • Funções Valor • Q-Learning • Exploração vs. Usufruto • Semi-MDPs • PDMPOs
Semi-MDP • Como o agente pode levar em conta o tempo de suas ações? • Ex. no jogo de luta: É melhor dar vários socos fracos ou um soco forte? • Soco forte provavelmente traria maior recompensa • Demoraria mais tempo para ser executado
Semi-MDP • O formalismo SMDP engloba este conceito • A atualização de Q passa a ser dada por: Q[s][a] =(1- ) Q[s][a]+ [ r + t maxa’ (Q[s´][a’])] • Onde t é o tempo (discreto ou contínuo) em que o agente executou a ação a • Desta maneira, as recompensas futuras passam a valer menos se o agente passar muito tempo executando uma ação
Algumas aplicações • [Tesauro 1995] Modelagem do jogo de gamão como um problema de aprendizagem por reforço: • Vitória: +100 • Derrota: – 100 • Zero para os demais estados do jogo (delayed reward) • Após 1 milhão de partidas contra ele mesmo, joga tão bem quanto o melhor jogador humano • Robocup (time Brainstormers): • RL em situações específicas • 2 atacantes contra 2 defensores • No CIn • Patrulha multi-agente • Knock’em: IA do NPC de um Jogo de Luta
Roteiro • Problemas de Decisões Seqüenciais • PDM • Funções de Utilidade para Problemas Seqüenciais • Aprendizagem por Reforço • Funções Valor • Q-Learning • Exploração vs. Usufruto • Semi-MDPs • PDMPOs
PDMs Parcialmente Observáveis (PDMPOs) • MDPs assumem que o ambiente é totalmente observável • Política ótima depende apenas estado atual • Em ambientes parcialmente observáveis agente não sabe necessariamente onde ele está • Quais os problemas que surgem? • Agente não pode executar ação (s) recomendada para o estado, pois não consegue identificar o s atual • Utilidade do estado s e a ação ótima depende não só de s, mas de quanto o agente conhece sobre s
3 +1 2 -1 1 1 2 3 4 PDMs Parcialmente Observáveis (PDMPOs) • Exemplo: agente não tem menor idéia de onde está • S0 pode ser qualquer estado, menos os finais • Solução: Mover Left 5 vezes Up 5 vezes e Right 5 vezes
PDMs Parcialmente Observáveis (PDMPOs) • Possui os mesmo elementos de um MDP acrescentando apenas: • Modelo de Observação: O(s, o) • As observações o do agente no estado s • Conjunto de estados reais que o agente pode estar = Belief State (ou estado de crenças) • Em PDMPOs um Belief State b, é uma distribuição de probabilidade sobre todos os estados possíveis: • Ex.: estado inicial na figura = {1/9, 1/9, 1/9, 1/9, 1/9, 1/9, 1/9, 1/9, 1/9, 0, 0} • b(s) denota a probabilidade associada ao estado s pelo Belief State b
PDMs Parcialmente Observáveis (PDMPOs) • b = Belief State atual • Agente executa a ação a e percebe a observação o, então: • Novo Belief State b’ = FORWARD (b, a, o) • Por exemplo: o = parede em cima • Ciclo de decisão de um agente PDMPO: 1. Dado o Belief State corrente b, execute ação a = * (b) 2. Receba observação o 3. Atualize o Belief State corrente usando FORWARD (b, a, o) • Ponto fundamental em PDMPOs: • A ação ótima depende apenas do Belief State corrente do agente • * (b): mapeamento de crenças em ações
Resumo... • Problemas de decisões seqüenciais: • Utilidade do agente depende de uma seqüência de decisões • Envolvem utilidades, incertezas e percepção • Comportamento ótimo para um agente, que implementa um PDM: • <S, A, T(s,a,s’), R(s)> • R(s): funções aditivas ou descontadas • Q-Learning Q[s][a] =(1- ) Q[s][a]+ [ r + t maxa’ (Q[s´][a’])] • PDMPO • <S, A, T(s,a,s’), R(s),O>
Complexidade de Q-Learning • Escolher uma ação é barato no tempo • No entanto, o tempo de treinamento cresce com #S • Em espaço: O(#S x #A) • Problemas • O número de estados possíveis cresce exponencialmente com a quantidade de características representadas • Como tratar estados contínuos?
Exemplo prático: Jogo da Velha • Espaço de estados: • S = (S1, S2, ..., S9) • onde Si {livre,vermelho,preto} • Espaço de ações: • Qualquer posição livre • Recompensa • +100 se ganhar, -100 se perder • Não há recompensa nos estados intermediários