神经网络系列之三 -- 损失函数

本文详细介绍了损失函数在神经网络中的作用,包括损失函数的概念、机器学习中常见的损失函数,如绝对值损失、铰链损失、对数损失和平方损失等。重点讲解了在神经网络中广泛应用的均方差函数和交叉熵损失函数的工作原理、实际案例及可视化解释,揭示了它们在回归和分类任务中的重要性。此外,还讨论了为什么不能在分类问题中使用均方差作为损失函数的原因。
摘要由CSDN通过智能技术生成

系列博客,原文在笔者所维护的github上:https://aka.ms/beginnerAI
点击star加星不要吝啬,星越多笔者越努力。

第3章 损失函数

3.0 损失函数概论

3.0.1 概念

在各种材料中经常看到的中英文词汇有:误差,偏差,Error,Cost,Loss,损失,代价......意思都差不多,在本书中,使用“损失函数”和“Loss Function”这两个词汇,具体的损失函数符号用J来表示,误差值用loss表示。

“损失”就是所有样本的“误差”的总和,亦即(m为样本数):

\[损失 = \sum^m_{i=1}误差_i\]

\[J = \sum_{i=1}^m loss\]

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

损失函数的作用

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

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

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

3.0.2 机器学习常用损失函数

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

  • Gold Standard Loss,又称0-1误差
    \[ loss=\begin{cases} 0 & a=y \\ 1 & a \ne y \end{cases} \]

  • 绝对值损失函数

\[ loss = |y-a| \]

  • Hinge Loss,铰链/折页损失函数或最大边界损失函数,主要用于SVM(支持向量机)中

\[ loss=max(0,1-y \cdot a), y=\pm 1 \]

  • Log Loss,对数损失函数,又叫交叉熵损失函数(cross entropy error)

\[ loss = -\frac{1}{m} \sum_i^m y_i log(a_i) + (1-y_i)log(1-a_i) \qquad y_i \in \{0,1\} \]

  • Squared Loss,均方差损失函数
    \[ loss=\frac{1}{2m} \sum_i^m (a_i-y_i)^2 \]

  • Exponential Loss,指数损失函数
    \[ loss = \frac{1}{m}\sum_i^m e^{-(y_i \cdot a_i)} \]

3.0.3 损失函数图像理解

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

图3-1 单变量的损失函数图

图3-1中,纵坐标是损失函数值,横坐标是变量。不断地改变变量的值,会造成损失函数值的上升或下降。而梯度下降算法会让我们沿着损失函数值下降的方向前进。

  1. 假设我们的初始位置在A点,\(x=x0\),损失函数值(纵坐标)较大,回传给网络做训练;
  2. 经过一次迭代后,我们移动到了B点,\(x=x1\),损失函数值也相应减小,再次回传重新训练;
  3. 以此节奏不断向损失函数的最低点靠近,经历了\(x2、x3、x4、x5\)
  4. 直到损失值达到可接受的程度,比如\(x5\)的位置,就停止训练。
用等高线图理解双变量对损失函数影响

图3-2 双变量的损失函数图

图3-2中,横坐标是一个变量\(w\),纵坐标是另一个变量\(b\)。两个变量的组合形成的损失函数值,在图中对应处于等高线上的唯一的一个坐标点。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值