正则化、Dropout与交叉验证2018-04-26
2018-04-26 本文已影响34人
开子的私家地
1. 正则化
正则化项的作用是选择经验风险与模型复杂度同时较小的模型,防止过拟合,提升模型泛化能力(generalization ability)。
PS: 泛化能力:学习模型对未知数据的预测能力称为泛化能力
正则化项一般是模型复杂度的单调递增函数,模型越复杂,正则化值越大。正则化项可以是模型参数向量的范数。
正则化一般形式:
第1项经验风险,第2项正则化项,λ>=0是调整两者之间关系的系数。(权重)
L1(常量权重)、L2略
L1和L2比较
L1减少一个常量(η,λ,n根据输入都是固定的,sgn(w)为1或-1,故为常量),而L2减少的是权重的一个固定的比例;如果权重本身很大的话,L2减少的比L1减少的多,若权重小,则L1减少的更多。多以L1倾向于集中在少部分重要的连接上(w小)。这里要注意的是:sgn(w)在w=0时不可导,故要事先令sgn(w)在w=0时的导数为0。
来自:神经网络九:Regularization(正则化)与Dropout
2.Dropout
正则化方法:L1和L2 regularization、数据集扩增、dropout
3. 交叉验证(Cross validation)
3.1 样本充足时:
随机分为训练集、验证集、测试集。训练集训练模型、验证集选择模型、测试集评估模型。
在学习不同复杂的模型时,选择对验证集有最小预测误差的模型。因为验证集有足够多的数据,用它对模型进行选择也是有效的。
3.2 样本不足:
3.2.1. 简单交叉验证:
随机分成两部分:训练集和测试集(如70%和30%)
训练集各种条件下(如不同参数)训练模型,得到不同模型
在测试集上评价各模型的测试误差,选出测试误差最小的模型
3.2.2. S折交叉验证(S-fold cross validation):
应用最多。
随机将数据分为S个等大小、不相交的子集;
利用S-1个子集的数据训练模型,利用余下的子集测试模型;
重复这一过程(S种选择);
最后选出S次测评中平均测试误差最小的模型
3.2.3. 留一交叉验证
S折交叉验证的特殊情况:
S = N, N是给定数据集的容量。(数据缺乏时使用)