Logistic Regression and its Maximum Likelihood Estimation

发布时间 2023-07-06 16:26:15作者: 车天健

从 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*} \]


即为书中所求。