【学习】Q learning、Q-learning for continuous actions、关于深度学习的猜想

news2024/12/23 5:22:58

文章目录

  • 一、Q learning
      • 评估状态值函数Vπ(s)
        • MC
        • TD
      • double DQN
      • dueling DQN
      • prioritized reply
      • multi-step
      • noisy net
      • distributional
      • rainbow
  • 二、Q-learning for continuous actions
  • 三、关于深度学习的猜想


一、Q learning

value-based的方法,评论家不会直接决定行动。给定一个演员π,它评价这个演员有多优秀。状态值函数Vπ(s):当使用行动者π时,累积奖励期望在访问状态s后获得(预测)。
在这里插入图片描述
critic是绑定了某个actor预测这个actor的分数。

评估状态值函数Vπ(s)

MC

在这里插入图片描述
要把游戏玩到结束,才能更新网络参数,得出分数。

TD

在这里插入图片描述
MC的随机性大,所以有很大的方差;而TD方法不一定是准确的。
在这里插入图片描述
在这里插入图片描述
状态-动作值函数Qπ(s,a),当使用行动者π时,期望在状态s采取a后获得累积奖励。
action是无法穷举的就要左边的,右边的式子仅用于离散动作
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
一直循环之后就会得到好的方程。
给出所有action,找到会让Q最大的动作,就是π’。但是这个不适合a是连续的情况(a是离散的适合)
在这里插入图片描述
在这里插入图片描述
实际上Q’是会变的,那我们的目标就会一直在变(让Q接近Q’),所以我们要固定住一个Q’,更新另一个Q。更新了很多次Q,我们就更新一次Q‘。
在这里插入图片描述
如果是没有看过的动作,那可能都会是初始化的估值,而只要看过一个,那就是1的Q,其他都是0,就不会试试其他的动作。
在这里插入图片描述
epsilon greedy:E在刚开始训练的时候值比较大,后面就会变小。E一般是很小的值,有很大概率用来估测Q,而小概率是用随机性。在action 空间里面加noisy。
Boltzmann Exploration:对Q取对数然后做常规化(除Q的对数的和)。在刚开始Q的输出分布可能是很一致的。
在这里插入图片描述

把所有收集的资料都放到replay buffer里面(可能有以前训练的不同的policy计算的数据,满了才会丢掉),存的是s,a,r,s。
在这里插入图片描述
好处:同一个batch有多种多样的资料,这样会避免让网络坏掉。虽然有过去的资料,但是这样是没问题的。这样类似于off-policy的做法,不会那么花时间去收集资料。
在这里插入图片描述
上面的错误:是从buffer里面取batch。

double DQN

在这里插入图片描述
DQN总是高估(穷举所有的a让Q最大的那个a)
在这里插入图片描述
double DQN选择a的那个Q和计算Q不一样。如果Q高估了a,那么它被选中。Q’会给它适当的值。
Q '高估怎么样?Q不会选择该动作。
在这里插入图片描述
用能更新参数的Q去选择a,用固定参数的Q’去计算value。

dueling DQN

唯一的改变:改变网络的结构。
在这里插入图片描述
在这里插入图片描述

更新V之后,就会更新Q,这样就会有效率
在这里插入图片描述

prioritized reply

对于buffer里面的数据,如果有些数据是比较重要的,而有些数据是训练不好的,那就不能一致取样。先前训练中TD误差较大的数据被采样的概率较高。
在这里插入图片描述
不止改变取样数据的分布,也改变训练的过程。

multi-step

MC和TD之间的平衡
在这里插入图片描述
结合两个方法,取样了多个step之后才估测value,估测的部分的影响就会比较轻微。因为加入了N项r,所以variance就会比较大,可以调整N,让它平衡。

noisy net

在参数的空间上加noisy。在Q网络的 参数上面加噪声得到Q~。
把每个参数都加上噪声。在每集开始之前将噪声注入Q函数的参数中(得到action之前),得到的这个就是Q~就是固定住参数的,用来训练的。
在同一个episode里面,Q~的参数是固定的,只有下一个episode才更新参数,重新取样噪声。
在这里插入图片描述
动作噪音noise on action:给定相同的状态,代理agent可能采取不同的动作(epsilon greedy,因为是在action里面加上噪声,随机性大)。没有真正的策略是这样运作的(希望同样的状态得到一样的动作)。
参数噪声noise on parameters:给定相同(相似)的状态,代理采取相同的动作。→依赖于状态的探索exploration,以一致的方式探索。在一个episode里面,网络的参数是一致的,所以同一个状态会输出一样的东西。
在这里插入图片描述

distributional

