卷积神经网络

1.传统前馈神经网络和卷积神经网络


左图:传统前馈神经网络  右图:卷积神经网络

在上图中我们看到左图是没有深度的,而右图增加了深度。

左图:全连接神经网络(平面),组成:输入层、激活函数、全连接层

右图:卷积神经网络(立体),组成:输入层、卷积层、激活函数、池化层、全连接层

2.卷积层计算


卷积层类似于滤波器

fliter在原始输入上滑动,我们得到新的特征,滑动过程中有步长的概念。就上图而言输入时32x32x3,输出是5x5x3,我们每个fliter(单层)与每一个输入(单层)进行卷积操作,然后,得到28x28的输出层三个,我们需要对这三个进行求和,然后加上偏置项,最后得到28x28x1的卷积输出层。

步长:即fliter滑动的步长,步长越长,提取的特征越多,但是需要的计算时间也就越多。

输出层和输入层之间的关系:


输出层和输入层大小

stride是步长,pad是卷积的补偿,即是为了防止边缘的特征提取少于中间的特征提取,所以加入了补偿。如下图所示

多个fliter在输入上滑动

上图中,我们看到多个fliter在输入上滑动,我们会得到多个输出,一般我们会使用多个fliter。

在卷积神经网络中,有一个非常重要的特性:权值共享。

所谓的权值共享就是说,给一张输入图片,用一个filter去扫这张图,filter里面的数就叫权重,这张图每个位置是被同样的filter扫的,所以权重是一样的,也就是共享。

3.池化层


池化层

上图显示,池化就是对特征图进行特征压缩,池化也叫做下采样。选择原来某个区域的max或mean代替那个区域,整体就浓缩了。下面演示一下pooling操作,需要制定一个filter的尺寸、stride、pooling方式(max或mean):


最大池化

4.卷积神经网络组成


卷积神经网络结构

5.反向传播


前向传播

6.卷积神经网络架构


VGGNet深度更多,有很多卷积层和池化层。一个版本有16层,另一个版本有19层(较常用)。

VGGNet的特点:

filter只有3*3的,意味着计算的特征较多,粒度更细。同时pooling的参数也有固定。

注意:传统的卷积神经网络层数越多并以意味着效果更好。而在2016年推出了深度残差网络达到了152层。后续讲介绍。

那么训练一个VGGNet有多少内存开销呢?


从图可得知,训练过程中一张224*224*3的图像会有138M个参数会占93MB的内存。因此每个batch中图像的数目应该受内存的约束,即 93*图像数目<内存总容量。

你可能感兴趣的:(卷积神经网络)