首页 > 强化学习(一)- 强化学习介绍、Markov决策过程和贝尔曼期望方程

强化学习(一)- 强化学习介绍、Markov决策过程和贝尔曼期望方程

强化学习(英语:Reinforcement learning,简称RL)是机器学习中的一个领域,强调如何基于环境而行动,以取得最大化的预期利益。其灵感来源于心理学中的行为主义理论,即有机体如何在环境给予的奖励或惩罚的刺激下,逐步形成对刺激的预期,产生能获得最大利益的习惯性行为。这个方法具有普适性,因此在其他许多领域都有研究,例如博弈论、控制论、运筹学、信息论、仿真优化、多主体系统学习、群体智能、统计学以及遗传算法。 – wikipedia

主要用到的资源:

《Reinforcement Learning: An Introduction》

在接下来的博客中,会遵循书中所规定的符号。

1.强化学习的组成

首先是两个基础元素,智能体(agent)环境(environment)

  • 智能体(agent)是强化学习系统中的决策者和学习者,它可以做出决策和接受奖励信号。一个强化学习系统里可以有一个或者多个智能体。我们并不需要对智能体本身进行建模,只需要了解它在不同环境下可以做出的动作,并接受奖励信号。
  • 环境(environment)本身可以是确定性的。也可以是不确定性的。环境可能是已知的,也可能是未知的。

除了只能体和环境之外,还有四个主要子元素: 策略(policy)奖励信号(reward signal)价值函数(value function) 和可选的 环境模型(model of the environment)

  • 策略 定义学习智能体在给定时间的行为方式。粗略地说,策略就是从对环境状态的感知到在这些状态下要采取的行动的映射。它符合心理学中所谓的一套刺激-反应规则或关联分析(associations)。在某些情况下,策略可能是一个简单的函数或查找表,而在其他情况下,它可能涉及大量的计算,如搜索过程。策略是强化学习智能体的核心,因为它本身就足以决定行为。一般来说,策略可能是随机的,指定每个行动的概率。
  • 奖励信号定义了强化学习问题的目标。在每个时间步长,环境向强化学习智能体发送一个单独的数字,称为奖励。智能体的唯一目标是使它在长期内获得的总回报最大化。因此,奖励信号定义了对智能体来说什么是好事,什么是坏事。在生物系统中,我们可能认为奖励类似于快乐或痛苦的体验。它们是行为人所面临的问题的直接和明确的特征。奖励信号是改变策略的主要依据;如果策略所选择的行动得到的回报较低,那么未来的策略可能会在这种情况下选择其他行动。一般来说,奖励信号可能是环境状态和所采取的行动的随机函数。
  • 奖赏信号表明什么是即时意义上的好,而 价值函数 指定什么是长期意义上的好。粗略地说,一种状态的价值是智能体期望从该状态开始在未来积累的报酬总额。虽然奖励信号决定环境状态的直接可取性,但在考虑到接下来可能的状态和这些状态中可获得的奖励,价值函数则表明这些状态的长期可取性。例如,一个状态可能总是产生较低的奖励,但仍然具有较高的价值,因为在接下来会通常跟随一个拥有较高奖励的状态。或者情况正好相反。做一个人类的类比,奖励在某种程度上类似于快乐(如果是高的)和痛苦(如果是低的),而价值则对应于对我们在特定状态下对满意或不满意程度的更有远见的判断。从某种意义上说,奖励是主要的,而价值,作为对奖励的预测,是次要的。没有奖励就没有价值,评估价值的唯一目的就是获得更多的奖励。然而,我们在做和评估决策时最关心的是价值。
  • 一些强化学习系统的第四个要素是 环境模型 。这是一种模仿环境行为的东西,或者更笼统地说,是一种可以对环境行为做出推断的东西。例如,给定一个状态和行为,模型可以预测下一个状态和下一个奖励的结果。模型是用于计划的,在实际经历未来可能发生的情况之前,通过对未来可能发生的情况进行考虑,从而决定采取何种行动。使用模型和计划来解决强化学习问题的方法被称为基于模型的方法,而不是简单的无模型的方法。无模型方法,即试错学习(trial-and-error)方法——几乎被视为计划方法的对立面。

2. 有限马尔可夫决策过程(Finite Markov Decision Processes)

MDPs是一种经典的顺序决策的形式化,在这种情况下,行为不仅影响即时的回报,还影响后续的情况或状态,并通过这些未来的回报。因此,MDPs涉及延迟奖励和权衡即时和延迟奖励的需要。

2.1 智能体 - 环境接口

MDPs是一个从交互中学习以实现目标的简单框架。学习者和决策者被称为智能体。它与之交互的东西,除智能体之外的一切,叫做环境。它们之间不断交互:智能体选择动作,环境响应这些动作并向智能体呈现新情况。环境也会产生奖励,这是一种特殊的数值,智能体通过选择行动,试图在一段时间内将其最大化。

更具体地说,agent和环境在一个离散时间序列的每个步骤中相互作用,t=0,1,2,3...t = 0,1,2,3. . .t=0,1,2,3...。在每个时间步骤 ttt,智能体接收到环境状态,St∈SS_t ∈mathcal{S}StS,然后在此基础上选择行动,At∈A(s)A_t ∈mathcal{A}(s)AtA(s)。一个时间步后,作为其行动的部分结果,智能体收到一个奖励,Rt+1∈RR_{t+1} ∈mathcal{R}Rt+1R,然后移动到一个新的状态,St+1S_{t+1}St+1。因此,MDP和智能体一起产生了这样一个序列或轨迹:

