强化学习(简介)

Reforcement Learning

  • 什么叫RL
    和监督学习的区别是,Agent会通过观察(Observation)当前环境(Environment),获得当前的State,接着Action后能够得到Environment的反馈:Reward,然后Agent根据Reward再调整做出正确的Action去改变Environment

    • Agent:学习主体,可以是一个NN或者其它,作用:Learns to take actions maximizing expected reward
    • Environment:外部环境,比如下围棋就是对手,玩电玩的时候,就是主机
    • State:Agent通过观察获取到的当前环境的输入状态
    • Action:根据当前状态做出的动作,当然此动作会影响Environment,比如下围棋的时候会影响对手下一步落棋
    • Reward:做出action,当前Environment给予的评价
  • Look for a function

  • 举例

    • state:输入为当前画面(像素值)
    • action:左移,右移或者开火
    • reward:Score
  • outline

Policy-based Approach(Learining an Actor)

  • 总体分三步

    • First step:

    • Second step:

    • Third step(pick the best function):

  • Policy Gradient作用
    如果Actor,Env,Reward都看做是DNN,那么本质上就是一个NN网络,求极值就很容易。但实际上Env,Reward不是一个NN网络,所以就不能进行微分,不能求出极值,解决办法就是用policy gradient进行处理

Value-based Approach(Learning a critic)

  • 是评价一个agent(actor)的好坏,$V^{\pi}(s)$表示给定一个Agent(Actor:$\pi$),并给定一个State:s,到最后游戏完成后,得到最后的reward expects的值
    • 比如下面坐标的图,有很多怪,到游戏结束期望分数就容易获得比较高的值,右边图就比较小(因为这个图看到到最后游戏结束,能杀的怪已经很少了)
    • 同一个state,不同的actor,那么$V^{\pi}(s)$值也会不一样
  • How to estimate $V^{\pi}(s)$

    • Monte-Carlo,观察到两个state,$S_a,S_b$,并且最后episode结束,Greed为$G_a,G_b$,这个时候,只需要让$V^{\pi}(s_a)\approx G_a,V^{\pi}(s_b)\approx G_b$

    • Temporal-difference,不会等到episode才开始计算(不用等到游戏结束就可以更新参数),原理是$V^{\pi}(s_t),V^{\pi}(s_{t+1})$中间是相差的$r_t$,所以只需要$V^{\pi}(s_t)-V^{\pi}(s_{t+1})\approx r_t$

  • Q Learning

    • Another Critic

      • 输入为state和action,可以对所有action做穷举(如果不能穷举,其实还有其他的方法的),看哪一个reward得分最高(得到Q function)
    • 每一次都找最大的Qfunction数值的action a

Actor+Critic

  • 核心原理:不会像Actor那样跟着环境去学习,因为环境变化是比较多的,所以Actor-Critic是跟着critic去学习
  • A3C

Inverse Reforcement learning

  • 背景:其实生活中的大多数场景,都不好找reward的,不像围棋或者是电玩,有很明确的规则.
    • 比如如果交通违规,如何处罚等。还比如说让机器人放盘子,之前并没有告诉摔坏盘子会扣分,机器人就不知道
  • 原来的方案:
  • Inverse Reforcement learning方案:
    • 正好相反,并不知道Reward Function,是通过学习学习到Reward Function后,然后使用它选择出最好的actor
  • 步骤:

    • expert和IRL都会自己学习,获得最终Reward,我们假设专家的Reward总数比学习到的好
    • 然后从中我们找到一个最好的Reward Function R
    • 再通过R去得到Actor $\pi$
    • 要注意下是,如果规则变化了,那么下面的循环圈需要不断的重新循环取学习
  • 发现和GAN比较像