http://zh.gluon.ai/chapter_crashcourse/introduction.html

强化学习(Reinforcement Learning)

如果你真的有兴趣用机器学习开发一个能与周围环境交互并产生影响的智能体,你大概需要专注于强化学习(以下简称RL)。包括机器人程序、对话系统、甚至是电子游戏AI的开发。深度强化学习(Deep reinforcement learning,DRL) 将深度神经网络应用到强化学习问题上是新的风潮。这一领域两个突出的例子,一个是突破性的Deep Q Network,仅仅使用视觉输入就在街机游戏上击败了人类;另一个是著名的AlphaGo击败了围棋世界冠军

强化学习给出了一个非常笼统的问题陈述,一个智能体在一系列的时间步长(time steps) 中与周围的环境交互。在每个时间步长 tt, 智能体从环境中接收到一些观察数据 otot,并选择一个动作 atat,将其传送回环境。最后,智能体会从环境中获得一个奖励(reward) rtrt。由此,智能体接收一系列的观察数据,并选择一系列的后续动作,并一直持续。RL 智能体的行为受到策略(policy) 约束。简而言之,所谓的策略,就是一组(对环境的)观察和动作的映射。强化学习的目标就是制定一个好的策略。

RL框架的普适性并没有被夸大。例如,我们可以将任何监督学习问题转化为RL问题。譬如分类问题。我们可以创建一个RL智能体,每个分类都有一个对应的动作;然后,创建一个可以给予奖励的环境,完全等同于原先在监督学习中使用的损失函数。

除此以外,RL还可以解决很多监督学习无法解决的问题。例如,在监督学习中,我们总是期望训练使用的输入是与正确的标注相关联。但在RL中,我们并不给予每一次观察这样的期望,环境自然会告诉我们最优的动作,我们只是得到一些奖励。此外,环境甚至不会告诉我们是哪些动作导致了奖励。

举一个国际象棋的例子。唯一真正的奖励信号来自游戏结束时的胜利与否;如果赢了,分配奖励1;输了,分配-1;而究竟是那些动作导致了输赢却并不明确。因此,强化学习者必须处理信用分配问题(credit assignment problem)。另一个例子,一个雇员某天被升职;这说明在过去一年中他选择了不少好的动作。想要继续升职,就必须知道是那些动作导致了这一升职奖励。

强化学习者可能也要处理部分可观察性(partial observability)的问题。即当前的观察结果可能无法反应目前的所有状态(state)。一个扫地机器人发现自己被困在一个衣柜里,而房间中所有的衣柜都一模一样,要推测它的精确位置(即状态),机器人需要将进入衣柜前的观察一并放入考虑因素。

最后,在任何一个特定的时刻,强化学习者可能知道一个好的策略,但也许还有不少更优的策略,智能体从未尝试过。强化学习者必须不断决策,是否利用 目前已知的最佳战略作为策略,还是去探索 其它策略而放弃一些短期的奖励,以获得更多的信息。

马尔可夫决策过程,赌博机问题

一般的强化学习问题的初期设置都很笼统。动作会影响后续的观察数据。奖励只能根据所选择的动作观察到。整个环境可能只有部分被观察到。将这些复杂的因素通盘考虑,对研究人员来说要求有点高。此外,并非每一个实际问题都表现出这些复杂性。因此,研究人员研究了一些强化学习问题的特殊情况

当环境得到充分观察时,我们将这类RL问题称为马尔可夫决策过程(Markov Decision Process,简称MDP)。 当状态不依赖于以前的动作时,我们称这个问题为情境式赌博机问题(contextual bandit problem)。当不存在状态时,仅仅是一组可选择的动作,并在问题最初搭配未知的奖励,这是经典的多臂赌博机问题(multi-armed bandit problem)

李沐大神,讲的真是清楚。

