图像处理中,传统的神经网络采用全连接的方式,即输入层到隐藏层的神经元都是全部连接的,这样做将导致参数量巨大,使得网络训练耗时或者难以训练,而卷积神经网络通过局部连接、权值共享等方法避免这一困难。

1.    卷积层

1)     为什么使用卷积层或者卷积层的作用是什么?

卷积层的作用是提取特征,主要是作用于局部区域获取图像的局部信息,卷积层相较于全连接层具有局部连接和权值共享的特点,局部连接和权值共享大大降低了网络的参数,保证了网络的稀疏性,权值共享说是的每种卷积核都作用在整幅图像上,从而产生多种特征,并且一种卷积核对应一个偏置项。最重要的一点是卷积的操作保留了图像的空间特性。

2)     卷积层中的参数

(1)  特征个数:卷积核的个数

(2)  卷积核尺寸:小的卷积核相较于大的卷积核具有减少卷积参数个数、增强网络容量(模型复杂度)的优势,故而在实践中使用3*3、5*5这样的小卷积核。

(3)  步长(stride):卷积核每次移动的步长

(4)   填充(Padding):在图像的边界填充”0”,其作用:可充分利用和处理图像的边缘信息、搭配合适的卷积层参数可保持输入和输出同等大小,从而避免随着网络深度的增加,输入大小急剧减小。

2.    池化层

1)     池化层的作用

(1)  特征不变性:池化层的操作使模型更加关注是否存在某些特征而不是特征的具体位置,能够容忍一些特征微小的位移。

(2)  特征降维:池化结果中的一个元素对应于原输入数据的一个子区域,相当于在空间范围内做了维度约减,减小了下一层输入数据的大小,减小了计算量。

(3)  一定程度防止过拟合,更方便优化:

2)     训练的过程中池化层是怎样应用的?

以最大值池化层为例进行说明:

前向传播:就是我们所熟悉的在n*n的区域中找到最大值输出,并记录下最大值的位置;

反向传播:根据前向传播中最大的位置,更新其值,非最大值的位置不更新;

3.    **函数

神经网络中**函数的主要作用是提供网络的非线性建模能力。**函数的性质:非线性、可微性、单调性

(1)  Sigmoid函数

卷积神经网络原理

 

Sigmoid导数:

卷积神经网络原理

当x趋向正无穷或负无穷大时,Sigmoid函数的导数值趋向0,且现有网络更新参数的方式是误差反向传播算法,所以,一旦输入落入饱和区,其导数值就会变得很小,从而导致反向传播的梯度值就会变得很小(因为误差反向传播的梯度包含了该处导数值因子),网络参数很难得到训练,这种现象称为梯度消失。

Sigmoid的饱和性会导致梯度消失,其(0,1)的输出可以用来表示概率,所以Sigmoid有其特有的性质。

(2)  Tanh函数

卷积神经网络原理
由于tanh函数时0均值,所以tanh函数要比sigmoid函数容易训练。

(3)  Relu函数

卷积神经网络原理

卷积神经网络原理

因为当x大于0时,f(x)的导数为1,所以Relu与sigmoid相比,能够有效缓解梯度消失的问题,但随着训练次数的推进,会有部分神经元的值小于0,经过Relu后,其神经元死亡,从而无法更新权重。

   Relu有个问题就是其输出具有偏移现象,即输出的均值恒大于0,只有和BN操作一起使用时,才能有效缓解偏移现象。

(4)  Elu函数

 卷积神经网络原理

ELU函数具有均值为0,并且ELU存在负值,所以克服了Relu存在神经元死亡的情况。

(5)  maxout函数

Maxout能够缓解梯度消失,同时又规避了ReLU神经元死亡的缺点,但增加了参数和计算量。

Maxout每个神经元的计算公式为

卷积神经网络原理

Maxout函数实际上是计算每个通道的值,然后取其最大值。

4.   全连接层

全连接层的每一个节点都与上一层的每一个节点连接,把上一层的输出特征都综合起来,所以参数众多。

(1)全连接层在卷积神经网络中起到分类器的作用,将学习到的特征表示映射到样本的标记空间。

(2)由于全连接层参数冗余,所以Resnet等网络模型用全局平均池化(GAP)取代FC来融合学习到的深度特征,最后仍用softmax等损失函数作为网络目标函数来指导学习过程。用GAP代替FC具有更好的预测性能。

(3)FC在模型表示能力迁移过程中充当“防火墙”的作用,不含FC的网络微调后的结果要差于含FC的网络,特别是在源域和目标域较大的情况下,FC可保证模型表示能力的迁移,可以冗余的参数并不是一无是处。

5.  softmax层

(1) Softmax

Softmax输出的是概率,该样本输入各个类别的概率。

卷积神经网络原理

表示softmax层输入的特征值。

(2)Softmax损失

卷积神经网络原理

Sj是softmax的输出向量s的第j个值,表示这个样本属于第j个类别的概率。是个1*T的向量,真实标签对应的位置的那个值为1,其余为0。

为什么会有log?

在分类问题中,我们一般使用最大似然估计(Maximumlikelihood estimation)来构造损失函数。一般对似然函数取对数的负数,变成最小化对数似然函数。

(3)交叉熵

卷积神经网络原理

如果概率P是通过softmax层计算的概率值,那么交叉熵就是softmax loss

6. 损失函数

算法的求解过程实际上是对目标函数的优化过程,通常使用损失函数作为目标函数。损失函数的作用:衡量模型预测的好坏。

(1)  0-1损失函数

0-1损失是指预测值和目标值相等时其值为0,不相等时其值为1

卷积神经网络原理

0-1损失函数不是凸函数,并且没有考虑预测值和目标值的差值程度,假设不管预测值为0.999还是0.001,目标值为1,损失都为1.

(2)  绝对值损失函数(L1Loss)

L1损失指的时预测值和真实值间的差的绝对值。

卷积神经网络原理

(3)  均方误差损失函数(MSELoss)

MSE损失指的时预测值和真实值之间的差的平方。

卷积神经网络原理

MSE通常用来做回归任务,详细描述了每个预测和真实值之间的误差。

(4)  交叉熵损失函数(CrossEntropyLoss)

交叉熵描述的是两个概率分布之间的差异性信息。

卷积神经网络原理

交叉熵常用作分类损失函数。

(5)  相对熵损失函数

相对熵又称KL散度,两个随机分布间的距离度量。

卷积神经网络原理

7.    小结:

1)     卷积层相较于全连接层,具有局部连接、权值共享、保留图像空间特性的特点。

2)     池化层的作用是保持特征不变性、降维和避免过拟合。

3)     梯度消失:当输入落入Sigmoid函数饱和区时,其对应的导数值就会很小,从而反向传播的梯度值就会很小,导致网络参数难以训练。

4)     一般情况下先选择Relu作为**函数,其次尝试ELU和Maxout函数,然后是tanh函数和sigmoid函数。

5)     全连接层主要起到特征空间到样本标签的映射作用,由于其参数众多,所以在Resnet网络中用全局平局池化取代了FC,同时在使用预训练模型中,有FC的网络具有更强的模型表示能力。

6) MSE常用作回归任务,交叉熵常用作分类任务。

 

 

 

参考网址:

https://www.jianshu.com/p/781030d55000

https://zhuanlan.zhihu.com/p/22142013

https://www.zhihu.com/question/41037974

相关文章: