Aprendizado por Reforço SCC5865-Robótica Roseli A F Romero
Introdução O modelo padrão de aprendizado por reforço
Aprendizado por Reforço Formalmente, o modelo consiste de: Um conjunto discreto de estados do ambiente, S; Um conjunto discreto de ações do agente, A; Um conjunto de sinais de reforço, normalmente {0,1}, ou um número real.
Aprendizado por Reforço AMBIENTE NON DETERMINISTICO Exemplo: Ambiente: Você está no estado 65. Você possui 4 possíveis ações. Agente: Eu realizo a ação 2. Ambiente: Você recebeu um reforço de 7 unidades. Você agora está no estado 15. Você possui 2 possíveis ações. Agente: Eu realizo a ação 1. Ambiente: Você recebeu um reforço de -4 unidades. Você agora está no estado 65. Você possui 4 possíveis ações. Agente: Eu realizo a ação 2. Ambiente: Você recebeu um reforço de 5 unidades. Você agora está no estado 44. Você possui 5 possíveis ações....
Modelos de Comportamento Ótimo 1- Finite-horizon model E h t= 0 em que, r t : recompensa escalar recebida no passo t 2 Infinite-horizont discounted model r t Otimizar sua recompensa esperada para os prox. h passos E t= 0 t γ r t em que, γ: fator de desconto (0 <= γ < 1) - taxa de interesse, probabilidade de vida ou limitador da soma infinita.
Modelos de Comportamento Ótimo 3) Average-reward model lim h E 1 h h t= 0 r t Otimizar a recompensa média de longo termo Tal política é conhecida como política de ganho ótima. Pode ser vista como caso limite do 2o. Modelo quando o fator de desconto se aproxima de 1 (Bertsekas, 1995).
Modelos de Comportamento Ótimo Comparando modelos H=5, as três ações produzirão recompensas: +6.0 0.0 0.0 1a. Ação é escolhida
Medidas de Desempenho do Aprendizado Convergência para o ótimo; Velocidade de convergência para o ótimo; Regret; Aprendizado por reforço e controle adaptativo.
Programação Dinâmica Exemplo 1 Considere o problema de programação linear: max sujeito a f = 8x + 10x 1 2 4x + 2x 12 1 2 x, x 0 1 2 Resolvendo o problema acima (método simplex), obtém-se: x = 0; x = 6; f = 60 1 2
Programação Dinâmica Uma proposta alternativa é determinar a variável gradativamente, através de decomposição do problema em uma série de estágios. A decomposição do problema (1) é ilustrada na Figura 1 abaixo. Figura 1 Diagrama de Fluxo
Programação Dinâmica maxx 1 f = 10x 1 2 sujeito a 2x 12 4x x 2 * 2 1 0 Solução: x = 6 2 x ; f = 60 20x * * 2 1 1 1
Programação Dinâmica maxx 1 f = 8x + f = 60 12x 2 1 1 1 sujeito a 4x 12 x 1 1 0 x Solução: = 0; f = 60 1 2 x = 6 2
Programação Dinâmica O estágio de entrada do estágio no. n,y n-1, é transformado em um estado de saída y n através da mudança provocada pela variável de decisão x n. As mudanças sucessivas do estado do sistema pode ser formalmente descrita pelas equações de tranformação da forma y t ( y, x ) = n= 1, 2,..., n n n 1 n N No exemplo elas tem a forma y = y 4x 1 0 1 y = y 2x 2 1 2
Programação Dinâmica Juntas com as restrições de não negatividade x 1,x 2,y 1,y 2 0, elas são equivalentes as restrições do problema original (1), y 0 sendo igual a 12 e y 2 representando a variável de folga (slack variable). O retorno de cada estágio será dependente, em geral, do estado de entrada e das variáveis de decisão: r r ( y, x ) = n= 1, 2,..., N n n n 1 n No exemplo em questão as funções de retorno são da forma simples r = 10x 1 = 8x1 2 2 r
Programação Dinâmica Introduzindo estes símbolos na Figura 1, o diagrama de fluxo do problema de dois estágios é ilustrado segundo a Figura 2. Figura 2 Diagrama de Fluxo
Programação Dinâmica maxx 2 sujeito a f = r ( x ) = 10x 2x y 1 2 2 2 x 2 2 1 0 Solução: x ( y ) = 0.5y 2 1 1 F( y ) = 5y 1 1 1 em que, F 1 denota o valor máximo da função de decisão do estágio, F = max x 1 1 2 f
Programação Dinâmica max x f = r( x ) + F( y ) = 8x + 5y = 2 2 1 1 1 1 1 1 = 8x + 5( y 4 x ) = 5y 12x em que, 1 0 1 0 1 sujeito a F = 4x x 1 1 0 0 max x 1 y f 2 2 Solução: x ( y ) = 0 1 0 F ( y ) = 5y 2 0 0
Programação Dinâmica F y 1( 1) = maxx 10x x 2 2 y1 1 2 2 0 x 1 1 1 1 1 1 0 1 (0 0.5 ) F ( y ) = max (8 x + F( y )) = max [8 x + F( y 4 x )] x1 y0 x (0 0.25 ) em que, f = F 2 (y 0 ) max f = max [ r( y, x ) + r ( y, x )] x, x 1 0 1 2 1 2 1 2
Programação Dinâmica F( y ) = max [ r ( y, x )] 1 1 x 2 1 2 2 F ( y ) = max [ r( y, x ) + F( t ( y, x ))] 2 0 x 1 0 1 1 1 0 1 1 O diagrama de fluxo para um sistema de N-estágios é apresentado na Figura 3 (próximo slide).
Programação Dinâmica Figura 3 Diagrama de Fluxo
Programação Dinâmica As funções de decisão dos estágios são respectivamente f = r ( y, x ) 1 N N 1 N N, N 1,...,2,1 f = r ( y, x ) + F( y ); y = t ( y, x )... 2 N 1 N 2 N 1 1 N 1 N 1 N 1 N 2 N 1 f = r ( y, x ) + F ( y ); y = t ( y, x )... i N ( i 1) N i N ( i 1) i 1 N ( i 1) N ( i 1) N ( i 1) N i N ( i 1) f = r( y, x ) + F ( y ) N 1 0 1 N 1 1 em que, y 1 = t 1 (y 0,x 1 ) e F j é o máximo de f j, j= 1,2,...,N.
Programação Dinâmica Maximizando a função de decisão de cada estágio em relação a sua variável de decisão e tratando o estado de entrada como um parâmetro, obtêm-se as soluções de estágio paramétricas xn xn( yn 1) = n= N, N 1,..., 2,1
Programação Dinâmica Caso de Otimização Discreta Suponha um exemplo no qual r 1 e r 2 são definidas apenas para os intervalos x 1 3 e x 2 6:
Programação Dinâmica Caso de Otimização Discreta
Programação Dinâmica Caso de Otimização Discreta
Programação Dinâmica Referência ROMERO, R. A. F. ; GOMIDE, F A C. A Neural Network to Solve Discrete Dynamic Programming Problems. Campinas-SP: Relatório Técnico no 16/92, DCA/FEE/UNICAMP, 1992 (Relatório Técnico)
Técnicas Justificadas Formalmente Programação dinâmica * V ( n1, w1,..., nk, wk) maxi E = Future payoff if agent takes action i, then acts optimally for remaining pulls ρ V ( n, w,..., n + 1, w + 1,..., n, w ) + (,,...,, ) = max (1 ) (,,..., 1,,...,, ) * * i 1 i i i k k V n1 w1 nk wk i * ρi V n1 wi ni + wi nk wk
Recompensa Atrasada Processos de Decisão de Markov (MDP) Um MDP consiste de: Um conjunto de estados S; Um conjunto de ações A; Uma função de recompensa R: SxA R;
Recompensa Atrasada Processos de Decisão de Markov (MDP) T : SxA ( S) Uma função de transferência de estado, em que um membro de ( S) é uma distribuição de probabilidade sobre o conjunto S. Dessa maneira, T(s,a,s ) éa probabilidade de realizar a transição do estado s para o estado s através da ação a.
Recompensa Atrasada Definindo uma política de um modelo = * t V () s maxe γ rt π t= 0 = + * * V () s max (, ) (,, ') ('), a R s a γ T s a s V s s S s' S (1)
Recompensa Atrasada Definindo uma política de um modelo * * π () s = arg max Rsa (, ) γ TsasV (,, ') ( s') a + s' S
Algoritmo Value Iteration Definindo uma política de um modelo initialize V(s) arbitrarily loop until policy good enough loop for s S loop for a A Qsa (, ): = Rsa (, ) + γ Tsas (,, ') Vs (') V(): s = max Q(, s a) end loop end loop a s' S Complexidade: quadratica no no. de estados e linear no no. de ações
Recompensa Atrasada Definindo uma política de um modelo baseada na eq. 1 ( γ ) Qsa (, ): = Qsa (, ) + α r+ max Qs (', a') Qsa (, ) a' r é uma amostra com média R(S,a) e variancia limitada e s é amostrado da distr. T(s,a,s )
Algoritmo de Policy Iteration Definindo uma política de um modelo choose an arbitrary policy π loop until π : = π ' compute the value function of policy π: solve the linear equations V () s R(, s π ()) s γ T(, s π (), s s') V (') s π = + s' S improve the policy at each state: ( ) π π '( s) : = arg max R( s, a) + γ T( s, a, s') V ( s') π = π ' a s ' S π
Métodos Livres de Modelos Q-Learning * * Q s a R s a γ T s a s Q s a a' s' S (, ) = (, ) + (,, ')max ( ', ') ( γ ) Qsa (, ): = Qsa (, ) + α r+ max Qs (', a') Qsa (, ) a'
Q-Learning [Watkins, 1989] No tempo t, o agente: observa estado s t e reforço R t, seleciona ação a t ; No tempo t+1, o agente: observa estado s t+1 ; atualiza o valor de ação Q t (s t,a t ) de acordo com Q t (s t,a t )=α t [R t + γ max a Q t (s t+1,a) - Q t (s t,a t )]
Características do Q-Learning Convergência garantida Ações de treino podem ser escolhidas livremente Convergência extremamente lenta
Q-Learning Exploração X Exploitação O algoritmo pode ser tendioso se a escolha for sempre para a melhor ação (exploração). Então deve-se colocar uma taxa de exploitação (ainda que pequena) para que uma ação seja escolhida de forma aleatória.
R-learning [Schwartz, 1993] Semelhante ao Q-learning, mas: Maximiza a recompensa média para cada passo. Não utiliza descontos (γ). Atualiza o valor de ação R t (s t,a t ) de acordo com R t (s t,a t )=α t [r t - ρ + max a R t (s t +1,a) - R t (s t,a t )] ρ só é atualizado quando a não for aleatório: ρ t = ρ t + β [r t + max a R t (s t +1,a) - max a R t (s t,a) ρ t ]
Referências Kaelbling, L. P.; Littman, M. L. ; Moore, A. W. (1996). Reinforcement Learning: A Survey. Journal of Artificial Intelligence Research, vol. 4, pg. 237 285.