我的知识记录

digSelf

从潜在变量到概率预测:深入理解逻辑斯蒂与Softmax函数

2025-06-04
从潜在变量到概率预测:深入理解逻辑斯蒂与Softmax函数

在监督学习的广阔领域中,我们主要面对两类核心问题:回归问题分类问题。回归问题旨在预测连续的数值输出,例如房价或温度;而分类问题则致力于预测离散的类别标签,例如识别图片中的物体是猫还是狗。

回归问题的建模通常可以直接采用基于线性关系的概率模型,即输出值围绕真实值上下波动,这种波动可以由加性噪声来表述。然而,对于分类问题,尽管也存在类似的“噪声”概念,但其表现形式和处理方式有所不同。由于分类问题的预测值是离散的,从连续的特征空间到离散的类别标签之间存在一个固有的“鸿沟”,因此不能直接沿用回归的建模方式,而是需要额外引入一层“包装”来桥接这个差距。

分类问题的本质:潜在变量与决策边界

寻找特征到类别的最佳映射

分类问题中,目标是找到输入特征​\mathcal{X}到类别​\mathcal{Y}的最佳映射:

f_{\pmb \theta}: \mathcal{X} \mapsto \mathcal Y

其中​\pmb \theta = [\theta_1, \cdots, \theta_n]^\top是决定映射​f的参数。

揭秘分类背后的连续性:潜在连续变量假设

在分类问题中,有一个关键假设,叫做潜在的连续变量假设(Latent Continuous Variables Assumption),其指的是:假设存在一个无法直接被观测到的连续变量​L,其反映的是给定输入特征后,其隶属于某一类别的倾向性/得分/置信度。若令​g(\pmb x)为真实的置信度,则随机变量置信度​L围绕真实的置信度上下波动,即存在噪声​Z,有下式

L = g(\pmb x) + Z

成立,其中噪声​Z服从均值为​0,方差为​\sigma^2的某一分布以确保潜在得分的期望是无偏的。对于多分类问题,这一概念可以自然地扩展:将​L扩展为多个潜在得分值,相应的函数​g和噪声​Z也向量化即可。

若采用判别式模型,可以使用​f_{\pmb \theta}(\pmb x)来近似真实映射​g(\pmb x),此时​f_{\pmb \theta}(x)成为 ​L 的期望:

\mathbb{E}[L] = \mathbb E [f_{\pmb \theta}(\pmb x) + Z] = f_{\pmb \theta}(\pmb x)

这意味着​f_{\pmb \theta}(\pmb x)​g(\pmb x)的无偏估计。基于此,我们可以进一步构建条件概率分布,例如:

L|X = x \sim \mathcal{N}(f_{\pmb\theta}(\pmb x), \sigma^2)

从连续得分到离散决策:决策边界的作用

尽管通过潜在连续变量假设,我们得到了一个连续的得分值或置信度​L,但它并非最终的类别标签。因此,我们需要一个决策映射将这个连续的置信度转换(或“判决”)为离散的类别标签。

这一问题可以从二分类的决策边界入手,再拓展到多分类问题,体现了“减而治之”的思想。对于二分类问题,通常存在一个决策边界(Decision Boundary)阈值(Thresholding)。通过决策函数,潜在连续变量 L 被映射到离散的类别值上,例如:

Y = \begin{cases} 1, &L \ge c \\ 0, &L < c \end{cases}

其中​c是一个预设的阈值。

阶段性总结:离散标签的连续根源

通过对潜在连续变量假设和决策边界的阐述,可以清晰地看到:虽然最终观察到的是离散类型的类别标签(如0或1),但其背后是由一个连续的潜在得分或置信度,经过特定的判决规则(如阈值比较)转换而来的。这种连续性是连接输入特征与离散输出的关键桥梁。

Logistic 函数的推导:三种视角

推导一:基于潜在变量与误差分布

判别式模型(Discriminative Model)旨在直接建模输入特征与预测值之间的关系,它不直接关心数据本身的生成过程。若其为确定性模型(Determinant Model),则其可以表示为:

f_{\pmb \theta}: \mathcal{X} \mapsto \mathcal Y

