• Nenhum resultado encontrado

4.4 Diferença Temporal (Temporal Difference TD)

4.4.2 Semi-gradient Q-learning

O Q-learning é um método onde os valores de estado-ação ou as políticas precisam estar armazenados em uma estrutura de dados em forma de tabela. Em vários problemas em que o aprendizado por reforço pode ser utilizado o espaço de estado é combinacional (muitas possibilidades).

em tempo hábil soluções de casos como este. Além disso, em diversas situações será impossível visitar todos os estados, de maneira que as decisões em situações como esta devem ser generalizadas a partir de estados visitados anteriormente e que de alguma forma expressem um senso de similaridade ao estado em questão. A palavra chave deste pro- blema é generalização e a questão principal é entender como a experiência obtida pelo agente em um número limitado de estados pode produzir boas aproximações sobre um grande espaço de estados.

Uma forma de lidar com este tipo de problema é utilizar aproximadores de função. O aproximador de função tenta generalizar a partir de exemplos uma função completa. O algoritmo online mais popular utilizado no cálculo de iteração de valor aproximado é o Q-learning [Busoniu et al. 2010]. No Q-learning tradicional a atualização da função-Q é feita segundo a equação Q(st,at) Q(st,at) + a[rt+1+ gmaxa

t+1 Q(st+1,at+1) −Q(st,at)],

após observar o próximo estado st+1e o reforço rt+1, resultante da escolha de uma ação

at em um estado st. Uma forma simples e direta de integrar o conceito de aproximadores

de função ao algoritmo Q-learning é utilizar o método gradiente descendente (Q-learning baseado em gradiente) [Sutton & Barto 2018], wo que requer um aproximador diferen- ciável em seus parâmetros .

A função-Q aproximada em um dado tempo t é representada pelo termo Q(st,at;qt)

ou ˆQ(st,at), colocando a dependência do parâmetro implícita. Com intuito de derivar o

Q-learning baseado no gradiente, assume-se por hora que após a tomada de uma ação at

em um dado estado st, é fornecido ao algoritmo um valor estado-ação ótimo verdadeiro

do par estado-ação atual Q⇤(s

t,at), bem como o próximo estado st+1 e o reforço rt+1.

Sob estas circunstâncias, o algoritmo pode ter como objetivo minimizar o erro quadrático entre o valor ótimo e o valor estimado

qt+1= qt−1 2at ∂ ∂qt  Q⇤(s t,at) − ˆQ(st,at) �2 = qt+ at  Q⇤(s t,at) − ˆQ(st,at) � ∂qtQ(sˆ t,at) (4.6)

4.4. DIFERENÇA TEMPORAL (TEMPORAL DIFFERENCE - TD) 37 entretanto, o valor Q⇤(s

t,at)não é disponibilizado (livre de modelo), mas esse valor pode

ser substituído por um valor estimado rt+1+ gmaxa t+1

ˆ

Qt(st+1,at+1)oriundo da iteração de

valor (4.3), resultando na regra de atualização de parâmetros do Q-learning aproximado

qt+1= qt+ at  rt+1+ gmaxa t+1 ˆ Qt(st+1,at+1) − ˆQ(st,at) � ∂qtQ(sˆ t,at) (4.7) onde o termo entre colchetes é na verdade uma aproximação da diferença temporal [Busoniu et al. 2010].

Considerando por exemplo um aproximador linear, a regra de atualização é simplifi- cada qt+1= qt+ at  rt+1+ gmaxa t+1(f T(s t+1,at+1)qt) − fT(st,at)qt � f(st,at) (4.8)

onde f(st,at)representa o vetor de característica.

Assim como no Q-learning tradicional, aproximar uma função-Q requer a necessidade de exploração. Como exemplo o algoritmo 2 apresenta em forma de pseudocódigo o Q- learning baseado em gradiente com um aproximador linear e exploração e-gulosa.

Algoritmo 2: Algoritmo Q-Learning com aproximador de função linear

1 início

2 Inicialize o vetor de parâmetros, por ex. q0 0

3 repita

4 Inicialize s 5 repita

6 Selecione a a partir de s utilizando p derivada de fT(s0,a0)q

t (por ex. e-gulosa)

7 Receba a e observe os valores de r e s0

8 qt+1 qt+ at  r + gmax a0 (f T(s0,a0)q t) − fT(s,a)qt � f(s0,a0) 9 até o passo final do episódio ser atingido;

10 até o episódio máximo ser atingido; 11 fim

O Q-learning pode ser combinado com uma variedade de aproximadores, aproxi- madores lineares, regras baseadas em fuzzy, redes neurais entre outros [Busoniu et al.

2010]. A utilização de redes neurais em conjunto com aprendizado por reforço remete aos anos 90 [Lin 1993], [Tesauro 1995], [Bertsekas & Tsitsiklis 1996], [Riedmiller 2005], [Schmidhuber 2015]. Sua utilização para estimar uma função-Q é instável e pode até di- vergir [Riedmiller 2005]. Porém com as recentes conquistas dos métodos de deep lear- ning [LeCun et al. 2015a], [Goodfellow et al. 2016], seja por conta da explosão de dados, poder computacional e novos algoritmos, o paradigma de aprendizado por reforço está cada vez mais em evidência [Li 2017].

Deep Reinforcement Learning é caracterizado quando técnicas de deep learning são utilizadas para aproximar uma função de valor, V (s;q) ou Q(s,a;q). Neste caso os pa- râmetros são pesos sinápticos w das redes. Para atualização dos pesos geralmente é uti- lizado o método gradiente descendente estocástico que não garante convergência e pode até mesmo tornar o aprendizado instável [Riedmiller 2005]. Entretanto, em conjunto com a técnica de repetição de experiências [Lin 1993] os recentes trabalhos DQN [Mnih et al. 2015] e AlphaGo [Silver et al. 2016] conseguiram demonstrar a estabilidade no aprendizado das redes conseguindo atingir importantes resultados.

