卷积神经网络结构概览

文章目的:回顾探讨如何解决卷积神经网络层次不断加深而带来的复杂性,解决优化困难容易过拟合的问题;

卷积层结构:第一层用来检测低级特征,例如边缘曲线等,更深的卷积层用来检测复杂特征,通过叠加多个卷积层和池化层,可以逐步提取更复杂的特征

全连接层:(1x1的卷积层)连接前一层所有神经元和当前每个神经元

神经网络训练是一个全局优化问题,通过最小化损失函数,可以找到最佳的拟合参数集,通常采用梯度下降法进行优化

卷积神经网络的优化

卷积运算

  • 稀疏交互

    卷积核的感受野不同,学习的局部相关性可以使参数量变少

  • 参数共享

    卷积核按照从左往右 从上到下的顺序遍历特征图 权重共享可以降低模型复杂度,使魔形更容易训练

  • 等变表示

    神经网络对平移具有等变性质

卷积神经网络结构分为卷积层、池化层和全连接层。

  • 卷积层

    通过卷积核提取输入特征 输入层与卷积核进行卷积操作之后得到新的特征图

池化层


    **卷积神经网络优化:卷积层、池化层、激活函数、损失函数、正则化和优化**

卷积层:

普通卷积

转置卷积(反卷积):上采样之后进行卷积操作

膨胀卷积:引入超参数,扩充感受野

NIN:改变卷积核,将卷积核替换为MLP(多层感知机)等微网络

Inception Module:对NIN进行进一步扩充,采用可变的滤波器大小近似出最优的稀疏结构,可以再不增加计算复杂度的情况下增加CNN的深度和宽度

池化层

Lp池化:平均池化 (p = 1) 最大池化(p=∞)

混合池化:随机值λ决定平均池化(0)或者最大池化(1),并且将前向传承过程中记录λ,并将其用于反向传播。

随机池化:根据激活区域归一化的概率,避免随机分量引起的过拟合。

频谱池化:相同的输出维度下保留更多信息,减少计算量

空间金字塔池化(SPP):生成与输入无关的固定感受野

多尺度无秩序池化(MOP):细节更加丰富,增强特征不变性

激活函数

ReLu:分段线性函数,令负部分为0并保留正部分,可以更加有效训练深度网络

Leaky ReLu :ReL在基于梯度的优化时可能会忽略未激活单元,而且会由于未激活单元永恒的零梯度而增加训练时间。Leaky ReLu 通过预定义的参数压缩负部分而不是将其映射为0,保证未激活单元具有非零梯度

PReLU:引入自适应学习参数,其中引入的额外参数的数量与网络的信道数量相同,不存在额外的过拟合风险,计算量较低,还可以通过反向传播与其他参数同时进行训练。

RReLu:在负部分的参数从均匀分布中随机采样,由于随机性可以减少过拟合

ELU:引指数线性单元可以更快学习深度神经网络,并导致更高分类精度,而且饱和负部分可以减少单元变化,更加鲁棒

Maxout:非线性函数,可以在多个通道获取最大的响应,具有ReLu的优点,适合与Dropout进行训练

Probout:概率计算值代替最大值操作,兼具保持最大单元理想性质与提高不变性的优点,但是概率引入同时使计算更加复杂

损失函数

Hinge loss:训练大的分类器,如支持向量机等

Softmax loss:将预测值转化为非负值并进行归一化,得到类上的概率分布

Contrastive loss:增加了另一个边际参数来影响匹配对。不计算神经网络层的损失,而是定义了每一层l的对比损失,同时进行了单个层损失的反向传播。

Triplet loss:

KLD:VAE包括编码与解码过程,其中KLD广泛应用于目标函数中信息丢失的方法

正则化

正则化的目的是减少过拟合

lp-norm regularization:通过改变正则化强度来改变损失函数

Dropout:减少过拟合,并减少对输入元依赖,缺失信息时也可以进行识别

DropConnect:DropConnect不是将神经元的输出随机设置为零,而是将权重矩阵W的元素随机设置为零

最优化

数据增强:通过已有数据的处理来进行扩充数据集

权重初始化:实现快速收敛,避免了梯度的消失问题

随机梯度下降:反向传播算法是利用梯度下降法更新参数的标准训练方法

BN:缓解深度卷积神经网络的梯度消失问题,防止网络过拟合。 它减少了内部协变位移。其次,BN减少了梯度对参数或其初始值的尺度的依赖性,这对通过网络的梯度流产生了有利的影响。这使得使用更高的学习率而没有分歧的风险。此外,BN使模型正则化,从而减少了Dropout的需要。最后,BN使使用饱和非线性激活函数而不陷入饱和模型中成为可能。

快速处理

FFT:

Structured transforms:将低秩矩阵分解应用于深度卷积神经网络,减少训练时间,同样的还有奇异值分解等方法

Low precision:对神经网络进行二值化,使输入结果限制为二进制值,减少神经网络计算量冗余

Sparse convolution:少量的训练样本进行学习,在少量的迭代中精度更高。

猜你喜欢

转载自blog.csdn.net/weixin_43710577/article/details/127428994