但对于分类这种存在不确定性的问题,我们更倾向于采用概率模型,即建模条件概率分布​P_{\pmb \theta}(Y|X),其表示的含义是:它表示在已知输入特征​\pmb x,其预测值​Y的概率分布是什么。

根据我们之前建立的潜在连续变量假设和决策函数,有:

\begin{align*} P_{\pmb \theta}(Y=1|x) &= P(Y = 1|x; \pmb \theta) \\ &= P(L \ge c|x;\pmb \theta) \\ &= P(g(x) + Z \ge c|x; \pmb \theta) \\ &= P(Z \ge c - g(x)|x; \pmb \theta) \end{align*}

​v = c - f_{\pmb \theta}(x),进而类别条件分布函数​P_{\pmb \theta}(Y = 1|x)可以表述为下式:

\begin{align*} P_{\pmb \theta}(Y = 1|x) &= 1 - P(Z < c - f_{\pmb \theta}(x)|x) \\ &= 1 - F_Z(c - f_{\pmb \theta}(x)) \\ &= 1 - F_z(v) \end{align*}

其中​F_z(v)是噪声​Z的累积分布函数(Cumulative Distribution Function,CDF)。

为了得到 Sigmoid 函数形式的后验概率,我们做出一个关键的分布假设:假设噪声​Z服从一个对称的概率分布。逻辑斯蒂分布的均值为0,其累积分布函数(CDF)是光滑且严格单调递增的,并且恰好就是 Sigmoid 函数的形式:

F_Z(z) \doteq P(Z \le z) = \frac{1}{1+\exp(-z/s)}

其中 s 是尺度参数。采用​f_{\pmb \theta}(x)近似真实模型​g(x),则可假设函数​f_{\pmb \theta}(x)是线性函数,即满足下式:

f_{\pmb \theta}(x) = w_1 x + w_2

其中​w_1, w_2可由​\theta_1, \theta_2表示,则有:

\begin{align*} \frac{v}{s} &= \frac{c - w_1x - w_2}{s} \\ &= -\frac{w_1}{s}x + \frac{1}{s}(c - w_2) \end{align*}

\theta_1 = \frac{w_1}{s}, \qquad \theta_2 = \frac{1}{s}(w_2 - c)

则类别条件分布函数​P_{\pmb \theta}(Y = 1|x)可以表述为下式:

P_{\pmb \theta}(Y = 1|x) = \frac{1}{1 + \exp\left( -(\theta_1 x + \theta_2) \right)}

即逻辑斯蒂函数,也称sigmoid函数。

推导二:从生成式模型视角看 Logistic 函数

除了上述基于潜在变量和误差分布的推导,Logistic 函数也可以从生成式模型的角度自然地“涌现”。这种方法假设我们对数据本身的生成过程有一定了解。

对于二分类问题,其可以视为0-1分布,其参数​p可以被定义为后验概率:

p \doteq P(Y = 1|X)

假设各类别的输入特征分别服从具有相同方差的正态分布:

P(X|Y = 1) \sim \mathcal N(\mu_1, \sigma^2), \qquad P(X|Y = 0) \sim \mathcal N(\mu_2, \sigma^2).

根据贝叶斯公式,在给定输入特征​x时的后验概率可以表述为:

P(Y = 1|x) = \frac{P(x|Y = 1)P(Y = 1)}{P(x|Y = 0)P(Y = 0) + P(x|Y = 1)P(Y = 1)}

其先验概率​P(Y = 1)​P(Y = 0)可以从观测数据集​\mathcal{D}中学习到,进而可以对上式进行化简,有:

\begin{aligned} P(Y = 1|x) &= \frac{1}{1 + \frac{P(x|Y = 0)P(Y = 0)}{P(x|Y = 1)P(Y = 1)}} \end{aligned}

对于该式中分母的复杂项进行展开,有:

\begin{aligned} \frac{P(x|Y = 0)P(Y = 0)}{P(x|Y = 1)P(Y = 1)} &= \frac{\exp(-\frac{(x - \mu_2)^2}{2\sigma^2})}{\exp(-\frac{(x - \mu_1)^2}{2\sigma^2})} \cdot \frac{P(Y = 0)}{P(Y = 1)} \\ &= \exp\left[-\left(\frac{(x - \mu_2)^2}{2\sigma^2} - \frac{(x - \mu_1)^2}{2\sigma^2} - \ln \frac{P(Y = 0)}{P(Y = 1)}\right)\right] \\ &= \exp\left[-\left(\frac{1}{\sigma^2}(\mu_1 - \mu_2)x + \frac{1}{2\sigma^2}(\mu_2^2 - \mu_1^2) - \ln \frac{P(Y = 0)}{P(Y = 1)}\right) \right] \\ &= \exp(-(\theta_1 x + \theta_0)) \end{aligned}

其中

\theta_0 =\frac{1}{2\sigma^2}(\mu_2^2 - \mu_1^2) - \ln \frac{P(Y = 0)}{P(Y = 1)},\qquad \theta_1 = \frac{1}{\sigma^2}(\mu_1 - \mu_2).

进而后验概率可以化简为:

P(Y = 1|x) = \frac{1}{1 + \exp(-z)}, \qquad z = \theta_1 x + \theta_0.

这同样导出了逻辑斯蒂函数的形式。

推导三:启发式方法构建 Logistic 函数

除了基于特定概率分布的推导,我们也可以从更直观的启发式视角直接建模类别条件概率分布函数 ​P(Y∣X)。由于仿射函数(线性函数)简单、可解释性强且具有良好的性质(如光滑),本节的目标是将条件概率与仿射函数关联起来。

在二分类问题中,假设仿射函数​f由参数​\pmb \theta = [\theta_1, \theta_2]^\top决定,其形式可以表示为:

f(x; \pmb \theta) = \theta_1 x + \theta_2

其取值范围是整个实数集​\mathbb{R}。因此,条件概率分布的取值范围是​[0, 1]。因此,我们需要找到一个合适的映射,将​\mathbb{R}映射到​[0, 1]

考虑几率(odds):

\frac{P(Y = 1|x)}{P(Y = 0|x)} = \frac{P(Y = 1|x)}{1 - P(Y = 1|x)}

其取值范围是​[0, +\infty)。其虽然扩展到了非负实数空间​\mathbb{R}_+,但是仍未充满整个实数空间。现在的目标是找到一个取值范围在​[0, +\infty)的函数,该函数是单调、光滑,且其值域能够充满整个实数空间​\mathbb R,一个满足这些性质的函数自然而然的浮现出来:对数函数​\ln x

对几率取对数,我们得到对数几率(log-odds):

\ln\left( \frac{P(Y = 1|x)}{1 - P(Y = 1|x)} \right) = \theta_1 x + \theta_2

经过这样处理,即将类别条件概率分布与仿射函数关联起来。下面做一些化简,反解出​P(Y = 1|X)

\begin{align*} &\frac{P(Y = 1|x)}{1 - P(Y = 1|x)} = \exp(\theta_1 x + \theta_2) \\ \implies &P(Y = 1|x) = \exp(\theta_1 x + \theta_2) - P(Y = 1|x)\exp(\theta_1 x+\theta_2) \\ \implies &(1 + \exp(\theta_1 x + \theta_2))P(Y = 1|x) = \exp(\theta_1 x + \theta_2) \\ \implies &P(Y = 1|x) = \frac{\exp(\theta_1 x + \theta_2)}{1 + \exp(\theta_1 x + \theta_2)}\\ \implies &P(Y = 1|x) = \frac{1}{1 + \exp\left(-(\theta_1 x + \theta_2)\right)} \end{align*}

这最终得到了逻辑斯蒂函数的形式。

阶段性总结:Logit与对数几率的直观解释

将线性得分称为对数几率(Log-Odds),也被称作Logit。也就是说,两者其实指的一回事儿。通常将一个事件发生与不发生的比率称为发生几率(简称几率,Odds),也称胜算,是一种相对概率。假设一个事件(event)发生的概率为​p,则不发生的概率是​1- p,则几率可以表述为下式:

\frac{p}{1 - p}

几率的取值范围是​[0, +\infty),使用对数函数​\ln(\cdot)将其取值范围扩展到​\mathbb R上,记:

\operatorname{logit}(p) \doteq \ln\left[\frac{p}{1-p} \right]

