强化学习随笔(3)

  • t+1时刻只与 t 时刻有关,在这个时刻,在和前面之间
  • 下一个时刻状态只有与这一个时刻状态和行为有关

马尔可夫决策过程

马尔可夫决策过程

马尔可夫决策过程是强化学习的一个基本框架,

马尔可夫链

也就是下一个状态只取决于当前状态,而与当前状态的之间状态都没有关系。如果说某一个过程是满足马尔可夫特性的,在未来转移和过去是独立,只与现在状态有关

  • 过去状态集合 h_t = \{ S_1,S_2,S_3,\cdots, S_t \}
  • p(S_{t+1}|S_t) = p(S_{t+1}|h_t)
    p(S_{t+1}|S_t,a_t) = p(S_{t+1}|h_t,a_t)
状态转移矩阵

p = \begin{bmatrix} P(s_1|s_1) & P(s_2|s_1) & \cdots & P(s_N|s_1)\\ P(s_1|s_2) & P(s_2|s_2) & \cdots & P(s_N|s_2)\\ \end{bmatrix}

马尔可夫链实例

这就是轨迹概念,每一条链都是一条轨迹

  • S_3, S_4,S_5,S_6,S_6
  • S_3, S_2,S_3,S_2,S_1
  • S_3, S_4,S_4,S_5,S_5

马尔可夫奖励过程(MRPs)

  • 马尔可夫奖励过程,就是马尔可夫链再加上一个奖励函数
  • 定义马尔可夫奖励过程(MRP)
    • S 表示状态集合s \in S
    • P 是动态/转移模型可以表示为P(S_{t+1} = s^{\prime}|s_t = s)
    • R 是奖励函数 R(s_t = s) = \mathbb{E}[r_t|s_t = s]
    • Discount factor(折扣量)\gamma \in [0,1]

引入奖励R = [5,0,0,0,0,0,7],奖励过程看成随波逐流,随着事先定义好状态转移进行流动

  • 定义 Horizon,
    • 在每一个 episode 存在最大有限步数
  • 定义 Return
    • 根据步骤对奖励进行一定折扣计算在 t 步骤的收益(在一段时间内的奖励函数加权平均值)
      G_t = R_{t+1} + \gamma R_{t+2} + \gamma^2 R_{t+3} + \gamma^3 R_{t+4} + \cdots + \gamma^{T-(t-1)}R_t
  • 定义状态价值函数V_t(s)
    状态价值函数是最终衡量状态的获取多少奖励函数,从 s 状态开始可以计算还可以得到多少累计函数,在 AlphaGo 中有估值函数,当给系统棋牌状态,状态包括是黑方还是白方,接下来是白棋先走还是黑棋先走。
    • 期望也就是从这个状态 s 开始向后可以获得多大价值
      V_t(s) = \mathbb{E}[G_t|s_t = s]
      V_t(s) = \mathbb{E}[R_{t+1} + \gamma R_{t+2} + \gamma^2 R_{t+3} + \gamma^3 R_{t+4} + \cdots + \gamma^{T-(t-1)}R_t|s_t = s]
    • 也可以看作对于未来可以获得多少奖励当前价值的一个表现
  • 解释 \gamma
    • 避免在带环马尔可夫过程出现无穷奖励的问题
    • 也希望把不确定表示出来,尽快得到奖励而不是在未来某一个点得到奖励
    • 对于有价值的奖励,我们希望立刻得到奖励,而不是在未来得到奖励
    • 立刻得到奖励也是符合人的行为
    • 关于超参数\gamma的取值意义
      • 系数设置 0 则只关注当前奖励
      • 设置为 1 则表示关心未来的奖励
马尔可夫奖励实例

R = [5,0,0,0,0,0,10]

  • S_4,S_5,S_6,S_7 = 0 + \frac{1}{2} \times 0 + \frac{1}{4} \times 0 + \frac{1}{8} \times 10 = 1.25
计算状态价值

可以通过随机采样得到很多轨迹,然后将这些轨迹叠加起来,计算他们的 return 然后取平均,蒙特卡洛采样算法。

  • Bellman equation
    V(s) = R(s) + \gamma \sum_{s^{\prime} \in S} P(s^{\prime}|s)V(s^{\prime})
    • R(s) 立即奖励
    • \gamma \sum_{s^{\prime} \in S} P(s^{\prime}|s)V(s^{\prime}) 表示未来折扣奖励

\begin{bmatrix} V(s_1)\\ V(s_2)\\ \vdots \\ V(s_N)\\ \end{bmatrix} = \begin{bmatrix} R(s_1)\\ R(s_2)\\ \vdots \\ R(s_N)\\ \end{bmatrix} + \gamma \begin{bmatrix} P(s_1|s_1) & P(s_2|s_1) & \cdots & P(s_N|s_1) \\ P(s_1|s_2) & P(s_2|s_2) & \cdots & P(s_N|s_2) \\ \vdots & \vdots & \cdots & \vdots \\ P(s_1|s_N) & P(s_2|s_N) & \cdots & P(s_N|s_N) \\ \end{bmatrix} \begin{bmatrix} V(s_1)\\ V(s_2)\\ \vdots \\ V(s_N)\\ \end{bmatrix}

