首页 > 技术文章 > 21强化学习

Siri-99 2021-11-01 21:31 原文

强化学习

  • 也称增强学习。
  • 强化学习就是程序或智能体(agent)通过与环境不断地进行交互学习一个从环境到动作的映射,学习的目标就是使累计回报最大化。
  • 强化学习是一种试错学习,因其在各种状态(环境)下需要尽量尝试所有可以选择的动作,通过环境给出的反馈(即奖励)来判断动作的优劣,最终获得环境和最优动作的映射关系(即策略)。

举例

吃豆游戏就可以转化为一个强化学习的任务。

image

基本组件:

  • agent:大嘴小怪物
  • 环境:整个迷宫中的所有信息
  • 奖励:agent每走一步,需要扣除1分,吃掉小球得10分,吃掉敌人得200分,被吃掉游戏结束。
  • 动作:在每种状态下,agent能够采用的动作,比如上下左右移动。

目标:

  • 策略:在每种状态下,采取最优的动作。
  • 学习目标:获得最优的策略,以使累计奖励最大(即Score)。



马尔可夫决策过程(MDP)

  • 马尔可夫决策过程(MarkovDecision Process)通常用来描述一个强化学习问题。
  • 智能体agent根据当前对环境的观察采取动作获得环境的反馈,并使环境发生改变的循环过程。

image


MDP基本元素

s∈S:有限状态state集合,s表示某个特定状态;

a∈A:有限动作action集合,a表示某个特定动作;

T(S, a, S') ~ Pr(S'|s,a):状态转移模型,根据当前状态s和动作a预测下一个状态s,这里的P,表示从s采取行动a转移到s’的概率;

R(s,a):表示agent采取某个动作后的即时奖励,它还有R(s,a,s'),R(s)等表现形式;

Policy Π(s)→a:根据当前state来产生action,可表现为a=T(s)或Π(als) = P(als),后者表示某种状态下执行某个动作的概率。


值函数

状态值函数V表示行策略n能得到的累计折扣奖励:
image

状态动作值函数Q(s,a)表示在状态s下执行动作a能得到的累计折扣奖励:
image

最优值函数
image

最优控制

在得到最优值函数之后,可以通过值函数的值得到状态s时应该采取的动作a:
image



蒙特卡洛强化学习

蒙特卡洛强化学习

  • 在现实的强化学习任务中,环境的转移概率、奖励函数往往很难得知,甚至很难得知环境中有多少状态。若学习算法不再依赖于环境建模,则称为免模型学习,蒙特卡洛强化学习就是其中的一种。
  • 蒙特卡洛强化学习使用多次采样,然后求取平均累计奖赏作为期望累计奖赏的近似。

image

蒙特卡洛强化学习:直接对状态动作值函数Q(s,a)进行估计,每采样一条轨迹,就根据轨迹中的所有“状态-动作”利用下面的公式对来对值函数进行更新。
image

每次采样更新完所有的“状态-动作”对所对应的Q(s,a),就需要更新采样策略t。但由于策略可能是确定性的,即一个状态对应一个动作,多次采样可能获得相同的采样轨迹,因此需要借助ε贪心策略:
image

Q-learning算法

  • 今蒙特卡洛强化学习算法需要采样一个完整的轨迹来更新值函数,效率较低,此外该算法没有充分利用强化学习任务的序贯决策结构。
  • Q-learning算法结合了动态规划与蒙特卡洛方法的思想,使得学习更加高效。



Q-learning算法

假设对于状态动作对(s,a)基于t次采样估算出其值函数为:
image

在进行t+1次采样后,依据增量更新得到:
image

然后,将1/t+1替换成系数α(步长),得到:
image

以γ折扣累计奖赏为例:
image

则值函数的更新方式如下:
image

Q-learning算法流程:

image



深度强化学习(DRL)

深度强化学习

  • 传统强化学习:真实环境中的状态数目过多,求解困难。
  • 深度强化学习:将深度学习和强化学习结合在一起,通过深度神经网络直接学习环境(或观察)与状态动作值函数Q(s,a)之间的映射关系,简化问题的求解。

Deep Q Network (DQN)

  • Deep Q Network (DQN):是将神经网络(neuralnetwork)和Q-learning结合,利用神经网络近似模拟函数Q(s,a),输入是问题的状态(e.g.,图形),输出是每个动作a对应的Q值,然后依据Q值大小选择对应状态执行的动作,以完成控制。
  • 神经网络的参数:应用监督学习完成。

DQN学习过程学习流程:

  • 1、状态s输入,获得所有动作对应的Q值Q(s,a);
  • 2、选择对应Q值最大的动作a'并执行;
  • 3、执行后环境发生改变,并能够获得环境的奖励r;
  • 4、利用奖励r更新Q(s,a')--强化学习;利用新的Q(s,a')更新网络参数-监督学习。

image

DQN算法流程

image



最后的思考

今天的笔记公式真多啊,对着视频敲公式,头都晕了,10分钟的视频看了一个多小时呜呜呜。

结果上传的时候公式还要一个个截图。

今天周一满课,好累。

想玩饥荒。



推荐阅读