交叉熵损失和梯度下降的组合如何惩罚和奖励

数据挖掘 分类 梯度下降 损失函数
2022-03-11 11:58:23

对于使用softmax分类器的简单分类问题(C类),大多数人使用交叉熵损失函数来量化目标。交叉熵损失为:

L=i=1Cyilog(pi)

在哪里pi是分类器预测分数和yi是真实标签。为了更新参数,梯度下降用于使分布pi尽可能类似于分布yi. 假设空间中的任意点(xi) 我们有地面实况标签yi=[1,0,0]这意味着C=3班级问题,xi属于第 0 类。假设 softmax 分类器的预测为pi=[0.3,0.6,0.1]在第一次迭代中。优化时L使用梯度下降,预测变化如下:

  • [迭代 0] ....pi=[0.3,0.6,0.1]
  • [迭代 1].......pi=[0.4,0.5,0.08]
  • [迭代 2] ....pi=[0.55,0.3,0.02]
  • ..................................................... …………
  • [迭代n].......pi=[0.98,0.001,0.0001]

所以看起来梯度下降试图增加索引 0 的值并减少其他索引的值。根据我的理解,交叉熵仅在正确的类上进行评估,因此其他项将因地面实况数组而归零yi=[1,0,0]

L=i=1Cyilog(pi)=1log(0.3)=1.2

我不明白这里的机制。是梯度下降做这些修改,还是我们定义的交叉熵损失,还是两者的结合?在优化过程中,正确类的预测分数如何增加,而错误类的预测分数如何降低?

2个回答

损失函数的值取决于预测(它是输入数据和模型参数的函数)和基本事实。梯度下降是这样工作的:

  • 以某种方式初始化模型参数。
  • 使用输入数据和当前模型参数,计算当前网络权重和偏差的损失值。
  • 弄清楚如何更新权重和偏差以提高损失值。
  • 根据当前的学习率更新一定量的权重和偏差。

重复此过程直到收敛(以几种不同的方式衡量,例如针对验证集的改进)。

如果您想深入了解这一切是如何运作的,请从YouTube 上3Blue1Brown 的神经网络系列开始,它甚至没有那么长。在深入研究数学之前,先了解一下这些概念是一个很好的开始。

我认为正确的答案是“两者”。

基本上,您的目标是尽量减少预测的错误。如果您完全确定地正确预测所有内容,就会发生这种情况,这当然通常很困难,但这里可以做到,因为我们只考虑一个数据点。因此,梯度下降会尝试在增加的方向上改变你的参数p1并减少p2,p3因为这是你最小化的方式L.

但这取决于您使用的损失函数。例如,如果您使用“愚蠢”的损失函数,如果您对所有数据点进行错误分类,该损失函数将被最小化,那么梯度下降将尝试以尽可能多地错误分类的方式更改参数。