AI学习笔记——强化学习之Model-Free Prediction--解决未知环境下的预测问题

简介: 前面关于强化学习的文章中介绍了MDP,动态规划的方法对MDP问题的V函数进行评估和求最优策略。然而现实问题中,往往很多时候环境是未知的。那么这篇文章就介绍一下在未知环境下用Model Free的方法预测MDP。

前面关于强化学习的文章中介绍了MDP,动态规划的方法对MDP问题的V函数进行评估和求最优策略。然而现实问题中,往往很多时候环境是未知的。那么这篇文章就介绍一下在未知环境下用Model Free的方法预测MDP。

1. Monte-Carlo (蒙特卡洛)策略估计

Monte-Carlo(MC)方法广泛应用于数学、物理和金融等领域。比如在物理学中研究离子运动轨迹,我们就可以采用Monte-Carlo方法进行多次随机抽样,观测离子运动规律。

同样的,在解决强化学习问题的时候,机器人面对未知环境的时候,它也可以用MC的方法评估当前策略。如果想知道当前策略π,当前状态s下的价值函数V函数,在当前策略π下直接行动,待到达终点之后(完成一个episode),再复盘整个过程所获得的奖励,评估出s状态下的V函数。然后再不停迭代,最终获得该策略π下s状态下的真实V函数Vπ(s)。

当然Monte-Carlo策略估计方法也分为首次访问MC方法和每次访问MC方法,两者唯一的不同只有一处,下面算法过程中在括号中的就是每次访问MC方法。

算法过程如下:

  1. 在一个episode中,当s状态第一次被访问到(或者每次被访问到)的时候,计数器N(S)=N(S)+1。
  2. 总共得到的奖励S(s) = S(s) + Gt
  3. 价值V函数的数值V(s)= S(s) /N(s)
  4. 当迭代无数次之后,根据大数定理,V(s)就应该趋近真实的V函数Vπ(s)

2. Monte-Carlo(MC)迭代更新

在介绍Monte-Carlo迭代更新之前必须先引入一个迭代求平均的例子。比如你想算一箱苹果中苹果的平均重量,简单的方法是随机抽取几个苹果,将这几个苹果的重量相加再除以个数就估算出了苹果的平均重量。

如果想让这个估计更加精确,你又从箱子里面拿出一个苹果,这时候还需要将所有拿出来的苹果重量相加吗?当然不需要。你只需要将这个苹果的重量减去之前求得的平均数,再除以总共拿出苹果的数量得到误差。最后原平均数加上这个误差就是新的平均数了。证明过程如下。


img_5bdd31dd3899333ef564f2da9defb4ff.png

有了这个迭代求平均值的方法我们就可以改进MC算法,不用记住总共得到的奖励S(s)了

对于每个St,和奖励Gt


img_ae427e5bc9d92fa88676737b484b6617.png

其实我们甚至都不用记住N(St), 因为在非静态的(Non-Stationary)的问题中,如果N越大,就意味着误差越小,当前行动对V函数的纠正就越小。所以在实际过程中我们往往用一个固定的学习速率α来代替1/N(St):

img_6bdcb4f18f40111246645559adc7f96b.png

这个公式是不是跟之前的梯度下降(Gradient Desent)方法非常类似了。

3. Temporal-Defference (TD)算法

MC有一个很大的缺点,就是要更新V(s)一定要走完整个epsoide。TD方法不需要走完整个epsoide,走有限几步就可以更新,极端情况下TD(0)甚至可以走一步就更新。

回顾MC算法:
img_7b9897181b6cce697ef755dc0b620665.png

其中


img_02535887ddf446b44a5a1e19df1988dc.png
TD(0)算法:
img_6a3055de9ac2cce5407056ac9a21c235.png

如英文描述红色文字部分叫做TD-target。与MC类似括号里面的误差叫做TD error

4. MC vs TD

MC有高Variance 零Bias:

  • 收敛性好
  • 对初始值不敏感
  • 算法容易理解和使用

MC 对解决非马可夫环境(或者部分马可夫环境)效果好。

TD有低的Variance,一些Bias

  • 比MC效率高
  • TD(0)能收敛于Vπ(s)
  • 对初始值敏感

TD能探索出马可夫模型,对马可夫环境效果好。

5. DP,MC,TD比较

之前文章中介绍的动态规划(DP),与MC,TD相比较可以发现


img_ba46321447587f20ca424f075bb52bfb.png

从抽样的数量和反馈的深度可以这样理解DP,MC和TD


img_bdaf7f3fd1582c8fdb98defb94a1e03f.png

实际上TD不仅仅只有只走一步的TD(0), 可以是n TD(n)。当n等于无穷大的时候TD=MC


