本博客仅为作者记录笔记之用,不免有很多细节不对之处。
还望各位看官能够见谅,欢迎批评指正。
一、如何降低过拟合[1]
1. 什么是过拟合
在给定的训练集上表现良好,使得模型过于复杂。
2. 过拟合带来的危害
在给定的训练集上表现良好,但在测试集上表现很差,即泛化能力很弱。
3. 如何解决过拟合
(1)调整现有数据,给现有数据添加噪声。
(2)使用dropout
dropout指的是模型在训练过程中每次按50%的几率关闭或忽略某些层的节点。这可以理解成在训练过程中会产生不同的模型,不同的模型会产生不同的计算结果,随着训练的进行,这些计算结果会在一个范围内波动,但其均值却不会有很大变化。(me:同一层的不同节点可看成是独立同分布)
(3)正则化
正则化又称权重衰减。神经网络的核心是误差的反向传播,误差会对每个神经元的权重更新产生影响。随着训练的进行还会存在累积误差,正则化就是使在权重更新的时候进行一定程度的衰减,从而减少累积误差的对权重更新的影响,从而防止过拟合。
(4)Early Stopping提前终止
在每次循环结束后计算模型的准确率,当连续10准确率在一个范围内波动时就停止训练。
(5)使用Batch_Normalization
数据经过卷积层之后,在进入激活函数之前需要对其进行一次Batch Normalization。分批对输入的数据求取均值和方差之后重新对数据进行归一化计算,这样做的好处是使得无论是训练集还是测试集都在一定范围内波动,即对数据中包含的误差进行掩盖化处理。
(6)其他方法
交叉验证,PCA降维。
二、全连接层的作用[1]
在卷积神经网络中,卷积层作为特征提取的手段,在输出的最后都是由全连接层做数据的分类层。因此也可以说全连接层在整个卷积神经网络中是起到一个“分类器”的作用。
三、激活函数的作用[2]
激活函数是为了引入非线性因素,解决线性模型不能解决的问题。如果不使用激活函数,我们所获得的模型只能还是线性的,只不过是复杂的线性组合罢了。
四、池化层的作用[1]
1. 对卷积层所提取的信息做更进一步的降维,以减少计算量。
2. 加强图像特征的不变性,使之增加抗图像的偏移、旋转等方面的鲁棒性。
参考文献
[1] 王晓华. TensorFlow深度学习应用实践
[2] https://www.zhihu.com/question/22334626