强化学习的数学原理学习笔记 - 基于模型(Model-based)


本系列文章介绍强化学习基础知识与经典算法原理,大部分内容来自西湖大学赵世钰老师的强化学习的数学原理课程(参考资料1),并参考了部分参考资料2、3的内容进行补充。

系列博文索引:

参考资料:

  1. 【强化学习的数学原理】课程:从零开始到透彻理解(完结)(主要)
  2. Sutton & Barto Book: Reinforcement Learning: An Introduction
  3. 机器学习笔记

*注:【】内文字为个人想法,不一定准确

概览:RL方法分类

图源:https://zhuanlan.zhihu.com/p/36494307
*图源:https://zhuanlan.zhihu.com/p/36494307

RL算法中存在两种策略:

  • 行为策略(Behavior policy):与环境交互,生成experience采样
  • 目标策略(Target policy):迭代更新,直到收敛至最优策略

据此,可以将RL算法分为两类:

  • On-policy:Behavior policy即为Target policy,例如MC、Sarsa等
  • Off-policy:Behavior policy与Target policy可以不同,例如Q-learning等
    • 好处:从别的策略得到的经验中学习,允许更为广泛的探索而不必考虑利用

*On-policy可以看作是Off-policy的一种特殊情况,因为Off-policy允许两种策略相同。

基于模型(Model-Based)

基于模型:环境MDP的模型已知,基于动态规划(DP)求解

  • 优:提供了RL的理论基础
  • 劣:假设过强(完美的环境模型,比如状态转移矩阵),计算开销过高

基于模型的方法:

  • 策略迭代:收敛速度较快,适用于小状态空间
  • 值迭代:计算量较少,适用于大状态空间

*值迭代可以看作是策略迭代的一种特殊情况

值迭代(Value Iteration)

算法步骤:在第 k k k次迭代中

  • 策略更新:给定 v k v_k vk,求解对应的策略 π k + 1 = arg max ⁡ π ( r π + γ P π v k ) \pi_{k+1} = \argmax_\pi (r_\pi + \gamma P_\pi v_k) πk+1=argmaxπ(rπ+γPπvk)
  • 值更新:根据策略 π k + 1 \pi_{k+1} πk+1,计算 v k + 1 = r π k + 1 + γ P π k + 1 + v k v_{k+1} = r_{\pi_{k+1}} + \gamma P_{\pi_{k+1}} + v_k vk+1=rπk+1+γPπk+1+vk
    • *此处的 v k v_k vk并非状态值,只是一个值,因为其并不满足贝尔曼方程

*详细步骤见强化学习的数学原理学习笔记 - 基础知识中求解贝尔曼最优方程部分。

算法公式:
v k + 1 ( s ) = max ⁡ a ∑ s ′ , r p ( s ′ , r ∣ s , a ) [ r + γ v k ( s ′ ) ] v_{k+1} (s) = \max_a \sum_{s', r} p(s', r|s, a) [r + \gamma v_k(s')] vk+1(s)=amaxs,rp(s,rs,a)[r+γvk(s)]

伪代码:

v[0] = init_state_value()

while ||v_[k] - v_[k-1]|| >= threshold:
    for s in StateSpace:
        for a in ActionSpace:
            q[a] = calculate_q_value(s, a, v_[k])
    
    	a_star = get_optimal_action(q)

        # policy update
        pi[k+1] = update_policy(a_star)

        # value update
        v[k+1] = update_value(pi[k+1], v_[k])

    k = k + 1

值迭代可以看作将贝尔曼优化方程转为一个更新规则:先计算最优值函数,再从中提取对应的策略作为最优策略

🟦策略迭代(Policy Iteration)

反复执行策略评估(Policy Evaluation,PE)和策略提升(Policy Improvement,PI),直至收敛至最优策略。【*能够收敛的要求:有限MDP仅有有限个策略】

  • 策略评估:评价某个策略本身如何,即计算任意策略 π \pi π的状态值函数 v π v_{\pi} vπ,称之为预测问题(Prediction Problem )
    • v k + 1 ( s ) = ∑ a π ( a ∣ s ) ∑ s ′ , r p ( s ′ , r ∣ s , a ) [ r + γ v k ( s ′ ) ] v_{k+1} (s) = \sum_a \pi (a|s) \sum_{s', r} p(s', r|s, a) [r + \gamma v_k(s')] vk+1(s)=aπ(as)s,rp(s,rs,a)[r+γvk(s)]
      • 注意这里与值迭代的区别:值迭代直接求解最优的状态值,而策略评估仅是计算当前策略的状态值(并不一定是最优)
  • 策略提升:寻找每个状态下的最好的动作
    • 考虑在状态 s s s下找到了一个优于现有策略 π \pi π的动作 a = π ′ ( s ) ≠ π ( s ) a = \pi'(s) \neq \pi(s) a=π(s)=π(s),则对应的动作值函数 q π ( s , a ) q_{\pi} (s, a) qπ(s,a)不低于状态值函数 v π ( s ) v_{\pi} (s) vπ(s),即: q π ( s , π ′ ( s ) ) ≥ v π ( s ) q_{\pi}(s, \pi'(s)) \geq v_{\pi} (s) qπ(s,π(s))vπ(s)
    • 新策略 π ′ \pi' π不差于现有策略 π \pi π,即满足: v π ′ ( s ) ≥ v π ( s ) v_{\pi'} (s) \geq v_{\pi} (s) vπ(s)vπ(s)
    • 那么策略提升就是以贪心的方式选择每个状态下能使动作值函数最大的动作,进而更新策略: π ′ ( s ) = arg max ⁡ a q π ( s , a ) = arg max ⁡ a ∑ s ′ , r p ( s ′ , r ∣ s , a ) [ r + γ v π ( s ′ ) ] \pi'(s) = \argmax_a q_\pi (s, a) = \argmax_a \sum_{s', r} p(s', r|s, a) [r + \gamma v_\pi(s')] π(s)=argmaxaqπ(s,a)=argmaxas,rp(s,rs,a)[r+γvπ(s)]