img_68512851f13a4f49d3499a9100dfb4f0.png
目录
相关文章
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
构建智能化编程环境:AI 与代码编辑器的融合
在人工智能的推动下,未来的代码编辑器将转变为智能化编程环境,具备智能代码补全、自动化错误检测与修复、个性化学习支持及自动化代码审查等功能。本文探讨了其核心功能、技术实现(包括机器学习、自然语言处理、深度学习及知识图谱)及应用场景,如辅助新手开发者、提升高级开发者效率和优化团队协作。随着AI技术进步,智能化编程环境将成为软件开发的重要趋势,变革开发者工作方式,提升效率,降低编程门槛,并推动行业创新。
|
2月前
|
人工智能 测试技术 API
AI计算机视觉笔记二十 九:yolov10竹签模型,自动数竹签
本文介绍了如何在AutoDL平台上搭建YOLOv10环境并进行竹签检测与计数。首先从官网下载YOLOv10源码并创建虚拟环境,安装依赖库。接着通过官方模型测试环境是否正常工作。然后下载自定义数据集并配置`mycoco128.yaml`文件,使用`yolo detect train`命令或Python代码进行训练。最后,通过命令行或API调用测试训练结果,并展示竹签计数功能。如需转载,请注明原文出处。
|
2月前
|
JSON 人工智能 数据格式
AI计算机视觉笔记二十六:YOLOV8自训练关键点检测
本文档详细记录了使用YOLOv8训练关键点检测模型的过程。首先通过清华源安装YOLOv8,并验证安装。接着通过示例权重文件与测试图片`bus.jpg`演示预测流程。为准备训练数据,文档介绍了如何使用`labelme`标注工具进行关键点标注,并提供了一个Python脚本`labelme2yolo.py`将标注结果从JSON格式转换为YOLO所需的TXT格式。随后,通过Jupyter Notebook可视化标注结果确保准确性。最后,文档展示了如何组织数据集目录结构,并提供了训练与测试代码示例,包括配置文件`smoke.yaml`及训练脚本`train.py`,帮助读者完成自定义模型的训练与评估。
|
11天前
|
机器学习/深度学习 传感器 人工智能
AI与环境保护:可持续发展的伙伴
在科技日新月异的时代,人工智能(AI)不仅改变了我们的生活和工作方式,还在环保和可持续发展领域发挥重要作用。AI通过环境监测、资源优化、垃圾分类、绿色出行和环保教育等多方面的应用,为环保事业注入新活力,推动社会向更加绿色、可持续的方向发展。
|
1月前
|
Python 机器学习/深度学习 人工智能
手把手教你从零开始构建并训练你的第一个强化学习智能体:深入浅出Agent项目实战,带你体验编程与AI结合的乐趣
【10月更文挑战第1天】本文通过构建一个简单的强化学习环境,演示了如何创建和训练智能体以完成特定任务。我们使用Python、OpenAI Gym和PyTorch搭建了一个基础的智能体,使其学会在CartPole-v1环境中保持杆子不倒。文中详细介绍了环境设置、神经网络构建及训练过程。此实战案例有助于理解智能体的工作原理及基本训练方法,为更复杂应用奠定基础。首先需安装必要库: ```bash pip install gym torch ``` 接着定义环境并与之交互,实现智能体的训练。通过多个回合的试错学习,智能体逐步优化其策略。这一过程虽从基础做起,但为后续研究提供了良好起点。
128 4
手把手教你从零开始构建并训练你的第一个强化学习智能体:深入浅出Agent项目实战,带你体验编程与AI结合的乐趣
|
1月前
|
机器学习/深度学习 人工智能 TensorFlow
解锁AI潜力:让开源模型在私有环境绽放——手把手教你搭建专属智能服务,保障数据安全与性能优化的秘密攻略
【10月更文挑战第8天】本文介绍了如何将开源的机器学习模型(如TensorFlow下的MobileNet)进行私有化部署,包括环境准备、模型获取与转换、启动TensorFlow Serving服务及验证部署效果等步骤,适用于希望保护用户数据并优化服务性能的企业。
56 4
|
2月前
|
人工智能 前端开发 云计算
本地搭建AI环境
本地搭建AI环境
|
2月前
|
人工智能 并行计算 PyTorch
AI计算机视觉笔记十八:Swin Transformer目标检测环境搭建
本文详细记录了Swin Transformer在AutoDL平台上的环境搭建与训练过程。作者从租用GPU实例开始,逐步介绍了虚拟环境的创建、PyTorch安装、mmcv及mmdetection的配置,并解决了安装过程中遇到的各种问题,如cython版本冲突等。最后,通过修改代码实现目标检测结果的保存。如需了解更多细节或获取完整代码,请联系作者。原文链接:[原文链接](请在此处插入原文链接)。
|
2月前
|
机器学习/深度学习 人工智能 PyTorch
AI计算机视觉笔记三十二:LPRNet车牌识别
LPRNet是一种基于Pytorch的高性能、轻量级车牌识别框架,适用于中国及其他国家的车牌识别。该网络无需对字符进行预分割,采用端到端的轻量化设计,结合了squeezenet和inception的思想。其创新点在于去除了RNN,仅使用CNN与CTC Loss,并通过特定的卷积模块提取上下文信息。环境配置包括使用CPU开发板和Autodl训练环境。训练和测试过程需搭建虚拟环境并安装相关依赖,执行训练和测试脚本时可能遇到若干错误,需相应调整代码以确保正确运行。使用官方模型可获得较高的识别准确率,自行训练时建议增加训练轮数以提升效果。
|
2月前
|
人工智能 开发工具 计算机视觉
AI计算机视觉笔记三十:yolov8_obb旋转框训练
本文介绍了如何使用AUTODL环境搭建YOLOv8-obb的训练流程。首先创建虚拟环境并激活,然后通过指定清华源安装ultralytics库。接着下载YOLOv8源码,并使用指定命令开始训练,过程中可能会下载yolov8n.pt文件。训练完成后,可使用相应命令进行预测测试。

热门文章

最新文章

下一篇
无影云桌面