Buscar

PROGRAMACAO_DINAMICA_APROXIMADA

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 10 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 10 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 10 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

38
3 PROGRAMAÇÃO DINÂMICA APROXIMADA
3.1 A necessidade de aproximação em programação dinâmica
No capítulo 2, foram apresentados os fundamentos da programação dinâmica clássica,
cujas técnicas envolvem computar exatamente a função de valor para cada estado viável. Porém,
algoritmos tradicionais, tais como programação dinâmica reverso (horizonte finito), iteração de
política e iteração de valor (horizonte infinito), podem não ser suficientes para encontrar uma
solução exata dentro de um tempo razoável. Note que estes algoritmos requerem pelo menos três
laços de repetição aninhados: o primeiro sobre todos os estados, o segundo sobre todas as ações,
e o terceiro sobre todos os estados futuros (POWELL, 2012). Tal exigência computacional é
intensivamente custosa nos casos em que o espaço das variáveis do sistema é consideravelmente
grande.
Inevitavelmente, em muitos dos problemas reais, o espaço de estados pode ser imenso,
e os processos de informação exógena podem ser desconhecidos, de modo que a estocasticidade
do sistema ocorre às cegas. Tal cenário faz surgir um dos principais impasses da programação
dinâmica tradicional, que é o fato da equação de otimalidade de Bellman não ser aplicável para
todos os problemas, uma vez que é afetada pelas maldições da dimensionalidade (veja 2.6).
Uma alternativa a estas limitações computacionais está em reunir todas as proprie-
dades vantajosas da PD e combiná-las a técnicas de aproximação de funções e simulação para
aliviar as maldições da dimensionalidade associadas a abordagem clássica (WANG et al., 2009).
Em resposta a impossibilidade de computar a equação de Bellman em algumas configurações,
subcomunidades da ciência da computação, teoria de controle e pesquisa operacional por meio
de seus esforços, inicialmente de forma independente, propuseram soluções aproximadas para
problemas de decisão sequencial. Um vez que as pequisas foram desenvolvidas sem que houvesse
muita interseção entre as subcomunidades cientificas interessadas, não há uma unificação formal
de notação ou um nome específico que se dê a área de pesquisa em aproximação de funções
em programação dinâmica (POWELL, 2012). Assim, este campo tem se desenvolvido sob os
nomes de programação dinâmica aproximada ou adaptativa (approximate dynamic programming
- Programação dinâmica aproximada (PDA)), aprendizagem por reforço (reinforcement learning
- RL), programação neuro-dinâmica (neuro-dynamic programming) e programação dinâmica
heurística (heuristic dynamic programming). Estes campos são iguais no seu propósito, mas
diferentes em sua execução, embora estas diferenças sejam tão sutis que às vezes é difícil
39
percebê-las.
Neste trabalho, será feito uso do framework desenvolvido pela comunidade da PDA.
A justificativa está em que as aplicações que serão feitas são do campo da pesquisa operacional,
comunidade que contribui e adota as técnicas da PDA.
3.2 Ideia base para aproximação
Resolver um problema de programação dinâmica envolve computar a equação de
otimalidade de Bellman, dada por
Vt(St) = max
xt∈Xt
{Ct(St, xt) + γE {Vt+1(St+1)|St}} . (3.1)
Em PD exata, a função de valor é computada exatamente retrocedendo no horizonte de decisão.
Tal comportamento fica bem evidente no algoritmo de programação dinâmica reverso (Algoritmo
1). Em PDA, a estratégia é diferente. Os passos são dados avançando no tempo, de modo que
são feitas simulações sobre o futuro e as decisões são tomadas aproximadamente. Portanto, a
equação de Bellman, no contexto aproximado, assume a seguinte forma
V t(St) = max
xt∈Xt
{
Ct(St, xt) + γE
{
V t+1(St+1)|St
}}
, (3.2)
onde V t(St) é um aproximação do valor de estar no estado St. A aproximação é uma estimativa
da função de valor para cada estado viável do sistema, e pode assumir qualquer forma funcional
que se deseje. O grande desafio está em obter aproximações de funções boas o suficiente para o
contexto proposto.
De modo geral, programação dinâmica aproximada se desenvolve a partir destas
duas principais bases: modelar funções de aproximação e simular a estocasticidade do sistema.
3.3 Arquiteturas de aproximação
As aproximações de funções devem ser construídas de modo que representem da
melhor forma a função desejada. A arquitetura de aproximação é fundamental neste processo,
pois ela precisa ser rica o suficiente para representar com tantos detalhes quanto possível a função
alvo (BERTSEKAS; TSITSIKLIS, 1996).
Genericamente, os métodos de aproximação podem ser separados em dois principais
tipos: paramétricos e não paramétricos. Resumidamente, aproximadores paramétricos são
40
mapeamentos de um espaço de parâmetros para o espaço das funções que se deseja representar.
Em contraste aproximadores não paramétricos, não há conhecimento a priori da representação
da função que se objetiva aproximar (BUSONIU et al., 2010).
3.3.1 Aproximação paramétrica
Nesta classe de aproximadores, a forma funcional do mapeamento e o número de
parâmetros são tipicamente definidos a priori, não dependem dos dados. Os parâmetros da
função de aproximação são ajustados usando dados sobre a função desejada.
Considere V o espaço das funções de valor. Suponha que a função de valor aproxi-
mada é por um vetor parametrizado n-dimensional θ. Assim, o aproximador será um mapeamento
F : Rn → V . Cada vetor de parâmetros θ provê uma representação compacta de uma função de
valor aproximada correspondente:
V̂ = F (θ).
Por meio desta representação, ao invés de armazenar a função de valor para cada estado,
armazena-se apenas o vetor de parâmetros. Estes aproximadores podem ser lineares ou não
lineares.
. Aproximação linear
– É formulada a partir de um conjunto de funções base (basis function) e um vetor
de parâmetros θ. As funções base capturam algumas características subjacentes ao
sistema. Seja φf (S) as funções base, onde f ∈ F é o índice de uma característica
(feature), e θ um vetor |F|-dimensional, a função de valor aproximada é estimada a
partir da seguinte arquitetura:
F (θ) =
∑
f∈F
θfφf (S). (3.3)
– Geralmente os |F| features são drasticamente menores que a dimensão do espaço de
estados, fazendo com que seja muito mais fácil trabalhar em termos de estimar o vetor
de parâmetros θ (POWELL, 2012). Portanto, o problema de computar exatamente a
41
função de valor para cada estado, nesta versão, se reduz a projetar um conjunto de
funções base e estimar os parâmetros.
. Aproximação não-linear
– Nesta arquitetura, a dependência da função F em θ é não linear. Um típico exemplo
de um aproximador não-linearmente parametrizado são as redes neurais feed-foward
(BERTSEKAS; TSITSIKLIS, 1996).
3.3.2 Aproximação não paramétrica
Uma questão que envolve modelos paramétricos é o fato de que estes modelos só se
mostram eficazes se a configuração do modelo for eficaz. Projetar boas funções base é uma “arte”
e um processo de tentativa e erro. Modelos não paramétricos surgem contornando a necessidade
de definir a quantidade de parâmetros e a configuração dos features a priori, evitando de certa
forma o trabalho artístico na modelagem (POWELL, 2012).
Apesar do nome, aproximadores deste tipo ainda possuem parâmetros. No entanto, o
número de parâmetros, bem como a forma do aproximador derivam dos dados (BUSONIU et al.,
2010). Modelos não parametrizados são caracterizados pela propriedade de que, a medida em
que o número de dados observados cresce, é possível aproximar qualquer função com precisão
arbitrária (POWELL, 2012).
Importantes classes de aproximadores não parametrizados que podem ser utilizados
em PDA incluem métodos baseado em kernel, dentre os quais máquina de vetores de suporte são
os mais populares.
Nas próximas seções deste capítulo serão apresentados métodos de aproximação que
se configuram como possuindo uma arquitetura com aproximadores linearmente parametrizados.
3.4 Iteração de política aproximada
A versão aproximada do algoritmo de iteração de política, de modo geral, segue a
mesma estrutura da sua versãoexata, ou seja, o algoritmo continua a ser executado em duas
etapas: avaliação e melhoria da política (Figura 8). Entretanto, as diferenças entre eles estão em
que para uma dada política, a função de valor não é computada diretamente, e a nova política
é gulosa com respeito a esta aproximação. Em resumo, os algoritmos de iteração de política
aproximada partem de uma política inicial, esta política é avaliada sob uma função de valor
42
aproximada, que segue uma determinada arquitetura de aproximação. Em seguida, esta função
de valor aproximada é utilizada para produzir novas políticas. O processo é repetido até atingir
uma determinada taxa de convergência.
Figura 8 – Diagrama das etapas do algoritmo de iteração de política
aproximada
Fonte: (BERTSEKAS; TSITSIKLIS, 1996), adaptado pela autora (2020).
3.4.1 Equação de Bellman projetada
Inicialmente, considere uma matriz A ∈ Rn×n e um vetor b ∈ Rn, e sejam x∗ e x̄,
respectivamente, as soluções dos dois sistemas de equações lineares de ponto fixo
x = Ax+ b (3.4)
x = Π(Ax+ b), (3.5)
de modo que Π denota uma matriz de projeção em um subespaço P com respeito a norma
Euclidiana ponderada ‖·‖ξ 1, onde ξ ∈ Rn é um vetor de componentes positivas. Assume-se que
x∗ e x̄ existem, e que a matriz (I − ΠA) é invertível, e x̄ é único. Assim, resolvendo a equação
projetada, o objetivo é utilizar deste resultado (3.5) para aproximar a equação original. (3.4)
(YU; BERTSEKAS, 2010).
Agora, considere a equação de Bellman em sua versão matricial
vπ = cπ + Pπvπ, (3.6)
1 ‖x‖ξ =
(∑
i ξix
2
)1/2
43
onde cπ é o vetor-coluna da função de retornos, Pπ é a matriz de transição e vπ o vetor-coluna
correspondendo à função de valor. Perceba que (3.6) pode ser facilmente vista sob a ótica das
equações (3.4) e (3.5). No contexto de PDM, x∗ é a função de valor, a equação original é a
equação de Bellman, o vetor de pesos ξ na norma de projeção corresponde a uma distribuição
invariante da cadeia de Markov associada a política, e o subespaço P é determinado indiretamente
pelo conjunto de features (YU; BERTSEKAS, 2010).
Então, seja um conjunto de funções base φi : S → R, i = 1, 2, . . . , n. Além
disto, considere que arquitetura de representação da função de valor é linear, então tem-se
que V
π
(s|θ) =
∑n
i=1 φi(s)θi. Para um conjunto de estados finitos S, defina Φ uma matriz
cujas colunas são vetores contendo o valor da função base para cada estado s ∈ S. Portanto,
Φ = [φ1, φ2, . . . , φn] ∈ R|P|×n. Em sua forma vetorial, a aproximação da função de valor é
representada por
vπ = Φθ, (3.7)
onde θ = [θ1, θ2, . . . , θn] é o vetor de parâmetros.
A versão projetada da equação Bellman assume a forma descrita a seguir
Φθ = ΠT (Φθ) = Π(cπ + PπΦθ), (3.8)
cujo o subespaço de projeção é P = {Φθ : θ ∈ Rn}. Solucionar a equação de Bellman projetada
corresponde obter uma função de valor representada por Φθ que, após a aplicação do operador
de Bellman e da projeção no subespaço, resulta em um ponto fixo da função.
Por definição, a projeção sobre a função desejada é um vetor que pertence ao
subespaço de projeção que está mais próxima da função original dada uma métrica induzida por
uma norma, que neste caso é a norma Euclidiana ponderada (BERTSEKAS; TSITSIKLIS, 1996).
Deseja-se obter θ de modo que a norma da diferença entre a função original e sua aproximação
seja mínima. Portanto, seja Ξ uma matriz diagonal cujos os elementos são os pesos da norma.
Tem-se que, o valor ótimo para θ é dado por
44
θ∗ = argmin
θ∈R
‖v − v‖ξ
θ∗ = argmin
θ∈R
(Φθ − v)TΞ(Φθ − v)
θ∗ = (ΦTΞΦ)−1ΦTΞv, (3.9)
e consequentemente, a projeção da função de valor é
v = Φθ∗ = Φ(ΦTΞΦ)−1ΦTΞv. (3.10)
Logo, a matriz de projeção é definida como
Π = Φ(ΦTΞΦ)−1ΦTΞ. (3.11)
Por fim, substituindo a matriz de projeção (3.11) em (3.8), a versão da equação
projetada de Bellman pode ser escrita como
Φθ = Φ(ΦTΞΦ)−1ΦTΞ(cπ + PπΦθ) (3.12)
ΦTΞΦθ = ΦTΞ(cπ + PπΦθ) (3.13)
ΦTΞ(Φ− PπΦ)θ = ΦTΞcπ. (3.14)
Fazendo A = ΦTΞ(Φ− PπΦ) e b = ΦTΞcπ, e assumindo a existência de A−1, é possível obter
θ∗ resolvendo um sistema linear da forma
θ∗ = A−1b. (3.15)
Logo, resolver a equação projetada de Bellman equivale a obter θ∗ resolvendo A−1b. Os métodos
que utilizam esta aproximação como forma de de estimar a função de valor são conhecidos como
métodos de diferença temporal de mínimos quadrados (least square temporal difference-LSTD)
(BRADTKE; BARTO, 1996) (LAGOUDAKIS; PARR, 2003).
3.4.2 Iteração de política aproximada baseada em simulação
As técnicas de programação dinâmica aproximada são projetadas com o propósito
de oferecer alternativas que contornem as dificuldades encontradas em representações de alta
dimensionalidade. Embora resolver a equação de Bellman projetada ofereça um caminho de
aproximação, as funções base que compõe a matriz Φ precisam ser computadas para todos
45
os estados. Portanto, para problemas com espaço de estados com alta dimensionalidade é
impraticável resolver a equação de Bellman da forma que foi apresentada na seção anterior.
Uma possibilidade oferecida para evitar operações com matrizes de alta dimensão
surgiu a partir da ideia de trabalhar apenas com amostras do espaço de estados, produzindo
trajetórias que representam a evolução do sistema. De modo bem prático, uma trajetória
representa uma sequência imediata de estados, decisões e recompensas (SUTTON; BARTO,
2018). Então, para uma dada política fixa π = {Xπ(S0), Xπ(S1), . . . }, é possível simular
a trajetória S0, Xπ(S0), C0, S1, Xπ(S1), C1, . . . , SN , Xπ(SN), CN e utilizar destas amostras e
computar a aproximação θ = A
−1
b, que equivale a
Φ̄T (Φ̄− ¯PπΦ)θ = Φ̄T c̄π (3.16)
em que para φ(si) = (φ1(si), φ2(si), . . . , φn(si)) tem-se
Φ̄ =

