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

即为书中所求。

Logistic Regression and its Maximum Likelihood Estimation的更多相关文章

  1. Linear Regression and Maximum Likelihood Estimation

    Imagination is an outcome of what you learned. If you can imagine the world, that means you have lea ...

  2. Maximum Likelihood及Maximum Likelihood Estimation

    1.What is Maximum Likelihood? 极大似然是一种找到最可能解释一组观测数据的函数的方法. Maximum Likelihood is a way to find the mo ...

  3. 似然函数 | 最大似然估计 | likelihood | maximum likelihood estimation | R代码

    学贝叶斯方法时绕不过去的一个问题,现在系统地总结一下. 之前过于纠结字眼,似然和概率到底有什么区别?以及这一个奇妙的对等关系(其实连续才是f,离散就是p). 似然函数 | 似然值 wiki:在数理统计 ...

  4. 最大似然估计 (Maximum Likelihood Estimation), 交叉熵 (Cross Entropy) 与深度神经网络

    最近在看深度学习的"花书" (也就是Ian Goodfellow那本了),第五章机器学习基础部分的解释很精华,对比PRML少了很多复杂的推理,比较适合闲暇的时候翻开看看.今天准备写 ...

  5. 最大似然估计(Maximum likelihood estimation)(通过例子理解)

    似然与概率 https://blog.csdn.net/u014182497/article/details/82252456 在统计学中,似然函数(likelihood function,通常简写为 ...

  6. 均匀分布(uniform distribution)期望的最大似然估计(maximum likelihood estimation)

    maximum estimator method more known as MLE of a uniform distribution [0,θ] 区间上的均匀分布为例,独立同分布地采样样本 x1, ...

  7. 最大似然预计(Maximum likelihood estimation)

    一.定义     最大似然预计是一种依据样本来预计模型參数的方法.其思想是,对于已知的样本,如果它服从某种模型,预计模型中未知的參数,使该模型出现这些样本的概率最大.这样就得到了未知參数的预计值. 二 ...

  8. 【MLE】最大似然估计Maximum Likelihood Estimation

    模型已定,参数未知 已知某个随机样本满足某种概率分布,但是其中具体的参数不清楚,参数估计就是通过若干次试验,观察其结果,利用结果推出参数的大概值.最大似然估计是建立在这样的思想上:已知某个参数能使这个 ...

  9. 最大似然估计(Maximum likelihood estimation)

    最大似然估计提供了一种给定观察数据来评估模型参数的方法,即:"模型已定,参数未知".简单而言,假设我们要统计全国人口的身高,首先假设这个身高服从服从正态分布,但是该分布的均值与方差 ...

  10. MLE vs MAP: the connection between Maximum Likelihood and Maximum A Posteriori Estimation

    Reference:MLE vs MAP. Maximum Likelihood Estimation (MLE) and Maximum A Posteriori (MAP), are both a ...

随机推荐

  1. 基于SqlSugar的开发框架循序渐进介绍(26)-- 实现本地上传、FTP上传、阿里云OSS上传三者合一处理

    在前面介绍的随笔<基于SqlSugar的开发框架循序渐进介绍(7)-- 在文件上传模块中采用选项模式[Options]处理常规上传和FTP文件上传>中介绍过在文件上传处理的过程中,整合了本 ...

  2. 【SpringCloud】(三)Hystrix 与 Zuul

    5 Hystrix Hystrix:一个用于处理分布式系统的延迟和容错的开源库,在分布式系统里,许多依赖会不可避免得调用失败,比如超时.异常等,Hystrix能保证在一个依赖出问题的情况下,不会导致整 ...

  3. php 中文地址伪静态,.htaccess实现含中文的url伪静态跳转

    Tags伪静态 RewriteRule ^tags.html/tags.php RewriteRule ^tags/(.)(??.))*.html$ tags.php?/$1 RewriteRule ...

  4. SpringBoot自定义权限过滤注解详解

    一.需求 我们在做项目的时候,通常会根据不同的账号登录进去,展示的菜单和列表不同,这是因为我们在后端根据定义的角色权限,来筛选不同的数据.我们来看看我们Before和After是如何做的. 二.Bef ...

  5. 实现异步操作CompletableFuture

    多个线程异步操作后统一返回执行结果AtomicReference<RespVo> event = new AtomicReference<>(); AtomicReferenc ...

  6. Prism Sample 7 Module xaml

    这一节使用xaml标记甚为不解. 本节注册module 的方式同directory一节很类似.在那一节中,用工厂方法创建一模块目录: protected override IModuleCatalog ...

  7. 【Azure 存储服务】使用 AppendBlobClient 对象实现对Blob进行追加内容操作

    问题描述 在Azure Blob的官方示例中,都是对文件进行上传到Blob操作,没有实现对已创建的Blob进行追加的操作.如果想要实现对一个文件的多次追加操作,每一次写入的时候,只传入新的内容? 问题 ...

  8. 2022-09-11:arr是一个可能包含重复元素的整数数组,我们将这个数组分割成几个“块”, 并将这些块分别进行排序。之后再连接起来,使得连接的结果和按升序排序后的原数组相同。 我们最多能将数组分成

    2022-09-11:arr是一个可能包含重复元素的整数数组,我们将这个数组分割成几个"块", 并将这些块分别进行排序.之后再连接起来,使得连接的结果和按升序排序后的原数组相同. ...

  9. Python MQTT客户端 paho-mqtt

    Python中MQTT Python有许多优秀的MQTT客户端,比较有代表性的有paho-mqtt.hbmqtt.gmqtt等,各有特色 paho-mqtt 有着最优秀的文档,代码风格易于理解,同时有 ...

  10. 云端炼丹,算力白嫖,基于云端GPU(Colab)使用So-vits库制作AI特朗普演唱《国际歌》

    人工智能AI技术早已深入到人们生活的每一个角落,君不见AI孙燕姿的歌声此起彼伏,不绝于耳,但并不是每个人都拥有一块N卡,没有GPU的日子总是不好过的,但是没关系,山人有妙计,本次我们基于Google的 ...