Value-based Method

2018-09-22  本文已影响8人  TonnyYan

Dynamic Programming

假设我们知道状态转移概率p\left( {{\mathbf{s'}}|{\mathbf{s}},{\mathbf{a}}} \right)bootstrapped 更新:{V^\pi }\left( {\mathbf{s}} \right) \leftarrow {E_{{\mathbf{a}} \sim \pi \left( {{\mathbf{a}}{\text{|}}{\mathbf{s}}} \right)}}\left[ {r\left( {{\mathbf{s}},{\mathbf{a}}} \right) + \gamma {E_{{\mathbf{s'}} \sim p\left( {{\mathbf{s'}}{\text{|}}{\mathbf{s}},{\mathbf{a}}} \right)}}\left[ {{V^\pi }\left( {{\mathbf{s'}}} \right)} \right]} \right]
确定性策略:
{{\mathbf{a}}_t} = \arg {\max _{{{\mathbf{a}}_t}}}{A^\pi }\left( {{{\mathbf{s}}_t},{{\mathbf{a}}_t}} \right)
\pi \left( {\mathbf{s}} \right) = {\mathbf{a}}
简化:
{V^\pi }\left( {\mathbf{s}} \right) \leftarrow r\left( {{\mathbf{s}},\pi \left( {\mathbf{s}} \right)} \right) + \gamma {E_{{\mathbf{s'}} \sim p\left( {{\mathbf{s'}}{\text{|}}{\mathbf{s}},\pi \left( {\mathbf{s}} \right)} \right)}}\left[ {{V^\pi }\left( {{\mathbf{s'}}} \right)} \right]

NOTEQ^\pi(\mathbf{s},\mathbf{a})函数是评价在状态\mathbf{s_t}下采取不同动作\mathbf{a_t}好坏的函数 ,V^\pi(\mathbf{s})函数是评价当前状态\mathbf{s_t}的好坏,此时已经选取了一个\mathbf{a_t}了(动作\mathbf{a_t}已经确定了)。一般情况下\mathbf{a_t}是选当前策略的平均动作(average action),因此\mathbf{s_t}又可以定义为V^\pi(\mathbf{s}) = {E_{{\mathbf{a}} \sim \pi \left( {{\mathbf{a}}{\text{|}}{\mathbf{s}}} \right)}[Q^\pi(\mathbf{s},\mathbf{a})]}

策略迭代

策略迭代

值迭代

值迭代

NOTE:其中值迭代算法的第二步就是在进行策略的更新,选取当前状态下可以获得最大收益的动作,由于该策略是确定性的\pi \left( {{\mathbf{a}}|{\mathbf{s}}} \right) = 1,因此,此时值函数的更新应该就是{\max _{\mathbf{a}}}Q\left( {{\mathbf{s}},{\mathbf{a}}} \right)。换句话说在值迭代算法中第二步值函数的更新就等价为是策略的更新。

Question

上一篇下一篇

猜你喜欢

热点阅读