为对数几率。由于​\ln(\cdot)函数是光滑且严格单调递增的函数,则有事件发生的概率​p越大,其发生的对数几率​\operatorname{logit}(p)也就越大,但需要注意的是,这种关系是非线性的,两者并非简单地成正比(即两个变量之间不一定是常数倍的关系)。

Logistic函数中的参数​\pmb \theta的几何解释

在 Logistic 函数中,其参数​\pmb \theta具有直观的几何意义。我们以常见的形式为例:

\mu(\pmb x) \doteq \frac{1}{1+ \exp(-z)}, \qquad z = \pmb \theta^\top \pmb x

其中​\pmb x = [1, x_1, \cdots, x_{n - 1}]是增广后的输入特征向量,​\pmb \theta = [\theta_0, \cdots, \theta_{n - 1}]^\top是模型的权重向量(包含偏置项​\theta_0)。

在 Logistic 函数中,变量​z= \pmb \theta^\top \pmb x实际上是一个线性得分(或称对数几率)。它的值是一个标量,表示了输入特征​\pmb x经过线性变换后的结果。

根据解析几何中的知识,满足形如​\pmb a^\top \pmb v = C其中(​C是常数)的点的集合,构成了一个超平面。在这里,权重向量​\pmb \theta 正是这个超平面的法向量。因此,当线性得分​z取一个固定值​z_0时,方程:

\pmb \theta^\top \pmb x = z_0

定义了​\mathbb R^n空间中的一个超平面。这意味着变量​z = \pmb \theta^\top \pmb x等值面(所有使得​z取相同值的点​\pmb x构成的集合)是超平面。

在二分类问题中,​\mu(\pmb x)表示的是类别​Y=1的后验概率​P(Y = 1|\pmb x),根据决策边界,当​\mu(\pmb x) > 0.5时,将其分类为​Y=1的类别;当​\mu(\pmb x) < 0.5时,将其分类为​Y = 0的类别。因此,​\mu(\pmb x) = 0.5时为分类边界。

​\mu(\pmb x) = 0.5时,可以推导出:

\begin{align*} &\frac{1}{1 + \exp(-z)} = 0.5 \\ \implies &1 + \exp(-z) = 2 \\ \implies &\exp(-z) = 1 \\ \implies &z = 0 \\ \implies &\pmb \theta^\top \pmb x = 0 \end{align*}

因此,决策边界正是由线性方程​\pmb \theta^\top \pmb x = 0所定义的超平面。

权重向量 ​θ(除了增广向量中的偏置项​θ_0外的部分)是决策超平面的法向量,垂直于分类边界。它的方向指示着被预测为正类概率(即​P(Y = 1|\pmb x))增大的方向。其模长​\|\pmb \theta\|越大,概率曲线在决策边界附近的变化越陡峭,表示模型对分类的“信心”越强。 偏置项 ​\pmb \theta_0 决定了决策超平面在特征空间中的位置,控制着超平面与原点的距离,从而调整了分类边界的整体偏移。

Softmax函数:多分类概率的优雅表达

softmax(软最大值 ) 这一命名源于该函数是对​\mathop{\arg\max}函数的一种平滑近似。例如,对于向量 ​(1, 2, 6) ,其 softmax 输出约为 ​(0.007, 0.018, 0.976),这使得几乎所有的单位权重都集中在了该向量的最大元素上。

许多实际问题不局限于二分类,可能会有多种类别(例如,识别手写数字0-9),这类问题称为多分类问题。那么,如何建模多分类问题的类别条件概率分布函数​P(Y = k|X; \pmb \theta)呢?

从生成式模型视角看Softmax函数

给定类别总数量为​K的多分类问题,令​k \in \{1, 2, \cdots, K\}为类别索引,假设给定类别的输入特征的分布为同协方差​\Sigma的多元高斯分布:

X|Y = k \sim \mathcal{N}(\pmb \mu_k, \Sigma)

则后验概率分布:

\begin{align*} P(Y = k|\pmb x) &= \frac{P(\pmb x|Y = k) P(Y = k)}{P(\pmb x)} \\ &= \frac{P(\pmb x|Y = k) P(Y = k)}{\sum_{i = 1}^K P(\pmb x|Y = i)P(Y = i)} \end{align*}

