解锁太慢,直接在youtube上看了第二课。
第二课主要讲了:
1.imitation learning
原理很容易理解,就是人生成了操作序列,然后我们认为人的决策都是对的,所以将该序列的状态作为输入,决策行为作为输出(即每个动作是一个分类,人选择的这个分类概率为1,没有选择的概率为0).然后监督学习就可以了。然而可惜的是没有足够多的负样本。所以当机器学习完毕后肯定有误差,所谓差之毫厘,谬之千里,机器就跑偏了,然而没有跑偏了的样本,导致机器不知道该如何回归正确的路径。所以这里说了三个方法:1.采样三个摄像头,左中右各一个,左右2个就是用来纠偏的,其图像对应的动作分别是向右和向左,经过训练机器就知道如果跑到左边了需要向右。这样我们就有负样本了;2.人工纠偏,就是机器决策并跑了一段距离,获取了一个序列s1,a1,s2,a2...然后人再根据这个状态序列也操作一遍从而获取了纠偏行为样本,机器再学习如何纠偏;3.加噪音,依然是构造纠偏数据,但是是在已有的正确路径上增加噪音来自动构造纠偏样本,但是增加噪音后需要expert,例如人,提供正确的纠偏动作,但是无论是人还是具有expert能力的模拟器都是困难的。
2.非马尔科夫和多模型
非马尔科夫就是要增加时序,所以可以考虑RNN,但是CNN或者self-attention也应该是可以的吧。alphago就是将历史的8步棋都作为输入。
多模型关键是对动作的分类,如果是softmax输出,输出的总是离散动作的选择概率,就是一个多分类问题,所以如果是连续动作必须要离散。离散成功后多模型就自然解决了,因为选择的是具体的动作,这就是第一个多高斯分布的方法。但是如果是回归模型,输出的是动作的各个维度的值,例如方向,速度等等,就可能会被平均了,这就需要增加隐变量,实际上就是把动作的维度映射到另外一个空间中。例如绕过障碍向左和向右都可以,我们不能把这个给平均到中间方向,所以如果映射到高维,就避免了平均问题,因为不同的维度是不能平均的,形象一点理解就是我们把方向分成左路//中路/右路三个中间维度(但是实际上神经网络学习出的隐状态是无法直观理解的),最后在加权合并为最终输出的方向,最终输出方向很可能概率向左或者向右,而不会出现在中间,因为中间隐变量几乎没有输出。这就是第二种方法,第三种是如何对高维度连续动作进行离散,课程中说一个个维度分别离散,而不是组合起来,这就又有点像是RNN了,将多个卷积串连起来,每次只输出一个维度。