内容纲要

欢迎转载,作者:Ling,注明出处:强化学习教程: 01-概述

 

强化学习定义

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

强化学习典型实例

  • 围棋比赛
  • 直升机特技动作
  • 投资管理
  • 机器人行走
  • 玩游戏

机器学习分类

  • 监督学习:需要标签
  • 无监督学习:不需要标签
  • 强化学习:不需要标签,但是有奖励,和环境互动,从奖励中学习

RL_01_001

强化学习和各学科关系:

RL_01_002

强化学习组成要素:

RL_01_003

举个例子:

RL_01_004

  • Environment: MAZE迷宫
  • Agent: 走迷宫的机器人
  • Observation:假设机器人在start位置,此时Environment给出的Observation可以是该点坐标(1,0)
  • Reward: 一般只有终点的Reward是1,其他点的Reward都是0,所以在起始点,Reward就是0
  • Action:机器人在起点,可以选择:上下左右四个方向走,当选择了一个方向走,就是一个Action
  • History: ((1,0), 0, 右), ((1,1), 0, 上)… 这样走到终点或者走到一定步数,计算一条History,或者说一个Episode
  • State: 这里的State可以理解为就是Observation
  • Policy: 在(1,0) 机器人可以有四种策略,上下左右,这个就是一步的policy,选了策略之后真正走了就算是一个Action
  • Value & Value Function:在(1,0) 的value需要根据后续情况或者模型才知道,在终点,value=reward 都是1,在终点之前那个value也是1或者是1乘以一个递减系数,value是根据reward计算出来的,value可以是和状态绑定的,一个状态一个value,value也可以是和状态以及Action绑定的,也就是在某个状态,采取了某个action的value
  • Model:所谓model,就是已经知道了状态转移概率和Reward函数等各种信息,model-free就是预先不知道状态转移概率等信息,model可以预先知道,或者是通过环境学习得到。

概括

Environment: Agent需要打交道的东西,例如:棋盘,游戏,它会根据当前状态,给Agent反馈,比如:Observation,Reward

Agent:与环境进行交互的东西,它会根据环境给的Observation,Reward,然后进行一系列计算,然后采取下一步Action,用于改变环境状态

Observation:环境告诉Agent的当前状态,比如:当前处于棋盘的位置,甚至更多其他信息

Reward/Reward Function:Reward是环境告诉Agent当前状态的奖励情况,比如:如果是终点,奖励是1,如果是陷阱,奖励为-1,Reward Function是计算Reward的方法

Action:Agent根据O与R采取的行动A,该行动会进一步输入到环境,然后环境会给出新的O和R

History: 又称Episode,即由O,R,A构成的整个历史

State:环境可以有自己的State,Agent可以有自己的State,还有个Information State是指根据历史得到的当前整个状态的State:

RL_01_005

RL_01_006

  • Full Observability: 即当前状态都是透明的,环境状态,环境给agent的状态,agent状态和整个状态都是一样的,我们主要处理这种情况,所以这时,O和S可以认为是同一个东西。
  • Partial Observability:环境状态不透明,Agent只能了解到一部分状态

Agent三个主要的内容:Policy,Value&Value Function,Model

  • Policy:即Agent可能采取的策略,是从状态到行为的映射(注意,不仅仅是下一步的策略,是整个策略),例如:根据当前状态向右走

确定性策略

RL_01_007

非确定性策略:

RL_01_008

  • Value & Value function:Value是指当前State and/or Action所获得的价值,Value function 是指计算价值的方式,用于计算评估State and/or Action的好坏, 有V函数和Q函数两种形式

RL_01_009

  • Model: 要么预先给出,要么通过与真实环境互动学习得到,主要包括状态转移矩阵和Reward函数等,公式表示如下:P是预测下一个状态,R是预测下一个奖励

RL_01_010

Reward VS Value:

Reward

Value

环境可以直接给出

需要根据后续Reward计算出

当前环境状态决定

长期一系列状态决定

Exploitation 与 Exploration

  • Exploration: 尝试环境中没有尝试过的
  • Exploitation:根据总结的经验采取最大价值的Action

Prediction 与 Control

  • Prediction:计算或者说估计出值函数,实际上后面你会发现一般是要求出V函数或者Q函数
  • Control:不仅计算或者说估计出值函数,而且要优化值函数,也就是得到最优策略,这个时强化学习最根本想做的事情,实际上后面你会发现,一般是要求出Q函数,同时求下一步Action

强化学习分类:

RL_01_011

Model-Free RL VS Model-based RL

  • Model-Free RL:对模型预先不清楚,不知道状态转移矩阵,Reward函数等,大部分强化学习属于这类问题,预先不知道模型是啥样
  • Model-based RL:分两种情况,一种情况预先已经知道模型,清楚状态转移矩阵和Reward函数等,这个时候直接可以进行RL学习,另外一种情况需要从现实中学习出一个model(学习出状态转移矩阵和Reward函数),然后通过学习出的model进行RL学习,举个例子:走围棋,我从一些现实样本中学习出状态转移矩阵和Reward函数,也就是学到了一个model,然后基于这个model,我生成更多样本,基于这些样本,我来进行RL学习,这就是model-based RL,我们常说的model-based RL主要指第二种情况。
  • 常见方法即可有Model-Free RL版本,也可以有Model-based RL版本

Policy-based RL VS Value-Based RL

  • Value-Based RL: 基于价值,学习价值函数,价值有V价值和Q价值,然后从该点选择对应value最大的action进行执行, 主要方法有Q Learning, Sarsa, DQN
  • Policy-based RL: 基于策略,即不先求价值函数,直接求策略函数,根据该点的不同Action概率,一般走概率最大的那个, 主要方法有Policy Gradients

RL_01_012

  • 两者结合:Actor-Critic: Critic根据当前策略,最优化价值函数, Actor在Critic建议的价值函数下,最优化策略函数

RL_01_013

另外两种分类方式:

回合更新 VS 单步更新

  • 回合更新:Monte-Carlo update
  • 单步更新:Temporal-Difference update,更有效率, Q Learning, Sarsa

在策略学习 VS 离策略学习

  • 在策略学习:On-Policy learning,从工作中学习,从实际经验中抽样学习策略,也就是你学习之后发现最优的action是啥,下一步就采用这样的action,例如Sarsa
  • 离策略学习:Off-Policy learning,站在别人肩膀上,经验可能是通过另外一个策略采样得到,也就是说你计算最优值和你实际采用的action可以不一样,例如,Q-Learning

RL主要方法:

评估Predication:MC,TD,TD(λ),既可以是基于V函数,也可以基于Q函数更新

控制Control:一般都是基于Q函数更新

 

Policy-Based RL

Value-Based RL

回合更新

单步更新

On-Policy RL

Off-Policy RL

Q Learning

 

X

 

X

 

X

Sarsa

 

X

 

X

X

 

Sarsa(λ)

 

X

两者

之间

X

 

DQN

 

X

X

 

 

X

Policy Gradients

X

 

X

 

X

 

Actor-Critic

两者

结合

X

 

X

 

最后再上两幅图

强化学习知识体系

RL_01_RL

强化学习在AI中的地位: 有人说DL+RL才能实现AI

RL_01_AI