首页IT科技chan算法matlab(强化学习——Q-Learning算法原理)

chan算法matlab(强化学习——Q-Learning算法原理)

时间2025-05-02 21:07:01分类IT科技浏览3825
导读:一、Q-Learning :异策略时序差分控制...

一          、Q-Learning :异策略时序差分控制

从决策方式来看          ,强化学习可以分为基于策略的方法(policy-based)和基于价值的方法(value-based

)            。基于策略的方法直接对策略进行优化                  ,使制定的的策略能够获得最大的奖励               。基于价值的强化学习方法中     ,智能体不需要制定显式的策略       ,它维护一个价值表格或价值函数                  ,通过这个价值表格或价值函数来选取价值最大的动作      。

Q-Learning 算法就是一种value-based的强化学习算法         。

二                  、算法思想:

Q(s,a)是状态价值函数        ,表示在某一具体初始状态s和动作a的情况下    ,对未来收益的期望值               。

Q-Learning算法维护一个Q-table                 ,Q-table记录了不同状态下s(s∈S)           ,采取不同动作a(a∈A)的所获得的Q值         。 Q-table a1 a2 a3 … s1 Q(s1,a1) Q(s1,a2) Q(s1,a3) s2 Q(s2,a1) Q(s2,a2) Q(s2,a3) s3 Q(s3,a1) Q(s3,a2) Q(s3,a3) …

探索环境之前  ,初始化Q-table                ,当agent与环境交互的过程中              ,算法利用贝尔曼方程(ballman equation)来迭代更新Q(s,a),每一轮结束后就生成了一个新的Q-table      。agent不断与环境进行交互             ,不断更新这个表格                 ,使其最终能收敛               。最终  ,agent就能通过表格判断在某个转态s下采取什么动作          ,才能获得最大的Q值           。

三     、更新过程

更新方法:

Q

(

s

t

,

a

t

)

Q

(

s

t

,

a

t

)

+

α

[

r

t

+

1

+

γ

max

a

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_aQ(s_{t+1},a) - Q(s_t,a_t) ]

Q(st,at)Q(st,at)+α[rt+1+γamaxQ(st+1,a)Q(st,at)]

Q

(

s

t

,

a

t

)

{\color{Red} Q(s_t,a_t)}

Q(st,at) 是在状态

s

t

s_t

st
下采取动作

a

t

a_t

at
的长期回报                  ,是一个估计Q值

r

t

+

1

{\color{Red} r_{t+1}}

rt+1 是在状态

s

t

s_t

st
下执行动作

a

t

a_t

at
得到的回报reward

max

a

Q

(

s

t

+

1

,

a

)

{\color{Red} \max_aQ(s_{t+1},a)}

maxaQ(st+1,a) 指的是在状态

s

t

+

1

s_{t+1}

st+1
下所获得的最大Q值     ,直接看Q-table       ,取它的最大化的值   。

γ

\gamma

γ
折扣因子                  ,含义是看重近期收益        ,弱化远期收益    ,同时也保证Q函数收敛                。

(

r

t

+

1

+

γ

max

a

Q

(

s

t

+

1

,

a

)

{\color{Red} (r_{t+1}+ \gamma \max_aQ(s_{t+1},a)}

(rt+1+γmaxaQ(st+1,a) 即为目标值                 ,就是时序差分目标           ,是

Q

(

s

t

,

a

t

)

Q(s_t,a_t)

Q(st,at)
想要逼近的目标             。

α

\alpha

α
学习率  ,衡量更新的幅度。

当目标值和估计值的差值趋于0的时候                ,Q(s,a)就不再继续变化              ,Q 表趋于稳定,说明得到了一个收敛的结果              。这就是算法想要达到的效果               。

注意:

max

a

Q

(

s

t

+

1

,

a

)

{\color{Red} \max_aQ(s_{t+1},a)}

maxaQ(st+1,a)

所对应的动作不一定是下一步会执行的实际动作!

这里引出

ε

g

r

e

e

d

y

{\color{Red} \varepsilon-greedy}

εgreedy
             ,即

ε

\varepsilon-

ε

贪心算法   。

在智能体探索过程中                 ,执行的动作采用

ε

g

r

e

e

d

y

{\color{Red} \varepsilon-greedy}

εgreedy
策略  ,是权衡exploitation-exploration(利用和探索)的超参数            。 exploration:探索环境          ,通过尝试不同的动作来得到最佳策略(带来最大奖励的策略) exploitation:不去尝试新的动作                  ,利用已知的可以带来很大奖励的动作               。Q-Learning算法中     ,就是根据Q-table选择当前状态下能使Q值最大的动作      。

在刚开始的时候       ,智能体不知道采取某个动作后会发生什么                  ,所以只能通过试错去探索         。利用是指直接采取已知的可以带来很好奖励的动作               。这里面临一个权衡问题        ,即怎么通过牺牲一些短期的奖励来理解动作    ,从而学习到更好的策略         。因此                 ,提出

ε

g

r

e

e

d

y

\varepsilon-greedy

εgreedy           ,

ε

\varepsilon

ε
就是权衡这两方面的超参数      。

这篇博客https://blog.csdn.net/zhm2229/article/details/99351831对这部分的理解讲的很好  ,在此引用一下:

做exploitation和exploration的目的是获得一种长期收益最高的策略                ,这个过程可能对short-term reward有损失               。如果exploitation太多              ,那么模型比较容易陷入局部最优,但是exploration太多             ,模型收敛速度太慢           。这就是exploitation-exploration权衡   。

比如我们设

ε

\varepsilon

ε=0.9                 ,随机化一个[0,1]的值  ,如果它小于

ε

\varepsilon

ε
          ,则进行exploration                  ,随机选择动作;如果它大于

ε

\varepsilon

ε

    ,则进行exploitation       ,选择Q value最大的动作                。

在训练过程中                  ,

ε

\varepsilon

ε
在刚开始的时候会被设得比较大        ,让agent充分探索    ,然后

ε

\varepsilon

ε
逐步减少                 ,agent会开始慢慢选择Q value最大的动作

三       、伪代码

图源于:百度飞桨AlStudio

参考:

[1] 王琦.强化学习教程[M]

[2] https://blog.csdn.net/zhm2229/article/details/99351831

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
element ui form textarea宽度(element plus 的表单form使用详解) elf文件的作用(readelf命令 – 显示elf格式文件的信息)