深度学习--卷积神经网络--LeNet-5/AlexNet/ZFNet/VGGNet/GoogleNet/ResNet算法理论

目录

一 卷积神经网络基础

1 卷积神经网络与传统神经网络的联系

1)降低神经网络的复杂性

2)提升神经网络的深度

3)提升神经网络的鲁棒性

2 卷积神经网络的主要层次

1)Input Layer(数据输入层)

2)Conv Layer(卷积层)

3)ReLU Layer(激活层)

4)Pool Layer(池化层,在每个特征图上独立操作)

5)FC Layer(全连接层)

3 卷积神经网络的优缺点

1)优点

2)缺点

4 卷积神经网络的训练过程

1)损失函数与凸优化

2)学习率调整策略(一般而言学习率从大到小)

3)局部标准化与全局标准化

4)数据增强

5)模型过拟合解决方案

二 卷积神经网络常见结构


一 卷积神经网络基础

注意:CNN主要用于图像分类与物品识别

1 卷积神经网络与传统神经网络的联系

1)降低神经网络的复杂性

卷积核使神经元关注部分区域,从而降低了神经网络的复杂性

2)提升神经网络的深度

LeNet-5、AlexNet、ZFNet、VGGNet、GoogleNet、ResNet等CNN网络的发展,是不断增加深度

  • 第一点:使用更多的非线性获得更好的特征表达,从而更加逼近真实的映射关系
  • 第二点:导致了网络的复杂性,不仅容易过拟合,而且更加难以优化参数

3)提升神经网络的鲁棒性

神经网络提取特征,相比于手工提取特征,更具有鲁棒性,但是无法避免平移不变性

2 卷积神经网络的主要层次

1)Input Layer(数据输入层)

同机器学习一样,需要对数据进行特征工程

注意:白化

  • 是指数据经过PCA降维后,再进行标准差归一化(x=x/std(x)

2)Conv Layer(卷积层)

第一点:局部关联

每个神经元可以看做一个filter

第二点:窗口滑动

每个filter对局部数据进行计算

第三点:卷积核

  • 卷积核:由高度h、宽度w、深度d(通道数c)、步长s、填充值padding组成
  • 全卷积(W是卷积核)

(h,w,d)\rightarrow (1,h*w*d)\overset{(1,h*w*d)W}{\rightarrow} (1,{h}'*{w}'*1)\rightarrow ({h}',{w}',1)

\Rightarrow {h}'=\left \lceil\frac{h-h_{kernal}}{s_{kernal}}+1 \right \rceil,{w}'=\left \lceil\frac{w-w_{kernal}}{s_{kernal}}+1 \right \rceil

  • 反卷积/转置卷积(W是卷积核)

(h,w,1)\rightarrow (1,h*w*1)\overset{(1,h*w*1)W^{T}}{\rightarrow} (1,{h}'*{w}'*d)\rightarrow ({h}',{w}',d)

注意:全卷积中W可以确定形状,无法确定内部元素,从而反卷积中W也只能确定形状,无法确定内部元素,所以反卷积恢复原图有误差

  • 膨胀卷积/空洞卷积

本质上是全卷积,只不过将卷积核在高度和宽度上进行膨胀(使用0填充),获取更大的视野感受

3)ReLU Layer(激活层)

将卷积层的输出结果进行非线性映射

4)Pool Layer(池化层,在每个特征图上独立操作)

第一点:作用

  • 通过减小表征空间尺寸来减少参数量以及网络的计算量
  • 降低过拟合作用

第二点:两种策略

  • 第一种:最大值策略(推荐使用)
  • 第二种:平均值策略

注意:最大区别在于反向传播中梯度继承

5)FC Layer(全连接层)

神经网络中神经元结构采用全连接形式

3 卷积神经网络的优缺点

1)优点

  • 参数共享(卷积核共享)神经元结构有效降低网络复杂性
  • 无需手工提取特征,只要训练好权重,即可得到特征
  • 深层次的网络对于图像的特征抽取丰富,特征表达性强

2)缺点

  • 需要调参,需要大量样本,训练迭代次数多,使用GPU训练
  • 物理含义不明确,每层输出很难看出具体含义

4 卷积神经网络的训练过程

