深度强化学习day01初探强化学习
深度强化学习
基本概念
强化学习
强化学习(Reinforcement Learning)是机器学习的一个重要的分支,主要用来解决连续决策的问题。强化学习可以在复杂的、不确定的环境中学习如何实现我们设定的目标。
深度学习
深度学习(Deep Learning)也是机器学习的一个重要分支,也就是多层神经网络,通过多层的非线性函数实现对数据分布及函数模型的拟合。(从统计学角度来看,就是在预测数据分布,从数据中学习到一个模型,然后通过这个模型去预测新的数据)
深度强化学习
深度强化学习(Deep Reinforcement Learning)是一种用于做决策(Decision Making)学习的算法,深度学习善于做非线性拟合,强化学习适合做决策学习。二者结合形成了深度强化学习算法。
初探强化学习
定义:受到行为心理学启发,强化学习主要在关注智能体如何在环境中采取不同的行动,以最大限度地提高累积奖励。
基本框架:智能体(Agent)、环境(Environment)、状态(State)、动作(Action)、奖励(Reward)

核心元素
- 智能体:强化学习的本体,作为学习者和决策者。
- 环境:强化学习智能体以外的一切,主要由状态集构成。
- 状态:表示环境的数据。状态集是环境中所有可能的状态。
- 动作:智能体可以做出的动作。动作集是智能体可以做出的所有动作。
- 奖励:智能体在执行一个动作后,获得的正/负奖励信号。奖励集是智能体可以获得的所有反馈信息,正/负奖励信号亦可称作正/负反馈信号。
- 策略:强化学习是从环境状态到动作的映射学习,该映射关系称为策略。(即:智能体选择动作的思考过程为策略)
- 目标:智能体自主寻找在连续时间序列里的最优策略,而最优策略通常指最大化长期累积奖励。
因此,强化学习实际上是智能体在与环境进行交互的过程中,学会最佳决策序列。
强化学习和机器学习
著名的机器学习十大算法:
- 决策树
- 支持向量机SVM
- 随机森林
- 逻辑回归
- 朴素贝叶斯
- KNN算法
- K-means算法
- AdaBoost算法
- Apriori算法
- PageRank算法
强化学习和机器学习的关系

