正则化方法:L1和L2 regularization、数据集扩增、dropout
正则化方法:防止过拟合,提高泛化能力
避免过拟合的方法有很多:Early stopping、数据集扩增(Data augmentation)、正则化(Regularization)包括L1、L2(L2 regularization也叫weight decay),dropout。
L2 regularization(权重衰减)
L2正则化就是在代价函数后面再加上一个正则化项:
L2正则化项:所有参数w的平方的和,除以训练集的样本大小n
L1 regularization
在原始的代价函数后面加上一个L1正则化项,即所有权重w的绝对值的和,乘以λ/n(这里不像L2正则化项那样,需要再乘以1/2)
Dropout
L1、L2正则化是通过修改代价函数来实现的,而Dropout则是通过修改神经网络本身来实现的,它是在训练网络时用的一种技巧(trike)
随机地“删除”一些的隐层单元,视它们为不存在
数据集扩增(data augmentation)
可以在原始数据上做些改动,得到更多的数据
以图片数据集举例,可以做各种变换,如:
将原始图片旋转一个小角度
添加随机噪声
一些有弹性的畸变(elastic distortions),论文《Best practices for convolutional neural networks applied to visual document analysis》对MNIST做了各种变种扩增。
截取(crop)原始图片的一部分。比如DeepID中,从一副人脸图中,截取出了100个小patch作为训练数据,极大地增加了数据集。感兴趣的可以看《Deep learning face representation from predicting 10,000 classes》.