380 likes | 484 Views
Aprendizagem por Reforço. Alexandre Luiz G. Damasceno. Sumário. Motivação. Reforço. Função-utilidade x Ação-valor. Aprendizagem por reforço. Passivo em um ambiente conhecido. Passivo em um ambiente desconhecido. Exploração. Ativo. Generalização algoritmos genéticos
E N D
Aprendizagem por Reforço Alexandre Luiz G. Damasceno
Sumário • Motivação. • Reforço. • Função-utilidade x Ação-valor. • Aprendizagem por reforço. • Passivo em um ambiente conhecido. • Passivo em um ambiente desconhecido. • Exploração. • Ativo. • Generalização • algoritmos genéticos • Relação da aprendizagem com reforço com outras áreas de IA e estatística • Conclusões
Motivação • Ambientes e aplicações pelas quais não são disponíveis: • função explícita da utilidade • das ações do agentes para seus objetivos • do estado do ambiente para os mesmos • feedback detalhado a cada passo sobre utilidade • ex, RoboCup, xadrez sem professor • feedback limitado a reforços para uma seqüência de ação • novo problema pelo agente aprendiz: como atribuir quais ações na seqüência são responsáveis pelo reforço (positivo ou negativo) • transições explícita de estado (as vezes nem probabilisticamente)
Reward (Reforço) • O reward pode ser calculado de várias maneiras: • Rt + *rt+1 + 2*rt+2 + ... = i=0 i*rt+i , onde ri é o reward por chegar ao estado ‘i’ e um valor entre (0 e 1). ‘i’ é contado do final até o início. • hi=0 ri • limh(1/h* hi=0 ri) • O reward pode ser dado de várias maneiras • A cada passo. • Ou só no final.
Função de utilidade vs. Ação-valor • Função de utilidade: Precisa ter um modelo do ambiente, para saber a qual estado a ação o levará. • Ação-valor: Não precisa ter o modelo do mundo, mas não pode prevê situações.
0 100 G G 90 0 100 0 0 0 0 0 0 100 0 0 81 90 100 0 0 recompensas imediatas Função utilidade 90 100 G G 81 72 81 81 90 100 81 90 72 81 Ação valor Aprendizagem: exemplo seqüência ótima
Tarefas: controle Ambiente pode ser: inacessível, não episódico discreto ou não, ruidoso dinâmico?, não determinístico grande, distinção relacional x atributosnão se aplica Por reforço Treino antes da ação ou durante a ação Incremental Iterativo Top-down x bottom-up não se aplica Guloso Local Pode aproveitar conhecimento prévio para podar busca da hipótese Aproxima qualquer função de utilidade ou de política de ação Aprendizagem por reforço:características gerais • Representação do conhecimento: • função de utilidade dos estados do ambiente • ou função de política de ação no ambiente
Aprendizagem por reforço:variação das situações • Ambiente: acessível ou não, discreto ou não, finito. • Recepção do reforço: • em qualquer estado, apenas nos estados finais. • Aprendizagem: • antes ou durante ação (passivo x ativo). • com modelo prévio do ambiente. • política de ação • função de utilidade dos estados • transição (probabilísticas) de um estado para outro • Representação do conhecimento • política de ação ou função de utilidade dos estados. • em extensão x em intenção (ex, com atributos ou lógica). • sub-tarefa de classificação envolvida
Aprendizagem Passiva em um ambiente conhecido • O ambiente gera estados de transição e o agente os percebe.
Aprendizagem Passiva em um ambiente conhecido • Algorítmo Geral function Passive-RL-Agente(e) returns na action static: U (tabela de utilidades), N (tabela de freqüências), M (tabela de transição de probabilidade), percepts (percepeções) add e to percepts increment N[State[e]] U Update(U, e, percepts, M, N) if Terminal?[e] then percepts [ ] return the action Observe
Naïve updating (LMS) function LMS-Update(U, e, percepts, M, N) returns an updated U if Terminal?[e] then reward-to-go 0 for each eiin percepts (starting at end) do reward-to-go reward-to-go + Reward[ei] U[State[ei]] Running-Average(U[State[ei]], reward-to-go, percepts, N[State[ei]]) end • U(t) = Rt + *rt+1 + 2*rt+2 + ... = i=0 i*rt+i • Como em redes neurais
+1 -1 start LMS: exemplo U = Utilidade N = No de vezes alcançadas e = percepção e22 e21 N++ N++ U = f U = f Percepts = e1
LMS: características • Ambiente: acessível ou não, discreto ou contínuo, finito • Recepção do reforço: • apenas nos estados finais • Aprendizagem: • antes da ação (passivo) • com modelo prévio do ambiente • função de utilidade dos estados • transição (probabilísticas) de um estado para outro • Representação do conhecimento • função de utilidade dos estados • em extensão x em intenção (ex, com atributos ou lógica) • sub-tarefa de classificação envolvida • Reduz o problema a aprendizagem indutiva. • Não considera que a utilidade dos estados possam ser dependentes.
ADP passivo • Programação dinâmica adaptativa (ADP) • U(i) = R(i) + j(MijU(j)), onde R(i) é o reforço do estado i e Mij é a probabilidade de passar do estado i para o estado j.
+1 -1 start ADP passivo: exemplo U = Probabilidade de transição N = No de vezes alcançadas e = percepção M = Probabilidade e22 e21 N++ N++ U = f(M) U = f(M) Percepts = e1
TD • Aprendizagem por diferença temporal (TD) • U(i) = U(i) + (R(i) + U(j) - U(i)), onde é a taxa de aprendizagem. • Impactos do : Caso ocorra um estado novo sem o ? E com ? function TD-Update(U, e, percepts, M, N) returns the utility table U if Terminal?[e] then U[State[e]] Running-Average(U[State[e]], Reward[e],U[State[e]]) else if percepts contains more than one element then e’ the penultimate element of percepts i, j State[e’], State[e] U[i] U[i] + (N[i])(Reward[e’] + U[j] - U[i])
+1 -1 start TD: exemplo U = Probabilidade de transição N = No de vezes alcançadas e = percepção e22 e21 N++ N++ U = f(i-1) U = f(i-1) Percepts = e1
TD: características • Ambiente: acessível ou não, discreto ou não, finito • Recepção do reforço: • em qualquer estado • Aprendizagem: • antes da ação (passivo) • com modelo prévio do ambiente • função de utilidade dos estados • transição (probabilísticas) de um estado para outro • Representação do conhecimento • função de utilidade dos estados • em extensão x em intenção (ex, com atributos ou lógica) • sub-tarefa de classificação envolvida • considera que a utilidade dos estados possam ser dependentes.
Aprendizagem Passiva em um ambiente desconhecido • LMS e TD permanecem inalterados. • No ADP, é preciso adicionar um passo para atualizar o modelo estimado do ambiente. E assim usar este modelo no processo de aprendizagem como se fosse o ambiente real.
ADP ativo • Alterações no Passive-RL-Agente: • probabilidade de passar de ‘i’ para ‘j’ dada uma ação ‘a’: Mija. • U(i) = R(i) + maxa (Mija U(j)). • O agente deve escolher uma ação a cada passo e precisará de um elemento de performance para tanto. • Performance-Element(e): retorna uma ação. • Deve-se preocupar-se com a alteração estimada do ambiente, pois esta depende agora da ação tomada. • Update-Active-Model recebe uma ação também.
Aprendizagem Ativa em um ambiente desconhecido function Active-ADP-Agente(e) returns na action static: U (tabela de utilidades), N (tabela de frequüências), R (tabela de rewards), M (tabela de transição de probabilidade), percepts (percepeções), last-action, ação imediatamente executada add e to percepts R[State[e]] Reward[e] M Update-Active-Model(M, percepts, last-action) U Value-Interation(U, M, R) if Terminal?[e] then percepts [ ] last-action Performance-Element(e) return the last-action
ADP: características • Ambiente: acessível ou não, discreto ou não, finito • Recepção do reforço: • em qualquer estado. • Aprendizagem: • antes ou durante. (passivo x ativo) • com modelo prévio do ambiente. • função de utilidade dos estados • transição (probabilísticas) de um estado para outro • Representação do conhecimento • função de utilidade dos estados. • em extensão x em intenção (ex, com atributos ou lógica) • sub-tarefa de classificação envolvida • considera que a utilidade dos estados possam ser dependentes.
Exploração • Possui como principal objetivo qual o melhor elemento-performance o agente deve retornar. • Características básica • Ganha um reward do estado corrente • Afeta as percepções recebidas, bem como a habilidade do agente de aprender - e recebe rewards nas seqüências futuras. • Explorar novos estados sem se preocupar com a utilidade. • Sempre atrás de novos conhecimentos sem os colocar em prática • Sempre a que levar a uma melhor utilidade no novo estado. • Pode simplesmente descobrir uma rota aceitável. ?
Exploração • Solução encontrada: • Explorar no início para aprender mais sobre o ambiente e depois se concentrar no melhor caminho. • U+(i) R(i) + maxa f(j(MaijU+(j)), N(a,i)). • f(u,n) = R+ se n < Ne u caso contrário Estimativa ótima da utilidade
Q-learning • A utilidade está associada com a uma ação em um dado estado (Q-values). • U(i) = maxaQ(a,i) • É importante para a aprendizagem por reforço pois: • como as regras de condição, não precisa de um modelo para tomar decisão • diferente das regras de condição, a função pode ser aprendida diretamente pelo reforço.
Aprendizagem Q • Regra para manter o equilíbrio da corretude dos Q-values: • Q(a,i) = R(i) + j(Mija maxa’Q(a’,j)) • Como no ADP, pode-se usar esta equação como uma de atualização para um processo de atualização que calcula Q-values dado um modelo estimado. • Já o TD Q-learning, não precisa do modelo: • Q(a,i) Q(a,i) + (R(i) + maxa’Q(a’,j) - Q(a,i)) Ação do próximo estado
Aprendizagem Q function Q-Learning-Agente(e) returns na action static: Q (tabela de valores das ações), N (tabela de frequüências), a, ação imediatamente já executada i (estado visitado anteriormente), r (reward recebido no estado i), j State[e] if i is not-null then N[a,i] N[a,i] + 1 Q[a,i] Q[a,i] + (r + maxa’Q(a’,j) - Q(a,i)) if Terminal?[e] then percepts [ ] else i j; r Reward[e] a arg maxa’f(Q[a’,j], N[a’,j]) return a
Q: características • Ambiente: acessível ou não, discreto ou não, finito. • Recepção do reforço: • em qualquer estado ou apenas nos estados finais. • Aprendizagem: • durante ação (ativo) • com modelo prévio do ambiente. • política de ação • transição (probabilísticas) de um estado para outro • Representação do conhecimento • política de ação. • em extensão x em intenção (ex, com atributos ou lógica) • sub-tarefa de classificação envolvida • considera que a ação dos estados possam ser dependentes.
Aprendizagem Q • Questões: É melhor aprender um modelo e uma função de utilidade ou apenas uma função de ação-valor sem um modelo? ?
Generalização • Forma tabular: Para cada tupla (U, M, R, Q) tem-se um valor de saída. Isto significa inviabilidade em ambientes com muitos estados diferentes (mundo real). • Solução: uma forma de calcular a saída para cada entrada, mas da forma mais compacta que a forma tabular (representação implícita). • Exemplo: U(i) = w1f1(i) + w2f2(i) + ... + wnfn(i). Onde f são as características do ambiente e w os pesos dado. • Essa compressão pode levar ao poder de generalização (de estados visitados para os não visitados). • Isso faz com que estes métodos se chamem input generalization.
Generalização • Pode-se usar algoritmos genéticos para aproximar os pesos da função dada da função real. • Pode-se usar redes neurais no caso de ter-se <estado-ação>-valor, onde a ação e o estado seriam o imput da rede e o valor o out-put. • Pode-se usar aprendizagem de árvore de decisão.
Algoritmos Genéticos • Problemas: • Qual a função de utilidade? • Como representar o indivíduo? • Como selecionar o indivíduo? • Como ele se reproduz? • (Condição de parada) • Funções usados: • função de utilidade: quanto maior o seu retorno melhor é o indivíduo. • Função de escolha dos indivíduos. • Replicação e morte. • Cross-over e mutação.
32% 000110010111 111010101100 111010010111 24% 111010101100 000110010111 000110101100 24% 001110101001 111010101100 111010101001 20% 111011011100 001110101001 001110101100 Algoritmos Genéticos Um exemplo:
Relação da aprendizagem com reforço com outras áreas de IA e estatística • IA em geral • Resolução de problema com busca • Planejamento • Otimização: • programação dinâmica • algoritmos genéticos
Conclusões • Usado em várias áreas como: • jogos • robótica • É uma pequena área da IA mais que é bastante estudada e tem grande interseção com áreas fora da IA cujas técnicas podem ser aproveitadas, pelo menos para inspiração conceitual. • Como todo aprendizado, não deixa de ser uma busca. • Assemelha-se ao aprendizado de um animal