前言
因为没有深度学习的实践经历,很多理论的知识有些淡忘了,本系列旨在对深度学习过程中一些重难点知识再次梳理。
频率学派认知的线性回归问题——极大似然估计
极大似然估计
极大似然估计(Maximum Likelihood Estimation,MLE)是一种基于频率学派的参数估计方法,其核心思想是在所有可能的参数值中,找到一个使得已观测到的样本数据出现概率最大的参数值。
考虑一个概率模型,其概率密度函数表示为 $f(x; \theta)$,其中 $\theta$ 是需要估计的参数,$x$ 是观测到的样本数据。
给定样本集 $X = \{x_1, x_2, …, x_n\}$,似然函数 $L(\theta)$ 定义为所有样本数据在参数 $\theta$ 下出现的联合概率:
极大似然估计值 $\hat{\theta}$ 是使似然函数 $L(\theta)$ 最大化的 $\theta$ 值:$\hat{\theta} = \arg \max_\theta L(\theta)$。为了简化求解过程,通常使用对数似然函数 $\ell(\theta) = \log L(\theta)$,即:
因此,求极大似然估计值 $\hat{\theta}$ 也可以转化为最大化对数似然函数。
最小二乘法和极大似然估计
最小二乘法(Least Sqaure Method, LSM)是线性回归中最常用的参数估计方法之一。它的目标是最小化预测值与实际观察值之间差异的平方和。对于模型 $y = Xw + \epsilon$,其中 $y$ 是因变量,$X$ 是设计矩阵,$w$ 是系数向量(为了简化问题,$b$ 可以合并到 $w$ 中),$\epsilon$ 是误差项,最小二乘法通过求解以下优化问题来估计 $w$:
这可以通过求解正规方程(Normal Equation)$X^TX\hat{w} = X^Ty$ 来实现。最小二乘法的意义是不证自明的。
如前所述,极大似然估计是一种在给定观测数据的条件下,通过最大化似然函数来估计模型参数的方法。在线性回归模型中,如果假设误差项 $\epsilon$ 遵循正态分布 $\epsilon \sim N(0, \sigma^2I)$,那么对于给定的数据 $(x_i, y_i)$,似然函数为:
对数似然函数为:
最大化 $\log L(w)$ 相当于最小化 $\sum_{i=1}^{n}(y_i - x_i^Tw)^2$,这与最小二乘法的目标一致。
事实上,极大似然估计视角下线性回归更贴近一个传统认知上的优化问题。对于任何一个参数 $w$ ,任意的 $x$ 都会产生一个 $y$ 的分布。由此,线性回归问题就变成了,我期待给定的参数 $w$ 能让 $y$ 十分可能从上述分布中采集出来,即一个极大似然问题。单纯的认知误差项是不符合直觉的,但倘若从分布去思考,二者的联系便豁然开朗了。然而,必须指出的是:机器学习和统计学习问题都在假定样本误差的前提下进行,某种意义上:采样误差最小的优化过程和极大似然估计是一致的。
Softmax函数和多分类问题
Softmax函数
线性回归通常用于预测连续值,但当我们想要处理分类问题时,可以利用Softmax函数将线性回归模型扩展到多分类问题。本文将介绍Softmax函数的基本概念、损失函数以及求导过程。Softmax函数是一个将任意实数向量转换为概率分布的函数。对于一个给定的实数向量$o$,Softmax函数定义为:
其中,$o_i$是向量$o$中的第$i$个元素,分母是所有$e^{o_j}$的和,确保了所有输出值的和为1,从而构成一个概率分布。
在多类分类问题中,每个类别都有一个得分,这些得分通过Softmax函数转换为概率。模型的输出是一个概率分布,表示输入属于每个类别的概率。对于一个有$K$个类别的分类问题,模型输出为:
其中,$o_k = w_k^T x + b_k$是类别$k$的得分,$w_k$和$b_k$是模型参数。
损失函数
Softmax回归通常使用交叉熵损失函数(Cross-Entropy Loss),为每个样本定义如下:
其中,$y_{ik}$是一个指示变量,如果样本$i$属于类别$k$,则$y_{ik}=1$,否则为$0$。$P(y=k|x_i)$是模型预测样本$i$属于类别$k$的概率。
对于所有样本,损失函数是每个样本损失$L_i$的平均值。
下面,我们使用极大似然估计推到损失函数:
假设我们有一个数据集,其中包含$n$个独立同分布的样本,每个样本$i$属于$K$个类别中的一个。模型预测的概率$P(y=k|x_i)$表示给定输入$x_i$时,样本属于类别$k$的概率。 对于所有样本,似然函数$L$是模型对所有观测数据分类正确的联合概率:
在实践中,为了便于计算,通常对似然函数取对数得到对数似然函数:
在Softmax模型中,$P(y=k|x_i)$可以通过Softmax函数计算得到。因此,对数似然函数可以写为:
其中$o_j = w_j^T x_i + b_j$是类别$j$的得分。
定义损失函数:
损失函数的求导
现在,我们要对交叉熵损失函数关于softmax函数的输出$o_j$求导。假设对于一个样本$i$,真实类别是$c$,则$y_i$是一个one-hot向量,其中$y_c = 1$,而对其他类别$j \neq c$,$y_j = 0$。 损失函数关于$o_j$的偏导数计算如下:
由于$y_i$是one-hot编码,我们可以得到简化后的偏导数公式:
事实上,就是softmax模型分配的概率和实际概率的差值。