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

深度学习UFLDL教程翻译之卷积神经网络(一)

2016-08-07 20:54 344 查看
A、使用卷积进行特征提取

一、概述

       在前面的练习中,你解决了像素相对较低的图像的相关问题,例如小的图片块和手写数字的小图像。在这个节,我们将研究能让我们将这些方法拓展到拥有较大图像的更加实际的数据集的方法。

二、全连接网络

       在稀疏自编码器中,我们所做的设计选择是将所有隐藏层单元与输入单元全部连接。在我们处理的相对小的图像中(例如在稀疏自编码器作业中的8×8小块,MNIST数据集中的28×28图像),学习整幅图像的特征在计算上是非常灵活的。然而,对于大一点的图像(例如96×96图像),学习涵盖在整幅图像上的特征(全连接网络)在计算上是代价非常高——你将有大约104个输入单元,假设你想学习100个特征,你将依次学习106个参数。与28×28的图像比起来,前向和后向传播计算也会慢100倍。

三、局部连接网络

       这个问题的一个简单解决方法是限制隐藏层单元和输入单元的连接,只允许隐藏单元与输入单元的小的子集相连接。具体而言,每个隐藏单元只与输入的小的一块邻域像素相连接。(对于与图像不同的输入形式,通常也有一种自然的方法选择输入单元的“邻组”来与一个隐藏单元连接;例如,对于音频,一个隐藏单元可以只与相当于某一时间长度的输入音频片段的输入单元相连接。)

       这个局部连接网络的想法也是从生物学中初期的视觉系统如何构建得到的灵感。具体而言,视觉皮层上的神经元有局部感受野(即,它们只对某一个区域的刺激作出反应)。

四、卷积

       自然图像有一个叫“不变性”的特点,意思是图像某一部分的统计特性和其它部分是一样的。这暗示着我们在某一部分学习到的特征也能应用到图像的其它部分,所以我们可以在所有的区域都用相同的特征(所以可以用相同的特征筛选器,这里在说权值共享)。

       更精确地说,在一幅大图像中随机采样的小块(例如8×8)上学习了特征后,我们可以将这块训练的8×8小块作为特征检测器应用到图像的任何地方。具体而言,我们可以拿训练的8×8特征(检测器)与大点的图像“卷积”,于是在图像的各个区域得到不同的特征激活值。

       为了给个具体的例子,假设你已经在从96×96的图像采样得到的8×8小块上学习了特征。进一步假设这是由含100个隐藏单元的自动编码器完成的(就像自动编码器学习特征一样,假设要学100种特征)。为了得到卷积后的特征,对96×96的每个8×8区域,即,从(1,1),(1,2),…(89,89),你会提取8×8小块,然后通过在你训练的自动编码器上运行从而得到特征激活值。这会得到100种89×89的卷积后的特征。、



       正式的说,给定一些r×c图像xlarge,我们首先在从这些图像中采样的a×b小块xsmall中训练一个稀疏自动编码器(k个隐藏单元),利用从可视化单元到隐藏单元得到的权重W(1)和偏置b(1),学习到k个特征f=σ(W(1)xsmall+b(1))(其中σ是sigmoid函数)。对大图像的每个a×b小块xs,我们计算fs=σ(W(1)xs+b(1)),得到fconvolved,一个k×(r−a+1)×(c−b+1)的卷积特征。

       (上面那段最主要的意思应该是下面那幅图:



       两个讯息:

1、 多卷积核——多通道,一个卷积核一个特征;

2、 每个通道权值共享。



       在下一节,我们会深入描述如何一起“池化”这些特征来得到甚至更好的特征用来分类。

B、池化

一、概述

       使用卷积得到特征后,我们接下来想用它们分类。在理论上,分类器可以使用所提取的所有特征例如softmax分类器,但这在计算上充满挑战。例如对96×96像素的图像考虑,假设我们已经在8×8的输入学习了400种特征。每个卷积结果的输出大小为(96−8+1)∗(96−8+1)=7921,而且既然我们有400种特征,每个实例将得到892∗400=3,168,400的特征向量。由拥有三百多万特征的输入来学习分类器是很难处理的,而且容易过拟合。

       为对付这种情况,首先回忆,我们决定得到卷积后的特征是因为图像有“不变”的特性,它意味着在一个区域有用的特征在其它地方也可能有用。因此,为了描述一副大图像,一个自然的方法是总结在不同区域的统计特征。例如,可以计算图像中某一区域的特定特征的平均(或最大)值。这些总结的统计特性在维度上小很多(与使用所有提取到的特征比起来),也可以改善结果(减少过拟合的可能)。我们总结的操作称为“池化”操作,或者有时候称“平均池化”或“最大值池化”(取决于应用的池化操作方式)。

       下图展示了如何在图像的4个非重叠区域做池化。



二、池化得到不变性

       如果选择图像的连续区域作为池化区域并且只池化从相同的(重复的)隐藏单元得到的特征,那么这些池化单元具有“平移不变性”。这意味着相同的(池化的)特征被激活了,即使图像作了(小的)平移。平移不变特征经常是需要的;在许多任务中(例如目标检测,语音识别),即使图像平移了,实例(图像)的标签是相同。例如,如果你拿到MNIST数字并将它向左或向右平移,你想让你的分类器依旧能准确地将它归为同一类,不管它们最终位置在哪里。

三、正式说明

       正式地说,在得到我们之前描述的卷积特征后,我们决定用大小例如m×n的区域,池化我们的卷积特征。然后,我们将我们的卷积特征分成不想交的m×n区域,然后在这些区域取平均(或最大)的特征激活值得到池化后的卷积特征。这些池化后的特征可以用作分类。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