隐层
0层隐层就是最简单的线性模型。通过多层中间层,在每一层做多个二分类,通过多层隐层,将线性不可分的数据变得线性可分。增加隐层数可以降低网络误差,提高精度,但也使网络复杂化。
激活函数
去线性化,将前向传播的结果去线性化,提升模型的表达力,不同的隐藏层可以使用不同的激活函数。对于sigmoid激活函数来说,除非用在二分类问题下的输出层,tanh函数几乎在任何场合都比其优越。对于不确定该使用什么激活函数下,可以全部使用relu作为激活函数,相对于其他函数神经网络的学习速度会快很多,因为没有函数斜率接近0时减慢学习效率的效应。
损失函数
刻画了神经网络需要优化的目标,分类问题一般使用交叉熵,拟合问题一般使用均方误差。用于反向传播,通过不同的方法,一般是梯度下降使损失达到最小或局部最小。
指数衰减学习率
学习率指神经网络中参数更新的幅度,如果过大将导致参数震荡不收敛,如果过小将导致参数收敛速度过慢。指数衰减学习率可以限制神经网络中参数收敛的速度,先使用一个较大的学习率快速得到一个较优的解加快训练速度,之后自动调整学习率得到一个更好的解。
滑动平均
限制神经网络中参数收敛的速度,对每个变量都维护一个影子变量,是参数过去一段时间的平均值,增强模型的泛化能力。
正则化
防止曲线过拟合,只优化交叉熵的模型可以更好的拟合训练模型,但若问题变得复杂,后期的总损失会逐渐变大。