强化学习:算法历程与优劣
1.Monte Carlo 估算V值
内容:
G值:每次到最终状态获得的奖励总和
当前状态为S0,一直到最终状态后,回溯计算G值。一直往前把每一步得到的奖励r都加起来,再乘以一定的折扣率gramma,就能够得到这一条路的G值。同时,一个状态下,有很多条路径可以走到最终状态,所以:
S0状态下的V值=所有G值相加/这个状态下一直到最终状态的路径的个数
所以可以说,V值是G值的平均。
缺点:
如果很难走到最终状态,那么回溯就很慢,求G值就很慢,所以V值更新的也就慢,效率不高。
优化:
不一定要等所有的G值都回来了再求V值,可以回来一个G值就估算一下V值,然后慢慢调整。
怎样调整?
新平均 = 旧平均 + 步长 * (新加入的元素 - 旧平均)
新平均:新的V值
旧平均:旧的V值
步长:人为设置的超参数
新加入的元素:刚回来的G值
2.TD(时序差分)估算V值
内容:
只需要走N步就进行回溯,而不用走到最终这状态再进行回溯。
如果N=1,那么意味着走一步就回溯,则此时G = r + gramma * V(下一状态的V值)
3.SARSA
内容:
使用TD估算V值的方法,不同的是用Q值代替V值。
问题:强化学习中Q值可以指导动作的选择,那么策略是干嘛的?策略不也是用来选择动作的吗?
Q值与策略的不同
-
定义与关注点:
Q值关注的是在给定状态下执行特定动作的预期回报,而策略关注的是在给定状态下选择不同动作的概率分布。 -
作用机制:
Q值通过评估动作的好坏来指导动作的选择,而策略则通过概率分布来指导搜索过程,决定哪些动作值得被探索。 -
更新方式:
Q值的更新通常基于新的回报信息,通过加权平均或增量式更新来实现;而策略的更新则更多地依赖于历史数据,通过调整选择概率来优化未来的动作选择。 -
相互关系:
策略用于决定在搜索过程中选择哪些动作进行探索,而Q值则提供了这些动作的质量评估。策略的更新通常会考虑Q值的信息,以便在未来更好地指导搜索。
4. Q-learning
内容:
用的也是TD估算V值,不同的是用最大的Q值替代V(St+1)。
和SARSA的不同仅在于多了个max。
SARSA是通过策略选择一个动作计算Q值,而Q-learning则是试一遍策略给出的所有动作,都计算Q值,找到最大的Q值。
Q table
通过SARSA或者Q-learning的方式将这个表填完(计算Q值),那么Q-function就是查表,找到最大值就可以了。
5.DQN
内容:
和Q-learning差不多,区别只是Q-learning使用Q table,而DQN使用神经网络。
更新方式(与Q-learning一样):
这里的G值(R+gramma*下一状态的Qmax)就是更新目标,刚好可以作为神经网络的更新目标。
缺点:
DQN估计的Q值往往会偏大。
原因:
虽然DQN有Q网络和target网络,但target网络本质上是由Q网络拷贝过来的(他们只是更新时间不同而已),所以相当于是一个网络在自我监督(自我改正)。如果预计的Q值1偏大,那么意味着target网络找到的Q值2也可能偏大,所以当Q值1要往Q值2+reward的方向调参时,意味着往一个偏高值方向调参,(又因为网络本质上是一样的,参数也会一起变化)下次又会朝着在这个偏高的基础上更高的方向调参,导致越来越高,越来越偏。
6. doule DQN
为了缓解DQN估计的Q值偏大的情况,诞生了double DQN。顾名思义,它有两个参数不同的网络。