卷积神经网络实例

经典神经网络

1、LeNet-5

针对灰度图像设计的,因此输入的图像只有单通道。

eg:输入图像大小为32*32*1,要进行0-9手写体数字的识别。

使用6个5*5*1(过滤器的通道数一定要和输入图像的通道数目保持一致),步长为1,padding数为0,则输出的图像大小为28*28*6,然后进行池化操作,f=2,s=2,池化后的图像大小为14*14*6(池化不会改变通道数大小)。然后使用16个大小为5*5*6的过滤器进行卷积操作,s=1,p=0,输出的图像尺寸为10*10*16。然后使用同上的池化操作,图像尺寸大小变为5*5*16,一共有400个特征。接下来是全连接层,在全连接层中,有400个节点,每个节点有120个神经元。然后再经过一个全连接层,得到84个特征,最后利用softmax输出得到y的预测值(一共有10个输出)。

此实例的另一种模式是多个卷积层之后跟着一个池化层,然后再是多个卷积层,一个池化层,然后再来两个全连接层,最后是输出。

2、AlexNet

AlexNet首先使用一张227*227*3的图片作为输入,第一层使用96个11*11的过滤器,步长s=4,输出的尺寸为55*55*96,然后用3*3的过滤层进行最大化池化操作,s=2,卷积层的尺寸缩小为27*27*96((55-3)/2+1)=27。然后用256个5*5*96过滤器进行卷积,padding之后得到27*27*256的图像。再进行最大池化,尺寸缩小到13*13*256。再进行same convolution(进行相应的padding操作),利用384个过滤器,尺寸变为13*13*384。再进行一次same convolution,尺寸变为13*13*384,再进行一次same convolution,尺寸又变回13*13*256。最后再进行一次Max-pool操作,输出的尺寸变为6*6*256。将其展开为9216个单元,然后是一些全连接层,最后使用softmax函数输出,看它究竟是1000个可能的对象中的哪一个。AlexNet与LeNet有很多相似点,但是它的参数数目比LeNet大得多。LeNet有5万到6万个参数,但是AlexNet有5000万到6000万个参数。除此之外,AlexNet还使用了Relu激活函数。

3、VGG-16

VGG没有那么多超参数,只需要专注于构建卷积层的简单网络。

conV=3*3filter,s=1,same Max-pool=2*2,s=2

eg:

输入图片的尺寸为224*224*3,使用64个上述属性的过滤器进行操作,并进行两次相同的卷积操作,输出的尺寸为224*224*64。接下来建立一个池化层将图像进行压缩,压缩后输出的图像大小为112*112*64。接下来使用128个same conv操作,并进行两次,输出大小为112*112*128。然后进行池化,输出大小为56*56*128。接下来继续进行卷积,过滤器个数为256,保证same conv,进行三次操作,输出的尺寸大小为56*56*256,然后就是池化层。然后再卷积三次,再池化...如此进行几轮操作后,将得到的7*7*512的特征图进行全连接操作,得到4096个单元,再进行全连接操作,得到4096个单元,然后使用softmax激活函数,输出从1000个对象中识别的结果。

VGG-16中的16就是指在这个网络包含16个卷积层和全连接层。这是一个非常大的网络,总共包含大约1.38亿个参数。即使参数量很大,但是VGG的结构并不复杂,并且这种网络结构非常规整,每次图缩小的比例和通道数下降的比例都是有规律的。

vgg网络结构示意图

卷积神经网络实例_第1张图片

残差神经网络(ResNet)

ResNets是由残差块构建的。对于普通神经网络,训练错误会随着神经网络层数的增加先减小后增大(过拟合的存在)。而在残差神经网络中,训练错误可以随着神经网络层数增大一直减小,这就避免了在神经网络层数相当大时出现的梯度消失问题,同时还能保证良好的性能。

你可能感兴趣的:(cnn,深度学习,神经网络)