强化学习基础

强化学习

强化学习概念

强化学习(RL)就是智能体Agent与环境交互从而进行学习的一种机器学习方法。Agent执行一个动作后,会从环境中画的反馈,这个反馈就是环境对这个动作做出的评价(这个可以理解为当你拿100分时,你妈妈会给你一顿大餐的反馈,而当你拿0分时,你妈妈会给你一个耳光的反馈),这是一个试错的过程。
强化学习流程

强化学习的目标是使每执行一个动作以后都能得到最大的立即奖赏,我们要做的就是要训练Agent让他知道在什么状态下做什么动作可以获得最好的反馈。
综上可知,强化学习方法的学习过程是一种试探过程,通过试探不断增大最优动作被选中的概率,从而寻找到一组最优解。

强化学习组成

Agent在所处的环境进行探索学习就构成了强化学习系统,奖赏函数可以知道Agent进行学习,值函数记录Agent学到的经验,动作选择策略权衡探索和利用两者的关系,为的是不让智能体陷入局部最优策略。

奖赏函数

奖赏函数会给予Agent所做的动作一个评价,评价执行这个动作后对最终结果的影响,数值越大表示效果越好,反之表示效果不好。由于强化学习是一个马尔科夫决策过程,所以他要实现的目标是找到一组动作序列,使得累计奖赏最大。
(1)连续性奖赏函数:

R

n

=

f

(

s

t

,

i

t

)

begin{align} R_n=f(s_t,i_t) end{align}

Rn=f(st,it)
连续性奖赏函数通过建立一个状态和环境反馈之间的一个函数,使得智能体在每个状态都能获得环境的评价。
(2)离散型奖赏函数

R

t

=

