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