赞
踩
1、信息的获取:是指通过长安器,将光或声音等信息转化为电信息。也就是获取研究对象的基本信息并通过某种方法将其转变为机器能够认识的信息;
2、预处理:主要是指图像处理中的去噪、平滑、变换等操作,从而加强图像的重要特征,图像增强;
3、特征提取和选择:是指在模式识别中,需要进行特征的抽取和选择。特征抽取和选择在图像识别过程中是非常关键的技术之一。
4、分类器设计:是指通过训练而得到一种识别规则,通过此识别规则可以得到一种特征分类,使图像识别技术能偶得到高识别率。分类决策是指在特征空间中对识别对象进行分类,从而更好地识别所研究的对象具体属于哪一类。
图像识别的应用十分广泛,包括图像分类、网络搜索、以图搜索、智能家居、电商购物、农林业,森量调查、金融、安防、医疗、娱乐监管等等。
VGG之所以经典,在于它首次将深度学习做得非常“深”,达到了16-19层,同事,它用了非常“小”的卷积核(3x3)。
1、一张原始图片被resize到(244,244,3)
2、conv1两次[3,3]卷积网络,输出的特征为64,输出为(224,224,64),再2x2最大池化,输出net为(112,112,64);
3、conv2两次[3,3]卷积网络,输出的特征为128,输出为(112,112,128),再2x2最大池化,输出net为(56,56,128);
4、conv3两次[3,3]卷积网络,输出的特征为256,输出为(56,56,256),再2x2最大池化,输出net为(28,28,256);
5、conv3两次[3,3]卷积网络,输出的特征为256,输出为(28,28,512),再2x2最大池化,输出net为(14,14,512);
6、conv3两次[3,3]卷积网络,输出的特征为256,输出为(14,14,512),再2x2最大池化,输出net为(7,7,512);
7、利用卷积的方式模拟全连接,效果等同,输出net为(1,1,4096)。共进行两次
8、利用卷积的方式模拟全连接,效果等同,输出net为(1,1,1000).
最后输出的就是每个类的预测。
Residual net(残差网络):将靠前若干层的某一层数据输出直接跳过多层引入到后面数据的输入部分。
残差神经元:假定某段神经网络的输入是x,期望输出是H(x),如果直接将输入x传到输出作为初始结果,那么我们需要学习的目标就是F(x)=H(x)-x,这就是一个残差神经单元,相当于将学习目标改变了,不再是学习一个完整的输出H(x),只是输出和输入的差别H(x)-x,即残差。
1、卷积网络当做特征提取器,使用在ImageNet上预测训练的网络,去掉最后的全连接层,剩余部分当做特征提取器(例如AleiNet在最后分类器前,是4096维的特征向量)。这样提取的特征叫做CNN codes。得到这样的特征后,可以使用线性分类器(Liner SVM、softmax等)来分类图像;
2、Fine-tuning卷积网络。替换掉网络的输入层(数据),使用新的数据继续训练。Fine-tune时可以选择fine-tune全部层或部分层。通常,前面的层提取的是图像的通用特征(generic features),例如边缘检测,色彩检测,这些特征对许多人物都有用,后面的层提取的是与特定类别有关的特征,因此fine-tune时常常只需要fine-tuning后面的层。
Inception网络是CNN发展史上一个重要的里程碑。在Inception出现之前,大部分流行CNN仅仅把卷积层堆叠得越来越多,是网络越来越深,以此希望能够得到更好的性能,但是存在以下问题:
1、图像突出部分的大小差别很大;
2、由于信息位置的巨大差异,为卷积操作选择合适的卷积核大小就比较困难。信息分布更全局性的图像偏好较大的卷积核,信息分布比较局部的神经网络偏好较小的卷积核;
3、非常深的神经网络更容易过拟合,将梯度更新传输到整个网络是很困难的;
4、简单的堆叠较大的卷积层非常消耗计算资源。
inception模块使用了3个不同大小的滤波器(
1
×
1
,
3
×
3
,
5
×
5
1\times 1,3\times 3,5\times 5
1×1,3×3,5×5)对输入执行卷积操作,此外他还会执行最大池化。所有子层的输出最后会被级联起来,并传送至下一个Inception模块。一方面增加了网络的宽度,另一方面增加了网络对尺度的适应性。
实现降维的inception模块:由于太多层需要耗费大量计算资源,为了降低算力成本,作者在
3
×
3
3\times 3
3×3和
5
×
5
5\times 5
5×5卷积层之前添加了额外的
1
×
1
1\times 1
1×1卷积层,来限制输入通道的数量。尽管添加额外的卷积操作似乎是反直觉的,但是
1
×
1
1\times 1
1×1卷积比
5
×
5
5\times 5
5×5卷积要廉价得多,而且输入通道数量减少与有利于降低算力成本。
算力成本比较
1、GoogleNet采用了Inceptin模块化(9个)的结构,共22层;
2、为了避免梯度消失,网络额外增加了2个辅助的softmax用于前向传导梯度。
InceptionV2在输入的时候增加了BatchNormalization:
InceptionV3整合了InceptionV2中提到的所有升级,还是用了
7
×
7
7\times 7
7×7卷积,其设计思想主要如下:
1、分解成小卷积很有效,可以降低参数量,减轻过拟合,增加网络非线性的表达能力;
2、卷积网络从输入到输出,应该让图片尺寸逐渐减小,输出通道逐渐增加,即让空间结构化,将空间信息转化为高阶抽象的特征信息;
3、Inception Module用多个分支提取不同抽象程度的高阶特征点思路很有效,可以丰富网络的表达能力。
其结构如下:
1、采用了
1
×
1
1\times 1
1×1卷积核,性价比高,用很少的计算量可以增加一层特征变换和非线性变换;
2、提出Batch Normalization,通过一定手段,把每层神经元的输入值分布拉到均值0方差1的正态分布,使其落入激活函数的敏感区,避免梯度消失,加快收敛;
3、引入Inception Module,4个分支结合的结构。
MobileNet模型是Google针对手机等嵌入式设备提出的一种轻量级的深层神经网络,其使用的核心思想辨识depthwise separable convolution。
通俗地理解就是
3
×
3
3\times 3
3×3的卷积核厚度只有一层,然后在输入张量一层一层地滑动,每一次卷积完生成一个输出通道,当卷积完成后,再利用
1
×
1
1\times 1
1×1的卷积调整厚度。
对于一个卷极点而言:
假设有一个
3
×
3
3\times 3
3×3大小的卷积层,其输入通道为16,输出通道为32。具体为,32个
3
×
3
3\times 3
3×3大小的卷积核会遍历16个同道中人的每个数据,然后可得到所需的32个输出通道,所需参数为
16
×
32
×
3
×
3
=
4608
16\times 32\times 3\times 3=4608
16×32×3×3=4608个。
应用深度可分离卷积,用16个
3
×
3
3\times 3
3×3大小的卷积核分别遍历16通道的数据,得到16个特征图谱,在融合操作之前,接着用32个
1
×
1
1\times 1
1×1大小的卷积核遍历这16个特征图谱,所需参数为
16
×
3
×
3
+
16
×
32
×
1
×
1
=
656
16\times 3\times 3 + 16\times 32\times 1\times 1=656
16×3×3+16×32×1×1=656个。
可以看出depthwise separable convolution可以减少模型的参数。
1)架构遵循应用
或许会被Google Brain或者Deep Mind这些想象力的实验室所发明的那些耀眼的新模型所吸引,但是其中很多很难用于实际的工程之中。或者应该使用对特定应用场景最有意义的模型,这种模型或许非常简单,但是仍然很强大,例如VGG。
2)路径的激增
每年ImageNet Challenge的赢家都比上一年的冠军使用更加深层的网络。从AlexNet到Inception到Resnets,有网络的路径数量成倍增长的趋势;
3)追求简约
更大的不一定是更好的;
4)增加对称性
5)金字塔形状
当在表征能力和减少冗余或者无用信息之间权衡时,CNNs通常会降低激活函数的采样,并会增加从输入层到最终层之间的连接通道;
6)过渡训练
另一个权衡时训练准确度和泛化能力,用正则化的方法类似dropout或droppath进行提升防滑能力,这是神经网络的重要优势。用于实际用力更难的问题训练网络,以提高泛化性能;
7)覆盖问题的空间
为了扩大训练数据与提升泛化能力,要使用噪声和人工增加训练集的大小。例如随机旋转、裁剪和一些图像增强操作;
8)递增的功能结构
当架构变得成功时,他会简化每一层的工作,在非常深的神经网络中,每个层只会递增地修改输入。在ResNets中,每一层的输出尽可能类似于输入,所以,在实践中,请在Resnet中使用较短的跳过长度;
9)标准化层的输入
变准化是可以使计算蹭的工作变得更加容易的一条捷径,并且在实际中可以提升训练的准确性。标准化把所有层的输入样本放在一个平等的基础上(类似于单位转换),这允许方向传播可以更有效的训练;
10)使用微调过的预训练网络(fine tuning)
机器学习公司Diffbot的CEO Mike Tung说:“如果你的视觉数据和ImageNet相似,那么用预训练网络会帮助你学习得更快”。低水平的CNN通常可以被重复使用,因为他们大多能够检测到像线条和边缘这些常见的模式。比如,用自己设计的层替换分类层,并且用你特定的数据去训练最后的几个层。
11)使用循环的学习率
学习率的实验会消耗大量的时间,自适应学习率在计算上可能是十分昂贵的,但是循环学习率不会,使用循环学习率时,可以设置一组最大最小边界,并且在这个范围内改变它。
CNN之图像识别(下)https://blog.csdn.net/qq_35813161/article/details/110500810
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。