机器学习(一)—— 过拟合(Overfitting)、正则化与损失函数

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/weixin_42886817/article/details/99679966

什么是过拟合

  • 过拟合:经训练出的模型在训练集上表现很好,可能将训练集的一些特点当做所有样本都具有的特点,导致在新的样本上的误差变大,泛化能力差。

过拟合的原因:

  1. 网络的学习能力过好
  2. 数据样本过少
  • 欠拟合:对训练集的一般性质尚未学好

如何解决过拟合?

  • 方法一:增加数据量
  • 方法二:运用正则化regularization(L1,L2,…)

正则化(regularization)

W表示权重,x表示输入,y表示输出
real y表示真实输出,λ表示系数

正则化 cost函数
原始损失函数(无正则化) 设为C
L1正则化 cost=C+λ ∑ abs(w)
L2正则化 cost=C+λ ∑w²

L3,L4正则化以此类推

Dropout正则化(丢弃正则化)

所谓dropout(丢弃),就是去除一些神经元之间的连接。

这样做对于解决过拟合问题有什么好处呢:

  1. 丢弃一些连接,意味着网络规模减小
  2. 随机丢弃,不会偏重某些权重,类似 L2正则化

其涉及的相关概念:

  1. 保留概率 keep-prob :描述一个隐藏层保留神经元(连接)的概率,作用是为了生成随机矩阵
  2. 反向随机失活 inverted dropout:用来实现dropout

损失函数


参考原文链接:
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/chkay399/article/details/81878157


在上面正则化中提到了损失函数的概念,损失函数是用来估量训练出的模型的预测值与真实值之间的差距
接下来介绍一下机器学习里常用的的损失函数:

  • 统一使用Y来表示真实数据集,X表示输入数据集合,f(X)表示预测值集合
  • y表示一条真实数据,x表示一条输入数据

平方损失函数(最小二乘法)

  • 使用场景:线性回归
    在这里插入图片描述

对数损失函数

  • 使用场景:逻辑回归
  • 样本预测值和实际值的误差符合高斯分布,使用极大似然估计的方法,取对数得到损失函数:
    在这里插入图片描述

指数损失函数

  • 使用场景:Boosting算法中较为常见

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_42886817/article/details/99679966