【强化学习理论基础-通用】(13)从零开始白话给你讲[数学原理]:蒙特卡洛(MC Basic),model-base 到 model-free 关键之处
若需观看机器人系列相关博客,请劳驾至:【足式机器人无死角系列之-【强化学习基础-通用】、【仿真及训练环境】、【强化学习】:isaac-gym 与 isaac-lab 从零开始
郑重声明:该系列博客为本人 ( W e n h a i Z h u ) 独家私有 , 禁止转载与抄袭 , 首次举报有谢 , 若有需请私信授权! \color{red}郑重声明:该系列博客为本人(WenhaiZhu)独家私有,禁止转载与抄袭,首次举报有谢,若有需请私信授权! 郑重声明:该系列博客为本人(WenhaiZhu)独家私有,禁止转载与抄袭,首次举报有谢,若有需请私信授权!
疑问: 在前面的章节中,有提到过 model-base,大致的意思就是需要进行数学建模,比如说某个状态下执行某个动作的获得的奖励是多少。但是有的时候可能没有办法进行建模,或者说不想去建模。因为有的时候建模只能靠猜,猜得不一定准,如股票预测,如何建立一个准确的模型?有知道的朋友一定要偷偷告诉我。 |
本系列博客链接为: {\color{blue}本系列博客链接为:} 本系列博客链接为:【强化学习理论基础-通用】(01)从零开始白话给你讲,简单推导公式,深刻理解,一眼万年!:https://blog.csdn.net/weixin_43013761/article/details/143168169
本博客编写于: 20241028 ,台式机为 u b u n t u 20.04 , 3090 G e F o r c e R T X 显存 24 G { \color{purple} 本博客编写于:20241028,台式机为 ubuntu 20.04,3090 GeForce RTX 显存24G} 本博客编写于:20241028,台式机为ubuntu20.04,3090GeForceRTX显存24G:与你现在的代码,或者环境等存在一定差异也在情理之中,故切勿认为该系列博客绝对正确,且百密必有一疏,若发现错误处,恳请各位读者直接指出,本人会尽快进行整改,尽量使得后面的读者少踩坑,评论部分我会进行记录与感谢,只有这样,该系列博客才能成为精品,这里先拜谢各位朋友了。
文末正下方中心提供了本人 联系方式, 点击本人照片即可显示 W X → 官方认证,请备注 强化学习 。 {\color{blue}{文末正下方中心}提供了本人 \color{red} 联系方式,\color{blue}点击本人照片即可显示WX→官方认证,请备注\color{red} 强化学习}。 文末正下方中心提供了本人联系方式,点击本人照片即可显示WX→官方认证,请备注强化学习。
一、前言
通过前面系列博客的介绍,可以说关于贝尔曼相关的知识点都剖析过一遍了,已经熟悉了:从期望推导贝尔曼公式、矩阵形式贝尔曼方程如何推导、贝尔曼最优公式求解、策略迭代、价值迭代等。从这篇开始呢,步入到另外一个世界。前面讲解的博客,或者说迷宫游戏都是基于 model-base 的,后续我们将以 model-free 为主,逐步向主流方向靠近。这把 【强化学习理论基础-通用】(04)从零开始白话给你讲[数学原理]:贝尔曼(BellmanEquation)方程式,从期望出发,评估策略价值(state value) 中推导出来的 (24) 式复制过来一下:
v π ( s ) = ∑ a [ π ( a ∣ s ) [ ∑ r [ p ( r ∣ s , a ) r ] + γ ∑ s ′ [ p ( s ′ ∣ s , a ) v π ( s ′ ) ] ] ] ∀ s ∈ S (01) \color{green} \tag{01} v_{\pi}(s)=\sum_{a} \left[ \pi(a \mid s)[\sum_{r} \mathrm [p(r \mid s, a) r]+\gamma \sum_{s^{\prime}} \mathrm [p\left(s^{\prime} \mid s, a\right) {\color {green} v_{\pi}\left(s^{\prime}\right)}]]\right] ~~~~~~~{\color{green} \forall s \in \mathcal{S}} vπ(s)=a∑[π(a∣s)[r∑[p(r∣s,a)r]+γs′∑[p(s′∣s,a)vπ(s′)]]] ∀s∈S(01)在前面已经介绍过,称呼为这种预先给定 p ( r ∣ s , a ) p(r \mid s,a) p(r∣s,a), p ( s ′ ∣ s , a ) p(s' \mid s,a) p(s′∣s,a) 的算法称呼为 model-base,其实不管他们是怎么来的,只要其计算而来的过程没有被包含在上式 (01) 中,通常就称呼其为 m o d e l − b a s e {\color{purple}model-base } model−base 方法。因为对于他来说,这个概率值(模型)必须因爱于外部给定。
比如说,一款游戏,官方有说明,杀死一个怪物掉落金币为 800 800 800~ 900 900 900 的概率为 P = 30 % P=30\% P=30%,你用他去构建一个算法,该类算法就称呼为 m o d e l − b a s e model-base model−base 的。因为你这个算法有可能只适用于这个游戏,甚至需要基于 【杀死一个怪物掉落金币为 800 800 800~ 900 900 900 的概率为 P = 30 % P=30\% P=30%】这个前提条件下,这是你算法模型的固定参数,或者说你就是基于这个模型参数设置的,并不通用,所以说其是 m o d e l − b a s e model-base model−base 的。
那么什么叫做 m o d e l − f r e e \color{purple} model-free model−free,个人认为其不因依赖于特定场景,特殊化的参数,泛化能力强。就拿上面的例子来说,即使【杀死一个怪物掉落金币为 800 800 800~ 900 900 900 的概率为 P = 30 % P=30\% P=30%】这个基本条件,官方没有给出说,其 P = ? P=? P=? 就是一个未知的结果,当时你的算法,依旧能够适用,那么就可以称为 m o d e l − f r e e model-free model−free,其不受限具体的条件模型或者参数。那么问题来了,官方都没有给出,我如何去设计我的算法呢?