状态-动作值函数Qπ(s,a):当使用行动者π时,期望在看到观察值s并采取a后获得累积奖励。
不同的分布可以有同样的期望expectation。这时候就会有些loss,有些信息是没有用到的。
在这里插入图片描述
每个动作有5个框,可以选择同样期望,但是风险更小的动作。(这种方法可以输出概率分布,同一个动作的分布总和是1)
在这里插入图片描述
这里可能会有低估reward的情况,会把极端的值丢掉。

rainbow

混合所有的方法
在这里插入图片描述
去掉某一种方法之后:

在这里插入图片描述
避免高估奖励才加了双DQN

二、Q-learning for continuous actions

estimate Q方程比较容易,只要得到Q方程,就能得到好的策略。问题:不容易处理连续的动作。
在之前,动作是离散的,就能穷举所有的a,算出最好的a。
方法1:取样得到N个a,找到最大的a。但是不能取样所有的a,所以可能不准确。
方法2:使用梯度上升的方法解决最优化问题。问题:全局最大问题,运算量也很大,还要循环更新参数。
方法3:特别设计Q网络去让最优化容易。Q方程是输入s和a,输出V。先输入s,得到三东西(向量,矩阵,数值),然后输入a,让a和μ相减,a此时是连续的向量,然后做其他的运算。这里我们需要让Q最大,也就是第一项最小,那就能让最大的a=μ(s).在这里μ是高斯均值,Σ(s)是正定的variance(在Qπ里面不是直接输出这个矩阵,而是跟一个矩阵做transpose相乘,保证是正定的)。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三、关于深度学习的猜想

几乎所有的局部最小值都具有与全局最优值非常相似的损失,因此找到一个局部最小值就足够了。
当我们遇到一个临界点时,它可能是鞍点或局部最小值。
在这里插入图片描述
有个正和一个负的就是saddle point
在这里插入图片描述
当E比较小的时候,特征值很可能是正的,那就可能遇到局部最小值。saddle point比较容易出现在loss高的地方,局部最小值容易出现在loss低的地方。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
当critical point越像局部最小值,training error就越接近0.
在这里插入图片描述
在这里插入图片描述
深度学习与具有7个假设的spin glass模型相同。
在这里插入图片描述
模型越大,loss越接近一个较低的值。
如果网络的规模足够大,我们可以通过梯度下降找到全局最优解,独立于初始化。
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/147233.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

低度酒“百家争鸣”,谁能俘获年轻人的芳心?

【潮汐商业评论/原创】随着消费升级和女性消费力量的崛起,“她经济”逐渐成为新零售消费环境下一道“靓丽风景线”。女性消费者的消费偏好和消费习惯,正在促使低度酒、食品、服装、护肤、美妆、家居、育儿等行业发生新的变革。特别是酒水市场&#xff0c…

Spring Boot学习篇(八)

Spring Boot学习篇(八) 1.thymeleaf模板引擎使用篇(二) 1.1 配置通过地址栏直接访问html页面 1.1.1 在zlz包下创建filter包,其目录结构如下所示 1.1.2 在filter包下创建HTMLFilter类,其内容如下所示 package com.zlz.filter;import javax.servlet.*; import javax.servlet.…

启用分页机制

前言 本博客记录《操作系统真象还原》第五章第2个实验的操作~ 实验环境:ubuntu18.04VMware , Bochs下载安装 实验内容:启动内存分页机制 实验原理:内存分页机制 前置知识 前置知识可食用内存分页机制 代码 include/boot.in…

UML类图入门实战

介绍 UML——Unified modeling language UML (统一建模语言),是一种用于软件系统分析和设计的语言工具,它用于帮助软件开发人员进行思考和记录思路的结果。 UML 本身是一套符号的规定,就像数学符号和化学符号一样,这些符号用于描述…

设计模式学习(二):Adapter适配器模式

一、什么是Adapter模式我们先举个例子:如果想让额定工作电压是直流12V的笔记本电脑在交流220V的电源下工作,应该怎么做呢?通常,我们会使用适配器,将家庭用的交流220V电压转换成我们所需要的直流12V电压。这就是适配器的工作&…

Hive数据仓库简介与安装

文章目录Hive数据仓库简介及安装配置一、数据仓库简介1. 什么是数据仓库2. 数据仓库的结构1)数据源2)数据存储与管理3)OLAP服务器4)前端工具3. 数据仓库的数据模型1)星状模型2)雪花模型二、Hive简介1. 什么…

【踩坑总结】解决pycharm下载依赖一直失败的问题

目录前言正文问题复现问题本质解决方案补充总结检查是否安装成功下载的依赖存在哪总结前言 pycharm下载依赖失败这个问题对于我来说已经是个老生常谈的问题,与之共交手三次。 首次交锋是在大二利用 树莓派 做图像采集传输时,在树莓派的ubantu上使用pyt…

