深度学习基础之-1.4损失函数

损失函数

损失就是所有样本的误差的总和,亦即: 损 失 = ∑ i = 1 m 误 差 i 损失 = \sum^m_{i=1}误差_i =i=1mi

在黑盒子的例子中,我们如果说“某个样本的损失”是不对的,只能说“某个样本的误差”,如果我们把神经网络的参数调整到完全满足一个样本的输出误差为0,通常会令其它样本的误差变得更大,这样作为误差之和的损失函数值,就会变得更大。所以,我们通常会在根据某个样本的误差调整权重后,计算一下整体样本的损失函数值,来判定网络是不是已经训练到了可接受的状态。

机器学习常用损失函数

符号规则:a是预测值,y是样本标签值,J是损失函数值。

  • Gold Standard Loss,又称0-1误差(下图蓝色) J = { 0 a = y   1 a ≠ y J=\begin{cases} 0 & a=y \ 1 & a \ne y \end{cases} J={0a=y 1a̸=y

  • 绝对值损失函数 J = ∣ y − a ∣ J = |y-a| J=ya

  • Hinge Loss,铰链/折页损失函数或最大边界损失函数(下图红色),主要用于SVM(支持向量机)中 J = m a x ( 0 , 1 − y ⋅ a ) , y = ± 1 J=max(0,1-y \cdot a), y=\pm 1 J=max(0,1ya),y=±1

  • Log Loss,对数损失函数,又叫交叉熵损失函数(cross entropy error)(下图黄色)
    J = − 1 m ∑ i m y i l o g ( a i ) + ( 1 − y i ) l o g ( 1 − a i ) , y i ∈ 0 , 1 J = -\frac{1}{m} \sum_i^m y_i log(a_i) + (1-y_i)log(1-a_i), y_i \in {0,1} J=m1imyilog(ai)+(1yi)log(1ai),yi0,1

  • Squared Loss,均方差损失函数(下图黑色) J = 1 2 m ∑ i m ( a i − y i ) 2 J=\frac{1}{2m} \sum_i^m (a_i-y_i)^2 J=2m1im(aiyi)2

  • Exponential Loss,指数损失函数(下图绿色) J = 1 m ∑ i m e − ( y i ⋅ a i ) J = \frac{1}{m}\sum_i^m e^{-(y_i \cdot a_i)} J=m1ime(yiai)

  • 在这里插入图片描述

损失函数的作用

损失函数的作用,就是计算神经网络每次迭代的前向计算结果与真实值的差距,从而指导下一步的训练向正确的方向进行。

如何使用损失函数呢?具体步骤:

  1. 用随机值初始化前向计算公式的参数
  2. 代入样本,计算输出的预测值
  3. 用损失函数计算预测值和标签值(真实值)的误差
  4. 根据损失函数的导数,沿梯度最小方向将误差回传,修正前向计算公式中的各个权重
  5. goto 2, 直到损失函数值达到一个满意的值就停止迭代

用二维函数图像理解单变量对损失函数的影响

在这里插入图片描述
上图中,纵坐标是损失函数值,横坐标是变量。不断地改变变量的值,会造成损失函数值的上升或下降。而梯度下降算法会让我们沿着下降的方向前进。

  1. 假设我们的初始位置在A点,X=x0,Loss值(纵坐标)较大,回传给网络做训练
  2. 经过一次迭代后,我们移动到了B点,X=x1,Loss值也相应减小,再次回传重新训练
  3. 以此节奏不断向损失函数的最低点靠近,经历了x2 x3 x4 x2
  4. 直到损失值达到可接受的程度,就停止训练

用等高线图理解双变量对损失函数影响

在这里插入图片描述
上图中,横坐标是一个变量,纵坐标是另一个变量。两者变量值的组合形成的损失函数值,在图中对应唯一的一个坐标点。所有的不同的值的组合会形成一个损失函数值的矩阵,我们把矩阵中具有相同(相近)损失函数值的点连接起来,可以形成一个不规则椭圆,其圆心位置,是损失值为0的位置,也是我们要逼近的目标。

这个椭圆,类似地图等高线来表示的一个洼地,中心位置比边缘位置要低,通过对损失函数的计算,对损失函数的求导,对网络参数的求导,会带领我们沿着等高线形成的梯子一步步下降,无限逼近中心点。

神经网络中常用的损失函数

  • 均方差函数,主要用于回归。
  • 交叉熵函数,主要用于分类。
  • 二者都是非负函数,极值在底部,用梯度下降法可以求解。

https://github.com/microsoft/ai-edu/blob/master/B-教学案例与实践/B6-神经网络基本原理简明教程/03.0-损失函数.md

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值