本文主要是介绍强化学习(一):强化学习与马尔科夫决策过程,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
目录
- 1. 强化学习概念
- 1.1. 负反馈控制
- 1.2. 强化学习
- 参考资料
- 2. 马尔科夫决策过程(Markov decision process, MDP)
- 2.1. 定义
- 2.2. 动态特性
- 2.3. 折扣
- 2.4. 价值函数
- 2.5. 最优策略 与 最优价值函数
- 参考资料
1. 强化学习概念
1.1. 负反馈控制
在经典的自动控制原理中,控制信号 u u u是根据被控对象的状态进行控制的,同时再考虑被控量的理想值,最终能使被控量的实际值 和 理想值达到一致。
这样的控制作用基于经典的 负反馈思想
u ( t ) = K ( y ( t ) − y s ) u(t) = K(y(t) - y_s) u(t)=K(y(t)−ys)
而对于离散系统,在 k k k时刻施加的控制信号 u ( k ) u(k) u(k) 是指在 k k k时刻观测到了系统状态 x ( k ) x(k) x(k)之后施加的控制信号,从而使系统状态由 x ( k ) x(k) x(k)变成 x ( k + 1 ) x(k+1) x(k+1)。而 u ( k ) u(k) u(k)的设计一定是使系统状态与预期值达到一致。
这样控制器和被控对象的交互就构成了一个序列:
x ( k ) , u ( k ) , x ( k + 1 ) , u ( k + 1 ) , . . . x(k), u(k), x(k+1), u(k+1),... x(k),u(k),x(k+1),u(k+1),...
控制作用就取决于 u ( k ) u(k) u(k)的式子了,经典控制中 u ( k ) u(k) u(k)的表达式是确定的,例如经典PID中的参数是先通过阶跃曲线法调好在加入控制回路中,LQR中的增益K也是提前计算好的。
同时也可以不断实验以调整 u ( k ) u(k) u(k)实现对系统的控制,最终得到针对某个特定系统的控制信号 u ( k ) u(k) u(k),这就是强化学习的思想。
1.2. 强化学习
强化学习的思路是是使智能体不断地控制,不断地从控制结果调整控制信号 u ( k ) u(k) u(k),最终完成控制。只不过强化学习的目标不再是使被控量收敛至预定值,而是达到最大的累积奖励。
比如你在写作业,在不知后果的情况下去打游戏,发现最后会被你妈打一顿。下次在写作业的时候,又去打游戏,然后又被打。长此以往你就知道了,跑去打游戏会被妈妈打,于是你选择继续写作业而不是去打游戏。强化学习就是基于这样的奖励机制调整控制策略的。
-
状态 State:即系统状态 x ( k ) x(k) x(k)。
-
动作 Action:针对当前状态施加的控制信号 u ( k ) u(k) u(k),从而智能体到达一个新的状态 x ( k + 1 ) x(k+1) x(k+1)
-
奖励 Reward:在状态 x ( k ) x(k) x(k)下应用某种动作 u ( k ) u(k) u(k)转移至另一个状态 x ( k + 1 ) x(k+1) x(k+1),会给出一个奖励值 r e w a r d [ x ( k ) , u ( k ) ] reward[x(k),u(k)] reward[x(k),u(k)]
-
值函数 Value function:在状态 x ( k ) x(k) x(k)下应用某种动作 u ( k ) u(k) u(k)会给出一个到达终止状态的累积奖励的期望 v a l u e F u n c t i o n [ x ( k ) , u ( k ) ] valueFunction[x(k),u(k)] valueFunction[x(k),u(k)]
值函数和奖励的区别在于,奖励只表达这一步行动的奖励值,值函数表达的是 这一步为开始,最终到达终止状态的所有奖励的和的期望值。即值函数衡量的是这一步对整体的贡献。当然值函数一定包括这一步的奖励。
-
策略 Policy:根据当前状态得出动作的方法,是基于值函数最大得出的动作,即 u ( k ) = P o l i c y ( x ( k ) , v a l u e F u n c t i o n ( ) ) u(k) = Policy( x(k),valueFunction() ) u(k)=Policy(x(k),valueFunction())。强化学习关注的是长远的利益而非眼前的奖励。
因此强化学习的目标就是得到 策略Policy,使智能体在任意状态下 达到最大的累积收益。
而这个策略的得出,则需要不断地训练调整得出。就需要智能体不断地探索数据,探索每一步的未来的累积收益如何,并利用这些探索的数据进行策略更新。
参考资料
- 强化学习(一):简介
2. 马尔科夫决策过程(Markov decision process, MDP)
马尔科夫决策过程 是强化学习中智能体应用策略的过程,与离散系统的控制类似,在当前状态施加一个行为,得到新的状态,并得到一个收益。
x ( k ) , u ( k ) , r e w a r d ( k + 1 ) , x ( k + 1 ) , u ( k + 1 ) , . . . x(k), u(k), reward(k+1), x(k+1), u(k+1),... x(k),u(k),reward(k+1),x(k+1),u(k+1),...
2.1. 定义
典型的MDP包含如下五个要素
其中
- S S S:系统状态的有限集合
- A A A:系统可采取的行动的的有限集合
- π ( a ∣ s ) \pi(a|s) π(a∣s):表示在状态 s s s下选择动作 a a a的概率,可看作在该状态下的随机策略。 π ( s ) \pi(s) π(s)表示状态 s s s下选择的动作,为确定性策略。用 π \pi π表示任意状态下的动作策略。
- R ( s , a , s ′ ) R(s,a,s') R(s,a,s′):收益,表示在状态 s s s下采取动作 a a a到达新状态 s ′ s' s′而获得的奖励。
- G G G:回报,在时间 [ 1 , T ] [1,T] [1,T]内所有行动的收益累积
因此MDP就是在状态 s s s下根据 π ( a ∣ s ) \pi(a|s) π(a∣s)求得行为 a a a而发生状态转移至 s ′ s' s′,获得收益 R ( s , a , s ′ ) R(s,a,s') R(s,a,s′)。其中策略 π \pi π能够使整个行动过程(或是episode)的收益累积,或是回报 G G G最大。
2.2. 动态特性
动态特性指的是在状态 s s s时采取动作 a a a,从而状态转移至 s ′ s' s′并获得收益 r r r的概率
P ( s ′ , r ∣ s , a ) = P r { S t = s ′ , R t = r ∣ S t − 1 = s , A t − 1 = a } P(s',r|s,a)=Pr\{St=s',Rt=r|St-1=s,At-1=a\} P(s′,r∣s,a)=Pr{St=s′,Rt=r∣St−1=s,At−1=a}
并满足 ∑ s ′ ∈ S ∑ r ∈ R p ( s ′ , r ∣ s , a ) = 1 \sum_{s' \in S}\sum_{r \in R}p(s',r|s,a)=1 ∑s′∈S∑r∈Rp(s′,r∣s,a)=1
使用动态特性可以得出很多量例如状态转移概率,期望收益等等。
对于一个MDP, S , A , R , G , P ( s ′ , r ∣ s , a ) S,A,R,G,P(s',r|s,a) S,A,R,G,P(s′,r∣s,a)均是由环境给出,而唯有策略 π \pi π是由智能体自身给出,也是控制量。
因此问题是:如何衡量策略的好坏,如何制定最优的策略?
2.3. 折扣
episode:智能体按照策略 π \pi π行动,从起始点开始并最终终止于某个终结状态的整个过程。
因此策略 π \pi π的好坏首先体现在每个使用该策略的episode的好坏。
折扣
那么如何评价某次episode的好坏呢?评估每个episode的好坏应该去看该episode从头至尾智能体的收益的累积和。若起始时刻为 t t t,则
G t = R t + 1 + R t + 2 + R t + 3 + . . . + R T G_t= R_{t+1}+R_{t+2}+R_{t+3}+...+R_{T} Gt=Rt+1+Rt+2+Rt+3+...+RT
因此智能体的每一步决策都尽量使整个行为过程的收益累积和最大。
但是如果该episode没有终止条件, G t G_t Gt的值如果不收敛将趋于无穷大。趋于无穷大的收益和不利于策略的评估,因此引入折扣变量 γ \gamma γ
G t = R t + 1 + γ R t + 2 + γ 2 R t + 3 + . . . = R t + 1 + γ G t + 1 G_t= R_{t+1}+\gamma R_{t+2}+\gamma^2 R_{t+3}+...=R_{t+1}+\gamma G_{t+1} Gt=Rt+1+γRt+2+γ2Rt+3+...=Rt+1+γGt+1
这样无限回报将变成有界的。
每个episode都有其相应的收益累积和,同一个策略 π \pi π不同的episode可能有不同的收益累积。那么如何评估策略 π \pi π的好坏呢?使用价值函数,即单个episode的收益累积和的期望值
2.4. 价值函数
价值函数就是收益和的期望,有了策略 π \pi π就可以计算价值函数了
-
状态价值函数 v π ( s ) v_{\pi}(s) vπ(s):表示在状态 s s s开始使用策略 π \pi π进行决策的累积回报期望值
v π ( s ) = E π [ G t ∣ S t = s ] v_{\pi}(s) = E_{\pi}[G_t|S_t = s] vπ(s)=Eπ[Gt∣St=s] -
行为价值函数 q π ( s , a ) q_{\pi}(s,a) qπ(s,a):表示在状态 s s s采取行动 a a a之后的所有状态,使用策略 π \pi π进行决策的累积回报期望值
q π ( s , a ) = E π [ G t ∣ S t = s , A t = a ] = ∑ s ′ , r p ( s ′ , r ∣ s , a ) [ r + γ × v π ( s ′ ) ] (重要) q_{\pi}(s,a) = E_{\pi}[G_t|S_t = s,A_t = a]=\sum_{s',r}p(s',r|s,a)[r+\gamma \times v_{\pi}(s')]\tag{重要} qπ(s,a)=Eπ[Gt∣St=s,At=a]=s′,r∑p(s′,r∣s,a)[r+γ×vπ(s′)](重要)
注意 v π ( s ) v_{\pi}(s) vπ(s)与 q π ( s , a ) q_{\pi}(s,a) qπ(s,a)的关系,根据策略 π \pi π动作的选择有一个概率分布
v π ( s ) = ∑ a π ( a ∣ s ) × q π ( s , a ) (重要) v_{\pi}(s)=\sum_{a}\pi(a|s) \times q_{\pi}(s,a)\tag{重要} vπ(s)=a∑π(a∣s)×qπ(s,a)(重要)
2.5. 最优策略 与 最优价值函数
最优策略 π ∗ \pi_* π∗指对于任意状态 s ∈ S s \in S s∈S 和该状态下的任意行为 a a a,该策略的价值函数最大,即
v ∗ ( s ) = max π ( v π ( s ) ) , q ∗ ( s , a ) = max π ( q π ( s , a ) ) v_*(s) = \max_{\pi}(v_{\pi}(s)), q_*(s,a) = \max_{\pi}(q_{\pi}(s,a)) v∗(s)=πmax(vπ(s)),q∗(s,a)=πmax(qπ(s,a))
那么最优策略 π ∗ \pi_* π∗满足什么样的条件呢?
如下图所示,对于一个状态 s s s有许多行为 a a a可供选择,每个行为都有其各自的 q ∗ ( s , a ) q_*(s,a) q∗(s,a),因此一定有
v π ( s ) = ∑ a π ( a ∣ s ) × q π ( s , a ) ≤ 1 × max a ( q π ( s , a ) ) ≤ 1 × max a ( q ∗ ( s , a ) ) v_{\pi}(s)=\sum_{a}\pi(a|s) \times q_{\pi}(s,a) ≤ 1 \times \max_{a}(q_{\pi}(s,a)) ≤ 1 \times \max_{a}(q_{*}(s,a)) vπ(s)=a∑π(a∣s)×qπ(s,a)≤1×amax(qπ(s,a))≤1×amax(q∗(s,a))
当且仅当 π = π ∗ \pi = \pi_* π=π∗取等,即最优策略的概率分布一定为
π [ arg max a ( q ∗ ( s , a ) ) ∣ s ] = 1 (重要) \pi[\argmax_{a}(q_{*}(s,a)) |s] = 1\tag{重要} π[aargmax(q∗(s,a))∣s]=1(重要)
不可能有其他的概率分布 π ( a ∣ s ) \pi(a|s) π(a∣s)与 q π ( s , a ) q_{\pi}(s,a) qπ(s,a)比 max a ( q ∗ ( s , a ) ) \max_{a}(q_{*}(s,a)) maxa(q∗(s,a))更大了。
因此最优策略的价值函数满足如下的Bellman最优方程
v ∗ ( s ) = 1 × max a ( q ∗ ( s , a ) ) = max a ∑ s ′ , r p ( s ′ , r ∣ s , a ) [ r + γ × v ∗ ( s ′ ) ] (重要) v_{*}(s)=1 \times \max_{a}(q_{*}(s,a)) = \max_{a}\sum_{s',r}p(s',r|s,a)[r+\gamma \times v_{*}(s')]\tag{重要} v∗(s)=1×amax(q∗(s,a))=amaxs′,r∑p(s′,r∣s,a)[r+γ×v∗(s′)](重要)
q ∗ ( s , a ) = ∑ s ′ , r p ( s ′ , r ∣ s , a ) [ r + γ × max a ′ ( q ∗ ( s ′ , a ′ ) ) ] (重要) q_{*}(s,a) = \sum_{s',r}p(s',r|s,a)[r+\gamma \times \max_{a'}(q_{*}(s',a'))] \tag{重要} q∗(s,a)=s′,r∑p(s′,r∣s,a)[r+γ×a′max(q∗(s′,a′))](重要)
特别的如果转移到状态 s ′ s' s′只有一种奖励 r r r
则上式变成
v ∗ ( s ) = max a ∑ s ′ p ( s ′ ∣ s , a ) [ R ( s , a , s ′ ) + γ × v ∗ ( s ′ ) ] v_{*}(s) = \max_{a}\sum_{s'}p(s'|s,a)[R(s,a,s')+\gamma \times v_{*}(s')] v∗(s)=amaxs′∑p(s′∣s,a)[R(s,a,s′)+γ×v∗(s′)]
q ∗ ( s , a ) = ∑ s ′ p ( s ′ ∣ s , a ) [ R ( s , a , s ′ ) + γ × max a ′ ( q ∗ ( s ′ , a ′ ) ) ] q_{*}(s,a) = \sum_{s'}p(s'|s,a)[R(s,a,s')+\gamma \times \max_{a'}(q_{*}(s',a'))] q∗(s,a)=s′∑p(s′∣s,a)[R(s,a,s′)+γ×a′max(q∗(s′,a′))]
因此最优策略 π ∗ \pi_* π∗就为使上式中取到 m a x max max的行动 a a a,这需要对 v ∗ ( s ) v_{*}(s) v∗(s)和 q ∗ ( s , a ) q_{*}(s,a) q∗(s,a)进行求解。
由于这两个值函数均满足递推特性,最简单的思路就是穷举所有可能性来寻找产生 m a x max max的 a a a,但这样十分费力,需要一些近似算法来计算。同时上式是在动态特性已知的情况下求解的,如果动态特性未知呢?
参考资料
- 强化学习(二):马尔科夫决策过程(Markov decision process)
- 百度百科:马尔科夫决策过程
- 强化学习. Richard S. Sutton,Andrew G. Barto
这篇关于强化学习(一):强化学习与马尔科夫决策过程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!