V = R + \gamma PV
V = (I + \gamma P)^{-1}R

  • 这是O(N^3)计算复杂度,对于状态,这个转移矩阵对于 N 解一些很小马尔可夫过程
计算马尔可夫迭代方法
  • 动态规划
  • 蒙特卡洛估计
  • Temporal-Difference 学习,结合以上算法
蒙特卡洛算法
i = 0, G_t = 0
while i is not N:
    S_t # generate an episode ,starting from state s and time t
    g = $sum_{i=t}^{H-1} \gamma^{i-t} r_i$
    G_t = G_t + g
    i = i+1
V_t(S) = \frac{G_t}{N}
动态规划
for all states s \in S ,V^{\prime} = 0, V(S) = \initfy
while || V - V^{\prime}|| > \epison
    V = V^{\prime}
    For all states s \in S V^{prime} = R(s) + \gamma \sum_{s^{\prime} \in S} P(s^{\pirme}|s)V(s^{\prime})
return V^{\prime}(s) for all s \in S

马尔可夫决策过程(MDPs)

  • 马尔可夫决策过程(MDP)
    • S 表示状态集合
    • A 表示动作的集合
    • P^a Action 是动态/转移模型 P(s_{t+1} = s^{\prime}|s_t = s,a_t = a)
    • R 是奖励函数 R(s_t = s,a_t = a) = \mathbb{E}[r_t|s_t = s,a_t = a]
    • 折扣系数\gamma \in [0,1]
  • MDP 是(S,A,P,R,\gamma)

MDP 中策略(policy)评估

  • Policy 表示在每一个状态(步骤)应该采取什么样行为
  • 给定一个状态,
  • \pi(a|s) = P(a_t = a | s_t = s) 根据当前状态采取什么行为的概率分布
  • 这个概率函数是稳定的,静态的,A_t 近似 \pi(a|s)

MDP 和 MRP 转换

  • (当已知一个马尔可夫决策过程)给定 MDP (S,A,P,R,\gamma) 和 policy \pi 时候就是将 MDP 转化为 MRP 问题
  • 状态序列S_1,S_2 是马尔可夫过程(S,P^{\pi})
  • 状态和奖励序列为S_1,R_1,S_2,R_2 是马尔可夫奖励过程
    P^{\pi}(s^{\prime}|s) = \sum_{a \in A} \pi(a|s)P(s^{\prime}|s,a)
  • 直接通过求和,或者边缘概率去掉 a
    R^{\pi}(s) = \sum_{a \in A} \pi(a|s)R(s,a)

MDP 中的价值函数

  • 价值函数: 在 MDP 过程中的价值函数也给一个定义,这里期望是由 policy 所决定的,也就是根据 policy 进行采样之后得到期望,从而计算其价值函数
    V^{\pi}(s) = \mathbb{E}_{\pi}[G_t|s_t = s]

  • Q 函数,action-value 函数定义某一个行为可能得到某一个期望,这个期望也是 policy 函数,也就是我们在某一个状态下,采取某一个动作,最终能获得多少累计奖励的函数
    Q^{\pi}(s,a) = \mathbb{E}_{\pi}[G_t|s_t = s,A_t = a]

  • 价值函数和Q函数关系,也就是对 Q 函数进行边缘概率求和得到 V 函数
    V^{\pi}(s) = \sum_{a \in A} \pi(a|s)Q^{\pi}(s,a)

Bellman Expectation Equation

主要定义当前状态和外来状态之间一个关联,对于所有
V^{\pi}(s) = \mathbb{E}_{\pi}[R_{t+1} + \gamma V^{\pi}(s_{t+1})|s_t = s] \tag{1}

Q^{\pi}(s,a) = E_{\pi}[R_{t+1} + \gamma Q^{\pi}(s_{t+1},A_{t+1})|s_t = s,A_t = a] \tag{2}

Bellman Expectation Equation for V^{\pi} and Q^{\pi}

  • 当前价值和未来价值之间的关系
    V^{\pi}(s) = \sum_{a \in A} \pi (a|s) Q^{\pi}(s,a) \tag{3}
  • 价值函数和Q函数之间一个关系

Q^{\pi}(s,a) = R_s^a + \gamma \sum_{s^{\prime} \in S} P(s^{\prime}|s,a)V^{\pi}(s^{\prime}) \tag{4}

V^{\pi}(s) = \sum_{a\in A} \pi(a|s)(R(s,a) + \gamma \sum_{s^{\prime} \in S} P(s^{\prime}|s,a)V^{\pi}(s^{\prime})

Q^{\pi}(s,a) = R(s,a)+ \gamma a \sum_{s^{\prime} \in S} P(s^{\prime}|s,a)\sum_{a^{\prime} \in A} \pi (a^{\prime}|s^{\prime}) Q^{\pi}(s^{\prime},a^{\prime})

策略迭代

价值迭代

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章