算法步骤:在第 k k k次迭代中,给定策略 π k \pi_k πk(随机初始策略: π 0 \pi_0 π0

  • 策略评估:计算 π k \pi_k πk的状态值 v π k = r π k + γ P π k v π k v_{\pi_k} = r_{\pi_k} + \gamma P_{\pi_k} v_{\pi_k} vπk=rπk+γPπkvπk
    • *迭代中嵌套迭代,求解每次迭代策略的迭代状态值
  • 策略提升:根据 π k \pi_k πk的状态值 v π k v_{\pi_k} vπk,求解当前的最优策略 π k + 1 \pi_{k+1} πk+1

伪代码:

pi[0] = init_policy()

while not pi[k].is_converged:
    # policy evaluation
    while ||v_[j] - v_[j-1]|| >= threshold:
        for s in StateSpace:
            v_[j+1][s] = calculate_state_value(pi[k], v_[j][s])
        j = j + 1

    # policy improvement
    for s in StateSpace:
        for a in ActionSpace:
            q[a] = calculate_q_value(s, a, v[j])
    
    	a_star = get_optimal_action(q)
        pi[k+1] = update_policy(a_star)

	k = k + 1

*策略迭代中,距离最终目标状态(考虑一个episode的最终状态)越近的状态的策略会越早收敛,离目标状态越远的状态的策略会越晚收敛

🟡截断策略迭代(Truncated Policy Iteration)

截断策略迭代是值迭代与策略迭代的一般化推广;反过来讲,值迭代与策略迭代都是截断策略迭代的特殊情况。

值迭代 vs. 策略迭代:

  • v 0 = v π 0 v_0 = v_{\pi_0} v0=vπ0,使得二者具有相同的初始值,便于比较
  • 发现:二者的区别在于第四步的 v π 1 ≠ v 1 v_{\pi_1} \neq v_1 vπ1=v1,因此后续的所有迭代中,二者结果均不相同(收敛前)
    • v π 1 v_{\pi_1} vπ1是由贝尔曼最优方程计算出的状态值,而 v 1 v_1 v1只是一个值(不是状态值)

image.png

可以发现,值迭代与策略迭代的根本差异,在于基于贝尔曼最优公式求解状态值的过程

  • 值迭代:仅基于初始状态值,求解一次贝尔曼最优公式
  • 策略迭代:在策略评估部分,每次迭代求解贝尔曼公式(∞次)
    • *实际中,当两次迭代的状态值差异不大的时候,可以认为已经收敛了

而截断策略迭代就是更一般化的情况:迭代 j j j次计算状态值,其中 1 ≤ j < ∞ 1\leq j < \infin 1j<
image.png
注:实际上,策略评估与策略提升是一种非常通用的强化学习思想(称为通用策略迭代,GPI),并在许多后续的强化学习方法(如蒙特卡洛方法、时序差分学习等)中有着广泛应用。

  • 13
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 张正友标定法是一种相机标定方法,可以用于确定相机内部参数和外部参数。该方法基于相机成像原理,通过拍摄不同角度的标定板图像,利用图像中的特征点计算相机的内部参数和外部参数。该方法具有精度高、适用范围广等优点,被广泛应用于机器视觉、三维重建等领域。 该方法的具体步骤包括:选择标定板、拍摄标定板图像、提取图像特征点、计算相机内部参数和外部参数。其中,选择标定板需要考虑标定板的大小、形状、特征点数量等因素;拍摄标定板图像需要保证标定板在不同角度下都能被完整拍摄到;提取图像特征点需要使用特征点检测算法,如SIFT、SURF等;计算相机内部参数和外部参数需要使用张正友标定法的数学模型,通过最小化重投影误差来求解。 在实际应用中,张正友标定法需要注意以下几点:标定板需要保持平整,避免出现弯曲、扭曲等情况;标定板需要在不同角度下拍摄多张图像,以提高标定精度;标定板需要在光线充足、均匀的环境下进行拍摄,避免光线不足或过强导致标定精度下降。 总之,张正友标定法是一种重要的相机标定方法,掌握该方法对于机器视觉、三维重建等领域的研究具有重要意义。 ### 回答2: 张正友标定法是用于相机投影模型标定的一种方法,其原理是在一组已知物点与其图像坐标的情况下,通过求解相机内参矩阵和外参矩阵,从而得出相机的几何参数,可用于后续的相机运动估计和三维重建。 首先,需要准备一组已知的物点和其对应的图像坐标。物点最好组成一个三维坐标系,如在测量机中通过三维测量得到。接下来,通过张正友标定法求解相机的内参矩阵。内参矩阵包括了相机的焦距、像素尺寸、主点位置等参数,这些参数决定了像素坐标与实际物理坐标之间的转换关系。通过一些数学推导,可以得到内参矩阵的表达式,并且可以通过已知的物点和相应的图像坐标求解出内参矩阵。 接下来,需要求解相机的外参矩阵,即相机坐标系相对于物点坐标系的位姿关系。通过张正友标定法,可以得到物点在相机坐标系下的坐标,从而求解出相机的外参矩阵。外参矩阵包括了相机的旋转矩阵和平移向量,这些参数描述了相机在物点坐标系下的位姿。 最后,通过内参矩阵和外参矩阵,可以将相机坐标系下的物点坐标转换成像素坐标,从而可用于后续的三维重建和相机运动估计。需要注意的是,在实际应用中,因为测量误差和噪声的存在,标定误差会影响到后续的应用效果,所以需要对标定结果进行一定的误差分析和修正。 总而言之,张正友标定法是一种基于已知物点和其图像坐标的相机标定方法,通过求解相机的内参矩阵和外参矩阵,可得到相机的几何参数,进而实现三维重建和相机运动估计等应用,具有广泛的应用价值。 ### 回答3: 张正友标定法是一种常用的摄像机标定方法,它的主要思想是通过成像偏移量和焦距的测量来确定相机的内参矩阵和外参矩阵,从而实现对摄像机的校准。张正友标定法的流程主要分为以下几个步骤。 第一步,数据采集。采集一组已知尺寸的平面图案,例如棋盘格,同时记录下相机对图案的姿态(位置和姿态),姿态可以通过用相机拍摄不同姿态下的图案来得到。 第二步,提取图案角点。使用角点检测算法,例如Harris角点检测、SIFT角点检测等,从图像中提取出每个格子的四个角点。 第三步,计算图像坐标。对于每个角点,根据相机的内参矩阵和外参矩阵,可以计算出其在图像中的坐标。 第四步,标定相机内部参数。利用上一步得到的图像坐标和对应的实际坐标,使用最小二乘法等求解相机的内参矩阵。 第五步,标定相机外部参数。同样利用上一步得到的图像坐标和对应的实际坐标,使用求解PnP问题的算法可以得到相机的外参矩阵。 通过以上步骤,就可以获得相机的内参矩阵和外参矩阵,从而实现对摄像机的标定。在实际应用中,可以将标定结果用于建立相机-世界坐标系之间的转换关系,进而实现摄像机与物体的三维空间定位和跟踪等应用。 总之,张正友标定法是一种基于对摄像机成像原理的理解和应用的标定方法,是计算机视觉和机器视觉领域中常用的技术之一,也是深度学习等领域的前置步骤。掌握该方法的原理和实现技巧,对于进一步深入了解计算机视觉和机器视觉技术体系,以及开展实际应用有着重要的意义。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Green Lv

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值