A técnica de repetição por experiência armazena o histórico et = (st,at,rt,st+1) da

interação do agente com o meio a cada passo de tempo t em uma estrutura de dados Dt =e1, . . . ,et. Durante o treinamento, as atualizações são feitas a partir de amostras ou

pequenos lotes (minibatch) da experiência (s,a,r,s0) ⇠U(D), retiradas aleatoriamente de

uma distribuição uniforme da estrutura. Em seguida os parâmetros são atualizados a cada iteração i em relação a função de custo

Li(wi) = E(s,a,r,s0)⇠(D) ✓ r + gmax a0 Q(s 0,a0;w− i ) −Q(s,a;wi) ◆2� (4.9) onde wi representa os parâmetros da rede na iteração i e w−i representa os parâmetros

fixados por uma constante C calculados na iteração/em iterações passada(s), usados para computar o valor alvo ˇQ na iteração i.

4.4. DIFERENÇA TEMPORAL (TEMPORAL DIFFERENCE - TD) 39 Algoritmo 3: Deep Q-Network com repetição por experiência

1 início

2 Inicialize a memória de repetição D com capacidade N

3 Inicialize a função de valor estado-ação Q com pesos w aleatórios

4 Inicialize a função de valor estado-ação alvo ˇQ com pesos w−=w aleatórios

5 repita

6 Inicialize s e realize o pré processamento f(s) 7 repita

8 Selecione a em s utilizando p derivada de Q(s,a;w) (por ex. e-gulosa)

9 Receba a e observe os valores de r e s0

10 Armazene (f,a,r,f0) em D

11 Retire (fi,ai,ri, fi+1) aleatoriamente de D

12 yi 8 < : ri , se episódio terminar em i + 1 ri+ gmax a0 Q(fˇ 0,a0;w)

13 Calcule o gradiente de (yi−Q(f(s),a;w))2em relação aos pesos w

14 A cada passo C reinicie ˇQ = Q

15 até o passo final do episódio ser atingido; 16 até o episódio máximo ser atingido;

17 fim

A formalização matemática do algoritmo 3 é na verdade uma extensão das equações 4.6,4.7 do Q-learning aproximado demonstrada na subseção 4.4.2 [Sutton & Barto 2018]. Nossa proposta é utilizar estes conceitos de deep reinforcement learning no problema dos k-servos na tentativa de reduzir o problema da maldição de dimensionalidade e tratar problemas reais de grandes dimensões.

Capítulo 5

Aprendizagem por reforço profundo

aplicado ao PKS

Neste capítulo o problema dos k-servos é modelado como um problema de imagem inserido em uma abordagem de aprendizagem por reforço com solução aproximada por uma rede neural perceptron de múltiplas camadas. O objetivo deste capítulo é apresentar uma solução alternativa ao problema dos k-servos capaz de aliviar o problema da maldi- ção da dimensionalidade, principalmente quando o número de servos é aumentado. Esta característica torna os métodos tabulares rapidamente ineficientes, visto que o problema apresenta uma complexidade computacional que cresce exponencialmente com o aumento do número de servos. O algoritmo proposto aqui apresentado é de propósito geral e pode ser aplicado em diferentes tipos de problemas como o problema de gerenciamento de ma- nutenção de sondas de petróleo, logística de deslocamento de transportes de emergência, localização competitiva de recursos entre outros problemas.

5.1 Visão geral

Em uma abordagem tradicional de aprendizagem por reforço, o agente observa o es- tado st de um ambiente, executa uma ação at e recebe uma recompensa rt+1. Em uma

abordada neste trabalho, o agente percebe a dinâmica interna do ambiente a partir de observações ot2

O

(imagem) com semântica desconhecida, como mostra a figura 5.1.

Figura 5.1: Interação agente-ambiente em uma abordagem de aprendizagem por reforço profundo.

5.2 Observações

O estado interno st do ambiente é definido por uma imagem ot 2 R+2que codifica a

distribuição dos servos k(t) e da requisição s(t)j a cada passo de tempo t. O número de pixels p deve satisfazer a condição de que n  p, para que todas as distribuições possí- veis possam ser codificadas. A codificação é feita por meio dos níveis de intensidade dos pixels definidos em um intervalo [LminL  Lmax](escala de cinza), onde a cor branca é utilizada (Lmax=1) para definir os servos, o cinza médio (L = 0,5) a requisição e o preto

(Lmin =0) os pixels não ocupados ou excedentes. Depois disso, a imagem é convertida

em um vetor de características xt2 Rn⇥1 cujo valor numérico de requisição é convertido

5.2. OBSERVAÇÕES 43 monstrada em dois exemplos nos quais os servos são definidos como k(0)=nk(0)

1,2,k2,3(0)

o

e a requisição como s(0)4 (ver figuras 5.2 e 5.3). As arestas pontilhadas são usadas para ilustrar que a codificação não está vinculada às conexões das arestas, é uma representação que converte as informações sobre os nós ocupados pelos servos e pela requisição em símbolos usados como unidades de entrada da rede neural.

Figura 5.2: Exemplo de um problema com nós 4 e 2 servos.

Figura 5.3: Outro exemplo com 5 nós e 2 servos.

Embora a representação em escala de cinza seja usada, essa modelagem não se res- tringe a esse caso, esta opção é feita para reduzir o custo computacional envolvido no processamento de imagens coloridas.

Documentos relacionados