哪个损失函数对逻辑回归是正确的?


31

我读到了两个用于逻辑回归的损失函数版本,其中哪个是正确的,为什么?

  1. 来自机器学习的 Zhou ZH(中文),其中:β=(w,b) and βTx=wTx+b

    (1)l(β)=i=1m(yiβTxi+ln(1+eβTxi))

  2. 从我的大学课程中,:zi=yif(xi)=yi(wTxi+b)

    (2)L(zi)=log(1+ezi)


我知道第一个是所有样本的累加,第二个是单个样本的累加,但是我对两个损失函数形式的差异感到更加好奇。不知何故,我觉得它们是等效的。

Answers:


31

关系如下:l(β)=iL(zi)

将逻辑函数定义为f(z)=ez1+ez=11+ez。它们具有f(z)=1f(z)。换句话说:

11+ez=ez1+ez.

如果您采取双方的对立,则以您得到的日志为准:

ln(1+ez)=ln(1+ez)+z.

从两侧减去z,您应该看到:

yiβTxi+ln(1+eyiβTxi)=L(zi).

编辑:

目前,我正在重新阅读此答案,并对如何使等于。最初的问题也许有错别字。- Ÿ β Ť X + Ñ 1 + Ë ÿ β Ť X yiβTxi+ln(1+eβTxi)yiβTxi+ln(1+eyiβTxi)

编辑2:

在原始问题中没有错字的情况下,@ ManelMorales似乎是正确的,以引起人们注意以下事实:当 -1,1,概率质量函数可以写为由于的特性,。我在这里用另一种方式重写它,因为他在符号上引入了新的模棱两可。其余的方法是对每个编码取负对数似然率。有关更多详细信息,请参见下面的答案。P ÿ = Ŷ = ˚F ÿ β Ť X ˚F - Ž = 1 - ˚F ż ž ÿy{1,1}P(Yi=yi)=f(yiβTxi)f(z)=1f(z)ziy


42

OP错误地认为这两个函数之间的关系是由于样本数(即单个样本与全部样本)引起的。但是,实际的区别只是我们选择培训标签的方式。

在二进制分类的情况下,我们可以分配标签或。y=±1y=0,1

如前所述,逻辑函数具有概率形式,即和为。如果我们选择标签我们可以分配 σ(z)σ(z)=1σ(z)σ(z)(0,1)z±y=0,1

P(y=1|z)=σ(z)=11+ezP(y=0|z)=1σ(z)=11+ez

可以更紧凑地写为。P(y|z)=σ(z)y(1σ(z))1y

最大化对数似然率比较容易。最大化对数可能性与最小化负对数可能性相同。对于样本,在采用自然对数并进行了一些简化之后,我们将得出:m{xi,yi}

l(z)=log(imP(yi|zi))=imlog(P(yi|zi))=imyizi+log(1+ezi)

可以在此jupyter笔记本上找到完整的推导和其他信息。另一方面,我们可能改为使用标签。显然,我们可以分配y=±1

P(y|z)=σ(yz).

也很明显。遵循与之前相同的步骤,在这种情况下,我们将损失函数最小化P(y=0|z)=P(y=1|z)=σ(z)

L(z)=log(jmP(yj|zj))=jmlog(P(yj|zj))=jmlog(1+eyzj)

在我们采取由负号引起的倒数之后的最后一步。虽然我们不应该将这两种形式等同起来,但是鉴于每种形式具有不同的值,但是这两种是等效的:y

yizi+log(1+ezi)log(1+eyzj)

的情况很容易显示。如果,则左侧的,右侧的。yi=1yi1yi=0yi=1

虽然可能有一些基本原因可以说明为什么我们有两种不同的形式(请参阅为什么有两种不同的逻辑损失公式/符号?),但选择前者的一个原因是出于实际考虑。在前者中,我们可以使用属性来计算和,这两项都是收敛分析所必需的(即,通过计算Hessian确定损失函数的凸性)。σ(z)/z=σ(z)(1σ(z))l(z)2l(z)


逻辑损失函数是凸的吗?
user85361

2
Log reg是凸的,但不是 -convex。因此,我们无法限制梯度下降收敛所需的时间。我们可以通过添加正则项来调整的形式以使其强凸:使用正常数 将我们的新函数定义为 st是强凸的,我们现在可以证明的收敛边界。不幸的是,我们现在正在最小化其他功能!幸运的是,我们可以证明正则化函数的最优值接近于原始函数的最优值。α λ 'ż = ż + λ Ž 2 'ż λ 'l(z)αlλl(z)=l(z)+λz2l(z)λl
Manuel Morales

您所指的笔记本已经走了,我得到了另一个证明:statlect.com/fundamentals-of-statistics / ...
Domi.Zhang

2
我发现这是最有用的答案。
mohit6up

@ManuelMorales您是否链接到正则化函数的最佳值接近原始值?
马克

19

我学习了逻辑回归的损失函数,如下所示。

逻辑回归执行二进制分类,因此标签输出为二进制,0或1。令为给定输入特征向量二进制输出为1 的概率。系数是算法尝试学习的权重。y x wP(y=1|x)yxw

P(y=1|x)=11+ewTx

因为逻辑回归是二元回归的,所以概率只是1减去上述项。P(y=0|x)

P(y=0|x)=111+ewTx

损失函数是一个训练示例的(A)输出乘以和(B)输出乘以的总和超过训练示例。y = 1 P y = 1 y = 0 P y = 0J(w)y=1P(y=1)y=0mP(y=0)m

J(w)=i=1my(i)logP(y=1)+(1y(i))logP(y=0)

其中表示训练数据中的标签。如果训练实例的标签为,则,将左求和保留在原位置,而将右求和的变为。另一方面,如果训练实例的,则保留带有项的右加数,而左加数变为。对数概率用于简化计算。 i t h 1 y i = 1 1 - y i y(i)ith1y(i)=11y(i)y = 0 1 - y i 00y=01y(i)0

如果然后用较早的表达式替换和,则得到:P P(y=1)P(y=0)

Jw=一世=1个ÿ一世日志1个1个+Ë-wŤX+1个-ÿ一世日志1个-1个1个+Ë-wŤX

您可以在这些斯坦福大学的讲义中阅读有关此表格的更多信息。


这个答案在这里也提供了一些相关的观点。
GeoMatt22

6
您拥有的表达式不是损失(要最小化),而是对数似然(要最大化)。
xenocyon

2
@xenocyon true-相同的公式通常在负的总和上加上负号。
Alex Klibisz

1

代替均方误差,我们使用称为交叉熵的成本函数,也称为对数损失。交叉熵损失可分为两个独立的成本函数:一个用于y = 1,一个用于y = 0。

j(θ=1个一世=1个CØsŤHθX一世ÿ一世CØsŤHθXÿ=-日志HθX一世F ÿ=1个CØsŤHθXÿ=-日志1个-HθX一世F ÿ=0

当我们将它们放在一起时,我们有:

Ĵθ=1个一世=1个[ÿ一世日志HθX一世+1个-ÿ一世日志1个-HθX一世]

上式中的和乘以一个狡猾的把戏,让我们使用相同的方程式来求解和情况。如果,则第一侧抵消。如果,则第二侧抵消。在这两种情况下,我们仅执行需要执行的操作。ÿ(1y)y=1y=0y=0y=1

如果您不想使用for循环,可以尝试上述方程式的矢量化形式

h=g(Xθ)J(θ)=1m(yTlog(h)(1y)Tlog(1h))

整个解释可以在Machine Learning Cheatsheet上查看。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.