神经网络中正则化(吴恩达)
正则化(regulization)顾名思义,进行调整,以下整理出几个正则化方式
L2正则化
对损失函数J加上一个关于参数ω的范数,用来降低特征值大小
L1范数: 为x向量各个元素绝对值之和。
L2范数: 为x向量各个元素平方和的1/2次方
L1正则化可以产生稀疏权值矩阵,即产生一个稀疏模型,可以用于特征选择在一定程度上,L1也可以防止过拟合,提升模型的泛化能力;
L2正则化可以防止模型过拟合
权重衰减
L2正则化又被称为权重衰减,这是由于在更新ω过程中,多了一项参数λ,使得ω = (1-αλ/m)ω - a(backprop),其中出现了1-αλ/m≤1,即ω会不断衰减
L2正则化解决过拟合的原理
对激活函数的非线性化作用,存在有效区间,如tanh函数是在0附近的一段区间,当引入L2正则化,减小ω值(权重衰减),由于 z = ωX+b,输入激活函数的z值变小
当z值小到进入有效区间时,激活函数的输出依旧为线性输出,于是神经网络的非线性要素减少,拟合效果衰减
dropout正则化(反向随机失活)
原理:对若干层神经元进行概率性失活,减少其权重参数的依赖性
方法:设定一个概率阈值keep_prob,假如对L3层来说,创建一个L3层神经元shape的概率数矩阵,判断矩阵中每个概率与keep_prob进行比较。最后使概率矩阵与神经元矩阵进行点乘,实现某些神经元失活的目的,但由于权重参数的部分缺失,出现了矩阵期望值的减小,所以需要使神经元矩阵除以keep_prob,以平衡期望值减小。
注意:
1. dropout是在参数量大的情况下避免出现过拟合使用的,当参数量小的时候(或没有出现过拟合的时候)则不需要使用
2. dropout会导致损失函数可能无法单调下降,即此时损失函数并不能符合原神经网络的损失函数定义
3. dropout是在训练集使用,在测试集不能使用,因为参数的随机丢失会造成测试错误
Data augment(数据扩增)
1. 最好的方式还是多增加全新的不同的样本
2. 在1无法满足的情况下可以使用拉伸,平移,选择,翻转等
Early Stopping(提前终止)
顾名思义,提前终止优化过程
1. 从优化损失函数方面:选择局部最优化,一定程度上实现了这一目的,但不完美。
2. 从避免过拟合方面:停止继续对训练集进行拟合。