mxnet 动手学深度学习的更多相关文章

  1. 【动手学深度学习】Jupyter notebook中 import mxnet出错

    问题描述 打开d2l-zh目录,使用jupyter notebook打开文件运行,import mxnet 出现无法导入mxnet模块的问题, 但是命令行运行是可以导入mxnet模块的. 原因: 激活 ...

  2. 小白学习之pytorch框架(2)-动手学深度学习(begin-random.shuffle()、torch.index_select()、nn.Module、nn.Sequential())

    在这向大家推荐一本书-花书-动手学深度学习pytorch版,原书用的深度学习框架是MXNet,这个框架经过Gluon重新再封装,使用风格非常接近pytorch,但是由于pytorch越来越火,个人又比 ...

  3. 对比《动手学深度学习》 PDF代码+《神经网络与深度学习 》PDF

    随着AlphaGo与李世石大战的落幕,人工智能成为话题焦点.AlphaGo背后的工作原理"深度学习"也跳入大众的视野.什么是深度学习,什么是神经网络,为何一段程序在精密的围棋大赛中 ...

  4. 动手学深度学习14- pytorch Dropout 实现与原理

    方法 从零开始实现 定义模型参数 网络 评估函数 优化方法 定义损失函数 数据提取与训练评估 pytorch简洁实现 小结 针对深度学习中的过拟合问题,通常使用丢弃法(dropout),丢弃法有很多的 ...

  5. 动手学深度学习9-多层感知机pytorch

    多层感知机 隐藏层 激活函数 小结 多层感知机 之前已经介绍过了线性回归和softmax回归在内的单层神经网络,然后深度学习主要学习多层模型,后续将以多层感知机(multilayer percetro ...

  6. 动手学深度学习6-认识Fashion_MNIST图像数据集

    获取数据集 读取小批量样本 小结 本节将使用torchvision包,它是服务于pytorch深度学习框架的,主要用来构建计算机视觉模型. torchvision主要由以下几个部分构成: torchv ...

  7. 动手学深度学习1- pytorch初学

    pytorch 初学 Tensors 创建空的tensor 创建随机的一个随机数矩阵 创建0元素的矩阵 直接从已经数据创建tensor 创建新的矩阵 计算操作 加法操作 转化形状 tensor 与nu ...

  8. 《动手学深度学习》系列笔记—— 1.2 Softmax回归与分类模型

    目录 softmax的基本概念 交叉熵损失函数 模型训练和预测 获取Fashion-MNIST训练集和读取数据 get dataset softmax从零开始的实现 获取训练集数据和测试集数据 模型参 ...

  9. 动手学深度学习17-kaggle竞赛实践小项目房价预测

    kaggle竞赛 获取和读取数据集 数据预处理 找出所有数值型的特征,然后标准化 处理离散值特征 转化为DNArray后续训练 训练模型 k折交叉验证 预测样本,并提交结果 kaggle竞赛 本节将动 ...

随机推荐

  1. weblogic开启http访问日志并实时写入日志文件

    由于http访问会产生大量日志,耗去不少IO和CPU所以在生产一般是不启用的:但有时我们会想启用http访问日志,尤其是在系统上线调试的时候. weblogic的日志默认在domain_name/se ...

  2. vue中alert toast confirm loading 公用

    import Vue from 'vue' import { ToastPlugin, AlertPlugin, ConfirmPlugin, LoadingPlugin } from 'vux' / ...

  3. CentOS最小安装无法使用ifconfig命令

    问题描述: 1.先解决联网问题,详情查看:http://www.cnblogs.com/zhi-leaf/p/5983470.html. 2.执行net-tools,执行命令 yum install ...

  4. Win10系列:JavaScript综合实例4

    实现主页面和分类页面的之后,最后来看一下菜肴页面的实现,这个页面用于详细介绍某项菜肴或主食,如名称.图片和具体做法等.在pages文件夹里面添加一个名为foodDetail的文件夹,并在foodDet ...

  5. java串口编程

    报错:no rxtxSerial in java.library.path thrown while loading gnu.io.RXTXCommDrive java.lang.Unsatisfie ...

  6. 执行这些代码, Edit1只能输入数字,小数点和负号,负号和小数点只能输入一个,负号必须在最前,粘贴的数字必须完全正确.

    执行这些代码, Edit1只能输入数字,小数点和负号,负号和小数点只能输入一个,负号必须在最前,粘贴的数字必须完全正确. type TForm1 = class(TForm) Edit1: TEdit ...

  7. java关于集合的遍历与增强for循环(foreach)的使用

     java集合类的使用可以说是无处不在,总的我们可以将之分为三大块,分别是从Collection接口延伸出的List.Set和以键值对形式作存储的Map类型集合.      许多情况需要我们遍历出集合 ...

  8. MarkDown编辑器中缩进

    首先,Markdown是不支持缩进的. 在Markdown里按下四个空格,就自动转入Code模式. 在Markdown里一个回车,不是分段而是换行,要两个回车,才是分段. 分段和换行的区别是:换行后, ...

  9. 踩坑 net core

    webclient   可以替换为 HttpClient 下载获取url的内容: 证书: https://stackoverflow.com/questions/40014047/add-client ...

  10. SQL-34 对于表actor批量插入如下数据

    题目描述 对于表actor批量插入如下数据CREATE TABLE IF NOT EXISTS actor (actor_id smallint(5) NOT NULL PRIMARY KEY,fir ...