DQN核心思想理解
看过Deep learning(convolutional neural network),看过RL(Q-learning)。但是在两者结合这一块一直弄不明白。
我的疑问在于一直不明白DL是怎样识别出那个特定的物体,比如,木板或者小鸟。以及Q-learning怎样做决策。
后来才发现,DQN的核心思想并没有识别出特定物体。
DQN里面的Deep learning部分,输入是原始图像,输出是action对应的Q值(类似于有这么多action类,每一类的概率值)。原始图像就是当前state (current state),把当前state输入到Deep Learning里面,以计算在该state下对应的各Action的Q值。
有人问,那这怎么计算啊。我们都知道在RL里面,Q值是通过Reward来更新的。但是在DQN里面,Q值是直接算出来的。你可以把中间的neural network部分,看成一个函数f,最后输出的Q(s,a) 就等于 f(s)。这是非常不同的一点。
这样就算了,那感觉和Q-learning也没多少联系啊。联系在于neural network的loss function部分。我们都知道neural network是需要训练后,才能正常工作的。既然要对Neural network进行训练,那么Loss function就是必须的。那么怎样定义这个loss function呢?我们都知道这个loss function是对neural network的输出Q值进行更新的一个函数。Q值更新?似曾相识啊,这个Q值更新我们参考《Reinforcement Learning: An Introduction》2nd sutton教材的P142页:

这个就是Q值的Q-learning更新公式。我们就用这个公式来做loss function,保证最后得到的Q值是最优的。
至于怎样训练,就是类似于RL的通用方法,通过经验值计算。思想就是,大量模拟,在数量达到一定阶段后,这个得到的Q值就非常接近真实的Q值了。学名叫做experience replay(经验池),可以参考蒲丰投针实验。(其实这一点有点模糊,在RL里面,为什么Q会趋近于真实值Q,一是因为有实际的环境模拟,二是因为有一个Reward,这个Reward是按照一个终值的确定Reward,一点点往前面state传递的,所以在很多episodes后,Q值最终会趋向稳定。但是在Neural Network中,这种前后states之间的联系是如何保证的?以及为什么这样计算他就也能像Q-learning那样收敛?难道是weights的原因,毕竟前后states是用同一个neural network。这里有待进一步弄清楚)
References:
https://zhuanlan.zhihu.com/p/21421729
DQN核心思想理解的更多相关文章
- Rookey.Frame v1.0 视频教程之三发布-框架核心思想介绍
本期发布视频: (三)Rookey.Frame v1.0框架核心思想 介绍了Rookey.Frame v1.0框架搭建的核心思想,将框架核心思想理解清楚,对框架运行就会得心应手 官方视频教程: htt ...
- 《深入理解Spark:核心思想与源码分析》——SparkContext的初始化(叔篇)——TaskScheduler的启动
<深入理解Spark:核心思想与源码分析>一书前言的内容请看链接<深入理解SPARK:核心思想与源码分析>一书正式出版上市 <深入理解Spark:核心思想与源码分析> ...
- 《深入理解Spark:核心思想与源码分析》(前言及第1章)
自己牺牲了7个月的周末和下班空闲时间,通过研究Spark源码和原理,总结整理的<深入理解Spark:核心思想与源码分析>一书现在已经正式出版上市,目前亚马逊.京东.当当.天猫等网站均有销售 ...
- 《深入理解Spark:核心思想与源码分析》(第2章)
<深入理解Spark:核心思想与源码分析>一书前言的内容请看链接<深入理解SPARK:核心思想与源码分析>一书正式出版上市 <深入理解Spark:核心思想与源码分析> ...
- 《深入理解Spark:核心思想与源码分析》一书正式出版上市
自己牺牲了7个月的周末和下班空闲时间,通过研究Spark源码和原理,总结整理的<深入理解Spark:核心思想与源码分析>一书现在已经正式出版上市,目前亚马逊.京东.当当.天猫等网站均有销售 ...
- 《深入理解Spark:核心思想与源码分析》正式出版上市
自己牺牲了7个月的周末和下班空闲时间,通过研究Spark源码和原理,总结整理的<深入理解Spark:核心思想与源码分析>一书现在已经正式出版上市,目前亚马逊.京东.当当.天猫等网站均有销售 ...
- Spring核心思想:“控制反转”,也叫“依赖注入” 的理解
@Service对应的是业务层Bean,例如: @Service("userService") public class UserServiceImpl implements Us ...
- Hibernate核心思想—ORM机制(一)
转:http://blog.csdn.net/wanghuan203/article/details/7566518 hibernate是一个采用ORM(Object/Relation Mapping ...
- python中 and 和 or 运算的核心思想 ——— 短路逻辑
python中 and 和 or 运算的核心思想 --- 短路逻辑 1. 包含一个逻辑运算符 首先从基本的概念着手,python中哪些对象会被当成 False 呢?而哪些又是 True 呢? 在Pyt ...
随机推荐
- js中的闭包理解一
闭包是一个比较抽象的概念,尤其是对js新手来说.书上的解释实在是比较晦涩,对我来说也是一样. 但是他也是js能力提升中无法绕过的一环,几乎每次面试必问的问题,因为在回答的时候.你的答案的深度,对术语的 ...
- JSONP原理及简单实现
在web2.0时代,熟练的使用ajax是每个前端攻城师必备的技能.然而由于受到浏览器的限制,ajax不允许跨域通信. JSONP就是就是目前主流的实现跨域通信的解决方案. 虽然在在jquery中,我们 ...
- 在ubuntu下使用Eclipse搭建Hadoop开发环境
一.安装准备1.JDK版本:jdk1.7.0(jdk-7-linux-i586.tar.gz)2.hadoop版本:hadoop-1.1.1(hadoop-1.1.1.tar.gz)3.eclipse ...
- nginx自动部署脚本
需要下载脚本中需要的jar包nginx.pcre和zlib,自己也上传了一个自己部署的包 https://download.csdn.net/download/qq_17842663/10822976 ...
- sharding-jdbc集成spring+mybatis分表分库
maven: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http ...
- idea 下 启动maven项目,mybatis报错 Error parsing SQL Mapper Configuration. Cause: java.io.IOException。。。。。
我的具体报错日志是 Error parsing SQL Mapper Configuration. Cause: java.io.IOException Could not find resou ...
- Agile software Development
转自:https://www.cnblogs.com/kkun/archive/2011/07/06/agile_software_development.html 敏捷软件开发 Agile soft ...
- <<数学传奇>>概述
简介 在网易公开课上看完了蔡天新教授的<<数学传奇>>,课程共10集.分别讲述了古希腊的毕达哥拉斯.波斯(伊朗)的 花拉子密和欧玛尔.海亚姆.中国的秦九韶.英国的牛顿.法国的笛 ...
- linux系统mysql主主复制(双主复制)
一.简介 在上一篇的主从复制中:http://www.cnblogs.com/lay2017/p/9043985.html 我们了解到,mysql通过master写日志,slave读取并执行日志内容从 ...
- mysql存储过程优化
示例 WHILE s <> 1 DO select xxx; insert into xxx; END WHILE; 执行耗时27秒 优化点1: 添加事物 START TRANSACTIO ...