强化学习和监督学习
区别
- 两者学习方式不尽相同。
- 两者所需的数据类型有差异,监督学习需要多样化的标签数据,强化学习则需要带有回报的交互数据。
学习方式
监督学习
监督学习是对数据进行分析,找到数据的表达模型;然后利用这个模型,在新输入的数据上进行决策(即主要分为训练阶段和预测阶段)。学习只发生在训练阶段,该阶段会出现一个预测阶段不会出现的监督信号。
强化学习
智能体在与环境的互动中,通过不断探索与试错的方式,利用基于正/负奖励的方式进行学习。强化学习的学习过程与生物的自然学习过程非常相似。
先验知识与标注数据
强化学习不需要像监督学习那样依赖先验知识数据,它通过自我博弈的方式产生更多的标准数据。强化学习可以利用较少的训练信息,让系统自主学习补充更多信息使整个系统不受标注数据和先验知识的限制。
拿围棋游戏来说,围棋的棋谱数据很容易获得,这些数据都是人类玩家的动作行为记录。如果利用监督学习模型建模,模型模拟出的对弈技能很有可能只局限在所收集的有限棋谱内。当出现新的下棋方式时,模型可能就因为找不到全局最优解而棋力大减。强化学习模型则不同,它可以利用系统自我学习和奖励的方式,让系统自动学习更多棋谱或者进行智能体间的博弈,这样可以为系统补充更多棋谱信息,进而免受监督者的限制。
深度强化学习day01初探强化学习的更多相关文章
- c++学习day01基础知识学习
一.代码示例解析: #include <iostream> int main() { using namespace std; cout << "come up an ...
- [强化学习]Part1:强化学习初印象
引入 智能 人工智能 强化学习初印象 强化学习的相关资料 经典书籍推荐:<Reinforcement Learning:An Introduction(强化学习导论)>(强化学习教父Ric ...
- 强化学习之 免模型学习(model-free based learning)
强化学习之 免模型学习(model-free based learning) ------ 蒙特卡罗强化学习 与 时序查分学习 ------ 部分节选自周志华老师的教材<机器学习> 由于现 ...
- Model-Agnostic Meta-Learning for Fast Adaptation of Deep Networks(用于深度网络快速适应的元学习)
摘要:我们提出了一种不依赖模型的元学习算法,它与任何梯度下降训练的模型兼容,适用于各种不同的学习问题,包括分类.回归和强化学习.元学习的目标是在各种学习任务上训练一个模型,这样它只需要少量的训练样本就 ...
- (zhuan) 深度学习全网最全学习资料汇总之模型介绍篇
This blog from : http://weibo.com/ttarticle/p/show?id=2309351000224077630868614681&u=5070353058& ...
- linux ubuntu 学习总结(day01)基本命令学习
个人总结,请尊重版权,转载请在显眼地方注明出处:https://www.cnblogs.com/sunshine5683/p/9948259.html day(01)基本命令学习 今天开始自学linu ...
- (转)2019年 React 新手学习指南 – 从 React 学习线路图说开去
原文:https://www.html.cn/archives/10111 注:本文根据 React 开发者学习线路图(2018) 结构编写了很多新手如何学习 React 的建议.2019 年有标题党 ...
- JavaWeb学习总结-04 Servlet 学习和使用
一 Servlet 1 Servlet概念 Servlet时运行在服务器端的Java程序. Servlet的框架核心是 javax.servlet.Servlet 接口. 所有自定义的Servlet都 ...
- 如何学习FPGA?FPGA学习必备的基础知识
如何学习FPGA?FPGA学习必备的基础知识 时间:2013-08-12 来源:eepw 作者: 关键字:FPGA 基础知识 FPGA已成为现今的技术热点之一,无论学生还是工程师都希望 ...
随机推荐
- ListView 泛利
0ListView基本属性 1介绍 Listview节约内存的几种写法 2技巧一:解决ListView的ItemView中带有Button时,OnItemClick无效的问题 3技巧二Listvie ...
- 开启win10下Ubuntu子系统的SSH服务
原文:开启win10下Ubuntu子系统的SSH服务 版权声明:本文为博主原创文章,未经博主允许不得转载. http://blog.csdn.net/zhouzme https://blog.csdn ...
- 在VS2005中设置WPF中自定义按钮的事件
原文:在VS2005中设置WPF中自定义按钮的事件 上篇讲了如何在Blend中绘制圆角矩形(http://blog.csdn.net/johnsuna/archive/2007/08/13/17407 ...
- memmove、memccpy和memcpy
这三个函数都是内存拷贝,目的都是将N个字节的源内存地址的内容拷贝到目标内存地址中. void *memmove(void *dest,void*src,int count) v ...
- stream 文件操作
简单的帮助类: private static byte[] StreamToBytes(Stream fs) { byte[] bArr = new byte[fs.Length]; fs.Read( ...
- Spring综合Struts2
1.1. Spring综合Struts2 1) 该Spring用户手机WEB-INF下一个 2) 把Spring配置文件配置到web.xml中 <!-- 引入Spr ...
- ubuntu如何修改terminal终端的主机名(修改/etc/hostname文件)
有时候安装完Ubuntu系统后,打开命令终端,终端显示的主机名格式比较难看,例如 我最近买的国内某云的VPS. xxx@VM-1560-ubuntu$ xxx@VM-1560-ubuntu$ 对于有洁 ...
- LAN公布java web项目的方法的外侧
1.进入路由器设置页面:http://192.168.1.1 2.找到"转发规则"选项,我现在的路由器tp-link,不同型号tp-link"转发规则"选项位置 ...
- html5 命运之轮生产
码,如以下: <%@ page language="java" contentType="text/html; charset=UTF-8" pageEn ...
- WCF的几个注意事项
wcf托管服务注意的问题 加上项目分为客户端-WCF服务-逻辑层-数据库三层wcf一直出现异常,说没有初始化啊之类的,如果你的逻辑代码确定没有问题的话,思考是不是wcf的配置文件(app.config ...