{

1

执行最优动作

1

执行最差动作

0

其他情况

begin{align} R_t=left{ begin{aligned} 1 & & 执行最优动作 \ -1 & & 执行最差动作 \ 0 & & 其他情况 end{aligned} right. end{align}

Rt=

110执行最优动作执行最差动作其他情况

值函数

奖赏函数给出的是Agent做出动作之后的立即奖赏,而值函数是计算的当前状态下做出的动作对完成目标任务的影响,侧重于实现整体策略的最大化。随着训练的进行,值函数不断优化达到收敛,在每一个状态通过策略

π

=

a

r

g

m

a

x

V

π

(

s

)

π^*=argmaxV^π(s)

π=argmaxVπ(s)选择动作,既保证了每个动作获得的最大奖赏都是最大的,又可以使整个策略获得的累计折扣奖赏最大。
(1)有限非折扣累积奖赏值函数:

V

π

(

s

t

)

=

t

=

0

h

r

t

begin{align} V^π(s_t)=displaystylesum_{t=0}^{h} r_t end{align}

Vπ(st)=t=0hrt
其中

r

t

r_t

rt为Agent再t时刻获得立即奖赏,累计奖赏是起始状态到目标状态的所获得的立即奖赏的累加。
(2)无限折扣奖赏值函数:

V

π

(

s

t

)

=

i

=

0

γ

i

r

t

+

i

,

0

γ

1

begin{align} V^π(s_t)=displaystylesum_{i=0}^{infty}gamma^ir_{t+i},0leqgammaleq1 end{align}

Vπ(st)=i=0γirt+i,0γ1

γ

gamma

γ为折扣因子,

0

γ

1

0leqgammaleq1

0γ1。他代表的是累计奖赏中未来奖赏所占的比例。

γ

gamma

γ越小代表越看重当前动作的奖赏,

γ

gamma

γ越大越看重未来的奖赏。
(3)平均奖赏值函数:

V

π

(

s

t

)

=

lim

h

(

1

h

t

=

0

h

r

t

)

begin{align} V^π(s_t)=lim_{h to infty}(frac{1}{h}displaystylesum_{t=0}^{h}r_t) end{align}

Vπ(st)=hlim(h1t=0hrt)
平均奖赏值函数是对Agent所获得的所有奖赏值取平均值。

动作选择策略

通俗的来理解就是Agent在什么状态下应该选择什么动作去执行,这里很多人认为我每次执行反馈最好的动作不就好了吗,但其实不是这样的,这样很有可能会陷入局部最优,就是说我现在有一个比较好的反馈动作了,但这个动作可能不是最好的,我依然需要去探索,去试试其他动作好还是不好。
(1)greedy动作选择策略
greedy动作选择策略只会选择当前最优的动作,而这个动作可能不是最好的。从而用这个动作选择策略可能会隐藏该动作空间中最优动作。

π

=

a

r

g

m

a

x

V

π

(

s

)

begin{align} π^*=argmaxV^π(s) end{align}

π=argmaxVπ(s)
(2)

ϵ

epsilon

ϵ-greedy动作选择策略

π

=

{

a

r

g

m

a

x

V

π

(

s

)

1

ϵ

r

a

n

d

(

a

)

ϵ

begin{align} π^*=left{ begin{aligned} argmaxV^π(s) & & 1-epsilon\ rand(a)& & epsilon end{aligned} right. end{align}

π={argmaxVπ(s)rand(a)1ϵϵ
在学习的初期Agent会通过

ϵ

epsilon

ϵ的概率再动作空间中随机选择动作进行探索,通过

1

ϵ

1-epsilon

1ϵ的概率选择当前状态下已知的最有动作。
(3)softmax动作选择策略

p

(

a

i

s

)

=

k

V

i

/

T

a

A

k

V

i

/

T

begin{align} p(a_i|s)=frac{k^{V_i/T}}{displaystylesum_{ain{A}}^{}k^{V_i/T}} end{align}

p(ais)=aAkVi/TkVi/T
T为温度控制系数,刚开始T值很大所以

V

i

V_i

Vi造成的影响就不是很大,各个动作基本可以以同等概率被选到,训练后期T值逐渐减小,

V

i

V_i

Vi的权重也就增大,即最优动作被选中的概率明显提升。

强化学习经典算法

动态规划算法

动态规划算法选择最优策略的方法是使用值函数进行迭代,但要求环境中的状态转移概率和奖赏函数是已知的,然后利用动作策略与环境进行交互,在训练中优化最优值函数

V

π

V^{π^*}

Vπ和最优策略

π

π^*

π

π

(

s

t

)

=

a

r

g

max

a

A

s

t

+

1

P

s

t

s

t

+

1

a

[

R

s

t

s

t

+

1

a

+

γ

V

π

(

s

t

+

1

)

]

begin{align} π(s_t)=argmax_{ain{A}}displaystylesum_{s_{t+1}}P^a_{s_ts_{t+1}}[R^a_{s_ts_{t+1}}+gamma{V^π(s_{t+1})}] end{align}

π(st)=argaAmaxst+1Pstst+1a[Rstst+1a+γVπ(st+1)]

V

π

(

s

t

)

a

A

π

(

s

t

,

a

)

s

t

+

1

P

s

t

s

t

+

1

a

[

R

s

t

s

t

+

1

a

+

γ

V

π

(

s

t

+

1

)

]

begin{align} V^π(s_t){leftarrow}displaystylesum_{ain{A}}π(s_t,a)displaystylesum_{s_{t+1}}P^a_{s_ts_{t+1}}[R^a_{s_ts_{t+1}}+gamma{V^π(s_{t+1})}] end{align}

Vπ(st)aAπ(st,a)st+1Pstst+1a[Rstst+1a+γVπ(st+1)]
因为我们是知道目标位置的,所以在目标位置的前一状态我们是知道其最优值函数是很大的,知道了前一状态的最优值函数,也就能知道其最有策略是什么,依次往前推一直迭代,即可以优化出每一个状态下的最优值函数以及最优策略。

蒙特卡罗算法

蒙特卡罗算法不依赖于模型,利用执行动作策略π获得的平均奖赏通过迭代获得最优策略。蒙特卡罗算法是从探索过程中获得的状态、动作、奖赏的序列中进行学习,始终根据一个固定的策略π去逼近最优值函数。

V

(

s

t

)

V

(

s

t

)

+

α

[

R

t

V

(

s

t

)

]

begin{align} V(s_t){leftarrow}V(s_t)+alpha[R_t-V(s_t)] end{align}

V(st)V(st)+α[RtV(st)]
R_t为Agent执行动作策略π获得的奖赏的平均值。

瞬时差分(TD)算法

TD算法具有不依赖于环境模型的特点,同时还改进了蒙特卡罗算法的回合更新机制,通过增量式在线预测学习的方法,实现在训练过程中单步更新学习。

V

(

s

t

)

V

(

s

t

)

+

α

[

r

t

+

1

+

γ

V

(

s

t

+

1

)

V

(

s

t

)

]

begin{align} V(s_t){leftarrow}V(s_t)+alpha[r_{t+1}+gamma{V(s_{t+1})}-V(s_t)] end{align}

V(st)V(st)+α[rt+1+γV(st+1)V(st)]
其中,

α

alpha

α为学习率,

γ

gamma

γ为折扣因子,

r

t

+

1

r_{t+1}

rt+1为Agent执行动作a后获得的立即奖赏。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>