文章目录

  • 16.1 任务与奖赏
    • RL与有监督学习、无监督学习的比较
    • 形象举例
  • 16.2 K-摇臂赌博机
    • ε-贪心算法
  • 16.3 有模型学习
  • 16.4 免模型学习
  • 16.5 值函数近似
  • 16.6 模仿学习

16.1 任务与奖赏

当前的机器学习算法可以分为3种:有监督的学习(Supervised Learning)、无监督的学习(Unsupervised Learning)和强化学习(Reinforcement Learning),结构图如下所示:

RL与有监督学习、无监督学习的比较

(1)有监督的学习是从一个已经标记的训练集中进行学习,训练集中每一个样本的特征可以视为是对该situation的描述,而其 label 可以视为是应该执行的正确的action,但是有监督的学习不能学习交互的情景,因为在交互的问题中获得期望行为的样例是非常不实际的,agent只能从自己的经历(experience)中进行学习,而experience中采取的行为并一定是最优的。这时利用RL就非常合适,因为RL不是利用正确的行为来指导,而是利用已有的训练信息来对行为进行评价。
  (2)因为RL利用的并不是采取正确行动的experience,从这一点来看和无监督的学习确实有点像,但是还是不一样的,无监督的学习的目的可以说是从一堆未标记样本中发现隐藏的结构,而RL的目的是最大化 reward signal。
  (3)总的来说,RL与其他机器学习算法不同的地方在于:其中没有监督者,只有一个reward信号;反馈是延迟的,不是立即生成的;时间在RL中具有重要的意义;agent的行为会影响之后一系列的data。

形象举例

我们需要中很多次瓜,在种瓜过程中不断摸索,然后才能总结出比较好的种瓜策略,这个过程抽象出来,就是RL。

强化学习和之前学过的一些机器学习算法有着明显的不用,之前学的机器学习算法主要可以分为监督学习(分类)和非监督学习(聚类),而强化学习不同于监督学习和非监督学习,强化学习是通过奖励值来训练模型,而监督学习是通过训练数据和对应的标签来训练模型的,非监督学习没有标签也没有奖励值,是通过数据特征来训练模型的,而且强化学习的奖励值是在执行完动作后给出的,监督学习的标签是一开始就有的。

16.2 K-摇臂赌博机

k-armed Bandit(也叫Multi-Armed Bandit)是赌场里的一种赌具。它有K个摇臂,投币后摇动摇臂,会有一定的概率吐出硬币。每个摇臂的吐币概率和数量有所不同。(有的机器只有1个摇臂,但可通过按钮设置不同的方案。)赌徒的目标是通过一定的策略获得最多的奖励(硬币)。

尽管在有的赌场中,每个摇臂的吐币概率和数量是已知的,但在本问题中,吐币概率和数量都是未知的。

由于每次摇臂都是独立事件,因此k-armed Bandit问题的另一个约束是:最大化单步奖励,即不考虑未来的奖励。

此外,k-armed Bandit亦不可能无限进行下去,其尝试总数是一定的(即投币数是一定的)。这也是该问题的一个隐含约束。

这里显然有两个最简单的策略:

exploration-only:将所有尝试机会平均分配给每个摇臂。这种策略可以很好的估计每个摇臂的奖励,然而却会失去很多选择最优摇臂的机会。

exploitation-only:只按下目前最优的摇臂。这种策略下有可能选不到最优的摇臂。

显然,欲奖励最大,需要在exploration和exploitation之间达成较好的折中。

ε-贪心算法

贪心算法的基本思路:

ε是基于概率进行探索,ε作为随机选择一个摇臂的概率,那么1-ε的概率用于从平均奖赏最大的摇臂里面

选择。

算法实现的过程:

输入:摇臂的总数,K

k(小写) 表示当前选择第k个摇臂

奖赏函数 R

尝试次数 T

探索概率 ε

累计奖励用r表示累计奖励

Q(i) 表示第i个摇臂的平均奖赏

初始化 r=0,Q(i) = 0

For i in range(T):

If random()<ε:

