强化学习 Reinforcement Learning

Posted 二球悬铃木

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了强化学习 Reinforcement Learning相关的知识,希望对你有一定的参考价值。

强化学习 Reinforcement Learning

强化学习是一种机器学习思想,其关心一个智能体如何采取行动以达到最大化激励回报。

基本的强化学习模型以马尔可夫决策过程建模。

马尔可夫决策过程 Markov Decision Process

系统要素

  • A 行动空间;
  • S状态空间;
  • \\(P^a_s\'s=\\mathbbP(S_t+1=s\'|S_t=s, A_t=a)\\) 状态转移函数(给定t时刻的状态和动作,t+1时刻的状态分布),在t时刻给定状态为s,动作为a,t+1时刻状态转移为s\'的概率;
  • \\(R_a(s\',s)\\) 即刻奖励函数,给定动作a,状态由s转移到s\'所获得的即刻奖励(immediate reward)。

有时还包括衰减系数 \\(\\gamma\\) ,值域[0,1],t时刻的价值函数被定义为对未来奖励的指数衰减加权和:

\\[G_t=\\sum_k=0^\\infty \\gamma^kr_t+k=r_t + \\gamma r_t+1 +\\gamma^2 r_t+2 +\\cdots \\]

,其中 \\(r_t\\) 是t时刻的即刻奖励。

关键概念

代理/智能体 Agent / intelligent agent

在环境中行动的虚拟代理,执行行为动作根据模型中的“策略”而定。

策略 Policy

策略,是根据环境的当前状态表明不同动作的概率。

\\[\\pi: A\\times S \\mapsto [0,1] \\\\ \\pi(a,s)=\\mathbbP(A_t=a|S_t=s) \\]

奖励函数 Reward

状态价值函数 state value function

在一个给定策略 \\(\\pi\\) 下,(在某个时刻)状态s的价值函数被定义为以s作为初始状态,以策略 \\(\\pi\\) 推演出的收益G的期望。

\\[V_\\pi(s)=\\mathbbE_\\tau\\sim \\mathbbP_\\pi\\left[G|s_0=s; \\pi\\right]=\\mathbbE_\\tau\\sim \\mathbbP_\\pi\\left[\\sum_t=0^\\infty\\gamma^t r_t(s,a) \\bigg| s_0=s ; \\pi\\right] \\]

,其中收益G是从此刻起未来所有即刻奖励的指数衰减加权和(discounted reward)(G之所以是随机变量是因策略 \\(\\pi\\) 是随机过程,导致依赖于此的收益R也是随机变量):

\\[G=\\sum_k=0^\\infty \\gamma^k r_k \\\\ \\beginaligned G_t &=\\sum_k=0^\\infty\\gamma^k r_t+k=\\sum_k=0^\\infty \\gamma^kr_t+k=r_t + \\gamma r_t+1 +\\gamma^2 r_t+2 +\\cdots \\\\ &= r_t+1+\\gamma G_t+1 \\endaligned \\]

,其中 \\(r_k\\) 是相对R所处时刻(t)的未来第k个偏移时刻(即t+k时刻)的即刻奖励。

行动-状态 价值函数 state-action pair value function

\\[Q_\\pi (s, a)=\\mathbbE_\\tau\\sim \\pi\\left[G| s_0=s, a_0=a; \\pi \\right] \\]

优势函数 Advantage Function

行动价值与状态价值之差:

\\[A_\\pi(s,a) =Q_\\pi (s,a) - V_\\pi(s) \\]

记号 \\(A\\) 在某些情况下存在歧义,可能值优势函数,也可能指行动(Action)。

Average Reward

累积奖励函数(策略优化目标函数)上的基本思想是:累积奖励是未来所有时刻奖励的平均和。

平均奖励函数:

\\[G(\\pi):=\\lim_N\\to \\infty\\mathbbE_\\tau\\sim \\mathbbP_\\pi\\left[ \\frac1N \\sum_t=0^N-1 r(s_t,a_t)\\right]=\\mathbbE_s\\sim d_\\pi \\atop a\\sim\\pi[r(s,a)] \\\\ \\\\ V_\\pi(s):=\\mathbbE_\\tau\\sim\\mathbbP_\\pi\\left[\\sum_t=0^\\infty(r(s_t,a_t)-\\rho(\\pi)) \\bigg| s_0=s\\right] \\\\ \\\\ Q_\\pi(s,a):=\\mathbbE_\\tau\\sim\\mathbbP_\\pi\\left[\\sum_t=0^\\infty(r(s_t,a_t)-\\rho(\\pi)) \\bigg| s_0=s, a_0=a\\right] \\\\ \\\\ A_\\pi(s,a) := Q_\\pi(s,a)-V_\\pi(s) \\]

其中 \\(d_\\pi(s):=\\lim_N\\to \\infty \\frac1N\\sum_t=0^N-1\\mathbbP(s_t=s|\\pi)=\\lim_t\\to \\infty\\mathbbP(s_t=s|\\pi)\\) 是策略 \\(\\pi\\) 下状态的平稳分布。 \\(\\tau=(s_0, a_0, s_1, a_1,\\dots)\\) 是轨迹(关于行动-状态对的时序), \\(\\tau \\sim \\mathbbP_\\pi\\) 表示从策略 \\(\\pi\\) 采样出的轨迹, \\(s_0\\sim \\mathbbP, a_0\\sim \\pi(\\cdot|s_0), a_t\\sim \\pi(\\cdot|s_t), s_t+1\\sim\\mathbbP(\\cdot|a_t, s_t)\\)

Discounted Reward

累积奖励函数(策略优化目标函数)上的基本思想是:越远的未来时刻的预估奖励对当前策略优化影响越小(对预估累积奖励贡献越小)。

\\(\\gamma\\in(0,1)\\) , 衰减加权奖励函数:

\\[G_\\gamma(\\pi):= \\mathbbE_\\tau\\sim \\mathbbP_\\pi\\left[\\sum_t=0^\\infty r(s_t,a_t)\\right]=\\frac11-\\gamma\\mathbbE_s\\sim d_\\pi, \\gamma\\atop a\\sim \\pi\\left[r(s,a)\\right] \\\\ \\beginaligned V_\\pi,\\gamma(s) & :=\\mathbbE_\\tau\\sim\\mathbbP_\\pi\\left[\\sum_t=0^\\infty \\gamma^t r(s_t,a_t)\\bigg| s_0=s \\right] \\\\ &= \\mathbbE_a\\sim\\pi(\\cdot|s)\\left[Q_\\pi,\\gamma(s,a)\\right]=\\sum_a\\in \\mathcalA\\pi(a|s)Q_\\pi,\\gamma(s,a) \\endaligned \\\\ Q_\\pi,\\gamma (s,a):=\\mathbbE_\\tau\\sim\\mathbbP_\\pi\\left[\\sum_t=0^\\infty \\gamma^t r(s_t,a_t)\\bigg| s_0=s, a_0=a \\right] \\\\ A_\\pi, \\gamma=Q_\\pi, \\gamma(s,a)-V_\\pi, \\gamma(s) \\]

Discounted Reward 与 Average Reward的关系:
\\(\\gamma\\to 1\\) 时, \\(\\rho_\\pi,\\gamma\\to \\rho(\\pi)\\) ,即Average Reward可以认为是Discounted Reward思想在 \\(\\gamma=1\\) 时的特殊情况。

Disounted Reward的另一种特殊情况 \\(\\gamma=0\\) ,相当于不利用未来奖励信息,仅用当前的。

References:

策略类型 on-policy / off-policy

策略梯度 Policy Gradient

策略梯度是解决强化学习中梯度计算困难的一种方法。

\\[\\beginaligned \\nabla_\\theta J(\\theta) &:= \\nabla_\\theta \\sum_s\\in Sd_\\pi(s) \\sum_a\\in AQ_\\pi(s,a) \\pi_\\theta (a|s) \\\\ &=\\nabla_\\theta \\mathbbE_s\\sim d_\\pi \\atop a\\sim \\pi \\left[ Q_\\pi(s,a) \\right] = \\nabla_\\theta \\mathbbE_s\\sim d_\\pi \\left[V_\\pi(s)\\right] \\\\ &\\propto \\sum_s\\in Sd_\\pi(s) \\sum_a\\in AQ_\\pi(s,a) \\nabla_\\theta \\pi_\\theta (a|s) \\\\ &= \\sum_s\\in Sd_\\pi(s) \\sum_a\\in AQ_\\pi(s,a)\\pi_\\theta(a|s) \\nabla_\\theta \\ln \\pi_\\theta (a|s) \\\\ &= \\mathbbE_s\\sim d_\\pi \\atop a\\sim \\pi[\\nabla_\\theta \\ln \\pi_\\theta(a|s)] \\\\ &= \\mathbbE_\\tau\\sim\\mathbbP_\\pi [G_t\\nabla_\\theta \\ln \\pi_\\theta(a_t|s_t)] = \\mathbbE_\\tau\\sim\\mathbbP_\\pi \\left[G_t \\frac\\nabla_\\theta \\pi_\\theta(a_t|s_t)\\pi_\\theta(a_t|s_t)\\right] \\endaligned \\]

上述“正比于( \\(\\propto\\) )”的证明详见书籍 Sutton&Barto 2020, Reinforcement Learning: An Introduction

梯度更新策略(由于要最大化而非最小化目标函数,故应采用梯度上升而非下降):

\\[\\theta_t+1 \\leftarrow \\theta_t + \\alpha G_t \\frac\\nabla_\\theta \\pi_\\theta(a_t|s_t)\\pi_\\theta(a_t|s_t) \\]

,其中 \\(\\alpha\\) 为学习率。

时常会使用一个变体,其在 \\(G_t\\) 上减去一个基线值,以减少梯度估计的方差。

Q-Learning

函数Q并非已知计算式,而是用学习的方式来拟合。

Deep Q-learning Network, DQN

用深度神经网络学习Q函数。

GAE, Generalized Avantage Estimator

被用于策略梯度。

\\[\\hat A^GAE(\\gamma, \\lambda) := \\sum_k=0^\\infty (\\gamma\\lambda)^k \\delta_t+k^V = \\sum_k=0^\\infty (\\gamma\\lambda)^k (r_t+k + V(s_t+k+1)- V(s_t+k)) \\]

具有性质:
*


References:

  • Sutton & Barto 2020, Reinforcement Learning: An Introduction.

深度强化学习Deep Reinforcement Learning 学习过程流水账

2016/10/23

这篇文章和那篇三维重建的流水账一样,用来记录一些关键资料来源和发牢骚。

 

Python怎么学上手快,够用?

神经网络怎么上手?

强化学习怎么上手?

 

目标驱动,先去看用Python写的强化学习的代码,再去看一些实现各种神经网络的Python代码。再看两种融合的代码。

熟悉工作环境和工作所用工具,比如Tensorflow之类的。

 

以上是关于强化学习 Reinforcement Learning的主要内容,如果未能解决你的问题,请参考以下文章

强化学习 Reinforcement Learning

强化学习专栏——Reinforcement Learning

Reinforcement Learning强化学习系列之一:model-based learning

干货总结| Deep Reinforcement Learning 深度强化学习

强化学习 (Reinforcement Learning)

深度强化学习Deep Reinforcement Learning 学习过程流水账