您的位置:首页 > 理论基础 > 计算机网络

Neural Networks for Machine Learning by Geoffrey Hinton (5)

2015-08-25 12:15 561 查看
为什么物体识别很困难

获得视角不变性的方法
不变特征方法The invariant feature approach

合理归一化方法The judicious normalization approach

强制归一化方法The brute force normalization approach

用以手写体识别的卷积神经网络
复制特征方法The replicated feature approach

复制特征方法学习到了什么

复制特征提取器的池化Pooling

LeNet5 模型

如何评价两个模型的优劣

Alexs Net 的诸多设计

为什么物体识别很困难?

图像分割(Segmentation):实际场景中总是掺杂着其他物体。

物体光照(Lighting):像素的值被物体光照所显著影响。

图像变形(Deformation):物体有时会变形成非仿射(non-affine)的形式。

情景支持(Affordances):物体所属类别常常由他们的使用方式而定义。如各种能坐的物体都可以是算是椅子。

维度跳变(dimension-hopping):

具体表现是:改变视角(viewpoint)可能导致机器学习方法失效,如图1



图1

形象的比喻是:网络用来学习病人的各种体征,之前用来学习身高的神经元,现在忽然用来学习病人的年龄。

获得视角不变性的方法

使用充足冗余的不变性特征(redundant invariant features)。

在物体外侧画一个边框,然后对其进行归一化(Normalization)。

使用复制特征(replicated features)以及池化(pooling)技巧。

不变特征方法(The invariant feature approach)

提取一个巨大、冗余的特征集合,这个集合对于变换具有不变性。

例如:在红点周围的两根粗平行线。如图2



图2

当时对于识别任务而言,应当尽量避免不属于物体的部分的特征。

合理归一化方法(The judicious normalization approach)

在物体周围放置一个边框,并定位方向,从而进行归一化。如图3

边框对相当多的变形具有不变性:如平移、旋转、放大、剪切以及拉伸。



图3

然而选取边框非常困难,因为:

分割错误、遮挡、反常定位。

因此我们需要识别出物体才能更好对边框进行定位——这变成了鸡与蛋的问题。

强制归一化方法(The brute force normalization approach)

训练识别器的时候用良好裁切,方向竖直向上、贴合边框的图片。

测试识别器的时候用各种位置和朝向的边框。

这种方法对检测未经裁切的竖直物体如脸部、门牌号码这些任务很有效。

用以手写体识别的卷积神经网络

复制特征方法(The replicated feature approach)

在不同的位置使用相同的特征提取器,如图4

复制特征的方法显著降低了自由参数的数量。



图4

复制特征方法学习到了什么?

激活值等变化量

复制特征的方法并不能使神经元激活值不变,但是能够使激活值改变量相同,如图5



图5

知识不变量

如果在训练中某个特征在一些位置有效,那么在测试中,特征提取器应该在各个位置生效。

复制特征提取器的池化(Pooling)

池化就是把相邻的像素值均值化,作为下一层网络的单一输入。

这会降低输入到下一层的输入特征数,从而使得下一层实际能学到特征变多了。

存在的问题:经过若干层的池化,我们损失了 物体的精确位置信息。

这使得利用物体之间的精确空间位置关系来进行识别变得不可行。

LeNet5 模型

Yann LeCun 开发了一个多层卷积神经网络用于手写体识别,如图6:

LENET



图6

如何评价两个模型的优劣?

McNemar 测试比单纯地比较两个模型的错误率要更加可观。

typemodel 1 wrongmodel 1 right
model 2 wrong291
model 2 right119959
说明模型2要显著好于模型1。

typemodel 1 wrongmodel 1 right
model 2 wrong1515
model 2 right259949
并不能说明模型2要好于模型1。

Alex’s Net 的诸多设计

Krizhevsky, Alex, Ilya Sutskever, and Geoffrey E. Hinton. “Imagenet classification with deep convolutional neural networks.” Advances in neural information processing systems. 2012.

7层隐含层(不包括池化层)。

前面5层是卷积层,后面2层是全连接层。

激活函数使用的是ReLU函数。

归一化层用以抑制近邻神经元的强激活值。

随机裁切和水平镜像以扩大训练数据集。

丢弃层(Dropout)随机丢弃一半权重以防止过拟合。

双GPU(GTX 580)矩阵运算。



图7
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息