我的知识记录

digSelf

从二分类到多分类:Logistic回归、梯度下降与交叉熵损失的深度剖析

从二分类到多分类:Logistic回归、梯度下降与交叉熵损失的深度剖析

在机器学习领域,分类问题是基础且广泛应用的核心任务之一,它旨在将数据点划分到预定义的类别中。从简单的二分类问题(如垃圾邮件识别、疾病诊断,将数据划分为两个互斥类别)到更复杂的多分类问题(如图像识别中的多对象分类,将数据划分到多个类别),高效准确地解决这类问题是构建智能系统的关键。

然而,要有效地解决这些分类任务,我们不仅需要构建合适的模型,更需要一套行之有效的参数求解策略。当模型参数无法通过简单的代数运算获得闭式解时,数值优化方法便成为了不可或缺的关键。

本文将系统地阐述从二分类到多分类问题的基本建模方法、参数估计过程及其优化算法。我们将从概率分布的角度构建二分类模型(如Logistic回归),详细探讨如何利用最大似然估计(MLE)对模型参数进行求解,并深入分析为何该问题通常没有闭式解。随后,我们将深入剖析梯度下降法(Gradient Descent) 这一核心数值优化工具,从其标准形式出发,严谨地证明在特定条件下(如强凸和光滑性),固定步长梯度下降法的收敛性,从而为机器学习中的参数优化提供坚实的理论基础。此外,文章还将自然地将讨论扩展至多分类问题,介绍了其概率模型(范畴分布)Softmax激活函数以及对应的交叉熵损失函数,进一步深化了对分类任务的理解。

二分类问题的概率模型与参数估计

二分类问题的概率模型构建

给定二分类问题的标注数据集​\mathcal D = \{(\pmb x_i, y_i)|\pmb x_i \in \mathbb R^{d + 1}, y_i \in \{0, 1\}\}_{i = 1}^N,集合中的样本均是独立同分布(Independently and Identically distributed, i.i.d.)地采样自真实分布,标签集合为​K = \{0, 1\}。令类别条件概率分布:

P(Y = 1|\pmb x) \doteq \mu(\pmb x)

其中​\pmb x \in \mathbb{R}^{d+1}​\mu(\pmb x)为Logistic函数,其表达式如下所示:

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

其中参数​\pmb \theta = [\theta_0, \cdots, \theta_{d}]^\top​\pmb x = [1, x_1, \cdots, x_{d}]。进而可采用0-1分布进行建模,令其参数

p \doteq P(Y = 1|\pmb x) = \mu(\pmb x)

根据0-1分布的概率分布函数,可得:

\begin{align*} P(Y = k|\pmb x) &= p^{k}(1-p)^{1-k} \\ &= \mu(\pmb x)^k(1 - \mu(\pmb x))^{1-k} \end{align*}

基于最大似然估计的参数求解

采用最大似然估计(Maximum Likelihood Estimation, MLE)方法对参数​\pmb \theta进行估计,首先构造似然函数:

\begin{align*} \mathcal{L}(\pmb \theta|\mathcal D) &\doteq P(\mathcal D|\pmb \theta) \\ &= P(\prod_{i = 1}^N(\pmb x_i, y_i)|\pmb \theta) \\ &\overset{i.i.d.}{=} \prod_{i = 1}^N P(\pmb x_i, y_i|\pmb \theta) \\ &= \prod_{i = 1}^N P(y_i|\pmb x_i, \pmb \theta) P(\pmb x_i) \\ &= \prod_{i = 1}^N \mu(\pmb x_i)^{y_i}(1 - \mu(\pmb x_i))^{1 - y_i} P(\pmb x_i) \end{align*}

等式两边同时取对数​\ln(\cdot),将连乘运算转换成加法运算,有下式:

\begin{align*} \ln \mathcal L(\pmb \theta|\mathcal D) &= \sum_{i = 1}^n \ln \left[ \mu(\pmb x_i)^{y_i}(1 - \mu(\pmb x_i)^{1 - y_i}) \right] + \sum_{i = 1}^N \ln P(\pmb x_i) \\ &= \sum_{i = 1}^N \left[y_i \ln \mu(\pmb x_i) + (1 - y_i) \ln(1 - \mu(\pmb x_i))\right] + \sum_{i = 1}^N \ln P(\pmb x_i) \end{align*}

