【机器学习】-强化学习绪论

强化学习绪论

强化学习这个概念是2017年乌镇围棋峰会上Alpha Go战胜了当时世界排名第一的柯洁而被普通大众知道,后面随着强化学习在各大游戏比如王者荣耀中被应用,而被越来越多的人熟知。王者荣耀AI团队,甚至在顶级期刊AAAI上发表过强化学习在王者荣耀中应用的论文。

代码

zhoubolei/introRL: Intro to Reinforcement Learning (强化学习纲要) (github.com)

视频教学https://www.bilibili.com/video/BV1yv411i7xd

1. 简介

1.1 简介

根据维基百科对强化学习的定义:Reinforcement learning (RL) is an area of machine learning inspired by behaviorist psychology, concerned with how software agents ought to take actions in an environment so as to maximize some notion of cumulative reward.

强化学习是机器学习领域之一,受到行为心理学的启发,主要关注智能体如何在环境中采取不同的行动,以最大限度地提高累积奖励。)

强化学习主要由智能体(Agent)环境(Environment)状态(State)动作(Action)奖励(Reward)组成。智能体执行了某个动作后,环境将会转换到一个新的状态,对于该新的状态环境会给出奖励信号(正奖励或者负奖励)。随后,智能体根据新的状态和环境反馈的奖励,按照一定的策略执行新的动作。上述过程为智能体和环境通过状态、动作、奖励进行交互的方式。

智能体通过强化学习,可以知道自己在什么状态下,应该采取什么样的动作使得自身获得最大奖励。由于智能体与环境的交互方式与人类与环境的交互方式类似,可以认为强化学习是一套通用的学习框架,可用来解决通用人工智能的问题。因此强化学习也被称为通用人工智能的机器学习方法。

img

上面的是官方的定义。下面看看个人理解

人

image-20220527112457173

1.2 相关概念

  • 智能体

    强化学习的本体,作为学习者或者决策者。

  • 环境

    强化学习智能体以外的一切,主要由状态集合组成。

  • 状态

    一个表示环境的数据,状态集则是环境中所有可能的状态。

  • 动作

    智能体可以做出的动作,动作集则是智能体可以做出的所有动作。

  • 奖励

    智能体在执行一个动作后,获得的正/负反馈信号,奖励集则是智能体可以获得的所有反馈信息。

  • 策略

    强化学习是从环境状态到动作的映射学习,称该映射关系为策略。通俗的理解,即智能体如何选择动作的思考过程称为策略。

  • 目标

    智能体自动寻找在连续时间序列里的最优策略,而最优策略通常指最大化长期累积奖励。

因此,强化学习实际上是智能体在与环境进行交互的过程中,学会最佳决策序列。

1.3 关系

img

img

1.4 区别

img

1.5 内容

  • Agent(智能体):强化学习训练的主体就是Agent,有时候翻译为“代理”,这里统称为“智能体”。Pacman中就是这个张开大嘴的黄色扇形移动体。
  • Environment(环境):整个游戏的大背景就是环境;Pacman中Agent、Ghost、豆子以及里面各个隔离板块组成了整个环境。
  • State(状态):当前 Environment和Agent所处的状态,因为Ghost一直在移动,豆子数目也在不停变化,Agent的位置也在不停变化,所以整个State处于变化中;这里特别强调一点,State包含了Agent和Environment的状态。
  • Action(行动):基于当前的State,Agent可以采取哪些action,比如向左or右,向上or下;Action是和State强挂钩的,比如上图中很多位置都是有隔板的,很明显Agent在此State下是不能往左或者往右的,只能上下;
  • Reward(奖励):Agent在当前State下,采取了某个特定的action后,会获得环境的一定反馈就是Reward。这里面用Reward进行统称,虽然Reward翻译成中文是“奖励”的意思,但其实强化学习中Reward只是代表环境给予的“反馈”,可能是奖励也可能是惩罚。比如Pacman游戏中,Agent碰见了Ghost那环境给予的就是惩罚。

以上是强化学习的五个基本组成部分。

强化学习

1.6 特点

  • 试错学习:强化学习需要训练对象不停地和环境进行交互,通过试错的方式去总结出每一步的最佳行为决策,整个过程没有任何的指导,只有冰冷的反馈。所有的学习基于环境反馈,训练对象去调整自己的行为决策。
  • 延迟反馈:强化学习训练过程中,训练对象的“试错”行为获得环境的反馈,有时候可能需要等到整个训练结束以后才会得到一个反馈,比如Game Over或者是Win。当然这种情况,我们在训练时候一般都是进行拆解的,尽量将反馈分解到每一步。
  • 时间是强化学习的一个重要因素:强化学习的一系列环境状态的变化和环境反馈等都是和时间强挂钩,整个强化学习的训练过程是一个随着时间变化,而状态&反馈也在不停变化的,所以时间是强化学习的一个重要因素。
  • 当前的行为影响后续接收到的数据:为什么单独把该特点提出来,也是为了和监督学习&半监督学习进行区分。在监督学习&半监督学习中,每条训练数据都是独立的,相互之间没有任何关联。但是强化学习中并不是这样,当前状态以及采取的行动,将会影响下一步接收到的状态。数据与数据之间存在一定的关联性。

