11用深度卷积神经网络做图片分类---学习笔记


2017年7月发布

0、摘要

训练了一个深层神经网络,具有6000万个参数和650000个神经元的神经网络由5个卷积层组成,其中一些随后是最大池化层,三个全连接层以及最后的1000个softmax输出。
为了加快输出,使用了非饱和神经元和GPU
为了减少过拟合,使用了dropout

1、介绍

1、使用有监督学习可以很好地解决简单的识别任务
2、我们的模型需要使用很多先验知识来弥补我们数据集不足的问题,CNN构成了这样一类的模型。卷积神经网络(CNN)的容量可以通过改变它们的深度和宽度来控制,并且它们也对图像的性质(即统计量的定态假设以及像素局部依赖性假设)做出准确而且全面的假设。
3、受限于目前GPU上可用的内存量以及我们可接受的训练时间。们的网络需要在两块GTX 580 3GB GPU上花费五到六天的时间来训练。
(技术上的改进不会长久,因为技术是不断发展的,要有创意,有想法在算法上做改进)

2、数据集

1、imageNet:1500万个已标记高分辨率图像的数据集,有22,000个类别
2、ILSVRC是imageNet的自己,每10,000个类别中大约有1,000个图像,120万个训练图像,50,000张验证图像和150,000张测试图像
3、ILSVRC-2010是ILSVRC中的唯一可以使用测试集标签的版本

4、数据处理:
ImageNet由可变分辨率的图像组成,而我们的系统需要固定的输入尺寸
表述:将图像下采样到256×256的固定分辨率。
进一步详细:给定一个矩形图像,我们首先重新缩放图像,使得短边长度为256,然后从结果中裁剪出中心的256×256的图片。
5、端到端:
除了将每个像素中减去训练集的像素均值之外,我们没有以任何其他方式对图像进行预处理。所以我们在像素的(中心)原始RGB值上训练了我们的网络。
(输入的是原始的RGB图像)

3、结构

我们对它们重要性的估计进行排序,其中最重要的是第一个

3.1ReLu–修正非线性单元(Rectified Linear Units (ReLUs))

非饱和非线性函数比饱和非线性函数快
饱和:指函数有界;非饱和:无界

3.2 在多个GPU上训练

一种思想:在GPU不够的情况下,可以进行拆分
我们将网络分布在两个GPU上。
1、目前的GPU很适合于跨GPU并行化操作,因为它们能够直接读写对方的内存,而无需通过主机内存。
2、GPU只在某些层间进行通信
双GPU网络的训练时间比单GPU网络更少

3.3局部响应归一化

这种响应归一化实现了一种模仿真实神经元的横向抑制,从而在使用不同内核计算的神经元输出之间产生较大的竞争
归一化的种类有很多,这种方法不太常用

3.4重叠池化

重叠池化正如其名字所说的,相邻池化窗口之间会有重叠区域,此时池化框>stride
相对于传统的非重叠池化,采用重叠池化不仅可以提升预测精度,同时一定程度上可以减缓过拟合。

3.5整体架构

八层权重,前五层卷积,后三层全连接
卷积层:2,4,5是独立的,3的内核连接是第二层的多有内核映射
全连接层:连接前一层的所有神经元

在这里插入图片描述

4、减少过拟合

4、1数据增强

减少过拟合的常用方法,标签保留转换,人为的放大数据集
1、使用很小的计算就能从原始图像种生成转换图像,且转换后的图像不需要存储在硬盘上
2、在cpu种转换图像,GPU还可以同时训练数据
有两种方法:
1、平移图像和水平映射
在测试时,网络通过提取5个224*224的图像(四个角块和中心块)以及他们的水平映射(总共10个块)来进行映射,并求softmax层上10个 块的预测结果
2、改变训练图像种RGB通道的灰度。在RGB像素上使用PCA。
添加多个通过PCA找到的主成分,大小与相应的特征值成比例,乘以一个随机值,该随机值属于均值为0,标准差为0.1的高斯分布。

4、2dropout

在训练期间,只需要消耗1/2的参数,以50%的概率将隐含层的神经元输出置为0,这些神经元不参加与网络的前馈和反向传播。
每次网络提供输入后,神经网络都会采用一个不同的结构,这些结构是共享权重的。因为神经元无法依赖于其他特定的神经元而存在,所以减少了神经元与其他神经元的许多不同随机子集的使用

5、训练细节

batch:128
动量mometum:0.9
权重衰减:0.0005
使用标准差为0.01,均值为0的高斯分布来初始化各层的权重
使用常数1来初始化2,4,5以及全连接层中的隐含层中的所有偏置参数
使用常数0老初始化剩余层的偏置参数
2、所有层使用相同的学习率,当验证集上的错误率停止降低时,将学习速率乘以0.1,并且在终止前减少3次。

6、结果

1、ILSVRC-2010
在这里插入图片描述

2、ILSVRC-2012
在这里插入图片描述

3、ImageNet Fall 2009
我们在这个数据集上的top-1和top-5错误率分别是67.4%和40.9%,是通过前面描述的网络获得的,但是在最后的池化层上还有额外的第6个卷积层。该数据集此前公布的最佳结果是78.1%和60.9%[19]。

6、1定性分析:

3.5整体框架中的限制互连
GPU1上的内核在很大程度上与颜色无关
GPU2上的内核在很大程度上与颜色有关
这种特异性在每次迭代期间都会产生,并且独立于任何特定的随机权重初始化过程
在这里插入图片描述
问题:
1、会偏离物体中心,,例如cherry中识别的信息就不正确
2、如果两幅图像产生有的欧氏距离,我们可以认为高层次的神经网络认为它们是相似的。
通过使用欧式距离来计算两个4096维实值向量的相似性,效率不高,但是通过训练自编码器可以将这些向量压缩为较短的二进制码,能够使其更高效。

7、讨论

一个大的深层卷积神经网络能够在纯粹使用监督学习的情况下,在极具挑战性的数据集上实现破纪录的结果
值得注意的是,如果移除任何一个卷积层,网络的性能就会下降

8、准确率评价指标:

1、top

TOP-5正确率=(所有测试图片中正确标签包含在前五个分类概率中的个数)除以(总的测试图片数)
TOP-5错误率=(所有测试图片中正确标签不在前五个概率中的个数)除以(总的测试图片数)
TOP-1错误率=(正确标记的样本数不是最佳概率的样本)数除以(总的样本数)

2、mAP:多用于分类

在这里插入图片描述
1、准确率Precision:
在这里插入图片描述
2、召回率Recall:
在这里插入图片描述
把recall当成横坐标,precision当成纵坐标,即可得到常用的precision-recall曲线
2010年后:假设这N个样本中有M个正例,那么我们会得到M个recall值(1/M, 2/M, …, M/M),对于每个recall值r,我们可以计算出对应(r’ > r)的最大precision,然后对这M个precision值取平均即得到最后的AP值。

3、ROC :多用于识别

1、正例分对的概率:
在这里插入图片描述2、负例错分为正例的概率:
在这里插入图片描述
3、ROC
在ROC 空间中,每个点的横坐标是FPR,纵坐标是TPR,这也就描绘了分类器在TP(真正的正例)和FP(错误的正例)间的trade-off
在这里插入图片描述

AUC的值就是处于ROC curve下方的那部分面积的大小。通常,AUC的值介于0.5到1.0之间,较大的AUC代表了较好的Performance

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值