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. 典藏版Web功能测试用例库

    界面显示 ​ 初始界面元素:title.内容,默认值.必填项(红*) ​ 样式美观 ​ 排版规范 ​ 字体统一 ​ 编辑页面有光标,定位在第一个可编辑文本框 ​ 内容过多时,滚动条 ​ loading ...

  2. Java Web学习(五)session、cookie、token

    文章更新时间:2020/09/14 一.引言 动态网页兴起后,会话管理变成开发者需要考虑的一个问题,由于HTTP请求是无状态的,为了区分每个用户,此时引入了会话标识(sessionId)的概念,但是存 ...

  3. 《Linux从入门到精通》笔记

    第一篇 基础篇   第1章 Linux概述 1.1 Linux的起源 1991年芬兰学生Linus Torvalds写的磁盘驱动和文件系统开源发布,Linux即"Linus的Minix&qu ...

  4. 刷题[SUCTF 2018]GetShell

    解题思路 进入upload,发现有源码,代码审计 代码审计 大概意思就是,读取我们上传的文件,截取第五位之后的内容,与黑名单不匹配才能上传成功 我传的是一个空的txt文件,发现会变成php文件,那好办 ...

  5. JS节流与防抖

    节流 节流,走字面上理解就是节约流量.比作水就话就是让水流的少一点,节约一点.对应到JS当中,就是在scroll事件和mousemove事件的时候,浏览器会很频繁的被触发,会导致对应的事件也会被很频繁 ...

  6. textarea输入框回车加大高度

    JavaScript var agt = navigator.userAgent.toLowerCase(); var is_op = (agt.indexOf("opera") ...

  7. mybatis动态条件组合分页查询

    一.动态条件处理 需要使用mybatis的动态sql 1 <select id="selectItemByCondition" parameterType="com ...

  8. Spring循环依赖的问题

      什么是循环依赖?就是两个Bean相互引用,比如用@Autowire 相互注入.   那么Spring是如何解决这个问题的呢?在Bean还未完全实例化前(类只实例化了一部分),将bean提前暴露出来 ...

  9. 普利姆算法(prim)

    普利姆算法(prim)求最小生成树(MST)过程详解 (原网址) 1 2 3 4 5 6 7 分步阅读 生活中最小生成树的应用十分广泛,比如:要连通n个城市需要n-1条边线路,那么怎么样建设才能使工程 ...

  10. [POI2005]SAM-Toy Cars 贪心+堆

    [POI2005]SAM-Toy Cars 题目:Jasio 是一个三岁的小男孩,他最喜欢玩玩具了,他有n 个不同的玩具,它们都被放在了很高的架子上所以Jasio 拿不到它们:为了让他的房间有足够的空 ...