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

简介:
+关注继续查看

很多人想入门做深度学习,但往往翻遍网络看完一篇又一篇所谓的“入门教程”,paper,包括很多深度学习框架官方给出的案例,给人的感觉真的是从入门到放弃。写教程的作者有很多都是技术大神,但写出的东西真的是把原本简简单单的理论说得晦涩难懂,模凌两可。比如说VGG16,都是摆上从论文里截过来的下面这张图:

image

或者给出像下面的架构图:

image

对于数据从输入到输出,中间是如何变化的,神经元个数,参数个数又是怎么变化的,如何自己设计一个合理的CNN网络等等,没有教程能把这些说清楚,推荐看吴恩达老师的课程视频,对英文不好的童鞋其实是很吃力的。入门其实并不难,内容也不难理解,倒是被千篇一律的教程带进沟来。

VGG16本来就简单,但是越简单的东西"大牛"们往往不想去解释,说是“入门教程”,基础的不解释怎么教人入门。

现在详细介绍VGG16 , 需要补充一点神经网络的知识,9行Python代码搭建神经网络来掌握一些基本概念

一张图片如何作为输入?

如下图,彩色图像有RGB三个色值通道,分别表示红、绿、蓝,每个通道内的像素可以用一个像下图右边的二维数组表示,数值代表0-255之间的像素值。假设一张900600的彩色的图片,计算机里面可以用 (900600*3)的数组表示。

image

什么是卷积

卷积过程是基于一个小矩阵,也就是卷积核,在上面所说的每层像素矩阵上不断按步长扫过去的,扫到数与卷积核对应位置的数相乘,然后求总和,每扫一次,得到一个值,全部扫完则生成一个新的矩阵。如下图

image

卷积核如何设置可以参考卷积神经网络的卷积核大小、个数,卷积层数如何确定呢?一般取(3,3)的小矩阵,卷积核里面每个值就是我们需要寻找(训练)的神经元参数(权重),开始会随机有个初始值,当训练网络时,网络会通过后向传播不断更新这些参数值,直到寻找到最佳的参数值。如何知道是“最佳”?是通过损失函数去评估。

卷积核的步长是指卷积核每次移动几个格子,有横行和纵向两个方向。

卷积操作相当于特征提取,卷积核相当于一个过滤器,提取我们需要的特征。
如下图,左边小红色框是卷积核,从左上角扫到右下角,最终得到右边的特征图谱。

卷积:如何成为一个很厉害的神经网络

image

什么是Padding

卷积操作之后维度变少,得到的矩阵比原来矩阵小,这样不好计算,而我们只是希望作卷积,所以我们需要Padding,在每次卷积操作之前,在原矩阵外边补包一层0,可以只在横向补,或只在纵向补,或者四周都补0,从而使得卷积后输出的图像跟输入图像在尺寸上一致。

比如:我们需要做一个300300的原始矩阵的卷积,用一个33卷积核来扫,扫出来结果的矩阵应该是:298*298的矩阵,变小了。

卷积前加 Padding 操作补一圈0,即300300矩阵外面周围加一圈“0”,这样的300300就变成了302302的矩阵,再进行卷积出来就是300300 ,尺寸和原图一样。

image

什么是池化(pooling)

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

image

什么是Flatten

Flatten 是指将多维的矩阵拉开,变成一维向量来表示。

什么是全连接层

对n-1层和n层而言,n-1层的任意一个节点,都和第n层所有节点有连接。即第n层的每个节点在进行计算的时候,激活函数的输入是n-1层所有节点的加权。像下面的中间层就是全连接方式。

image

什么是Dropout
dropout是指在网络的训练过程中,按照一定的概率将网络中的神经元丢弃,这样有效防止过拟合。

现在我们来看看VGG16的整天架构图:

image

从左至右,一张彩色图片输入到网络,白色框是卷积层,红色是池化,蓝色是全连接层,棕色框是预测层。预测层的作用是将全连接层输出的信息转化为相应的类别概率,而起到分类作用。

可以看到 VGG16 是13个卷积层+3个全连接层叠加而成。

原文发布时间为:2018-07-15
本文作者:datayx
本文来自云栖社区合作伙伴“大数据挖掘DT机器学习”,了解相关信息可以关注“大数据挖掘DT机器学习

相关文章
|
21天前
|
机器学习/深度学习
长短期记忆(LSTM):突破性的序列训练技术
长短期记忆(LSTM):突破性的序列训练技术
49 1
|
7月前
|
机器学习/深度学习 算法
SpikeGPT项目原作解读:使用脉冲神经网络的生成式语言模型
SpikeGPT项目原作解读:使用脉冲神经网络的生成式语言模型
157 0
|
7月前
|
计算机视觉
迟到的 HRViT | Facebook提出多尺度高分辨率ViT,这才是原汁原味的HRNet思想(二)
迟到的 HRViT | Facebook提出多尺度高分辨率ViT,这才是原汁原味的HRNet思想(二)
89 0
|
7月前
|
机器学习/深度学习 编解码 vr&ar
迟到的 HRViT | Facebook提出多尺度高分辨率ViT,这才是原汁原味的HRNet思想(一)
迟到的 HRViT | Facebook提出多尺度高分辨率ViT,这才是原汁原味的HRNet思想(一)
98 0
|
7月前
|
编解码 人工智能 固态存储
何恺明组新论文:只用ViT做主干也可以做好目标检测
何恺明组新论文:只用ViT做主干也可以做好目标检测
|
7月前
|
机器学习/深度学习 编解码 自然语言处理
将大核卷积分三步,清华胡事民、南开程明明团队全新视觉骨干VAN,超越SOTA ViT和CNN
将大核卷积分三步,清华胡事民、南开程明明团队全新视觉骨干VAN,超越SOTA ViT和CNN
122 0
|
7月前
|
机器学习/深度学习 编解码 人工智能
惊讶 | EfficientFormerV2:Transformer居然还能比MobileNet还快更准
惊讶 | EfficientFormerV2:Transformer居然还能比MobileNet还快更准
123 0
|
7月前
|
机器学习/深度学习 算法 计算机视觉
NeurIPS 2021 | 华为诺亚Oral论文:基于频域的二值神经网络训练方法
NeurIPS 2021 | 华为诺亚Oral论文:基于频域的二值神经网络训练方法
138 0
|
7月前
|
机器学习/深度学习 自然语言处理 并行计算
「稀疏编码」从理论走向实用!马毅教授NeurIPS 2022新作:稀疏卷积性能和稳健性超越ResNet
「稀疏编码」从理论走向实用!马毅教授NeurIPS 2022新作:稀疏卷积性能和稳健性超越ResNet
|
7月前
|
机器学习/深度学习 算法 Python
第三周:浅层神经网络
前面的课程中,我们已经使用计算图的方式介绍了逻辑回归梯度下降算法的正向传播和反向传播两个过程。如下图所示。神经网络的结构与逻辑回归类似,只是神经网络的层数比逻辑回归多一层,多出来的中间那层称为隐藏层/中间层。
137 0
推荐文章
更多