八股文——机器学习基础损失函数

一、常见的代价函数

1、二次代价函数

J=1/2nΣ||a(x)-y(x)||^2

对于一个样本而言,J=(y-a)/2

激活函数的梯度越大,权值w和b大小调整的越快,训练收敛的越快

假使激活函数是sigmoid函数,当使用二次代价函数时,很可能会出现梯度消失,使用sigmoid函数在饱和区即x过大或者过小时,梯度是接近于0

2.交叉熵代价函数

J=-1/nΣ[yln(a)+(1-y)ln(1-a)]

更适合搭配sigmoid激活函数

二、常见的损失函数

1.用于回归

绝对值损失函数和平方损失函数

绝对值损失函数MAE

平方损失函数MSE

 MSE比MAE可以更快的收敛,当使用梯度下降算法时,MSE梯度下降是变化的,MAE梯度损失是均匀不变的,梯度不发生改变不利于模型的训练(调节学习率)。

MAE鲁棒性更好,MAE与绝对损失之间是线性关系,MSE与误差是平方关系,当误差比较大时,MSE的误差更大。当数据中出现了一个非常大的离群点,MSE会产生非常大的损失,对模型的训练产生非常大的影响

2.用于分类

0-1损失函数

对数损失函数

指数损失函数

 交叉熵损失函数

三、代价函数、损失函数、目标函数

目标函数:需要优化的函数=代价函数+结构风险(cost function+正则化)

损失函数是定义在单个样本上的,代价函数是定义在整个训练集上的,是所有样本误差的总和的平均

为什么回归问题中使用平方损失函数而不用交叉熵损失函数?

因为交叉熵损失函数在回归问题上只看到了正确的类别,而没有看到错误的另外。MSE是计算了全部的损失

为什么分类问题中使用交叉熵损失函数而不用平方损失函数

使用平方损失函数时,梯度下降与激活函数的导数成正比,sigmoid激活函数有饱和区,在饱和区内激活函数的导数趋近于0,会容易产生梯度消失的问题

使用交叉熵损失函数时,梯度下降与(激活函数-真实值)成正比,差值较大,更新就快,差值较小,更新就慢

  • 10
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值