S0,A0,R1,S1,A1,R2,S2,A2,R3,...(2.1)S_0,A_0,R_1, S_1,A_1,R_2, S_2,A_2,R_3, . . . ag{2.1}S0,A0,R1,S1,A1,R2,S2,A2,R3,...(2.1)

在有限MDP中,状态、动作和回报的集合(S、A、Rmathcal{S}、mathcal{A}、mathcal{R}SAR)都有有限的元素。在这种情况下,随机变量RtR_tRtStS_tSt有明确的离散概率分布,仅依赖于前一个状态和动作。对于随机变量的特定值,s′∈Ss' ∈mathcal{S}sSr∈Rr ∈mathcal{R}rR ,给定前一状态和动作的特定值,这些值在t时刻发生的概率是:

p(s′,r∣s,a)=Pr{St=s′,Rt=r∣St−1=s,At−1=a}(2.2)p(s', r|s, a)= Pr{S_t=s',R_t=r | S_{t−1}=s,A_{t−1}=a} ag{2.2}p(s,rs,a)=Pr{ St=s,Rt=rSt1=s,At1=a}(2.2)

对于所有s′,s∈S,r∈R,a∈As', s∈mathcal{S}, r ∈mathcal{R}, a∈mathcal{A}s,sS,rR,aA。函数p定义了MDP的动力(dynamics)。动力函数p : S×R×S×A→[0,1]mathcal{S} imesmathcal{R} imesmathcal{S} imesmathcal{A} o [0,1]S×R×S×A[0,1]是一个普通的有四个参数的确定性函数。p函数中间的竖线“|”是来自于条件概率的符号,但这里它只是提醒我们p指定了s和a的每个选项的概率分布,也就是

∑s′∈S∑r∈Rp(s′,r∣s,a)=1,foralls∈S,a∈A(s)(2.3)sum_{s'∈mathcal{S}}sum_{r ∈mathcal{R}}p(s', r|s, a)=1,for all s∈mathcal{S}, a∈mathcal{A}(s) ag{2.3}sSrRp(s,rs,a)=1for all 

更多相关:

  • 关于如何在有噪声的数据中进行状态估计的问题的理解,状态估计的问题是指在运动和观测方程中,通常假设两个噪声ωiomega_i和υk,jupsilon_{k,j}满足零均值的高斯分布, xk=f(xk−1,uk)+ωkx_k=f(x_{k-1},u_k)+omega_k其中ωk→N(0,Rk)omega_k ightarro...

  • 文章目录PG 的状态机和peering过程1. PG 状态机变化的时机2. pg的状态演化过程3. pg状态变化实例讲解3.1 pg状态的管理结构3.2 数据的pg状态变化过程3.2.1 NULL -> initial3.2.2 initial -> reset -> Started3.2.3 Started(start) ->St...

  • 什么是状态模式? 定义:将事物内部的每个状态分别封装成类,内部状态改变会产生不同行为。 主要解决:对象的行为依赖于它的状态(属性),并且可以根据它的状态改变而改变它的相关行为。 何时使用:代码中包含大量与对象状态有关的条件语句。 如何解决:将各种具体的状态类抽象出来。 应用实例: 1、打篮球的时候运动员可以有正常状态、不正常状态和超...

  • 别小看这个功能, 感觉在写一些技术 Blog 的情况下还是挺有用的.   打开QQ拼音: 输入法设置->基本设置->初始状态->中文状态下使用英文标点.  转载于:https://www.cnblogs.com/qrlozte/p/4904087.html...

  • ...

  • 草色新雨中, 松声晚窗里。之前我们学习 Power Query 都是用鼠标就完成了很多复杂的操作。虽然 PowerQuery 已经将大部分常用功能内置成到功能区。基本能完成我们大部分的报表自动化功能。但是总有些复杂的或者个性化的问题是开发团队没有预先想到的,这时我们就需要学习 M 语言。一、M 语言在哪里?M语言的函数公式有三个地...

  • 前言从2020年3月份开始,计划写一系列文档--《小白从零开始学编程》,记录自己从0开始学习的一些东西。第一个系列:python,计划从安装、环境搭建、基本语法、到利用Django和Flask两个当前最热的web框架完成一个小的项目第二个系列:可能会选择Go语言,也可能会选择Vue.js。具体情况待定,拭目以待吧。。。基本概念表达式表...

  • 1.1函数1.1.1什么是函数函数就是程序实现模块化的基本单元,一般实现某一功能的集合。函数名:就相当于是程序代码集合的名称参数:就是函数运算时需要参与运算的值被称作为参数函数体:程序的某个功能,进行一系列的逻辑运算return 返回值:函数的返回值能表示函数的运行结果或运行状态。1.1.2函数的作用函数是组织好的,可重复使用的,用来...

  • 原标题:基于Python建立深度神经网络!你学会了嘛?图1 神经网络构造的例子(符号说明:上标[l]表示与第l层;上标(i)表示第i个例子;下标i表示矢量第i项)单层神经网络图2 单层神经网络示例神经元模型是先计算一个线性函数(z=Wx+b),接着再计算一个激活函数。一般来说,神经元模型的输出值是a=g(Wx+b),其中g是激活函数(...

  • 在学习MySQL的时候你会发现,它有非常多的函数,在学习的时候没有侧重。小编刚开始学习的时候也会有这个感觉。不过,经过一段时间的学习之后,小编发现尽管函数有很多,但是常用的却只有那几个。今天小编就把常用的函数汇总一下,为大家能够能好的学习MySQL中的函数。MySQL常使用的函数大概有四类。时间函数、数学函数、字符函数、控制函数。让我...