其中​\pmb \mu_k, \Sigma为参数,​\pmb x \in \mathbb R^d。利用对数函数的性质简化乘除法运算,有下式:

\begin{align*} \ln \left[\frac{P(\pmb x|Y = k) P(Y = k)}{\sum_{i = 1}^K P(\pmb x|Y = k)P(Y = k)}\right] &= \ln[P(\pmb x|Y = k)P(Y = k)] - \ln [\sum_{i = 1}^K P(\pmb x|Y = i)P(Y = i)] \end{align*}

我们首先分别对等号右边的第一个式子进行化简,即:

\begin{align*} \ln[P(\pmb x|Y = k)P(Y = k)] &= \ln P(\pmb x|Y = k) + \ln P(Y = k) \\ &= \ln \left[ \frac{1}{(2\pi)^{d/2}\det(\Sigma)^{1/2}} \exp(-\frac{1}{2}(\pmb x - \pmb \mu_k)^\top \Sigma^{-1}(\pmb x - \pmb \mu_k)) \right] + \ln P(Y = k) \\ &= -\frac{d}{2}\ln(2\pi) - \frac{1}{2}\ln(\det(\Sigma)) - \frac{1}{2}(\pmb x- \pmb \mu_k)^\top \Sigma^{-1}(\pmb x - \pmb \mu_k) + \ln P(Y = k) \end{align*}

展开二次项​(\pmb x- \pmb \mu_k)^\top \Sigma^{-1}(\pmb x - \pmb \mu_k)

(\pmb x- \pmb \mu_k)^\top \Sigma^{-1}(\pmb x - \pmb \mu_k) = \pmb x^\top \Sigma^{-1}\pmb x - 2 \pmb x^\top \Sigma^{-1}\pmb \mu_k +\pmb \mu_k^\top \Sigma^{-1} \pmb \mu_k

将此结果代回​\ln[P(\pmb x|Y = k)P(Y = k)]的表达式中:

\ln[P(\pmb x|Y = k)P(Y = k)] = -\frac{1}{2}\pmb x^\top \Sigma^{-1}\pmb x + \pmb \mu_k^\top \Sigma^{-1}\pmb x - \frac{1}{2} \pmb \mu_k^\top \Sigma^{-1}\pmb \mu_k - \frac{d}{2}\ln(2\pi)- \frac{1}{2}\ln(\det(\Sigma)) + \ln P(Y = k)

然后,化简​\ln [\sum_{i = 1}^K P(\pmb x|Y = i)P(Y = i)]

\begin{align*} \ln [\sum_{i = 1}^K P(\pmb x|Y = i)P(Y = i)] &= \ln \sum_{i = 1}^K \left[\frac{1}{(2\pi)^{d/2} \det(\Sigma)^{1/2}} \exp(-\frac{1}{2}(\pmb x - \pmb \mu_i)^\top \Sigma^{-1}(\pmb x - \pmb \mu_i)) P(Y = i)\right] \\ &= \ln \left[(\frac{1}{(2\pi)^{d/2} \det(\Sigma)^{1/2}}) \cdot \sum_{i = 1}^K \exp(-\frac{1}{2}(\pmb x - \pmb \mu_i)^\top \Sigma^{-1}(\pmb x - \pmb \mu_i)) P(Y = i) \right] \\ &= - \frac{d}{2}\ln(2\pi)- \frac{1}{2}\ln(\det(\Sigma)) + \ln \left[\sum_{i = 1}^K \exp(-\frac{1}{2}(\pmb x - \pmb \mu_i)^\top \Sigma^{-1}(\pmb x - \pmb \mu_i)) P(Y = i) \right] \end{align*}

​\ln P(Y = k|\pmb x)的表达式重新组合,有:

\begin{align*} \ln P(Y = k|\pmb x) &= \left(-\frac{1}{2}\pmb x^\top \Sigma^{-1}\pmb x + \pmb \mu_k^\top \Sigma^{-1}\pmb x - \frac{1}{2} \pmb \mu_k^\top \Sigma^{-1}\pmb \mu_k - \frac{d}{2}\ln(2\pi)- \frac{1}{2}\ln(\det(\Sigma)) + \ln P(Y = k)\right) \\ &-\left( -\frac{d}{2}\ln(2\pi)- \frac{1}{2}\ln(\det(\Sigma)) + \ln \left[\sum_{i = 1}^K \exp(-\frac{1}{2}(\pmb x - \pmb \mu_i)^\top \Sigma^{-1}(\pmb x - \pmb \mu_i)) P(Y = i) \right] \right) \end{align*}

