Processing math: 100%

逻辑回归代价函数的解释

  本文整理自 Neural Networks and Deep Learning 的 Explanation of logistic regression cost function 一节,给出了逻辑回归代价函数的解释。

  二分类逻辑回归中,记预测值为 ˆy,真实值为 y。预测值 ˆy 的计算方式为:

ˆy=a(wTx+b)

其中,激活函数 a=σ(z) 是 Sigmoid 函数:

σ(z)=11+ez

可以将 ˆy 看作对给定样本 x,预测结果为 1 的概率,即:

ˆy=P(y=1|x)

在二分类的场景,y 只能取 0 或者 1,则当 y=1 时,有:

P(y|x)=ˆy

y=0 时,有:

P(y|x)=1ˆy

式 (4)、(5) 可以综合为:

P(y|x)=ˆyy(1ˆy)(1y)

分别将 y=1y=0 带入式 (6),可得到与式 (4)、(5) 相同的结果。

对式 (6) 取对数(对数函数是严格单调递增的),消除指数项,得:

log(p(y|x))=ylog(ˆy)+(1y)log(1ˆy)

我们的目标是让 p(y|x) 最大化,即对 y=1 的情况,预测结果为 1 的概率最大化;对 y=0 的情况,预测结果为 0 的概率最大化。而在训练中,通常会让代价函数最小化,于是在上式的等号右边提取一个负号,得到:

log(p(y|x))=[ylog(ˆy)(1y)log(1ˆy)]=L(ˆy,y)

由此得到了对单个样本的损失函数 L(ˆy,y)

L(ˆy,y)=ylog(ˆy)(1y)log(1ˆy)

  以上是对单个样本的情况。对于 m 个样本的情况,假设各样本是独立同分布的(IID,Independent and Identically Distributed)有:

P(labels)=mi=1P(y(i)|x(i))

其中 i 为样本序号。对上式取对数,得到:

log(P(labels))=mi=1log(P(y(i)|x(i)))=mi=1L(ˆy(i),y(i))

由此定义对所有 m 个样本的代价函数为:

J(W,b)=1mmi=1L(ˆy(i),y(i))

其中 Wb 为模型参数,即权重和偏置。这里去掉了式 (11) 等号右边的负号,因为我们想要通过最小化代价函数的方式最大化 P(labels);另外上式还加入了 1m 一项,用于对结果进行缩放。