【2020华为云AI实战营】第一章 VGG16学习
第一章图像分类 学习图像分类神经网络,VGG模型详细解读见以下连接,这里对这个链接里一些内容稍稍的进行了一下讲解,方便初学者对人工智能入门者进行学习与研究,当然大神级的这里可以忽略了。
https://github.com/huaweicloud/ModelArts-Lab/wiki/VGG%E6%A8%A1%E5%9E%8B%E8%A7%A3%E6%9E%90
这里作一下名词解释,方便后续看懂VGG的架构,convolution + ReLU 卷积层 + 激活函数
max pooling 最大值池化
fully nected + ReLU 全链接层 + 激活函数
softmax SoftMax分类器
详解:
池化不同与卷积,池化作用于图像中不重合的区域
一、为什么要加激活函数 是为了增加网络的非线性分割能力,为什么选择 ReLu 作为激活函数,是因为其在反向传播求误差梯度时间,计量相对大,没有选别的激活函数,这里以 sigmoid 举例,是因为对于深层网络,sigmoid函数反向传播时,很容易就会出现梯度爆炸的情况。
二、为什么要加池化 原因如下:
1、特征不变形:池化操作是模型更加关注是否存在某些特征而不是特征具体的位置。
2、特征降维:池化相当于在空间范围内做了维度约减,从而使模型可以抽取更加广范围的特征。同时减小了下一层的输入大小,进而减少计算量和参数个数。
3、在一定程度上防止过拟合,更方便优化。
全链接层:前面的卷积和池化相当于做特征工程,这里相当于做特征加权。
定义:
卷积层(卷积神经网络中每层卷积层(Convolutional layer)由若干卷积单元组成,每个卷积单元的参数都是通过反向传播算法最佳化得到的。卷积运算的目的是提取输入的不同特征,第一层卷积层可能只能提取一些低级的特征如边缘、线条和角等层级,更多层的网路能从低级特征中迭代提取更复杂的特征)
卷积核(卷积核就是图像处理时,给定输入图像,输入图像中一个小区域中像素加权平均后成为输出图像中的每个对应像素,其中权值由一个函数定义,这个函数称为卷积核)
首先还是上VGG的架构图,这个图刚看的时候可能有些困惑,这个图上面的一列从A,A-LRN,B,C,D,E是VGG根据卷积核大小以及卷积层数目的不同,分成的的6个配置,VGG 16 指的是D列,而VGG 19 指的就是E列了。
以常谈的VGG 16举例,也就是D列,这里16个权重层 16 weight layers 其中有13个卷积层conv3-64、conv3-128...conv3-512与3个全链接层FC-4096、FC4096、FC-1000, 卷积层和全链接层具有权重系数,因此也称为权重层,池化层不涉及权重,不属于权重层,所以VGG 16 16代表权重层数量
卷积层均为conv3-XXX 其中conv3说明其采用的卷积核的尺寸为3*3 比较小的卷积核尺寸,而XXX为通道数,同一个卷积块通道数是相同的,如 图 一所示从右向左,第一块包含conv3-64 和 conv3-64 两个卷积层以及一个池化层,第一块通道数为64
VGG的输入图像 为 224*224*3 通道数翻倍,64到128,直到512 而长和宽由224到112到56 ....到7
总结:
VGG整体的架构看上去是很简单的,不过其权重数据很大,权重要包含卷积核权重以及全链接的权重,权重参数的量是很大的,权重参数大,可以有很高的拟合能力,不过由于过多的权参,会导致其训练时长变的更长,参数的调整也变的十分困难,同时也需要更大的空间去存储权重文件,对于模型的部署不是十分的方便,同时约束了其安装在嵌入系统当中。
- 点赞
- 收藏
- 关注作者
评论(0)