首页 > 其他分享 >深度强化学习

深度强化学习

时间:2025-01-11 17:44:25浏览次数:1  
标签:函数 动作 网络 学习 神经网络 深度 强化

深度强化学习

表格来存储每一个状态state和Q值显然是不现实的,除了存储开销,搜索开销也非常巨大。深度强化学习(Deep Q Network)是强化学习与深度学习的结合,利用神经网络作为函数逼近器来解决高维或复杂状态空间下的强化学习问题。

其关键特征就是使用深度神经网络(DNN)代替表格化的值函数或策略。我们可以将状态和动作当成神经网络的输入,然后经过神经网络分析后得到动作的 Q 值,这样我们就没必要在表格中记录 Q 值,而是直接使用神经网络生成 Q 值。

image.png

参数的更新与强化学习里值函数近似相同,θ = θ + α * (VΠ(x) - Vθ(x)) * x ,梯度下降法,学习率乘以最小二乘误差的负导数。

DQN 2015(详见参考资料二)

这篇论文解决的是2D游戏场景下的决策问题,实现了端到端的模型,直接对游戏画面进行评估,输出Q值。这项工作弥合了高维感官输入和动作之间的鸿沟,从而产生了第一个能够学习在各种具有挑战性的任务中表现出色的人工代理。模型结构包括三层卷积层+两层全连接层,卷积层提取图片特征,全连接层作为动作-状态值函数计算每个动作的Q值。

image.png

算法详解

可以看到和Q-learning算法的思路是一致的,在当前状态下使用ε-贪心策略选择动作,使用下一个状态的状态-动作值函数的最大值更新当前状态的动作-状态值函数,然后再重复以上过程。

image.png

虽然叫QDN,但是这篇论文严格意义上只有MLP与NN有关的,前面的CNN只是对图像进行处理,换一个任务,输入不是图像,那么前面的三层CNN网络也就没有什么意义了。这篇工作不同于强化学习里的值函数近似,在于提出了经验回放Target Q-network。

克服非线性函数逼近的不稳定问题

  • 引入了两种核心技术:
    • 经验回放(Experience Replay):通过随机抽取回放记忆数据打破样本之间的相关性。
    • 目标网络(Target Network):使用延迟更新的目标网络来稳定目标值的计算,减少学习过程中的震荡和发散。

这里不再深究其设计的原理。

模型更新过程

分别有两个网络,一个是当前网络的参数θ,一个是目标网络的参数θ-,我们的目标是使当前网络无限接近于最优Q函数。

从缓冲区拿到批量(s, a, r, s'),将s'作为输入给目标网络θ-得到s'Q值,找到最大的Q(s', a')值计算目标值y

s作为当前网络θ的输入得到Q值,找出其中的Q(S, a),计算Loss,对梯度进行更新。

PS:这里一个很有趣的地方就是,正常理解的最小二乘损失是对网络所有的输出计算欧氏距离,即MLP网络输出了所有动作的Q值,但是这里只会计算Q(S, a)和y的最小二乘损失,用于梯度更新。而梯度更新的参数也不会是网络的全部参数,只会是参与了Q(s, a) 判断的参数。

深度强化学习参考资料

标签:函数,动作,网络,学习,神经网络,深度,强化
From: https://www.cnblogs.com/zcry/p/18665921

相关文章

  • 我在python上的学习方向
    前言    随着python学习的深入,接触的东西越来越多,要学习的东西也越来越多。但精力有限,必须有所取舍。因此必须追溯过去、立足现在、畅想未来,给自己一个指引。追溯过去        学python前        上学时学的是vb,也仅仅是考过了计算机二级的水平。......
  • html+css编程学习网站网页设计与制作5页
    一、......
  • 代码记录 -学习标定双目相机
     1、棋盘格拍照 20份以上importcv2importoscap=cv2.VideoCapture(1)#setthevideoframewidthandheightcap.set(3,1280)cap.set(4,480)ifnotos.path.exists("left"):os.makedirs("left")ifnotos.path.exists("right"):......
  • md学习DAY1
    Markdown学习DAY1标题三级标题四级标题字体粗体hello,world!斜体hello,world!斜体加粗hello,world!废除hello,world!引用选择疯狂包,成为包上包分割线图片超链接点击跳转到疯狂包子的博客列表ABCABC表格姓名性别出......
  • node.js基于大数据的在线教育平台课程推荐与学习行为分析研究程序+论文 可用于毕业设
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容一、选题背景关于在线教育平台的研究,现有研究主要集中在平台的构建、教学模式等方面。在大数据应用于在线教育方面,多以整体的教学效果分析为主,专门针对基于大数据的......
  • C++学习
    引入根据菜鸟教程学习,供自用打印helloworld#include<iostream>usingnamespacestd;intmain(){cout<<"HelloWorld"<<"\n";return0;}现象PSC:\Users\86177>cd"d:\DeskTop\cppstudy\";if($?){......
  • 使用 Baseten 部署和服务机器学习模型
    在现代机器学习的应用场景中,将模型成功部署到生产环境往往比模型训练本身更加复杂和重要。Baseten是一个强大的平台,它提供了部署和服务机器学习模型所需的所有基础设施。作为LangChain生态系统中的一个供应商,Baseten当前集成了一个组件:LLMs(大型语言模型),并且计划扩展更多......
  • 学习进度笔记④
    Windows系统安装部署Shapely教程 1、进入网址下载选择下图中的这个:2、然后在终端输入下载命令pipinstallShapely-1.8.2-cp310-cp310-win_amd64.whl......
  • 学习进度笔记⑤
    Zlib安装部署教程 1、进入网址,下载相应压缩包网址在此:传送解压压缩包;2、打开终端,进入解压的文件夹的路径nmake-fwin32/Makefile.msc接下来的步骤可以参考这个链接:传送门重定向目标完成:......
  • Elasticsearch学习4
    importcn.hutool.core.collection.CollUtil;importcn.hutool.core.convert.Convert;importcn.hutool.core.util.ObjectUtil;importcn.hutool.core.util.StrUtil;importcn.hutool.json.JSONObject;importcn.hutool.json.JSONUtil;importco.elastic.clients.elasticsearc......