大家好,继续深度学习理论学习。记录一下自己觉得有用的关于深度学习基本结构的相关知识。
1.池化层
池化层不包含需要学习的参数,使用时仅需指定池化类型,池化核大小和池化步长。池化类型一般都取平均池化(average-pooling)或最大值池化(max-pooling),即取池化矩阵覆盖的输入中的平均值或最大值。
池化层存在的意义一般有以下三点:
(1)特征不变性 池化使模型更关注是否存在某些特征而不是特征的位置,是特征学习包含一定程度上的自由性。
(2)特征降维 池化结果中的一个元素对应原输入数据中的一个子区域,减小了计算量。
(3)在一定程度上可以防止过拟合。
2.激活函数
激活函数的作用就是增强整个网络的表达能力(非线性性),其中Sigmoid和RELU最为常见。
(1)Sigmoid
可以看到,Sigmoid存在梯度饱和问题,当输入小于-5或大于5时,Sigmoid函数值几乎不再变化,使得梯度为0,结合上一篇写到的随机梯度下降法,这使得误差很难传递到前层,网络无法训练。
因此,在此基础上,人们提出了RELU。
(2)RELU
可以看到RELU在x大于0时完全消除了梯度饱和效应,且有助于随机梯度下降法的收敛,能够提高收敛速度。
3.全连接层
全连接层就是一个分类层,这里只说一点我原来一直不明白的问题,为什么很多网络都有不止一个全连接层,我原先觉得全连接层的参数是自己设置的,想要什么尺寸的输出设置就好,为什么要有好几个,今天问了一下师兄师兄说是因为可能有时候太大的尺寸往小的尺寸转化直接一步到位效果可能不会好,因此会由好几个全连接层分布转化,至于需要几个,参数怎么设置,需要自己调试摸索。
我们下期见!