​\ln(\cdot)是严格单调的,因此其并不影响优化问题的最优解。根据MLE,有:

\begin{align*} \mathop{\arg\max}_{\pmb \theta \in \mathbb{R}^{d + 1}} \ln \mathcal L(\pmb \theta|\mathcal D) &= \mathop{\arg\max}_{\pmb \theta \in \mathbb{R}^{d + 1}} \sum_{i = 1}^N \left[y_i \ln \mu(\pmb x_i) + (1 - y_i) \ln(1 - \mu(\pmb x_i))\right] + \sum_{i = 1}^N \ln P(\pmb x_i) \\ &= \mathop{\arg\max}_{\pmb \theta \in \mathbb{R}^{d + 1}} \sum_{i = 1}^N \left[y_i \ln \mu(\pmb x_i) + (1 - y_i) \ln(1 - \mu(\pmb x_i))\right] \\ &= \mathop{\arg\min}_{\pmb \theta \in \mathbb{R}^{d + 1}} \sum_{i = 1}^N -y_i\ln \mu(\pmb x_i) - (1 - y_i) \ln(1 - \mu(\pmb x_i)) \end{align*}

根据一阶最优性条件,有:

\begin{align*} &\nabla_{\pmb \theta} \left[-\ln \mathcal L(\pmb \theta |\mathcal D)\right] \\ =& \sum_{i = 1}^N -y_i \frac{1}{\mu(\pmb x_i)}\nabla_{\pmb \theta} \mu(\pmb x_i) - (1 - y_i)\frac{1}{1 - \mu(\pmb x_i)} \nabla_{\pmb \theta}(1-\mu(\pmb x_i)) \\ =&\sum_{i = 1}^N -\frac{y_i}{\mu(\pmb x_i)}[\mu(\pmb x_i)(1 - \mu(\pmb x_i)) \nabla_{\pmb\theta}(-\pmb \theta^\top \pmb x_i)] - \frac{1 - y_i}{1 -\mu(\pmb x_i)}[-\mu(\pmb x_i)(1 - \mu(\pmb x_i))\nabla_{\pmb \theta}(-\pmb \theta^\top \pmb x_i)] \\ =& \sum_{i = 1}^N y_i(1 - \mu(\pmb x_i)) \pmb x_i - (1 - y_i)\mu(\pmb x_i)\pmb x_i \\ =& \sum_{i = 1}^N [y_i(1 - \mu(\pmb x_i)) - (1 - y_i)\mu(\pmb x_i)]\pmb x_i \\ =& \sum_{i = 1}^N [y_i -y_i\mu(\pmb x_i) - \mu(\pmb x_i) + y_i\mu(\pmb x_i)] \pmb x_i \\ =& \sum_{i = 1}^N [y_i - \mu(\pmb x_i)]\pmb x_i = \pmb 0 \end{align*}

而方程​\sum_{i = 1}^N [y_i - \mu(\pmb x_i)]\pmb x_i = \pmb 0 无法通过有限次的代数运算(加减乘除和开方等)表示为代数方程,故其为超越方程,无闭式解。因此,需要通过数值方法近似该方程的解。

数值优化方法:梯度下降法(Gradient Descent)

梯度下降法是机器学习和优化领域中一种核心的迭代优化算法,主要用于求解光滑的无约束优化问题的数值解。接下来的两个小节将详细阐述梯度下降法的标准形式,并针对固定步长下无约束凸问题的收敛性进行严谨的数学分析。

梯度下降法的基本原理与标准形式

给定求解最小化的无约束优化问题​f(\pmb x),其中​\pmb x \in \mathbb{R}^n。假设目标函数​f(\pmb x)是光滑的,则可采用一节泰勒公式在给定点​\pmb x_t处展开,具体形式如下:

f(\pmb x_t + \Delta \pmb x) \approx f(\pmb x_t) + [\nabla f(\pmb x_t)]^\top\Delta \pmb x

​\Delta \pmb x = \gamma \pmb d,其中​\gamma \in \mathbb R_{++}, \pmb d \in \mathbb R^{n}, \|\pmb d\|_2 = 1,则上式可变为:

