版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
过拟合、正则化和损失函数
什么是过拟合
- 过拟合:经训练出的模型在训练集上表现很好,可能将训练集的一些特点当做所有样本都具有的特点,导致在新的样本上的误差变大,泛化能力差。
过拟合的原因:
- 网络的学习能力过好
- 数据样本过少
- 欠拟合:对训练集的一般性质尚未学好
如何解决过拟合?
- 方法一:增加数据量
- 方法二:运用正则化regularization(L1,L2,…)
正则化(regularization)
W表示权重,x表示输入,y表示输出
real y表示真实输出,λ表示系数
正则化 | cost函数 |
---|---|
原始损失函数(无正则化) | 设为C |
L1正则化 | cost=C+λ ∑ abs(w) |
L2正则化 | cost=C+λ ∑w² |
L3,L4正则化以此类推
Dropout正则化(丢弃正则化)
所谓dropout(丢弃),就是去除一些神经元之间的连接。
这样做对于解决过拟合问题有什么好处呢:
- 丢弃一些连接,意味着网络规模减小
- 随机丢弃,不会偏重某些权重,类似 L2正则化
其涉及的相关概念:
- 保留概率 keep-prob :描述一个隐藏层保留神经元(连接)的概率,作用是为了生成随机矩阵
- 反向随机失活 inverted dropout:用来实现dropout
损失函数
参考原文链接:
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/chkay399/article/details/81878157
在上面正则化中提到了损失函数的概念,损失函数是用来估量训练出的模型的预测值与真实值之间的差距
接下来介绍一下机器学习里常用的的损失函数:
- 统一使用Y来表示真实数据集,X表示输入数据集合,f(X)表示预测值集合
- y表示一条真实数据,x表示一条输入数据
平方损失函数(最小二乘法)
- 使用场景:线性回归
对数损失函数
- 使用场景:逻辑回归
- 样本预测值和实际值的误差符合高斯分布,使用极大似然估计的方法,取对数得到损失函数:
指数损失函数
- 使用场景:Boosting算法中较为常见