吴恩达深度学习课程笔记-9

04. 卷积神经网络

第一周 卷积神经网络

1.1 计算机视觉

计算机视觉方向算是深度学习领域发展最快的方向之一,出现了大量富有创造性的工作。

而面对图片处理,首先出现的问题就是数据量巨大,一个1000×1000的RGB图片直接输入神经网络将有1百万的特征,网络的参数也将非常庞大,对于训练、设备内存都是巨大的挑战,所以不能这么干,卷积网络应运而生。

1.2 & 1.3 边缘检测

边缘检测是计算机视觉里一个基本问题,传统的做法是依靠各种手工设计的边缘检测算子,通过与图片进行卷积来检测边缘。

有各种各样的边缘检测算子,哪一种最合适其实众说纷纭。深度学习的观点是,这些卷积核的参数不要再手工设计了,而是当作参数让网络去学习。

1.4 & 1.5 & 1.6 卷积

机器学习中的卷积其实和数学或信号处理中的卷积定义不同,这里的卷积其实应该算是互相关。

卷积之后的图像大小计算公式:

( lfloor frac{n + 2p - f}{s} + 1 floor  imes lfloor frac{n + 2p - f}{s} + 1 floor )

其中卷积核大小(kernel size)或者滤波器(filter)大小 ( f ) 一般为奇数,填充大小(padding)( p ) 取决于选择的卷积类型:

  • Valid 卷积:不加填充。卷积之后图像越来越小。
  • Same 卷积:使输出图像尺寸和输入图像尺寸一样的填充。

步长(stride)( s ) 和图像大小( n imes n ) 如果搭配不凑巧的话,上面的式子可能不能整除,所以要做向下取整。

进一步,我们处理的都是彩色图像,有RGB三个通道(或者说深度depth),因此卷积核要和输入有相同的通道数。例如对200×200×3的图像,采用3×3×3的卷积核进行卷积。一个卷积核其实只能用来提取一种特征,如果要提取多种特征,就要用多个卷积核,每个卷积核的卷积输出都是一个通道,多个输出叠起来就得到最后的输出。

由上图可以看出,卷积核通道数=卷积输入的通道数,卷积输出的通道数=卷积核的数目。

1.7 & 1.8 & 1.9 卷积神经网络

介绍完基本的卷积运算,组合起来就可以组成卷积网络了,以其中一层来说:

先定义一些符号表示:

  • ( f^{[l]} = ext{filter size} )
  • ( p^{[l]} = ext{padding} )
  • ( s^{[l]} = ext{stride} )
  • ( n^{[l]}_C = ext{number of channels} )

下面计算卷积网络中各种量的尺寸:

  • 输入:( n^{[l-1]}_H imes n^{[l-1]}_W imes n^{[l-1]}_C )
  • 输出:( n^{[l]}_H imes n^{[l]}_W imes n^{[l]}_C )
  • 卷积核(滤波器):( f^{[l]} imes f^{[l]} imes n^{[l-1]}_C )
  • 激活值:( a^{[l]} ightarrow n^{[l]}_H imes n^{[l]}_W imes n^{[l]}_C  )
  • 参数(权重):( f^{[l]} imes f^{[l]} imes n^{[l-1]}_C imes n^{[l]}_C )
  • 偏移量:( n^{[l]}_C )

其实 ( n^{[l]}_C ) 就等于 ( l ) 层卷积核的数目。

注意参数量计算:( f^{[l]} imes f^{[l]} imes n^{[l-1]}_C imes n^{[l]}_C + n^{[l]}_C ),所以无论图片有多大,参数量只取决于卷积核的尺寸和数目。

卷积网络除了卷积层,还有池化层和全连接层。

池化层最常用的就是最大池化,超参数包括滤波器尺寸(f)和步长(s),常用的是(f=2,s=2). 不同于卷积运算,输入的每个通道都独立的计算池化,因而输入输出的通道数一定相同。

除了采取最大池化,还可以采用平均池化,顾名思义,就是取平均值,但最大池化用的更多。

池化层没有需要学习的参数,反向传播时也没有要操作的对象。

简单的卷积神经网络如上图,和经典的LeNet-5比较像。每一个卷积层之后跟着一个池化层,可以看到随着卷积层数加深,特征尺寸减小,通道数增多。最后的全连接层是将特征展开成一个长向量后构成的神经网络。

通常在统计卷积网络的层数时,只考虑那些有参数的层,所以池化层的数目可以不考虑,或者将其和卷积层视为一层。

上面这种网络的参数量主要集中在全连接层,卷积层的参数相对较少。

对了,卷积神经网络中有非常多的超参数,这些超参数最好不要自己选择,直接利用学术界最新最好的网络结构就好了。

1.11 为什么使用卷积

两个优势:参数共享和稀疏连接

原文地址:https://www.cnblogs.com/tofengz/p/12248666.html