2. 马尔科夫决策过程

下面我们需要介绍一下强化学习的训练过程。整个训练过程都基于一个前提,我们认为整个过程都是符合马尔可夫决策过程的。

Markov是一个俄国的数学家,为了纪念他在马尔可夫链所做的研究,所以以他命名了“Markov Decision Process”,以下用MDP代替。

img

MDP核心思想就是下一步的State只和当前的状态State以及当前状态将要采取的Action有关,只回溯一步。

比如上图State3只和State2以及Action2有关,和State1以及Action1无关。我们已知当前的State和将要采取的Action,就可以推出下一步的State是什么,而不需要继续回溯上上步的State以及Action是什么,再结合当前的(State,Action)才能得出下一步State。实际应用中基本场景都是马尔可夫决策过程,比如AlphaGo下围棋,当前棋面是什么,当前棋子准备落在哪里,我们就可以清晰地知道下一步的棋面是什么了。

为什么我们要先定义好整个训练过程符合MDP了,因为只有符合MDP,我们才方便根据当前的State,以及要采取的Action,推理出下一步的State。方便在训练过程中清晰地推理出每一步的State变更,如果在训练过程中我们连每一步的State变化都推理不出,那么也无从训练。

3. 分类

3.1 Value Based

  • 说明:基于每个State下可以采取的所有Action,这些Action对应的Value, 来选择当前State如何行动。强调一点这里面的Value并不是从当前State进入下一个Stae,环境给的Reward,Reward是Value组成的一部分。但我们实际训练时既要关注当前的收益,也要关注长远的收益,所以这里面的Value是通过一个计算公式得出来的,而不仅仅是状态变更环境立即反馈的Reward。因为Value的计算较为复杂,通常使用贝尔曼方程,在此不再细述。
  • 如何选择Action:简单来说,选择当前State下对应Value最大的Action。选择能够带来最大Value加成的Action。比如下图StateA状态下,可以采取的Action有3个,但是Action2带来的Value最大,所以最终Agent进入StateA状态时,就会选择Action2。(强调一点这里面的Value值,在强化学习训练开始时都是不知道的,我们一般都是设置为0。然后让Agent不断去尝试各类Action,不断与环境交互,不断获得Reward,然后根据我们计算Value的公式,不停地去更新Value,最终在训练N多轮以后,Value值会趋于一个稳定的数字,才能得出具体的State下,采取特定Action,对应的Value是多少)

img

  • 代表性算法:Q-Learning、SARSA(State-Action-Reward-State-Action);
  • 适用场景:Action空间是离散的,比如Pacman里面的动作空间基本是“上下左右”,但有些Agent的动作空间是一个连续的过程,比如机械臂的控制,整个运动是连续的。如果强行要将连续的Action拆解为离散的也是可以的,但是得到的维度太大,往往是指数级的,不适宜训练。同时在Value-Based场景中,最终学习完每个State对应的最佳Action基本固定。但有些场景即使最终学习完每个State对应的最佳Action也是随机的,比如剪刀石头布游戏,最佳策略就是各1/3的概率出剪刀/石头/布。

Q-learning

Q ( S t , A t ) ← Q ( S t , A t ) + α [ R t + 1 + γ max ⁡ α Q ( S t + 1 , a ) − Q ( S t , A t ) ] Q(S_t,A_t)\leftarrow Q(S_t,A_t)+\alpha[R_{t+1}+\gamma \max_{\alpha}Q(S_{t+1},a)-Q(S_t,A_t)] Q(St,At)Q(St,At)+α[Rt+1+γαmaxQ(St+1,a)Q(St,At)]

动作价值函数 Q Q Q直接逼近最优动作价值函数 q ∗ q_* q,并且不需要遵循策略。这极大地简化了算法的分析,加快了收敛速度。

这里写图片描述

下面以一个例子来说明Q-learning的流程

下图展示了5间房,这5间房的某些房间是相同的,其中房间5代表出口。

用图表示为

将每个房间看成是状态state,从一个房间到另一个房间的动作看成是action。为每一个门设置一个奖励,如能到达房间5,给予100的奖励,如不能到达,则奖励为0。

假设现在在状态2,从状态2可以到状态3,而无法到状态0、1、4,因为2没法直接到0、1、4;从状态3,可以到1、4或者2;而4可以到0、3、5;其它依次类推。

以上关系,用 R R R矩阵表示

