深度学习理论——基本结构(池化层&激活函数&全连接层)

大家好,继续深度学习理论学习。记录一下自己觉得有用的关于深度学习基本结构的相关知识。

1.池化层

池化层不包含需要学习的参数,使用时仅需指定池化类型,池化核大小和池化步长。池化类型一般都取平均池化(average-pooling)或最大值池化(max-pooling),即取池化矩阵覆盖的输入中的平均值或最大值。

池化层存在的意义一般有以下三点:

(1)特征不变性  池化使模型更关注是否存在某些特征而不是特征的位置,是特征学习包含一定程度上的自由性。

(2)特征降维  池化结果中的一个元素对应原输入数据中的一个子区域,减小了计算量。

(3)在一定程度上可以防止过拟合。

2.激活函数

激活函数的作用就是增强整个网络的表达能力(非线性性),其中Sigmoid和RELU最为常见。

(1)Sigmoid

深度学习理论——基本结构(池化层&激活函数&全连接层)_第1张图片

可以看到,Sigmoid存在梯度饱和问题,当输入小于-5或大于5时,Sigmoid函数值几乎不再变化,使得梯度为0,结合上一篇写到的随机梯度下降法,这使得误差很难传递到前层,网络无法训练。

Sigmoid优点:a.能把值映射在[0,1]之间  b.求导方便

缺点:a.容易造成梯度消失  b.函数输出不是零为中心的  c.指数函数的计算比较消耗资源

(2)RELU

深度学习理论——基本结构(池化层&激活函数&全连接层)_第2张图片

深度学习理论——基本结构(池化层&激活函数&全连接层)_第3张图片

可以看到RELU在x大于0时完全消除了梯度饱和效应,且有助于随机梯度下降法的收敛,能够提高收敛速度。

RELU优点:a.解决了梯度消失问题,至少在x的正值区域,梯度不会消失  b.由于其线性形式,收敛速度更快  c.计算速度更快

缺点:a.输出不是零为中心  b.随着训练的进行,可能会出现神经元死亡,权重无法更新的情况,且这种死亡是不可逆转的死亡。原因在于在训练神经网络时,一旦学习率没有设置好,第一次更新权重时,输入的是负值,则这个神经元就会死亡,权重不会再更新,因为RELU的导数在x<0时为0,则反向传播中梯度也为零,权重就不会再更新了。

3.全连接层

全连接层就是一个分类层,这里只说一点我原来一直不明白的问题,为什么很多网络都有不止一个全连接层,我原先觉得全连接层的参数是自己设置的,想要什么尺寸的输出设置就好,为什么要有好几个,今天问了一下师兄师兄说是因为可能有时候太大的尺寸往小的尺寸转化直接一步到位效果可能不会好,因此会由好几个全连接层分布转化,至于需要几个,参数怎么设置,需要自己调试摸索。

我们下期见!

你可能感兴趣的:(深度学习)