观察上式,可将​\ln P(Y = k|\pmb x)化为下述表达形式:

\ln P(Y = k|\pmb x) = z_k - C(\pmb x)

其中​C(\pmb x)是与类别​k无关的项(即包含​\pmb x^\top \Sigma^{-1}\pmb x,所有常数项以及​\ln \left[\sum_{i = 1}^K \exp(-\frac{1}{2}(\pmb x - \pmb \mu_i)^\top \Sigma^{-1}(\pmb x - \pmb \mu_i)) P(Y = i) \right],而​z_k是与类别​k相关的线性加权和,定义为:

z_k =\pmb \mu_k^\top \Sigma^{-1}\pmb x- \frac{1}{2} \pmb \mu_k^\top \Sigma^{-1}\pmb \mu_k + \ln P(Y = k)

​\pmb w^\top = \pmb \mu_k^\top \Sigma^{-1}​w_0 = - \frac{1}{2} \pmb \mu_k^\top \Sigma^{-1}\pmb \mu_k + \ln P(Y = k),则上式可以简化表达为:

\pmb z_k = \pmb w^\top \pmb x + w_0

构造增广形式​\pmb \theta = [\pmb w, w_0] \in \mathbb R^{d+1},\pmb y = [\pmb x, 1],可以化简为:

z_k = \pmb \theta^\top \pmb y

现对​\ln P(Y = k|\pmb x) = z_k - C(\pmb x)等式两边取指数,得到:

P(Y = k|\pmb x) = \frac{\exp(z_k)}{\exp(C(\pmb x))}

根据概率分布的归一性,有:

\sum_{i = 1}^K P(Y = i|\pmb x) = 1

解得:

\exp(C(\pmb x)) = \sum_{i = 1}^K \exp(z_i)

最终,可得后验概率分布函数:

P(Y = k|\pmb x) = \frac{\exp(z_k)}{\sum_{i = 1}^K\exp(z_i)}

即Softmax函数。

启发式方法构建Softmax函数

一个比较自然的想法是能否从 Logistic 函数的二分类形式拓展到多分类问题的类别条件概率分布函数上?答案是肯定的。观察二分类问题的 Logistic 函数,我们可以将其写成两种形式:

\begin{align*} P(Y = 1|X) &= \frac{\exp(z)}{1 + \exp(z)} \\ P(Y = 0|X) &= \frac{1}{1 + \exp(z)} = \frac{\exp(0)}{1 + \exp(z)}, &\text{将}1\text{视为}\exp(0) \end{align*}

其分子的形式分别为​\exp(0)​\exp(z),分母为​1 + \exp(z),即归一化常数。根据概率的公理化定义,概率值必须满足非负性、归一性和可列可加性。因此,我们可以将上述“指数化和归一化”的规律进行拓展到多个类别。

对于​K个类别的多分类问题,我们为每个类别​k定义一个线性得分​z_k = \theta_{k1}x_1 + \theta_{k2}x_2 + \cdots + \theta_{kn}(其中​\theta_{ki}是与类别​k相关的第​i个参数)。那么,给定输入​X,样本属于类别​k的概率可以表示为:

P(Y = k|X; \pmb \theta) = \frac{\exp(\theta_{k1} x_1 + \cdots +\theta_{kn})}{\sum_{j = 1}^K \exp(\theta_{j1} x_1 + \cdots + \theta_{jn})}

其中 ​k\in \{1,2,\cdots,K\}表示类别索引, ​K为类别的总数量。该式称为softmax函数。

Softmax 函数符合人的直觉:输入的值(线性得分​z_k)越大,其对应的概率 ​\exp(z_k)在总和中所占的比例就越大,因此其对应的类别概率也应该越大。

注意:在logistic函数和softmax函数中,​\exp(\cdot)中括号内的值是某一类别的线性加权和,代表的是该类别的线性得分

  • 2