Ⅰ Introduction to Reinforcement Learning
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的更多相关文章
- 强化学习一:Introduction Of Reinforcement Learning
引言: 最近和实验室的老师做项目要用到强化学习的有关内容,就开始学习强化学习的相关内容了.也不想让自己学习的内容荒废掉,所以想在博客里面记载下来,方便后面复习,也方便和大家交流. 一.强化学习是什么? ...
- [转]Introduction to Learning to Trade with Reinforcement Learning
Introduction to Learning to Trade with Reinforcement Learning http://www.wildml.com/2018/02/introduc ...
- Introduction to Learning to Trade with Reinforcement Learning
http://www.wildml.com/2015/12/implementing-a-cnn-for-text-classification-in-tensorflow/ The academic ...
- (转) Deep Learning Research Review Week 2: Reinforcement Learning
Deep Learning Research Review Week 2: Reinforcement Learning 转载自: https://adeshpande3.github.io/ad ...
- (转)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 ...
- Training spiking neural networks for reinforcement learning
郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布! 原文链接:https://arxiv.org/pdf/2005.05941.pdf Contents: Abstract Introduc ...
- 强化学习 reinforcement learning: An Introduction 第一章, tic-and-toc 代码示例 (结构重建版,注释版)
强化学习入门最经典的数据估计就是那个大名鼎鼎的 reinforcement learning: An Introduction 了, 最近在看这本书,第一章中给出了一个例子用来说明什么是强化学习, ...
- 深度强化学习(Deep Reinforcement Learning)入门:RL base & DQN-DDPG-A3C introduction
转自https://zhuanlan.zhihu.com/p/25239682 过去的一段时间在深度强化学习领域投入了不少精力,工作中也在应用DRL解决业务问题.子曰:温故而知新,在进一步深入研究和应 ...
- Reinforcement Learning: An Introduction读书笔记(3)--finite MDPs
> 目 录 < Agent–Environment Interface Goals and Rewards Returns and Episodes Policies and Val ...
随机推荐
- JAVA基础知识之面向对象编程知识汇总
JAVA基础课程部分面向对象已经学习完成,知识结构如下: 总体知识框架: 类的结构: 面向对象编程三大特征: 关键字和抽象类接口等: 常见知识汇总: 成员变量和局部变量比较 有无返回值方法比较: 权限 ...
- idea配置springboot项目记录
配置文件application.properties server.port=80 server.servlet.context-path=/bookManage spring.mvc.static- ...
- vue单页面条件下添加类似浏览器的标签页切换功能
在用vue开发的时候,单页面应用程序,而又有标签页这种需求,各种方式实现不了, 从这个 到这个,然后再返回上面那个 因为每个标签页的route不一样,导致组件重新渲染的问题,怎么都不知道如何实现... ...
- Flutter学习四之实现一个支持刷新加载的列表
上一篇文章用Scaffold widget搭建了一个带底部导航栏的的项目架构,这篇文章就来介绍一下在flutter中怎么实现一个带下拉刷新和上拉加载更多的一个列表,这里用到了pull_to_refre ...
- (转)ServletConfig与ServletContext
出处:http://blog.csdn.net/cl05300629/article/details/9362601 作者:伫望碧落 一.Servlet配置对象(ServletConfig):Serv ...
- pytest封神之路第零步 快速入门
背景:本文是在系列第五篇发表后的补充篇章,第一篇介绍了tep,可能对不熟悉pytest的朋友不够友好,特意补充入门篇,帮大家快速了解如何动手写pytest.如果你是从这篇文章第一次阅读,那么请忽略以上 ...
- SSRF漏洞(原理、漏洞利用、修复建议)
介绍SSRF漏洞 SSRF (Server-Side Request Forgery,服务器端请求伪造)是一种由攻击者构造请求,由服务端发起请求的安全漏洞.一般情况下,SSRF攻击的目标是外网无法访问 ...
- 【FLASK】使用ORM以及类似于Django更新新增字段
#!/usr/bin/env python # -*- coding:utf-8 -*- from sqlalchemy.ext.declarative import declarative_base ...
- python图像的绘制
转载:https://blog.csdn.net/haoji007/article/details/52063168 实际上前面我们就已经用到了图像的绘制,如: io.imshow(img) 这一行代 ...
- 远程触发Jenkins的Pipeline任务
场景 虽然能配置提交代码时触发Jenkins任务,但有时并不需要每次提交代码都触发,而是仅在有需要时才执行. 除了在Jenkins页面上手动执行任务,还可以向Jenkins网站发起HTTP请求,触发指 ...