大家好,继续深度学习理论学习。记录一下自己觉得有用的关于深度学习基本结构的相关知识。
1.池化层
池化层不包含需要学习的参数,使用时仅需指定池化类型,池化核大小和池化步长。池化类型一般都取平均池化(average-pooling)或最大值池化(max-pooling),即取池化矩阵覆盖的输入中的平均值或最大值。
池化层存在的意义一般有以下三点:
(1)特征不变性 池化使模型更关注是否存在某些特征而不是特征的位置,是特征学习包含一定程度上的自由性。
(2)特征降维 池化结果中的一个元素对应原输入数据中的一个子区域,减小了计算量。
(3)在一定程度上可以防止过拟合。
2.激活函数
激活函数的作用就是增强整个网络的表达能力(非线性性),其中Sigmoid和RELU最为常见。
(1)Sigmoid
可以看到,Sigmoid存在梯度饱和问题,当输入小于-5或大于5时,Sigmoid函数值几乎不再变化,使得梯度为0,结合上一篇写到的随机梯度下降法,这使得误差很难传递到前层,网络无法训练。
Sigmoid优点:a.能把值映射在[0,1]之间 b.求导方便
缺点:a.容易造成梯度消失 b.函数输出不是零为中心的 c.指数函数的计算比较消耗资源
(2)REL