机器学习笔记13_Introduction of Deep Reinforcement Learning(RL)

本文是李宏毅机器学习的笔记,这是第十三节,介绍了强化学习。

文章目录

      • 1. What is RL?
      • 2. Policy Gradient
      • 3. Actor-Critic
      • 4. Reward Shaping
      • 5. No Reward: Learning from Demonstration

1. What is RL?

在一些场景中,可能标签数量会很多,所以在没有明确的标签的情况下,机器应该知道自己结果的好坏。
机器学习笔记13_Introduction of Deep Reinforcement Learning(RL)_第1张图片
强化学习的流程如下所示:输入一个函数,通过现有的环境,然后Actor采取一个Action,然后环境给予Actor一个Reward,告诉他结果的好坏,然后Actor再根据当前的环境采取下一步动作。
机器学习笔记13_Introduction of Deep Reinforcement Learning(RL)_第2张图片
下图就是一个相关的例子。
机器学习笔记13_Introduction of Deep Reinforcement Learning(RL)_第3张图片
流程如下:首先第一步还是定义一个具有未知参数的函数,然后可以当作一个分类器,输出每个action的分数,通过这些分数采取下一步的Action。
机器学习笔记13_Introduction of Deep Reinforcement Learning(RL)_第4张图片
第二部,定义Loss,对于这里来说就是最大化每一步得到的reward之和。
机器学习笔记13_Introduction of Deep Reinforcement Learning(RL)_第5张图片
第三步,就是进行优化操作,有一些挑战在优化这个过程里,就是,每次采取的行动是随机的,每次得到的奖励也具有随机性,并且每次的奖励和环境像黑盒子一样,是不明确的。所以说RL是一个随机性非常大的问题,同样一个network,每次训可能结果都不一样。
机器学习笔记13_Introduction of Deep Reinforcement Learning(RL)_第6张图片

2. Policy Gradient

该如何控制actor呢,定义一个采取的确定行为的标签,然后,计算loss,可以通过正负号实现采取或者不采取该项行为。
机器学习笔记13_Introduction of Deep Reinforcement Learning(RL)_第7张图片
是否采取该行为,定义损失函数,最小化损失函数。
机器学习笔记13_Introduction of Deep Reinforcement Learning(RL)_第8张图片
还可以加上一个奖励分数,来实现,哪种行为更加强烈
机器学习笔记13_Introduction of Deep Reinforcement Learning(RL)_第9张图片
下面是version0, 这个版本只会最大化当前的利益,不会考虑长远的利益。
机器学习笔记13_Introduction of Deep Reinforcement Learning(RL)_第10张图片
机器学习笔记13_Introduction of Deep Reinforcement Learning(RL)_第11张图片
version1都每一步的奖励做了一些改进,它会根据以后的action来定义reward。所以会有一定的全局性。
机器学习笔记13_Introduction of Deep Reinforcement Learning(RL)_第12张图片
version1会把后面的每个action看的同样重要,所以我们定义了一个变量,使得越往后的action影响越小。
机器学习笔记13_Introduction of Deep Reinforcement Learning(RL)_第13张图片
version3 进行了标准化,使得奖励有正有负。
机器学习笔记13_Introduction of Deep Reinforcement Learning(RL)_第14张图片
Policy Gradient的流程如下,注意:收集资料是在循环里面的。
机器学习笔记13_Introduction of Deep Reinforcement Learning(RL)_第15张图片
每笔资料只能更新一次参数。
机器学习笔记13_Introduction of Deep Reinforcement Learning(RL)_第16张图片
同一笔资料对于不同时刻的模型产生的效果是不一样的。因为不同时刻的模型对于相同的数据产生的行为可能是不一样的,may not be good for θ i \theta^i θi。也可以理解为不同时刻的模型的能力也不一样。
机器学习笔记13_Introduction of Deep Reinforcement Learning(RL)_第17张图片
所以说,收集资料的actor和更新的actor最好是同一个,当更新了actor之后,就要用新的actor再重新收集资料。
机器学习笔记13_Introduction of Deep Reinforcement Learning(RL)_第18张图片
Off-policy可以使用之前的资料,训练其它时刻的actor,这样就可以不用多次收集资料。
机器学习笔记13_Introduction of Deep Reinforcement Learning(RL)_第19张图片
Off-policy的一个例子如下,它需要知道每笔资料采取的行为对于不同时刻的模型来说是不一样的。
机器学习笔记13_Introduction of Deep Reinforcement Learning(RL)_第20张图片
采取action是具有随机性的,也正因为随机性,才能train起来。Exploration就是让actor尽可能尝试不同的action,使得模型好训练一些。例如加大输出的熵,加一些噪声。使得action进可能随机。
机器学习笔记13_Introduction of Deep Reinforcement Learning(RL)_第21张图片

