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. nodejs利用sequelize-auto 根据数据库的table 生成model

    1.打开cmd命令窗口,安装sequelize-auto npm install -g sequelize-auto 在使用sequelize-auto之前需要安装全局的mysql(举例mysql) ...

  2. python3线程启动与停止

    转自: https://blog.csdn.net/weixin_38125866/article/details/76795462 https://www.cnblogs.com/lcchuguo/ ...

  3. AMR文件结构

    转自:http://blog.csdn.net/dinggo/article/details/1966444 https://blog.csdn.net/wlsfling/article/detail ...

  4. linux:NFS

    1.简介 2.安装 安装分为服务端和客户端 [1]我们先拿一台机做服务端 yum install nfs-utils rpcbind -y 然后我们查查看安装没有,查询一个包是否被安装# rpm -q ...

  5. jenkins+findbugs+checkstyle+PMD静态代码检查(二)

    可以根据自己的需求选中对应的插件进行配置(不一定非要同时配置三个插件) jenkins:持续集成的工具 fundbugs:检测代码静态错误的插件  例如:定义了没有用到的对象,string类型的比较使 ...

  6. Java:程序开机自启动

    一.加到开机自动启动程序的注册表: package com.zit; import java.io.IOException; public class Start { public static vo ...

  7. mac下VirtualBox跟linux虚拟机共享文件夹

    1.在VirtualBox中设置好共享目录,设置自动挂载/固定分配 2.安装增强工具,为了避免安装出错需要安装依赖文件 #更新内核. yum update kernel#需要安装相应的kernel-d ...

  8. Python数据分析中对重复值、缺失值、空格的处理

    对重复值的处理 把数据结构中,行相同的数据只保留一行 函数语法: drop_duplicates() from pandas import read_csv df = read_csv(文件位置) n ...

  9. 7series 逻辑单元理解(更新中)

    7series 逻辑单元理解 ug768和ug799文档介绍了7系列芯片中包含的基本逻辑单元,对其中常用的单元,进行下分析. 1.IOBUF单元 (1)真值表 (2)用途 the  design  e ...

  10. 使用kafka和zookeeper 构建分布式编译环境

    1:在每台机器上安装jdk, 脚本代码如下: 每一个机器上下载jdk,zookeeper,kafka 链接:https://www.oracle.com/technetwork/java/javase ...