φ(s0)
φ(s1)
...
φ(sN−1)
 (3.17)
e
¯PπΦ =

φ(s1)
φ(s2)
...
φ(sN)
 (3.18)
e a aproximação do vetor de retornos é
c̄π =

C(s0, X
π(s0))
C(s1, X
π(s1))
...
C(sN−1, X
π(sN−1))
 (3.19)
Em seguida, obtém-se a função de valor aproximada para a política π resolvendo
a aproximação da equação de Bellman (3.16). Após a etapa de avaliação da política, um nova
política será produzida. A etapa de melhoria de política é muito semelhante com relação ao
algoritmo exato, sendo gerada a partir de uma estratégia gulosa, diferenciando-se apenas pelo
46
fator de que a função de valor é estimada por um aproximador linear. Portanto, a nova política
π′ =
{
Xπ
′
(S0), X
π′(S1), . . .
}
é dada por
Xπ
′
(s) = argmax
x∈Xs
{
C(s, x) + γ
∑
s′∈S
P(s′|s, x)φ(s′)T θ
}
∀s ∈ S (3.20)
Algoritmo 4: ALGORITMO DE ITERAÇÃO DE POLÍTICA BASEADO EM SIMU-
LAÇÃO
Entrada: θ, MDP
1 início
2 Inicialize arbitrariamente θ0
3 Para k ∈ {0, 1, ..., N − 1} faça:
4 Para t ∈ {0, 1, ..., T − 1} faça:
5 Xπt ← argmax
x∈Xst
{
C(st, x) + γ
∑
st+1∈S P(st+1|st, x)φ(st+1)
T θ
}
6 st+1 ∼ P(st+1|st, x)
7 Fim
8 θk+1 ←
(
Φ̄T (Φ̄− ¯PπΦ)
)−1
Φ̄T c̄π
9 Fim
10 return θN guloso com relação a V
11 fim
3.5 Iteração de valor aproximada
Na seção 2.5.2.2, é visto que o algoritmo de iteração de valor parte de uma função
de valor inicial arbitrária V0, e segue atualizando a função de valor de acordo com a decisão que
produz um maior retorno para cada função, até que atinja um nível de convergência. Em que
para cada iteração, a equação (3.21)
V n(s) = max
x∈X
{
C(Sn, x+ γE
{
V
n−1
(s′)|s
}}
, (3.21)
precisa ser executada para cada estado viável. Após cada varredura sobre o espaço de estados, a
nova estimativa da função de valor substitui a antiga estimação.
Então, volte a equação de Bellman projetada com aproximação linear (3.14) e note
que a equação pode ser reescrita como
Aθ − b = ΦTΞ(Φθ − (cπ + γPπΦθ)). (3.22)
O termo Φθ é a aproximação do valor de estar em cada estado, e (cπ + γPπΦθ) é a contribuição
imediada recebida em um dado estado somado ao valor esperado do próximo estado após a
47
transição. De forma bem simplificada, pense em δπ como sendo um diferença temporal dado
uma política π, que pode ser vista como o estimado menoso previsto (POWELL, 2011). Assim,
em (3.22) a diferença temporal com relação a π pode ser
δπ = − (Φθ − (cπ + γPπΦθ)) . (3.23)
Partindo disto, para o algoritmo de iteração de política aproximada, deseja-se obter
θ tal que a diferença quadrática entre entre a função a estimar e a estimativa seja minimizada.
Para isto, θ é atualizado por do método do gradiente, de modo que a atualização segue a seguinte
forma:
θ ← θ − α ∂
∂θ
(Φθ − vπ) (3.24)
θ ← θ − αΦ (Φθ − vπ) (3.25)
θ ← θ + αΦδπ, (3.26)
onde o tamanho do passo é α ∈ (0, 1].
Segue abaixo o algoritmo de iteração de valor baseado em trajetória (trajectory based
value iteration - TBVI) (GERAMIFARD, 2013).
Algoritmo 5: ALGORITMO DE ITERAÇÃO DE VALOR BASEADO EM TRAJE-
TÓRIA
Entrada: α, MDP
1 início
2 Inicialize arbitrariamente θ0
3 Enquanto tempo de execução faça:
4 Para s na trajetória produzida seguindo π faça:
5 Gere N amostras de s′ ∼ P(s′|s, x)
6 V(s)← max
x∈X
{
C(s, x) + γ
∑
s′∈S P(s′|s, x)φT θ
}
7 δ ← (Φθ − (cπ + γPπΦθ))
8 θ ← θ + αδφ
9 Fim
10 Fim
11 return π
12 fim

Continue navegando