深度强化学习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已成为现今的技术热点之一,无论学生还是工程师都希望 ...
随机推荐
- apply plugin: 'idea' --- gradle idea
如果你的项目使用了Gradle作为构建工具,那么你一定要使用Gradle来自动生成IDE的项目文件,无需再手动的将源代码导入到你的IDE中去了. 如果你使用的是eclipse,可以在build.gra ...
- oracle 10g提升cluster失败
一个今天升级10g集群环境到10.2.0.5.下载补丁p8202632_10205_Linux-x86-64.zip,解压安装并运行后.中途岛错误: I/O ERROR cannt reading o ...
- Swift 分类 结构体
感谢原作者:http://www.cocoachina.com/newbie/basic/2014/0612/8780.html 类和结构体是人们构建代码所用的一种通用且灵活的构造体.为了在类和结构体 ...
- 怎么会float交换器int
最近突然想知道编译器整数浮球开关是如何实现的,现在很多信息,但遗憾的是甚至没有这方面的记录,所以我决定实现自己的简单的整数浮点转 随着float开启int为例 double转int类似 在做强转之前 ...
- windown下linux子系统的安装和卸载
原文:windown下linux子系统的安装和卸载 安装 第一步 打开开发人员模式 第二步 勾选适用linux的window子系统 第三步 打开powershell 第四步 在PowerShe ...
- Windows下Apache+MySQL+PHP快速配置的几种方法
Apache MySQL PHP Windows WAMP 1.易思EasySiteServer服务器集成环境 v1.0 (推荐) 尔创互联为推广其ESPCMS而开发的一个小东东,很好用.零配置,完 ...
- WPF中,怎样将XAML代码加载为相应的对象?
原文:WPF中,怎样将XAML代码加载为相应的对象? 在前面"在WPF中,如何得到任何Object对象的XAML代码?"一文中,我介绍了使用System.Windows.Marku ...
- 扪心自问,强大的UI框架,给我们带来了什么?(作者因此写了一个GuiLite)
MFC, QT, MINIGUI, ANDROID, IOS,如果这些平台,你都使用过,在下真心佩服,也相信你对这篇文章最具有发言权,真心期待你的回复和建议. 这些著名的UI说出来都让人如雷贯耳,如果 ...
- WPF 3D 模型旋转
原文:WPF 3D 模型旋转 WPF 是 Microsoft 在 Framework3.0 中支持的一种技术,它能作出很绚丽的界面,同时它也支持3D的操作.在3D操作主要包括平移(Translate) ...
- (记录)mysql分页查询,参数化过程的坑
在最近的工作中,由于历史遗留,一个分页查询没有参数化,被查出来有sql注入危险,所以对这个查询进行了参数化修改. 一看不知道,看了吓一跳,可能由于种种原因,分页查询sql是在存储过程中拼接出来的,wh ...