0%

强化学习学习

强化学习学习

简介

  • 强化学习是解决这样的一类问题:
    • 每一步不能及时的获得标签,也就是要求强制在线
    • 而且并不是执行操作后会马上获得结果,可能要等好多步才能获得结果
  • 所以强化学习的过程是不断的环境互动,以此来总结学习

简单概念

  • 状态(states): 顾名思义
  • 动作(actions): 顾名思义
  • 奖励(rewards): 进入每个状态,能带来正面或负面的
  • 方案(policy): 每个状态所要采取的动作方案

奖赏统计模式

T步累积奖赏

$$
Q(k)=\frac{1}{T}\sum_{i=1}^T v_i\
Q_T(k)=\frac{1}{T}((T-1)*Q_{T-1}(k)+v_T)=Q_{T-1}(k)+\frac{1}{T}(v_T-Q_{T-1}(k))
$$

  • 为什么奖赏要除以总数
    • 因为不能直接累加,否则就会陷入不停的往次优的地方徘徊的状态
    • 容易被异常奖赏带偏

$\gamma$折扣累积奖赏

$$
Q_{T}(k)=\sum_{t=0}^{∞}\gamma^tv_{t}=Q_{T-1}(k)+\gamma(v_T-Q_{T-1}(k))
$$

  • 为什么要折扣
    • 1、和上面的哪个一样
    • 2、和上面哪个一样
    • 3、可以调整$\gamma$来控制前面的步骤对自身的影响程度而不是平等看待,有一定的记忆作用

小trick

$\epsilon$-贪心

  • 类似模拟退火的方法
    • 在$\epsilon$在概率下每次选能获得回报最大的动作
    • 在$1-\epsilon$的概率下选择随机的方式

梯度

  • 在更新一个值的时候,不用直接赋值,而是加上残差的梯度,类似梯度下降

贝尔曼方程

  • 定义U(S)为当前状态下能得到的最优值,Q(S,A)为当前状态S采取动作A能得到的最优值

$$
U(S)=R(S)+\gamma\sum_{S’}P(S->S’)U(S’)
$$

$$
Q(S,A)=\sum_{S’}P(S’->a)[R(S’->a)+\gamma\sum_{a’}Q(s’,a’)]
$$

当没有概率转移时,上述取最大值

  • 能够证明(省略大量数学推导)

$$
U_{max}(S)=Q(S,A)_{max}
$$

Q learning(也叫时序差分学习,TD算法)

  • Q learning非常简单,就是根据state和action来建立一个表格Qtable

    • 这个Qtable对应当前的Q(S,A)

    $$
    Q(S,A)=Q(S,A)+\alpha(R(S)+\gamma(\max_{A’}Q(A’,S’)-Q(A,S))))
    $$

    • $\alpha $为学习率

Q Leaning

img

DQN(Deep Q learning)

  • Q learning 显然有一个很大的缺点,Qtable容易太大和维度灾难

值函数近似

  • 把值函数(如上面的Q和U)表示为线性模型,如$U_{\theta}=\theta^Tx$

    • $\theta$为参数向量,x为状态向量就是上面的S,动作的元素隐含在参数向量中

    • 为了接近真实值$U^{\pi}(x)$
      $$
      E_{\theta}=E_{x\text{~}\pi}[(U^{\pi}(x)-U(x))^2]
      $$

      • 然后用Q learning的那一套就行
  • 对于一些很高维的模型怎么办

    • 使用核函数进行高维映射

加上神经网络

  • 我们知道上面的$r+\gamma\max_{a’}Q(s’,a’,w)$可作为target,所以这个就能作为神经网络中的target

所以有NIPS 2013如下

img

ht