α = 1 \alpha=1 α=1,则贝尔曼公式转化为
Q ( s , a ) ← R t + 1 + γ max ⁡ a Q ( S t + 1 , a ) Q(s,a)\leftarrow R_{t+1}+\gamma\max_{a}Q(S_{t+1},a) Q(s,a)Rt+1+γamaxQ(St+1,a)
初始化 Q Q Q矩阵为零矩阵

假设初始位置是state1,在R矩阵中发现从state1可以到state3或state5,随机选择一个方向,比如从1到5,则
Q ( 1 , 5 ) ← R ( 1 , 5 ) + γ max ⁡ { Q ( 5 , 1 ) , Q ( 5 , 4 ) , Q ( 5 , 5 ) } = 100 + 0.8 × 0 = 100 Q(1,5)\leftarrow R(1,5)+\gamma\max\{Q(5,1),Q(5,4),Q(5,5)\}=100+0.8\times 0=100 Q(1,5)R(1,5)+γmax{ Q(5,1),Q(5,4),Q(5,5)}=100+0.8×0=100
Q Q Q矩阵转化为

再选择state3作为初始状态,选择方向1,则
Q ( 3 , 1 ) ← R ( 3 , 1 ) + γ max ⁡ { Q ( 1 , 3 ) , Q ( 1 , 5 ) } = 0 + 0.8 × max ⁡ ( 0 , 100 ) = 80 Q(3,1)\leftarrow R(3,1)+\gamma\max\{Q(1,3),Q(1,5)\}=0+0.8\times \max(0,100)=80 Q(3,1)R(3,1)+γmax{ Q(1,3),Q(1,5)}=0+0.8×max(0,100)=80
Q Q Q矩阵转化为

经过多次循环迭代,最终结果为

正则化后为

3.2 基于神经网络方法

实践 DQN

DQN. "Playing atari with deep reinforcement learning."https://arxiv.org/pdf/1312.5602.pdf

Deep Q-Network(DQN)

在现实中,agent面临一个困难:必须从高维的输入中获得有效的环境表征,并用这些表征将过去的经验推广到新的环境。DQN就是针对这种情况提出的,它可以直接从高维输入数据中学习有效的策略。DQN巧妙地将强化学习与深度神经网络进行了结合,2015年deepmind采用的神经网络是CNN,他们用CNN来逼近最优动作价值函数
Q ∗ ( s , a ) = max ⁡ π E [ R t + γ R t + 1 + ⋯ ∣ S t = s , A t = a , π ] Q_*(s,a)=\max_\pi E[R_t+\gamma R_{t+1}+\cdots|S_t=s,A_t=a,\pi] Q(s,a)=πmaxE[Rt+γRt+1+St=s,At=a,π]

3.3 基于策略梯度

Policy Based策略就是对Value Based的一个补充,

Policy Based策略就是对Value Based的一个补充,

  • 说明:基于每个State可以采取的Action策略,针对Action策略进行建模,学习出具体State下可以采取的Action对应的概率,然后根据概率来选择Action。如何利用Reward去计算每个Action对应的概率里面涉及到大量的求导计算,对具体过程感兴趣的可以参考这篇文章:https://zhuanlan.zhihu.com/p/54825295
  • 如何选择Action:基于得出的策略函数,输入State得到Action。
  • 代表性算法:Policy Gradients
  • 适用场景:Action空间是连续的&每个State对应的最佳Action并不一定是固定的,基本上Policy Based适用场景是对Value Based适用场景的补充。对于Action空间是连续的,我们通常会先假设动作空间符合高斯分布,然后再进行下一步的计算。

PPO.“Proximal policy optimization algorithms.” https://arxiw.org/abs/1707.06347

3.4 连续动作空间

实践 DDPG

DDPG. "Continuous control with deep reinforcement learning."https://arxiv.org/abs/1509.02971

4. 应用

4.1 自动驾驶

目前国内百度在自动驾驶领域中就使用了一定的强化学习算法,但是因为强化学习需要和环境交互试错,现实世界中这个成本太高,所以真实训练时都需要加入安全员进行干预,及时纠正Agent采取的错误行为。

4.2 游戏

游戏可以说是目前强化学习应用最广阔的,目前市场上的一些MOBA游戏基本都有了强化学习版的AI在里面,最出名的就是王者荣耀AI。游戏环境下可以随便交互,随便试错,没有任何真实成本。同时Reward也相对比较容易设置,存在明显的奖励机制。

4.3 推荐系统

目前一些互联网大厂也在推荐系统中尝试加入强化学习来进行推荐,比如百度&美团。使用强化学习去提高推荐结果的多样性,和传统的协同过滤&CTR预估模型等进行互补。

参考资料

策略产品经理必读系列—第二讲强化学习 - 知乎 (zhihu.com)

强化学习(Reinforcement Learning)知识整理 - 知乎 (zhihu.com)

(2条消息) 强化学习(Reinforcement Learning)_extremebingo的博客-CSDN博客_强化学习的作用

猜你喜欢

转载自blog.csdn.net/wujing1_1/article/details/125078737