1. 过拟合 欠拟合
特征复杂,但是训练 样本数不足时,会产生过拟合,即训练误差小,但是在测试集上的测试误差比较大,即泛化能力强
解决的办法是增加样本数量 或用L2范数进行征罚。
增加样本数量的方法比较简单,但是费人费物。
L2的范数也叫权重衰减。 对绝对值 比较大的权重参数进行拟合,从而改善范化误差。 本质 上是将权重值 向较小值 的区别压缩。
另一种方法是dropout (丢弃法)
丢弃法不改变输入的期望,按一定的概率 丢弃隐藏层中的单元。
p为丢弃率, 1-p 为保存率
欠拟合不是太容易发生,但是如果发生 ,可以如下解决:
可以通过增加网络复杂度或者在模型中增加多点特征点,这些都是很好解决欠拟合的方法。
2. 梯度消失与梯度暴炸
由于权重大于1, 通过多级网络时,容易 导致梯度爆炸。
如果权重小于1, 通过多次网络传递时,容易导致梯度爆炸。
解决方法:
权重参数随初始化,Pytorch采用正态随机初始化方法。
另一种方法是xavier初始化,基于均匀分布的初始化方法,a为对应层的输入个数,b为输出个数。
3.循环神经网络进阶
普通 RNN的问题是梯度衰减或者暴炸。GRU是RNN的改进。为了梯度衰减或暴炸。
GRU是改进的lstm模型,重要的是重置门和更新门。重置门捕捉时间序列里短期的依赖关系。
更新门有助于捕捉时间序列里长期的依赖关系。