k = Random.choice(range(1,K+1))

Esle:

k = argmax(Q(i))

v = R(k) (表示当前的奖赏)

r = r + v

Count(k) = count(k)+1

Print(“the reward is”.format®) # 输出累计奖赏

Python代码模拟仿真:

使用贪心算法实现

from numpy import random
K = [1,2,3,4,5] # 总共的摇臂数有5个
R = {1:2,2:3,3:5,4:1,5:9}  # 各个摇臂对应的奖赏
prob = {1:0.6,2:0.5,3:0.2,4:0.7,5:0.05}  #各个摇臂对应的概率吐币的概率
T = 10000
eplison = 0.1
count = dict(zip(list(range(1,6)),[0]*5))  # 计算每个摇臂的摇到的次数r = 0
for i in range(T):Q = dict(zip(list(range(1,6)),[0]*5))if random.random() < eplison:k = random.choice(K)else:k = max(Q,key=Q.get)v = random.choice([R[k],0],p=[prob[k],1-prob[k]])r += vQ[k] = (Q[k]*count[k]+v)/(count[k]+1)count[k] = count[k] + 1
print("end the reword is {}".format(r))

运行结果:

16.3 有模型学习

许多研究人员认为,基于模型的强化学习(MBRL)比无模型的强化学习(MFRL)具有更高的样本效率。但是,从根本上讲,这种说法是错误的。更细微的分析表明,使用神经网络时,MBRL方法可能比MFRL方法具有更高的采样效率,但仅适用于某些任务。此外,而基于模型的RL仅仅是开始。另一类算法,即基于同态的强化学习(HBRL),可能具有在诸如视觉干扰等具有高水平无关信息的任务上进一步提高样本效率的潜力。在这篇文章中,我们为这些想法提供了直观的证明。

16.4 免模型学习

你是否认为我们用动态编程可以打造一个像Dota 2一样复杂的机器人呢?

很不幸,答案是否定的。因为Dota 2中的状态有很多,要收集所有具体状态几乎不可能。所以我们开始采用强化学习或者更具体的无模型学习。

16.5 值函数近似

值函数近似——Large MDPs 的福音
对于具有大量状态空间和动作空间的MDPs,前面讲到的一些处理方法就不再适用了,可能会引起维度爆炸之类的问题。一个简单的方法就是用带有权重w参数的一个关于s的函数来表示近似的Vπ(s)或者qπ(s,a),以此建立值函数逼近器,这样我们就可以估算任何一个函数的值,并将其应用于状态数据库中,从而压缩了状态数据库的存储量。Value Function Approximation的思想大致就是如此。

16.6 模仿学习

模仿学习就是根据演示来学习,很多时候我们的任务没办法定义奖励,但是我们可以收集很多的数据给机器去学习,方法一般有两种,一种叫行为复制,一种叫逆向强化学习:

