VGG16理论部分笔记(名词解释)

总览

按照本人的学习理念,学习一个理论知识之前先总览一下它大概是个什么东西,话不多说先把VGG16经典概念图摆出来。

 第一次看到这个图我有点头大,但是不用慌,至少我已经明白了,一张图片从左到右尺寸慢慢变小了,同时厚度却在慢慢变厚,可能它是一个类似压缩的过程。ok,现在可以开始深入了解了。

名词解释

卷积、卷积核

在解释卷积之前,我们需要了解一张图片的构成 ,我们现在见到的彩色图片有RGB三个色彩通道,分别对应Red、Green、Blue,每个通道(channels)我们可以理解为若干个像素组成的二维数组,每个格子的0-255的数值分别代表相应的像素值。假设有一张300*300的图片,就可以用(300*300*3)的数组来代表这张图片。

查看源图像

                                  

 那么什么是卷积,就是用一个小矩阵——也就是卷积核(filter),在这样的矩阵里按特定的步长进行扫描,步长为1,则代表每次移动一格,如下图。

每次卷积核的停留都能得到一个数字,最终组成一个新的矩阵,假如原图像边长为5,那么新得到的矩阵边长就为3,相差的2是由卷积核尺寸决定的。上图中卷积核尺寸为3*3,如果卷积核是4*4,那么差为4-1=3,新通道边长为5-3=2。

卷积核中每个格子里的乘数,就称为卷积核权重参数,每次停留,都将原矩阵里相应位置的数值与参数相乘并相加,这样就得到新矩阵相应位置的数值。

如上图所示,在这个过程中其实原图有三个通道(矩阵),那么我们就需要在三个通道中都扫描一遍,并且将所得到的三个新矩阵再相加,得到最终的卷积特征图谱。具体参考(2条消息) 【CNN】理解卷积神经网络中的通道 channel_scxyz的博客-CSDN博客_卷积神经网络通道数

就可以清晰了解原理了。另外在使用卷积核时,卷积核的通道数(channels)必须和输入的图片通道数一致,也就是3。

padding

padding指的是让新得到的矩阵尺寸保持不变,在卷积前用padding指令将原矩阵周围围上一圈,于是得到7*7的矩阵,最终得到的就是5*5的新矩阵。

padding包括两种模式

SAME模式:输出尺寸等于输入尺寸除以步长向上取整,s是步长大小;

这里写图片描述

VALID模式:输入和输出尺寸关系如下

这里写图片描述 

输出大小等于输入大小减去滤波器大小加上1,最后再除以步长(f为滤波器的大小,s是步长大小)。

卷积层

此时,我们再回到VGG16流程图,就可以理解第一步中变化的原理了。

 从左到右我们使用了64个3*3的channels为3的卷积核(3*3*3的卷积核)来进行卷积,并且进行了padding处理,最终得到224*224的channels为64的新矩阵,此时我们称其为224*224*64的卷积层(Convolutional Layer),用conv3-64表示,3代表使用的是3*3的卷积核,64代表的是通道数。右边有两个卷积层,证明我们进行了两次卷积。

 留坑

没想到这写起来这么麻烦,写着写着感觉反而变混乱了😅。其它的名词解释我就放下面备忘了。

 全连接层

VGG16流程图中蓝色的即为全连接层(Fully connected Layer),用FC-XXXX表示。对n-1层和n层而言,n-1层的任意一个节点,都和第n层所有节点有连接。即第n层的每个节点在进行计算的时候,激活函数的输入是n-1层所有节点的加权。像下面的中间层就是全连接方式。

 

 池化、池化层

卷积操作后我们提取了很多特征信息,相邻区域有相似特征信息,可以相互替代的,如果全部保留这些特征信息就会有信息冗余,增加了计算难度,这时候池化就相当于降维操作。池化是在一个小矩阵区域内,取该区域的最大值或平均值来代替该区域,该小矩阵的大小可以在搭建网络的时候自己设置。小矩阵也是从左上角扫到右下角。如下图

 VGG16流程图中红色的即为池化层(Pool layer),用maxpool表示。

flatten

flatten 是指将多维的矩阵拉开,变成一维向量来表示,常用在从卷积层到全连接层的过渡。在流程图中代表的是蓝红色方块间的过渡。

权重层

卷积层和全连接层具有权重系数,因此也被称为权重层,在VGG16中总数目为13+3=16,这即是

VGG16中16的来源。而VGG来源于作者所在的牛津大学视觉几何组(Visual Geometry Group)的缩写。

 权重参数

 权重参数包括卷积核权重全连接层权重

  • 对于第一层卷积,由于输入图的通道数是3,网络必须学习大小为3x3,通道数为3的的卷积核,这样的卷积核有64个,因此总共有(3x3x3)x64 = 1728个参数
  • 计算全连接层的权重参数数目的方法为:前一层节点数×本层的节点数前一层节点数×本层的节点数。因此,全连接层的参数分别为:
    • 7x7x512x4096 = 1027,645,444
    • 4096x4096 = 16,781,321
    • 4096x1000 = 4096000

可以看出VGG的参数数量很大,拟合能力很强,但是缺点就在于训练时间长、需要的存储容量大。 

 总结

理论的理解大概就到这里了,最后的三个全连接层和softmax之间的联系与转换流程还没有完全理解,我打算后续在实践当中边用边学。

从网上了解了很多VGG16的知识,以下是我作为参考的网站地址

卷积神经网络VGG16这么简单,为什么没人能说清? (sohu.com)

VGG16学习笔记 - Rogn - 博客园 (cnblogs.com)

(2条消息) TensorFlow中padding卷积的两种方式“SAME”和“VALID”_syyyy712的博客-CSDN博客

【CNN】理解卷积神经网络中的通道 channel_scxyz的博客-CSDN博客_卷积神经网络通道数

感谢网络的发达和善于分享的前辈,接下来开始进入实践部分,加油!

 

 

 

 

 

 

 

 

     

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值