从 Linear Regression 到 Logistic Regression
给定二维样本数据集 \(D = \left\{ (\vec{x}_{1}, y_{1}), (\vec{x}_{2}, y_{2}), \ldots, (\vec{x}_{n}, y_{n}) \right\}\),其中 \(\vec{x}_{1}, \ldots, \vec{x}_{n} \in X\) 为 \(d\) 维向量(即 \(X\) 的size 为 \(n \times d\)), \(y_{1}, \ldots, y_{n} \in Y\)。我们希望得到一条直线 \(Y = X\beta + \varepsilon\) 来刻画 \(X\) 和 \(Y\) 之间的一般关系,由于真实数据集存在随机项 \(\varepsilon_{i} \sim N(0, \sigma^{2})\),一般情况下这条直线不可能精准地穿过所有的数据点,因此我们希望它尽可能地贴近所有的数据点。如何定义这个 “尽可能地贴近”?数学上来说,我们通过求最小化均方误差(MSE)来实现,即:
\[S = \mathop{\arg\min}_{\beta} || Y - \hat{Y}||^{2} = \mathop{\arg\min}_{\beta} || Y - X \beta ||^{2}
\]
注意到表达式中的 \(X \beta\) 已经包含了直线的常数项。初学者可能会碰到的一个问题是,为什么上式中的最小化目标是 \(|| Y - X\beta ||^{2}\),而不是 \(|| Y - X\beta - \varepsilon||^{2}\)?原因是,直线 \(Y = X \beta + \varepsilon\) 是我们的 model ground truth,我们容忍随机变量 \(\varepsilon \sim N(0, \sigma^{2})\) 作为误差存在,而误差作为随机项无法消除,是数据集本身的特性,并非是模型的问题。我们通过解以上最优化问题,能够得到一个最优参数 \(\beta^{*}\),反过来我们将 \(X\) 代入得到的模型 \(\hat{Y} = X \beta^{*}\),此时的 \(\hat{Y}\) 代表着预测值,它会与 ground truth \(Y\) 产生一个残差 \(e = Y - \hat{Y}\)。注意到 \(e\) 和 \(\varepsilon\) 在定义上是不同的,\(\varepsilon\) 是理论模型中的随机变量,它是无法被描述为具体某个值的,而残差 \(e\) 则是针对一系列已观测的数据点根据线性回归模型求出的具体值。
上述最优化问题的偏导求解如下:
\[\begin{align*}
\frac{\partial S}{\partial \beta} & = \frac{\partial ||Y - X \beta||^{2}}{\partial \beta} \\
& = \frac{\partial (Y - X \beta)^{T} (Y - X \beta)}{\partial \beta} \\
& = -X^{T} (Y - X \beta) + \big[ (Y - X \beta)^{T} (-X) \big]^{T} \\
& = -2 X^{T}(Y - X \beta)
\end{align*}
\]
令 \(\frac{\partial S}{\partial \beta} = 0\),即:
\[\begin{align*}
& \frac{\partial S}{\partial \beta}= -2 X^{T} (Y - X \beta) = 0 \\
& \implies X^{T} Y = X^{T} X \beta \\
& \implies \beta^{*} = (X^{T} X)^{-1} X^{T} Y
\end{align*}
\]
因此,我们拟合出的直线 \(\hat{Y} = X \beta\) 可以直接写作:
\[\hat{Y} = X \beta = X (X^{T} X)^{-1} X^{T} Y
\]
Logistic Regression
这和 Logistic Regression 有何联系呢?Logistic Regression 是一个二分类模型,对于每一个 \(\vec{x} \in X\) 我们希望根据 \(\vec{x}\) 得到其对应的 label \(y \in \left\{ 0, 1 \right\}\),在离散空间上取值。一个思想是,我们设计一个中间函数 \(g(z) \in \left\{ 0, 1 \right\}\),例如:
\[g(z) = \begin{cases}
0, \qquad z \leq 0 \\
1, \qquad z > 0
\end{cases}
\]
如此,我们便将连续的 \(z\) 转换为二元取值 \(g(z)\),再采取类似的方法优化 \(g\) 中的参数,使得预测结果贴近真实的 \(Y\)。然而如上设计的 \(g\) 并不连续,故而不可微,这并不符合广义线性模型(GLM)的条件。我们希望这么一个中间函数 \(g\),它的取值在 \((0, 1)\) 上,并且单调可微,因此便有了 sigmoid 函数的提出:
\[\sigma(z) = \frac{1}{1 + e^{-z}}
\]
不难判断出对于 \(\forall z \in \mathbb{R}: ~ \sigma(z) \in (0, 1)\),且 \(\sigma(z)\) 在 \(\mathbb{R}\) 上单调递增且可微。我们令:
\[\begin{align*}
& y = \sigma(z) = \frac{1}{1 + e^{-z}}\\
& z = \vec{w}^{T} \vec{x} + b \\
\implies & y = \frac{1}{1 + e^{-(\vec{w}^{T} \vec{x} + b)}}
\end{align*}
\]
我们发现,对于输入任意的 \(\vec{x} \in X\),sigmoid 函数先将 \(\vec{x}\) 转化为一个取值在 \((0, 1)\) 上的标量。除此之外还有:
\[\begin{align*}
& \ln \frac{y}{1-y} = \ln \big( e^{\vec{w}^{T} \vec{x} + b} \big) = \vec{w}^{T}\vec{x} + b \\
\implies & \ln \frac{y}{1-y} = \vec{w}^{T}\vec{x} + b
\end{align*}
\]
这样等式的右边又回到 Linear Regression 的简单结构。
Maximum Likelihood Estimation
我们会发现存在这么一个问题,即,数据集最终的 label 取值在 \(\left\{ 0, 1 \right\}\) 中,为离散值,而经由 sigmoid 计算得到的值却在 \((0, 1)\) 间连续取值。这个问题的解决办法是,我们不再将 sigmoid 函数生成的值(\(y\))视作 label,而是视作 “对于给定的 \(\vec{x}\),其 label 为 \(y=1\)” 的概率,即:
\[y = P(y=1 ~ | ~ \vec{x}) \\
\ln \frac{P(y=1 ~ | ~ \vec{x})}{1 - P(y=1 ~ | ~ \vec{x})} = \ln \frac{P(y=1 ~ | ~ \vec{x})}{P(y=0 ~ | ~ \vec{x})} = \vec{w}^{T} \vec{x} + b
\]
注意到以上第一个式子中等式两边的 \(y\) 的含义并不相同,等式左侧的 \(y\) 代表着 “对于给定的 \(\vec{x}\) 其 label 为 \(1\) 的概率”,而等式右边的 \(y\) 为真实 label \(\in \left\{ 0, 1 \right\}\)。
我们会发现,由 total probability:\(P(y=1 ~ | ~ \vec{x}) + P(y=0 ~ | ~ \vec{x}) = 1\),\(\frac{P(y=1 ~ | ~ \vec{x})}{P(y=0 ~ | ~ \vec{x})}\) 在 \(P(y=1 ~ | ~ \vec{x})\) 较大(\(P(y=0 ~ | ~ \vec{x})\) 较小)时较大,极端情况下将趋于正无穷,对数值也将趋于正无穷;相反,在 \(P(y = 1 ~ | ~ \vec{x})\) 较小(\(P(y=0 ~ | ~ \vec{x})\) 较小)时较小,极端情况下将趋于 \(0\),对数值将趋于负无穷。当模型无法判断对于一个 \(\vec{x}\) 其 label 更偏向于 \(0\) 还是 \(1\) 时,此时 \(P(y=1 ~ | ~ \vec{x}) = P(y=0 ~ | ~ \vec{x}) = 0.5\),使得对数值为 \(0\)。因此,在这种假设下,当训练好的模型计算的 \(\vec{w}^{T} \vec{x} + b > 0\),模型将认为其 label 为 \(1\);相反,当 \(\vec{w}^{T} \vec{x} + b < 0\) 时模型认为其 label 为 \(0\)。
在这种情况下,显然:
\[\begin{align*}
& P(y=1 ~ | ~ \vec{x}) = \frac{1}{1 + e^{-(\vec{w}^{T} \vec{x} + b)}} = \frac{e^{\vec{w}^{T} \vec{x} + b}}{1 + e^{\vec{w}^{T} \vec{x} + b}} \\
& P(y=0 ~ | ~ \vec{x}) = 1 - P(y=1 ~ | ~ \vec{x}) = \frac{1}{1 + e^{\vec{w}^{T} \vec{x} + b}} \\
\end{align*}
\]
我们希望对于拥有真实 label \(y_{i} = 1\) 的所有 \(\vec{x}\),模型得到的 \(P(y = 1 ~ | ~ \vec{x}; \vec{w}, b)\) 越大越好,即:
\[\quad \prod\limits_{\vec{x_{i}} ~ s.t. ~ y_{i}=1} P(y = 1 ~ | ~ \vec{x_{i}}; \vec{w}, b)
\]
同理,对于拥有真实 label \(y_{i} = 0\) 的所有 \(\vec{x}\),模型得到的 \(P(y=0 ~ | ~ \vec{x}; \vec{w}, b)\) 越大越好,即:
\[\prod\limits_{\vec{x_{i}} ~ s.t. ~ y_{i}=0} P(y=0 ~ | ~ \vec{x_{i}}; \vec{w}, b) = \prod\limits_{\vec{x_{i}} ~ s.t. ~ y_{i}=0} \Big(1 - P(y=1 ~ | ~ \vec{x_{i}}; \vec{w}, b) \Big)
\]
如何将以上两个目标统一起来(将两个式子写入一个式子中,使得该式摆脱对下标 \(y_{i}\) 的依赖)呢?即,我们希望建立一个式子 \(P(y = y_{i} ~ | ~ \vec{x_{i}}; \vec{w}, b)\),表示对于任意 \(\vec{x_{i}} \in X\) 以及真实 label \(y_{i} \in \left\{ 0, 1 \right\}\),模型预测成功(\(y = y_{i}\))的概率。当这个综合表达式被建立后,我们便可以通过最大似然估计(MLE)求出在训练集上最优的参数 \(\vec{w}, b\),即:
\[\max \quad \prod\limits_{i} P(y = y_{i} ~ | ~ \vec{x_{i}}, \vec{w}, b)
\]
周志华的《机器学习》里提到这么一种构建方法:
\[P(y_{i} ~ | ~ \vec{x_{i}}; \vec{w}, b) = y_{i} P(y=1 ~ | ~ \vec{x_{i}}; \vec{w}, b) + (1 - y_{i}) P(y = 0 ~ | ~ \vec{x_{i}}; \vec{w}, b)
\]
这样构建能够满足我们的目标,即:当 \(y_{i} = 1\) 时,\(P(y_{i} ~ | ~ \vec{x_{i}}; \vec{w}, b) = P(y=1 ~ | ~ \vec{x_{i}}; \vec{w}, b)\);当 \(y_{i} = 0\) 时,\(P(y_{i} ~ | ~ \vec{x_{i}}; \vec{w}, b) = P(y = 0 ~ | ~ \vec{x_{i}}; \vec{w}, b)\)。但是,这样会使得 MLE 求解变得复杂:
\[\begin{align*}
\max\limits_{\vec{w}, b} L(\vec{w}, b) & = \max\limits_{\vec{w}, b} \quad \prod\limits_{i} \big( y_{i} P(y=1 ~ | ~ \vec{x_{i}}; \vec{w}, b) + (1 - y_{i}) P(y = 0 ~ | ~ \vec{x_{i}}; \vec{w}, b) \big) \\
& = \max\limits_{\vec{w}, b} \quad \prod\limits_{i} \big( y_{i} \frac{e^{\vec{w}^{T} \vec{x} + b}}{1 + e^{\vec{w}^{T} \vec{x} + b}} + (1 - y_{i}) \frac{1}{1 + e^{\vec{w}^{T} \vec{x} + b}} \big)
\end{align*}
\]
哪怕取对数似然:
\[\begin{align*}
\max\limits_{\vec{w}, b} l(\vec{w}, b) & = \max\limits_{\vec{w}, b} \quad \ln \Big( \prod\limits_{i} \big( y_{i} P(y=1 ~ | ~ \vec{x_{i}}; \vec{w}, b) + (1 - y_{i}) P(y = 0 ~ | ~ \vec{x_{i}}; \vec{w}, b) \big) \Big) \\
& = \max\limits_{\vec{w}, b} \quad \ln \Big( \prod\limits_{i} \big( y_{i} \frac{e^{\vec{w}^{T} \vec{x} + b}}{1 + e^{\vec{w}^{T} \vec{x} + b}} + (1 - y_{i}) \frac{1}{1 + e^{\vec{w}^{T} \vec{x} + b}} \big) \Big) \\
& = \max\limits_{\vec{w}, b} \quad \sum\limits_{i} \ln \big( y_{i} \frac{e^{\vec{w}^{T} \vec{x} + b}}{1 + e^{\vec{w}^{T} \vec{x} + b}} + (1 - y_{i}) \frac{1}{1 + e^{\vec{w}^{T} \vec{x} + b}} \big) \\
& = \max\limits_{\vec{w}, b} \quad \sum\limits_{i} \ln \frac{y_{i} e^{\vec{w}^{T} \vec{x} + b} + 1 - y_{i}}{1 + e^{\vec{w}^{T} \vec{x} + b}} \\
& = \max\limits_{\vec{w}, b} \quad \sum\limits_{i} \big( \ln (y_{i} e^{\vec{w}^{T} \vec{x} + b} + 1 - y_{i}) - \ln (1 + e^{\vec{w}^{T} \vec{x} + b}) \big)
\end{align*}
\]
并不能直接得到书中的目标结果:
\[\min\limits_{\vec{w}, b} \quad \sum\limits_{i} \big( -y_{i} (\vec{w}^{T} \vec{x} + b) + \ln (1 + e^{\vec{w}^{T} \vec{x} + b}) \big)
\]
一个更好的 \(P(y_{i} ~ | ~ \vec{x_{i}}; \vec{w}, b)\) 设计方法是:
\[P(y_{i} ~ | ~ \vec{x_{i}}; \vec{w}, b) = P(y=1 ~ | ~ \vec{x_{i}}; \vec{w}, b)^{y_{i}} \cdot P(y = 0 ~ | ~ \vec{x_{i}}; \vec{w}, b)^{1 - y_{i}}
\]
这种形式也能满足我们上述的要求,并且我们对参数求解 MLE:
\[\begin{align*}
\max\limits_{\vec{w}, b} l(\vec{w}, b) & = \max\limits_{\vec{w}, b} \quad \ln \prod\limits_{i} \big( P(y=1 ~ | ~ \vec{x_{i}}; \vec{w}, b)^{y_{i}} \cdot P(y = 0 ~ | ~ \vec{x_{i}}; \vec{w}, b)^{1 - y_{i}} \big) \\
& = \max\limits_{\vec{w}, b} \quad \sum\limits_{i} \ln \big( P(y=1 ~ | ~ \vec{x_{i}}; \vec{w}, b)^{y_{i}} \cdot P(y = 0 ~ | ~ \vec{x_{i}}; \vec{w}, b)^{1 - y_{i}} \big) \\
& = \max\limits_{\vec{w}, b} \quad \sum\limits_{i} \big( y_{i} \ln P(y=1 ~ | ~ \vec{x_{i}}; \vec{w}, b) + (1 - y_{i}) \ln P(y = 0 ~ | ~ \vec{x_{i}}; \vec{w}, b) \big) \\
& = \max\limits_{\vec{w}, b} \quad \sum\limits_{i} \big( y_{i} \ln \frac{e^{\vec{w}^{T} \vec{x} + b}}{1 + e^{\vec{w}^{T} \vec{x} + b}} + (1 - y_{i}) \ln \frac{1}{1 + e^{\vec{w}^{T} \vec{x} + b}} \big) \\
& = \max\limits_{\vec{w}, b} \quad \sum\limits_{i} \big( y_{i} (\vec{w}^{T} \vec{x} + b) - y_{i} \ln (1 + e^{\vec{w}^{T} \vec{x} + b}) + (y_{i} - 1) \ln (1 + e^{\vec{w}^{T}\vec{x} + b}) \big) \\
& = \max\limits_{\vec{w}, b} \quad \sum\limits_{i} \big( y_{i} (\vec{w}^{T} \vec{x} + b) - \ln (1 + e^{\vec{w}^{T} \vec{x} + b}) \big) \\
& = \min\limits_{\vec{w}, b} \quad \sum\limits_{i} \big( - y_{i} (\vec{w}^{T} \vec{x} + b) + \ln (1 + e^{\vec{w}^{T} \vec{x} + b}) \big)
\end{align*}
\]
即为书中所求。