1)损失函数与凸优化

第一点:损失函数

J(W)=\frac{1}{|D|}\sum_{i=1}^{|D|}f_{W}(x^{(i)})+\lambda\gamma (W)

注意:

  • f_{W}(x^{(i)}):单个样本的损失
  • \gamma (W):正则化项(L1正则或者L2正则)
  • \lambda:惩罚系数

第二点:凸优化

无约束问题,采用梯度下降法或者坐标轴下降法

2)学习率调整策略(一般而言学习率从大到小)

第一点:学习率固定策略

学习率始终是固定值

第二点:学习率分步策略

  • 学习率均匀分步策略:lr*gamma^{floor(iter/step)},gamma\subset (0,1)
  • 学习率不均匀分步策略:通过设置stepvalue,动态调整step

3)局部标准化与全局标准化

第一点:局部标准化(LRN,Local Reponse Normalization)

  • 核心原理

对局部神经元创建竞争机制,使得局部响应大的值变得相对更大,进一步提高特征重要性,提高模型泛化能力

  • 用法

放在激励与池化之后

  • 公式

b_{xy}^{i}=a_{xy}^{i}/(k+\alpha \sum_{j=max(0,i-n/2)}^{min(N-1,i+n/2)}(a_{xy}^{j})^{2})^{\beta }

注意:数学符号解释

  • i:表示第i个卷积核卷积特征图
  • xy:表示特征图的坐标位置
  • n:选择邻近n个特征图
  • N::卷积核个数
  • k,\alpha ,\beta:超参(默认为k=2,\alpha =0.0001,\beta =0.75

第二点:全局标准化(BN,Batch Normalization)

有时间更新

4)数据增强

注意:使用数据增强时,训练与测试要协调

  • 第一点:测试时很少对测试样本做数据增强,训练时最后几轮迭代,移除数据增强,模型可以提高一定泛化能力
  • 第二点:训练时图像都进行了尺度比变化,测试时图像也要进行相应的尺度比变化

方式一:图像的几何变换(CNN具有平移不变性)

  • 翻转变换(镜像变换)

水平翻转(左右互换)、垂直翻转(上下互换)

  • 平移变换

(x,y)\rightarrow (x+\bigtriangleup x,y+\bigtriangleup y)

  • 旋转变换

图像进行一定角度旋转

  • 仿射变换

向量在向量空间中经过一次线性变换,变为另一个向量空间的向量的过程(即:向量*矩阵+偏置项)

  • 放缩变换

将图像的尺度进行放大或者缩小的过程,也就是增加像素或者减少像素的过程

方式二:噪声处理(模糊处理)

高斯噪声、泊松噪声等

注意:即对图像进行一次卷积(使用相应的滤波器)即可得到

方式三:RGB空间增强

图像的亮度、饱和度、对比度等

方式四:随机剪裁

右上、右下、左上、左上、中间位置

方式五:fancy PCAL

  • 第一步:PCA

单张图片在RGB颜色空间上进行PCA,得到3个特征值(\lambda _{1},\lambda _{2},\lambda _{3})以及对应的特征向量(p_{1},p_{2},p_{3}

  • 第二步:像素调整

I_{xy}=[I^{R}_{xy},I^{G}_{xy},I^{B}_{xy}]^{T}=[p_{1},p_{2},p_{3}][\alpha _{1}\lambda_{1},\lambda_{2},\alpha _{1}\lambda_{3}]^{T}

注意:\alpha _{i}满足均值为0,方差为0.1的随机变量

方式六:Label Shuffle(样本不均衡问题)

深度学习--卷积神经网络--LeNet-5/AlexNet/ZFNet/VGGNet/GoogleNet/ResNet算法理论_第1张图片

5)模型过拟合解决方案

第一种:加入正则项

即L1正则或者L2正则

第二种:使用Dropout

深度学习--卷积神经网络--LeNet-5/AlexNet/ZFNet/VGGNet/GoogleNet/ResNet算法理论_第2张图片

即随机删除神经网络中对应隐层的神经元个数(神经元输出结果置0处理,使得神经元无法激活)

二 卷积神经网络常见结构

有时间更新

你可能感兴趣的:(卷积,神经网络,计算机视觉,alexnet模型)