Hinton Neural Networks课程笔记2b:第一代神经网络之感知机
感知机可以说是最简单最经典的神经网络模型了,简单而言就是对输入加权求和之后,得到一个评价值和一个threshold比较,从而进行分类。只能求取线性分类面,极大依赖于特征提取,但速度极快,适用于特征维度很大的情况。
传统模式识别框架
传统统计模式识别的标准流程分为三步,首先进行特征提取,然后学习一个加权求和,最后把求和得到的值与一个threshold比较,高于threshold即为正样本,低于则为负样本。而这个权重的学习方式不同,则形成了不同的模型。
感知机的历史
Hinton还介绍了一下感知机的历史,这部分笔者还蛮感兴趣的。
刚开始提出的时候(1960左右)学界对其期望很高,该模型也表现出了很好地能力,人们最初声称其可以学习很多问题;后来发现某些声称是不成立,例如当时说可以用感知机区分坦克和卡车,但是后来发现是因为坦克照片多拍摄于白天,卡车照片多拍摄于阴天,导致坦克照片的光强总和要高于卡车照片,感知机仅仅是学习到了这个部分。(这也提示了数据库随机采样,以及解释分析模型的重要性)。
之后Minsky和Papert证明了感知机的局限性,Hinton这里又抱怨了当时人们对这个结论泛化的过于厉害,都认为神经网络模型已经被证实能力有限了;Hinton当年开始做神经网络的时候,很多人和他说这个模型已经被证实能力不足了。
感知机现如今仍然广泛应用于特征维度上百万的情况(例如Google)。
感知机模型
上图展示的就是感知机模型,注意到这里使用bias替代threshold,其中bias=-threshold。对于z大于0的情况判定为正样本,否则为负样本。使用bias可以简化学习流程,因为bias其实可以看做bias*1,所以对x进行拓展,在初始位置添加一个常值为1的特征,即可把bias看做
感知机学习算法
感知机学习算法很简单,所以很快。并且在数据集线性可分的情况下保证能够收敛,学习到把所有数据集完美分开的权重。
学习算法如下图所示:
简而言之,只对分类错误的样本作反应,真值为1的样本在权重上加上输入向量,真值为0的样本在权重上减去输入向量。无限循环,直至收敛。