逻辑回归代价函数的解释
本文整理自 Neural Networks and Deep Learning 的 Explanation of logistic regression cost function 一节,给出了逻辑回归代价函数的解释。
二分类逻辑回归中,记预测值为 ˆy,真实值为 y。预测值 ˆy 的计算方式为:
ˆy=a(wTx+b)
其中,激活函数 a=σ(z) 是 Sigmoid 函数:
σ(z)=11+e−z
可以将 ˆ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)(1–y)
分别将 y=1、y=0 带入式 (6),可得到与式 (4)、(5) 相同的结果。
对式 (6) 取对数(对数函数是严格单调递增的),消除指数项,得:
log(p(y|x))=ylog(ˆy)+(1–y)log(1–ˆy)
我们的目标是让 p(y|x) 最大化,即对 y=1 的情况,预测结果为 1 的概率最大化;对 y=0 的情况,预测结果为 0 的概率最大化。而在训练中,通常会让代价函数最小化,于是在上式的等号右边提取一个负号,得到:
log(p(y|x))=–[−ylog(ˆy)–(1–y)log(1–ˆy)]=−L(ˆy,y)
由此得到了对单个样本的损失函数 L(ˆy,y):
L(ˆy,y)=−ylog(ˆy)–(1–y)log(1–ˆy)
以上是对单个样本的情况。对于 m 个样本的情况,假设各样本是独立同分布的(IID,Independent and Identically Distributed)有:
P(labels)=m∏i=1P(y(i)|x(i))
其中 i 为样本序号。对上式取对数,得到:
log(P(labels))=m∑i=1log(P(y(i)|x(i)))=−m∑i=1L(ˆy(i),y(i))
由此定义对所有 m 个样本的代价函数为:
J(W,b)=1mm∑i=1L(ˆy(i),y(i))
其中 W 和 b 为模型参数,即权重和偏置。这里去掉了式 (11) 等号右边的负号,因为我们想要通过最小化代价函数的方式最大化 P(labels);另外上式还加入了 1m 一项,用于对结果进行缩放。