docker 容器使用 loki 插件收集日志

相关资料: The log-opts in the /etc/docker/daemon.json is not relaoded - General Discussions - Docker Community ForumsRecently I want to use loki-log-driver to ship logs to the loki server. The docker-deamon is controlled by systemd. The /etc/docker/daemon…

Day2 Spring

1 BeanFactory 与ApplicationContext的关系BeanFactory与ApplicationContext的关系BeanFactory是Spring的早期接口,称为Spring的Bean工厂,ApplicationContext是后期更高级接口,称之为Spring 容器;ApplicationContext在BeanFactory基础上对功能…

Pytorch 多层感知机

一、什么是多层感知机 多层感知机由感知机推广而来,最主要的特点是有多个神经元层,因此也叫深度神经网络(DNN: Deep Neural Networks)。 二、如何实现多层感知机 1、导入所需库并加载fashion_mnist数据集 %matplotlib inline import torch import to…

java弹幕视频网站源码

简介 Java基于ssm的弹幕视频系统,用户注册后可以上传视频进行投稿,也可以浏览视频发送弹幕,在个人中心管理视频、管理弹幕、管理评论等。管理员可以管理视频弹幕评论,查看统计图。 演示视频: https://www.bilibili.c…

CVE-2020-0014 Toast组件点击事件截获漏洞

文章目录前言漏洞分析组件源码触摸属性漏洞利用POC分析漏洞复现漏洞修复总结前言 Toast 组件是 Android 系统一个消息提示组件,比如你可以通过以下代码弹出提示用户“该睡觉了…”: Toast.makeText(this, "该睡觉了…", Toast.LENGTH_SHORT)…

C语言文件操作-从知识到实践全程

目录 引入 文件的打开和关闭 文件如何使用程序来打开? 绝对路径需要转义字符 fopen函数 fclose函数 文件的打开方式(fopen第二参数const char* mode): 文件的顺序读写 fgetc和fputc的使用 fputc fgetc fgets和fputs的使用 fputs fgets perror的使用 fprint…

哪些程序员适合自由工作?(附平台推荐)

在早些时候进行远程办公,接私活或者跨国进行编程,赚点外快等也不是什么奇怪的事情。但是那时候没有人想到会把这些工作完全变成自己的主要业务——也就是我们说的自由工作。也不知道是哪一个第1个吃了螃蟹的人发现自由工作还不错,于是经过后面…

【JavaScript】DOM 学习总结-基础知识

获取元素方法: // 获取三个非常规的标签 console.log(document.documentElement) console.log(document.head) console.log(document.body)通过id/class获取:getElementById / getElementsByClassName // 获取常规的用id,class,tag var boxdocument.g…

Android 自定义Activity的主题

一. 前言 当在某个app中做一个新界面时, 我们要考虑一下主题风格相符合一致. 本篇文章讲解的是,如何新创建的Activity 与整个app主题符合, 特别是状态栏的颜色需要和这个app的状态栏颜色保持一致. 在读本篇文章之前, 可以移步一下笔者之前写的文章:Android style&#xf…

代码随想录算法训练营第十一天字符串 java :20. 有效的括号 1047. 删除字符串中的所有相邻重复项 150. 逆波兰表达式求值

文章目录Leetcode 20. 有效的括号题目详解数据结构 双端队列(deque)Deque有三种用途:思路报错Ac代码Leetcode1047. 删除字符串中的所有相邻重复项题目详解数据结构 ArrayDeque类思路AC代码150. 逆波兰表达式求值题目详解报错难点AC代码收获Leetcode 20. 有效的括号 …

系分 - 系统设计

个人总结,仅供参考,欢迎加好友一起讨论 文章目录系分 - 系统设计考点摘要系统设计软件设计软件架构设计结构化设计概要设计详细设计处理流程设计流程工作流活动及其所有者工作项工作流管理系统WFMS的基本功能WFMS的组成WRM流程设计工具用户界面设计/人机…

python算法与数据结构1-算法、数据结构、链表

目录1、算法的概念1.1 举例:1.2 算法的五大特性:1.3 时间复杂度1.4 空间复杂度2、数据结构2.1 内存的存储结构2.2 数据结构的分类2.3 顺序表存储方式3、链表3.1链表实现3.2链表的方法3.3链表增加节点3.4链表删除节点3.5链表总结1、算法的概念 算法与数据…

(Java高级教程)第三章Java网络编程-第三节:UDP数据报套接字(DatagramSocket)编程

文章目录一:Java数据报套接字通信模型二:相关API详解(1)DatagramSocket(2)DatagramPacket三:UDP通信示例一:客户端发送什么服务端就返回什么(1)代码&#xff…