Dictum:



 To spark, often burst in hard stone. -- William Liebknecht


强化学习(Reinforcement Learning)是模仿人类的学习方式(比如,学习一种新的技能,从入门到掌握总是不断地去寻错,改正,直至完全掌握),强化学习的主要思想就是智能体在与环境的交互过程中不断调整,以达到理想结果。

强化学习的框架

Reinforcement learning is learning what to do--how to map situations to actions--so as to maximize a numerical reward signal.

强化学习的流程如下图所示,智能体首先洞悉环境的当前状态,再根据状态做出相应的动作,环境会根据动作给出反馈到智能体,此时环境也会做出相应改变,智能体通过得到的反馈和改变后的状态进行做出下一次的动作,如此迭代,最后达到最优效果。

智能体(agent)是学习者和决策者,它能在某种程度上感知环境的状态,然后采取动作并影响环境的状态。

环境(environment)是强化学习问题中,除智能体以外与智能体交互的所有集合。

强化学习的特点

强化学习两个最重要的特征就是“试错搜索(trial-and-error search)”和“延迟奖励(delayed reward)"。智能体不会被告知选择什么动作是最好的,而是需要通过尝试去发现哪些动作获得最大的奖励,而所执行的动作不但影响即时奖励,还可能使状态发生改变从而影响未来的奖励。因此,这给强化学习带来了一个独特的挑战:更新策略的过程是在探索(exploration)和开发(exploitation)之间权衡完成的。为了获得更多的奖励,智能体需要不断优化已经尝试过的动作,同时为了选取最优的动作,智能体还需要不断去尝试新的动作。强化学习还有一个特点,就是它需要明确考虑目标导向型智能体与不确定性环境交互的整体问题。

强化学习的要素

上面框图展示了最简单的强化学习架构的三个基本要素,下面将具体讲述强化学习的几种要素的定义和作用:

  • 状态(state),\(S_t\),表示环境在\(t\)时刻所处的状态\(s\)
  • 动作(action),\(A_t\),表示智能体在\(t\)时刻采取的动作\(a\)
  • 策略(policy),\(\pi(a|s)\),表示智能体在给定时间(状态)下采取的行为方式,是环境状态到动作的映射,一般是随机函数,它是智能体的核心
  • 奖励信号(reward signal),定义了强化学问题的目标,即环境会在每一个时间步长给智能体发送被称为“奖励(reward)”的标量信号,\(R_t\),它表示对智能体当前所执行策略的短期判断,而价值函数则是对智能体当前所执行的长期判断
  • 环境模型(model of the environment),它是对外部环境运作规则的推断,它被用于规划(即在真正经历之前,先考虑未来所有可能的情况做出预先的决策)。强化学习的方法被分为两种:基于模型(model-based)的方法和不基于模型(model-free)的方法--基于模型方法是通过模型和规划解决实际问题,而无模型方法则通过试错的方式学习

与其它学习方式的比较

区别于监督学习,监督学习是从外部监督者给出的带标签样本的训练集中学习,标签的实质就是先验知识,事先会告诉学习器什么是对什么是错,而强化学习只有奖励值,这与监督学习的输出不同,它是延迟给出的,这导致了智能体必须能够从自身的经验中学习。

区别于无监督学习,无监督学习是从无标签数据集中寻找隐藏的相似结构,无监督学习没有输出值,只有数据特征,而强化学习的目的是最大化奖励信号。

监督学习和无监督学习,它们的样本数据一般都是相互独立的,而强化学习每个时间步长得到的序列是迭代更新的,数据间的关联十分紧密。


References

Richard S. Sutton and Andrew G. Barto. Reinforcement Learning: An Introduction (Second Edition). 2018.

Csaba Szepesvári. Algorithms for Reinforcement Learning. 2009.

Course: UCL Reinforcement Learning Course (by David Silver)

