1 过拟合

神经网络 正则化 神经网络正则化率_正则化

2 正则化

过拟合现象很普遍,根本原因还是数据量不足以支撑复杂度高的模型,因此最直接的解决过拟合问题的办法是增加训练数据量。另一种直接的方法是降低模型复杂度

如果我们能通过正则化,在固定训练集大小固定模型复杂度的情况下解决过拟合问题。

2.1 L2正则化

L2正则化也叫做权值衰减,就是在原本的损失函数基础上加上一个惩罚项:

神经网络 正则化 神经网络正则化率_正则化_02

C0可以是任意的普通损失函数,w是模型里面的所有权值,而lambda是正则化参数,它必须大于0(当然也可以认为等于0就是纯粹经验风险损失的情况)。

正则化损失函数(通常也叫结构化损失)综合考虑了模型效果和模型复杂度,这两者的权衡由正则化参数lambda来衡量。

神经网络 正则化 神经网络正则化率_过拟合_03

神经网络 正则化 神经网络正则化率_过拟合_04

神经网络 正则化 神经网络正则化率_过拟合_05

即相当于加上了权重衰减项。

好处:

(1)减轻过拟合

(2)如果我们使用非正则损失函数,模型表现可能会卡在一个局部极小值里,并且我们可能会从不同的初始化权值获得截然不同的结果,但如果使用L2正则化,这样训练出来的结果往往有鲁棒性。

减轻过拟合原因:

由于正则项的存在,使得模型的权值趋于衰减,由于权值普遍的衰减,甚至有部分的权值接近于0,这样就相当于模型的复杂度得到降低。

如果我们用L2正则化去压缩权值,很小的权值就意味着输入数据的改变并不会对网络输出有很大的影响,这样的网络也很难会受局部噪音的影响,相反,较大的权值则会对很小的输入变化有较敏感的改变

2.2 L1正则化

神经网络 正则化 神经网络正则化率_正则化_06

神经网络 正则化 神经网络正则化率_正则化_07

神经网络 正则化 神经网络正则化率_权值_08

与L2正则化相比,还是有明显的区别的。

L2正则化只是对权值以一定的比例打折,而L1正则化却是使权值通过减去一个常数去朝着0削减。而当|w|很大时,L2对权值减少的幅度要远大于L1,相反,当|w|很小时,L1对权值的衰减又远大于L2。通过L1正则化,网络最终的结果会变为只保留对模型结果很重要的权值,而其他不重要的权值变为0。

 

L1正则化可以产生稀疏值矩阵,即产生一个稀疏模型,可以用于特征选择和解决过拟合。

L2正则化也可以很好的解决过拟合问题。从上面得知,拟合过程中通常都倾向于让权值尽可能小,最后构造出一个让所有参数都比较小的模型。

 

2.3 dropout

 

2.4 人工扩展数据集

 

2.5 L1和L2正则化的对比

神经网络 正则化 神经网络正则化率_权值_09

神经网络 正则化 神经网络正则化率_权值_10

结论:L2正则化项使值最小时对应的参数变小。

神经网络 正则化 神经网络正则化率_正则化_11

神经网络 正则化 神经网络正则化率_正则化_12

结论:因为切向量始终指向w2轴,所以L1正则化容易使参数为0,即特征稀疏化。