神经网络的过拟合(Over fitting) 是神经网络学习的难点, 常规的解决方案是增加学习的样本数, 但是训练样本的搜集往往比较困难,而且样本数增加, 学习成本也随之提高. 另一个比较简单的方法来减少过拟合就是Regularization.
Regularization 的方法有多种:
L2 Regularization
修改代价函数(C)为:
C=−1n∑xj[yjlnalj+(1−yj)ln(1−alj)]+12n∑ww2L1 Regularization
修改代价函数为:
C=−1n∑xj[yjlnalj+(1−yj)ln(1−alj)]+12n∑w|w|- Dropout
Dropout的训练方法有些奇异, 每次做Back-propagation的时候, 随即删除隐藏层中一半的神经元, 迭代多次后得到网络参数.
为什么Reggularization 可以减轻过拟合(over-fitting)呢? 这个问题大概难以回答吧, 也许从Occam’s Razor 可以得到一些启发, Occam’s Razor 的描述如下:
Entities should not be multiplied unnecessary(如无必要,勿增实体)
Regularization就是试图降低网络的复杂度吧。