f(\pmb x_t + \gamma \pmb d) \approx f(\pmb x_t) + \gamma [\nabla f(\pmb x_t)]^\top \pmb d

根据Cauchy-Schwarz不等式,有:

|\nabla f(\pmb x)^\top \pmb d| \le \|\nabla f(\pmb x)\|_2 \cdot \|\pmb d\|_2 = \|\nabla f(\pmb x)\|_2

进而可得下降速度最快的方向为:

\pmb d = -\frac{\nabla f(\pmb x_t)}{\|\nabla f(\pmb x_t)\|_2}

将数量值与​\gamma合并,可定义下述形式:

\pmb x_{t + 1} = \pmb x_t + \eta \pmb d, \qquad \eta > 0, \pmb d \in \mathbb{R}^n

\pmb d = -\nabla f(\pmb x_t)

该形式即为梯度下降法的标准形式​\eta称为步长或学习率,​\pmb d称为搜索方向。当​\eta取固定值时,该方法称为固定步长的梯度下降法

固定步长梯度下降法的收敛性分析

强凸与光滑假设及问题阐述

给定最小化的无约束优化问题​f(\pmb x),其中​\pmb x \in \mathbb{R}^n。假设目标函数​f(\pmb x)为光滑的凸函数,且函数​f(\pmb x)还需要满足​\mu-强凸(​\mu-Strongly Convex),即满足下式:

f(\pmb x) \ge f(\pmb y) + \nabla f(\pmb y)(\pmb x - \pmb y) + \frac{\mu}{2}\|\pmb x - \pmb y\|_2^2

其中​\mu > 0,且​\forall \pmb x, \pmb y \in \mathbb{R}^n。与此同时,函数​f(\pmb x)要满足​L-光滑性(​L-Smoothness),即满足下式:

f(\pmb x) \le f(\pmb y) + \nabla f(\pmb y)(\pmb x- \pmb y) + \frac{L}{2}\|\pmb x - \pmb y\|_2^2

其中​L > 0,且​\forall \pmb x, \pmb y \in \mathbb{R}^n。在有了上述假设后,问题变为给定任意初始点​\pmb x_0,梯度下降:

\pmb x_{t + 1} = \pmb x_t + \eta \pmb d

其中搜索步长​\eta \in \mathbb{R}_{++},搜索方向为负梯度方向,即:

\pmb d = -\nabla f(\pmb x_t)

是否收敛于最优解​\pmb x_*

迭代收敛过程的详细推导

由于函数​f(\pmb x)​L光滑的,则有下式

\begin{align*} f(\pmb x) \le f(\pmb y) + \nabla f(\pmb y)(\pmb x -\pmb y) + \frac{L}{2}\|\pmb x- \pmb y\|_2^2 \end{align*}

成立,则有:

\begin{align*} f(\pmb y - \frac{\nabla f(\pmb y)}{L}) &\le f(\pmb y) + \nabla f(\pmb y)(\pmb y - \frac{\nabla f(\pmb y)}{L} - \pmb y) + \frac{L}{2}\|\pmb y -\frac{\nabla f(\pmb y)}{L} - \pmb y\|_2^2 \\ &\le f(\pmb y) - \frac{1}{L}\|\nabla f(\pmb y)\|_2^2 + \frac{L}{2} \cdot \frac{1}{L^2}\|\nabla f(\pmb y)\|_2^2 \\ &= f(\pmb y) - \frac{1}{2L} \|\nabla f(\pmb y)\|_2^2 \end{align*}

由于在点​\pmb x_*处取得最小值,有:

f(\pmb x_*) \le f(\pmb y - \frac{\nabla f(\pmb y)}{L}) \le f(\pmb y) - \frac{1}{2L} \|\nabla f(\pmb y)\|_2^2

成立,进而有:

\frac{1}{2L}\|\nabla f(\pmb y)\|_2^2 \le f(\pmb y) - f(\pmb x_*) \iff \|\nabla f(\pmb y)\|_2^2 \le 2L(f(\pmb y) - f(\pmb x_*))

代入​\pmb y = \pmb x_t,则有:

\|\nabla f(\pmb x_t)\|_2^2 \le 2L(f(\pmb x_t) - f(\pmb x_*))

成立。此外,由于​f(\pmb x)​\mu强凸的,有:

\begin{align*} &f(\pmb x_*) \ge f(\pmb x_t) + \nabla f(\pmb x_t)^\top (\pmb x_* - \pmb x_t) + \frac{\mu}{2}\|\pmb x_* - \pmb x_t\|_2^2 \\ \implies & \nabla f(\pmb x_t)^\top (\pmb x_* - \pmb x_t) \le f(\pmb x_*) - f(\pmb x_t) - \frac{\mu}{2}\|\pmb x_t - \pmb x_*\|_2^2 \end{align*}

计算第​t+1次迭代时,点​\pmb x_{t +1}与最优解点的距离:

\begin{align*} \|\pmb x_{t + 1} - \pmb x_*\|_2^2 &= \|\pmb x_t - \eta \nabla f(\pmb x_t) - \pmb x_*\|_2^2 \\ &= (\pmb x_t - \pmb x_* - \eta \nabla f(\pmb x_t))^\top (\pmb x_t - \pmb x_* - \eta \nabla f(\pmb x_t)) \\ &= \|\pmb x_t - \pmb x_*\|_2^2 + 2\eta\left[\nabla f(\pmb x)\right]^\top (\pmb x_* - \pmb x_t) + \eta^2 \|\nabla f(\pmb x_t)\|_2^2 \end{align*}

代入由​L光滑和​\mu强凸所得到的不等式,有:

\begin{align*} \|\pmb x_{t + 1} - \pmb x_*\|_2^2 &= \|\pmb x_t - \pmb x_*\|_2^2 + 2\eta\left[\nabla f(\pmb x)\right]^\top (\pmb x_* - \pmb x_t) + \eta^2 \|\nabla f(\pmb x_t)\|_2^2 \\ &\le \|\pmb x_t - \pmb x_*\|_2^2 + 2\eta \left[f(\pmb x_*) - f(\pmb x_t) - \frac{\mu}{2}\|\pmb x_t - \pmb x_*\|_2^2\right] + 2\eta^2L(f(\pmb x_t) - f(\pmb x_*)) \\ &= (1 - \eta \mu)\|\pmb x_t - \pmb x_*\|_2^2 + 2\eta(\eta L - 1)[f(\pmb x_t) - f(\pmb x_*)] \end{align*}

为使对于任意的初始点​\pmb x_0梯度下降法均收敛,应保证:

\lim_{t \to \infty} \|\pmb x_{t + 1} - \pmb x_*\|_2^2 = 0

即需要保证第二项为​0,且第一项的系数的绝对值小于​1。因此,可令​\eta = \frac{1}{L},有:

\|\pmb x_{t + 1} - \pmb x_*\|_2^2 \le (1 - \frac{\mu}{L})\|\pmb x_t - \pmb x_*\|_2^2

根据​\mu凸和​L光滑的性质可知​0 < \mu < L,自动保证了系数​0 < 1 - \mu/L < 1成立,根据递推公式可得梯度下降法收敛。

从二分类到多分类:理论扩展与损失函数

分类决策:从阈值法到 argmax 与独热编码

文章从潜在变量到概率预测:深入理解逻辑斯蒂与Softmax函数详细的介绍了如何从基本假设推出了Logistic函数和Softmax,这些函数能够为分类问题输出类别的概率预测。为了从这些概率预测中得到最终的离散类别判断,我们需要一个决策机制。为了从这些概率预测中得到最终的离散类别判断,需要一个决策机制

对于二分类问题,一种常见的决策方式是阈值法,即如果某一类别的预测概率超过预设阈值(例如 0.5),则将输入划分为该类别。而对于多分类问题,更常用且自然的方法是选择概率最大的那个类别作为预测类别,这通过​\arg\max函数实现。

​\arg\max函数接收一个包含多个数值的向量(例如 Softmax 输出的概率分布),并返回其中最大值对应的索引。这个索引即代表了模型认为概率最大的类别。例如,对于 Softmax 输出的概率向量​[0.1, 0.7, 0.2]​\arg\max函数会返回 1(假设索引从0开始),表示类别2是概率最大的预测。需要注意的是,​\arg\max函数本身是一个非连续的操作,因为它直接返回一个离散的索引。