机器学习(MACHINE LEARNING) 【周志华版-”西瓜书“-笔记】 DAY16-强化学习相关推荐

  1. 机器学习(MACHINE LEARNING) 【周志华版-”西瓜书“-笔记】 DAY11-特征选择和稀疏学习

    特征工程是机器学习中非常重要的一个环节,它的好坏直接影响了机器学习效果的优劣.而特征工程里非常关键的一步就是特征选择. 如果把机器学习比作是一个厨师做菜的过程,那么数据就是原材料(菜),模型可以理解为 ...

  2. 机器学习(MACHINE LEARNING) 【周志华版-”西瓜书“-笔记】 DAY10-降维和度量学习

    10.1 k近邻学习 k近邻(k-Nearest Neighbor,简称kNN)学习是一种常用的监督学习方法. 二.近邻分类算法 1.近邻分类算法的概念 在近邻分类算法中,对于预测的数据,将其与训练样 ...

  3. 机器学习(MACHINE LEARNING) 【周志华版-”西瓜书“-笔记】 DAY1-绪论

    我太喜欢这本书了 ,因为封面很好看 .PS:划重点是教科书!需要一定基础,京东正版有售~ 1.1 引言 机器学习:例如我们人吃过,看过很多西瓜, 所以基于色泽.根蒂,敲声这几个特征我们就可以做出相当好 ...

  4. 机器学习(MACHINE LEARNING) 【周志华版-”西瓜书“-笔记】 DAY4-决策树

    4.1 基本流程 决策树(decision)是一类常见的机器学习算法,以二分类任务为例,我们希望从给定训练数据集学得一个模型用以对新示例进行分类,这个把样本分类的任务,可看做对"当前样本属于 ...

  5. 机器学习(MACHINE LEARNING) 【周志华版-”西瓜书“-笔记】 DAY15-规则学习

    15.1.规则学习 "规则学习" (rule learning)是从训练数据中学习出一组能用于对未见示例进行判别的规则. 形式上一般为: 式子中,右边的部分称为规则体(Body), ...

  6. 机器学习(MACHINE LEARNING) 【周志华版-”西瓜书“-笔记】 DAY13-半监督学习

    13.1 未标记样本 先说两个概念: 1)有标记样本(Labeled) 训练样本集Dl={(x1,y1), (x2,y2),-, (xl,yl)},这l个样本的类别标记已知. 2)未标记样本(unla ...

  7. 机器学习(MACHINE LEARNING) 【周志华版-”西瓜书“-笔记】 DAY6-支持向量机

    今日份打卡~ 一定要读到最后啊,越往后越干货.@!@ 6.1 间隔与支持向量机 6.2 对偶问题 SMO Platt的SMO算法是将大优化问题分解为许多小优化问题求解的,并且对它们顺序求解的结果与将它 ...

  8. 机器学习(MACHINE LEARNING) 【周志华版-”西瓜书“-笔记】 DAY3-线性模型

    3.1 基本形式 一般用向量形式写成 本文介绍几种经典的线性模型,看我们先从回归任务开始,然后讨论二分类和多分类任务. 3.2 线性回归 线性回归是一种监督学习下的线性模型,线性回归试图从给定数据集中 ...

  9. 机器学习(MACHINE LEARNING) 【周志华版-”西瓜书“-笔记】 DAY2-模型评估与选择

    2.1经验误差与过拟合 学习器在训练集上的误差称为"训练误差"(training error)或"经验误差". 当学习器把训练样本学得"太好" ...

最新文章

  1. java 枚举抽象方法_Java枚举抽象方法实战
  2. .如何在Linux上安装Postman应用程序?
  3. netfilter/iptables全攻略
  4. 「SVN」Ubuntu 版本库搭建+使用 完整教程
  5. naarray查询 swift_Swift 4最全的新特性详细解析(推荐)
  6. 气泡为何是球形?这是一个数学问题!
  7. append是什么意思java_关于append()问题
  8. django写一个简单的登陆注册
  9. 使用PowerShell 导出Exchange中的用户中用户信息到Office 365
  10. php.ini_中文详解
  11. android微博表情条,类似新浪微博EditText,可@某人,#插入话题,表情
  12. js日历控件源代码下载
  13. 软件是怎么开发出来的?怎么进行软件开发流程
  14. 生成各种格式的 Excel 文件示例
  15. springboot Validation
  16. 概率论——随机试验、样本空间
  17. CC2530F256RHAR收发器
  18. SQL数据库-------专业术语学习
  19. Azure 媒体服务可将优质内容传输至 Apple TV
  20. 按键清零是0xff吗c语言,msp40_c语言.docx

热门文章

  1. 在Java中调用Python
  2. `pydot` failed to call GraphViz.Please install GraphViz
  3. OCtaveResNet 测试
  4. websocketpp 只发送一次
  5. openCV图像矩阵Mat和二维数组的互相转换
  6. 44 ansible ad-hoc模式
  7. 兆比特每秒和兆字节每秒_号称100兆、200兆的宽带,为什么实际下载速度只有几MB?...
  8. centerandzoom 无效_百度地图 app 点击事件无效、不触发 解决方案
  9. vue的自定义组件如何使用prop传值?
  10. Redis入门教程(二)