从 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. abc294G

    Upd G 看上好模板的样子, 果然是个模板题 好题 , 首先考虑这张图的 \(Euler \ Tour\), 简单点说, 就是dfs一遍, 把每个点入栈出栈顺序存起来, 举个例子· 2 1 2 2 ...

  2. SpringBoot 缓存注解的使用

    最近比较忙,没时间更新了.上一篇文章我说了如何使用Redis做缓存,文末我稍微提到了SpringBoot对缓存的支持.本篇文章就针对SpringBoot说一下如何使用. 1.SpringBoot对缓存 ...

  3. Redis(四)主从复制

    主从复制 简介 主机数据更新之后根据配置和策略,自动同步数据到备机的Master/Slaver机制,Master以写为主,Slaver以读为主. 这样的机制能够实现: 读写分离:Master以写为主, ...

  4. 【SpringCloud】(二)Eureka注册中心和Feign远程调用

    1 SpringCloud 核心 SpringCloud基于HTTP协议,这是和Dubbo最本质的区别,Dubbo的核心是RPC(远程方法调用) Eureka:注册中心 Ribbon:客户端负载均衡 ...

  5. 使用Go语言操作HDFS

    HDFS(Hadoop分布式文件系统)是Hadoop生态系统的一部分,它是一个可扩展的分布式文件系统,被设计用于在大规模数据集上运行的应用程序 安装相关package: $ go get github ...

  6. SpringBoot 集成 Quartz + MySQL

    Quartz 简单使用 Java SpringBoot 中,动态执行 bean 对象中的方法 源代码地址 => https://gitee.com/VipSoft/VipBoot/tree/de ...

  7. 最新版本 Stable Diffusion 开源 AI 绘画工具之中文自动提词篇

    目录 标签生成器 提示词自动补全 标签生成器 由于输入正向提示词 prompt 和反向提示词 negative prompt 都是使用英文,所以对学习母语的我们非常不友好 使用网址:https://t ...

  8. [双目视差] 立体校正源码分析(opencv)

    文章目录 [双目视差] 立体校正源码分析(opencv) 一.源码解析 二.源码中的方法 [双目视差] 立体校正源码分析(opencv) 一.源码解析 立体校正:把实际中非共面行对准的两幅图像,校正成 ...

  9. python 高级函数补充

    补充几个高级函数 zip 把两个可迭代内容生成一个可迭代的tuple元素类型组成的内容 # zip 案例 l1 = [ 1,2,3,4,5] l2 = [11,22,33,44,55] z = zip ...

  10. Pytorch-Vanilla Transformer的实现

    Vanilla Transformer 注意力提示 ​ 我们可以将是否包含自主性提示作为将注意力机制与全连接层或汇聚层区别的标准. ​ 定义外部输入至感官的信息为键-值,键是表征值的非自主提示,关注信 ...