在神经网络的分类任务中,Softmax 函数和​\arg\max函数通常协同工作,但扮演着不同的角色

  • Softmax 函数:作为神经网络输出层的激活函数,它将网络的原始输出分数(logits)转换为光滑且可导的概率分布。它的可导性对于使用梯度下降等优化算法来训练神经网络至关重要。Softmax 函数能够保持原始分数的相对大小关系,即如果一个类别的分数高于另一个类别,那么其对应的Softmax概率也会更高(即保序性)。
  • ​\arg\max函数:在模型训练完成后进行推理或预测时,我们通常会将 Softmax 输出的概率分布作为输入,然后应用​\arg\max函数来确定最终的离散类别预测。例如,Softmax 输出 [0.1, 0.7, 0.2] 后,​\arg\max 就会指明“类别2”是预测结果。

简而言之,Softmax 负责提供可训练的概率分布,而​\arg\max负责在这些概率上做出最终的硬性分类决策。 Softmax 并非​\arg\max的近似,它们是完成分类任务中不同阶段的两个关键组件。

在分类问题中,一般会选择独热(One-hot)编码来标记某一类别。独热编码是一个稀疏向量,在所属类别下的元素位置值为1,其余位置均为0。例如对于三分类问题,​[0, 1,0]表示类别​2。在模型预测时,​\arg\max确定的索引常常会被转换为独热编码的形式,作为模型的最终预测输出。

多分类问题:多项分布与范畴分布

二分类问题可以视为伯努利分布(Bernoulli Distribution,又称0-1分布)。它描述的是一次独立随机试验的结果只有发生或不发生两种情况的问题的建模,即在1次独立随机试验中,事件 A 发生与否的概率分布。例如,投掷一枚硬币,只有正面朝上或者反面朝上两种结果,因此可以采用伯努利分布来进行建模。

此外,伯努利分布是二项分布(Binomial Distribution)的特殊情况,即当试验次数​n=1时。二项分布描述的是在 ​n 次独立重复的伯努利试验中,事件​A 发生 ​k 次的概率。

多分类问题指的是在一次随机试验中,可能发生的结果不止一类,而是有多种类别。为了对这类问题进行建模,我们从二项分布出发,将其扩展到多项分布(Multinomial Distribution)。

在多项分布中,我们将每次试验的所有可能结果划分为​N个互斥的类别,每个类别所出现的概率记为​p_1, p_2, \cdots, p_N。多项分布描述的是在 ​n次独立重复试验中,各类出现次数分别为​k_1, k_2, \cdots, k_N的概率:

P(X_1 = k_1, \cdots, X_N = k_N|p_1, p_2, \cdots, p_N) = \frac{n!}{k_1!k_2!\cdots k_N!} p_1^{k_1}p_2^{k_2}\cdots p_K^{k_N}

其中​k_1 + \cdots + k_N = n,且所有类别的概率之和​\sum_{i = 1}^n p_i = 1。这里的 ​n 是试验总次数,​\pmb p = [p_1, \cdots, p_n]^\top是每个类别的发生概率向量,它们都是模型的参数。

在机器学习的单次分类任务中,我们通常只关心一次试验的结果(即一个样本属于哪个类别),而不是多次试验中各类出现的次数。因此,我们使用的是多项分布的一个特殊情况:当试验次数​n​1时。这种分布被称为范畴分布(Categorical Distribution)。

范畴分布描述的是一次试验中,一个离散随机变量​X​N 个类别中任意一个特定类别的概率。如果我们将类别的结果用 独热编码(One-hot Encoding) 的形式表示为向量 ​\pmb y=(y_1, y_2, \cdots, y_N)(其中只有一个​y_j=1,其余为​0),那么范畴分布的概率质量函数(PMF)可以表示为:

P(Y=\pmb y|p_1, \cdots, p_N) = \prod_{i = 1}^N p_i^{y_i}

这个表达式意味着,如果观测到的结果是类别​j(即 ​\pmb y​y_j=1),那么该结果的概率就是​p_j。范畴分布是多分类问题中最基础的概率模型。当类别数量​N=2时,范畴分布就退化为伯努利分布。最后,对于​N个类别的由​M个观测样本所构成的数据集的多分类问题,依据MLE策略可获得损失函数:

L = -\sum_{i = 1}^M\sum_{j = 1}^N y_{ij} \ln p_{ij}

该函数称为交叉熵损失

  • 0