3. Actor-Critic

Critic的工作就是评价一个actor的好坏,定义一个value function,代表actor θ \theta θ看见s,得到的discounted cumlated reward。
机器学习笔记13_Introduction of Deep Reinforcement Learning(RL)_第22张图片
如何计算 V θ ( s ) V^{\theta}(s) Vθ(s),一种做法就是MC,这种做法通过玩完正常游戏,然后得到 G a ′ G_a^{'} Ga,然后计算value function。
机器学习笔记13_Introduction of Deep Reinforcement Learning(RL)_第23张图片
还有一种叫做TD的做法,这种做法只需要当前的环境,行为,奖励和下一步的环境,就可以计算出两个value function之间的关系,然后利用这个关系进行计算,计算方式如下所示
机器学习笔记13_Introduction of Deep Reinforcement Learning(RL)_第24张图片
利用MC和TD两种方式计算出的value function的值是不一样的。
机器学习笔记13_Introduction of Deep Reinforcement Learning(RL)_第25张图片
标准化的一个合理做法就是减去value function
机器学习笔记13_Introduction of Deep Reinforcement Learning(RL)_第26张图片
看到一个 s t s_t st之后采取的多种行为的reward平均当作 V θ ( s t ) V^{\theta}(s_t) Vθ(st)。当 A t A_t At大于0时表示这个行为,大于平均reward,行为好。小于0时表示小于平均reward,行为不好。
机器学习笔记13_Introduction of Deep Reinforcement Learning(RL)_第27张图片
但是一个随机的值减平均来判断是不合理的,更好的一种做法是平均减掉平均。这也就是Advantage Actor-Critic
机器学习笔记13_Introduction of Deep Reinforcement Learning(RL)_第28张图片
Actor和Critic可以共用参数,例如绿色部分。
机器学习笔记13_Introduction of Deep Reinforcement Learning(RL)_第29张图片
机器学习笔记13_Introduction of Deep Reinforcement Learning(RL)_第30张图片
Sample的结果是对模型很重要的,它代表机器能否学到一个行为是否在另一行为的后面。
value function代表了一个期望值,他代表了每一个observation看到一个画面之后,得到的cumulative reward的平均值,它的期望值,
actor是从一个distribution中sample出来的。actor把每个动作的概率算出来,然后根据这个概率sample。

4. Reward Shaping

如果在最后才能计算分数,那就可以看成一个Sparse Reward的问题,也就是reward非常稀疏,例如让机器拧螺丝,可以用reward shaping解决。也就是利用额外的reward,在每个过程人为设定reward,辅助机器学习。
机器学习笔记13_Introduction of Deep Reinforcement Learning(RL)_第31张图片
机器学习笔记13_Introduction of Deep Reinforcement Learning(RL)_第32张图片
下面是认为设定的一些reward
机器学习笔记13_Introduction of Deep Reinforcement Learning(RL)_第33张图片
看到一些有意义的新的东西就会得到reward
机器学习笔记13_Introduction of Deep Reinforcement Learning(RL)_第34张图片

5. No Reward: Learning from Demonstration

如果没有reward,我们该怎么做呢
如果自己设定reward,那如果设定的reward有逻辑问题,就可能出现问题。
机器学习笔记13_Introduction of Deep Reinforcement Learning(RL)_第35张图片
通过人类expert的示范,来进行学习。
机器学习笔记13_Introduction of Deep Reinforcement Learning(RL)_第36张图片
光是让它跟人类学习是不可以的,因为机器看不到失败的状况,例如撞车,当撞车时,机器就会不知所措,所以不可以当作Supervised Learning,不可以让机器完全复制人类。这样也会限制机器的能力。
机器学习笔记13_Introduction of Deep Reinforcement Learning(RL)_第37张图片
Inverse Reinforcement Learning可以解决这样的问题,利用专家行为来学出reward function
机器学习笔记13_Introduction of Deep Reinforcement Learning(RL)_第38张图片
下面是Inverse Reinforcement Learning的流程
机器学习笔记13_Introduction of Deep Reinforcement Learning(RL)_第39张图片
定义Reward Function,它给老师一个高度分数,给actor一个低的分数,然后更新actor,actor尽量让分数变高,reward function尽量不让分数变高,类似于强化学习
机器学习笔记13_Introduction of Deep Reinforcement Learning(RL)_第40张图片
机器学习笔记13_Introduction of Deep Reinforcement Learning(RL)_第41张图片
未来可以用人类示范的方法,来教机器做事情
机器学习笔记13_Introduction of Deep Reinforcement Learning(RL)_第42张图片
通过图片画面的目标,机器自己设定reward,自己学习
机器学习笔记13_Introduction of Deep Reinforcement Learning(RL)_第43张图片

你可能感兴趣的:(深度学习笔记,机器学习)