Ⅰ Introduction to Reinforcement Learning的更多相关文章

  1. 强化学习一:Introduction Of Reinforcement Learning

    引言: 最近和实验室的老师做项目要用到强化学习的有关内容,就开始学习强化学习的相关内容了.也不想让自己学习的内容荒废掉,所以想在博客里面记载下来,方便后面复习,也方便和大家交流. 一.强化学习是什么? ...

  2. [转]Introduction to Learning to Trade with Reinforcement Learning

    Introduction to Learning to Trade with Reinforcement Learning http://www.wildml.com/2018/02/introduc ...

  3. Introduction to Learning to Trade with Reinforcement Learning

    http://www.wildml.com/2015/12/implementing-a-cnn-for-text-classification-in-tensorflow/ The academic ...

  4. (转) Deep Learning Research Review Week 2: Reinforcement Learning

      Deep Learning Research Review Week 2: Reinforcement Learning 转载自: https://adeshpande3.github.io/ad ...

  5. (转)Applications of Reinforcement Learning in Real World

    Applications of Reinforcement Learning in Real World 2018-08-05 18:58:04 This blog is copied from: h ...

  6. Training spiking neural networks for reinforcement learning

    郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布! 原文链接:https://arxiv.org/pdf/2005.05941.pdf Contents: Abstract Introduc ...

  7. 强化学习 reinforcement learning: An Introduction 第一章, tic-and-toc 代码示例 (结构重建版,注释版)

    强化学习入门最经典的数据估计就是那个大名鼎鼎的  reinforcement learning: An Introduction 了,  最近在看这本书,第一章中给出了一个例子用来说明什么是强化学习, ...

  8. 深度强化学习(Deep Reinforcement Learning)入门:RL base & DQN-DDPG-A3C introduction

    转自https://zhuanlan.zhihu.com/p/25239682 过去的一段时间在深度强化学习领域投入了不少精力,工作中也在应用DRL解决业务问题.子曰:温故而知新,在进一步深入研究和应 ...

  9. Reinforcement Learning: An Introduction读书笔记(3)--finite MDPs

     > 目  录 <  Agent–Environment Interface Goals and Rewards Returns and Episodes Policies and Val ...

随机推荐

  1. python的命名规则

    命名规则:大小写字母,数字,下划线和汉字等字符及组合 注意事项:大小写敏感,首字符不能是数字,不与保留字相同 Python语言有33个保留字(关键字) 如:if ,elif, else ,in 33个 ...

  2. leetcode1546题解【前缀和+贪心】

    leetcode1546.和为目标值的最大数目不重叠非空子数组数目 题目链接 算法 前缀和+贪心 时间复杂度O(n). 1.对nums数组求前缀和: 2.在求前缀和过程中将前缀和sum插入到set集合 ...

  3. python中yield的用法详解——最简单,最清晰的解释(转载)

    原文链接 首先我要吐槽一下,看程序的过程中遇见了yield这个关键字,然后百度的时候,发现没有一个能简单的让我懂的,讲起来真TM的都是头头是道,什么参数,什么传递的,还口口声声说自己的教程是最简单的, ...

  4. python-面向过程面向对象和栈的实现

    0x01 大纲 面向过程 函数 参数传递 返回 面向对象 类 栈的数据结构实现 0x02 例子 def add(a,b): return a+b if __name__ == '__main__': ...

  5. [SUCTF 2019]EasySQL1 及sql_mode

    (我被虐到了,呜呜呜) 当 sql_mode 设置了 PIPES_AS_CONCAT 时,|| 就是字符串连接符,相当于CONCAT() 函数 当 sql_mode 没有设置 PIPES_AS_CON ...

  6. tomcat在windows下安装

    1.下载地址:https://tomcat.apache.org/download-90.cgi Binary是编译好的,可以直接使用的版本: tar.gz,解压即可用: Source是源代码版本,需 ...

  7. DevOps Next-AI / ML虚拟会议

    这个中秋国庆,一起进阶反超呀!10月1日星期四,加入DevOps Next,可以参加有关AI和ML的免费活动,内容涉及持续测试,代码质量和DevOps生产力.优秀的你一起来加入! 关于本次活动 Dev ...

  8. git的详细使用,项目创建到同步远程仓库,版本回退,忽略文件,分支创建,分支合并,分支名称修改,冲突解决,项目迁移

    注意:此处省略git的安装 1..git的工作流程示意图: 2.本地仓库的初始化: 2.1 创建一个文件夹,如我创建的是:D:\gitdemo\shop 2.2 进入shop目录,鼠标右键,打开git ...

  9. Python-变量-数字类型

    数字 number 整形 int 浮点型 float bool True(=1) False(=0) int_num = 10 float_num = 10.1 bool_True = True bo ...

  10. python下的appium控制andriod按键

    今天查看视频的时候,发现不好控制关闭视频,于是就想控制手机的返回按键来达到返回的效果. 找到了一些关于按键的keycode,如下: KEYCODE_CALL 拨号键 5 KEYCODE_ENDCALL ...