前言
因为没有深度学习的实践经历,很多理论的知识有些淡忘了,本系列旨在对深度学习过程中一些重难点知识再次梳理。
频率学派认知的线性回归问题——极大似然估计
极大似然估计
极大似然估计(Maximum Likelihood Estimation,MLE)是一种基于频率学派的参数估计方法,其核心思想是在所有可能的参数值中,找到一个使得已观测到的样本数据出现概率最大的参数值。
考虑一个概率模型,其概率密度函数表示为
f(x;θ)
,其中
θ
是需要估计的参数,
x
是观测到的样本数据。
给定样本集
X={x1,x2,...,xn}
,似然函数
L(θ)
定义为所有样本数据在参数
θ
下出现的联合概率:
L(θ)=i=1∏nf(xi;θ)
极大似然估计值
θ^
是使似然函数
L(θ)
最大化的
θ
值:
θ^=argmaxθL(θ)
。为了简化求解过程,通常使用
对数似然函数 ℓ(θ)=logL(θ)
,即:
ℓ(θ)=i=1∑nlogf(xi;θ)
因此,求极大似然估计值
θ^
也可以转化为最大化对数似然函数。
θ^=argθmaxℓ(θ)
最小二乘法和极大似然估计
最小二乘法(Least Sqaure Method, LSM)是线性回归中最常用的参数估计方法之一。它的目标是最小化预测值与实际观察值之间差异的平方和。对于模型
y=Xw+ϵ
,其中
y
是因变量,
X
是设计矩阵,
w
是系数向量(为了简化问题,
b
可以合并到
w
中),
ϵ
是误差项,最小二乘法通过求解以下优化问题来估计
w
:
w^=argwmini=1∑n(yi−xiTw)2
这可以通过求解正规方程(Normal Equation)
XTXw^=XTy
来实现。最小二乘法的意义是不证自明的。
如前所述,极大似然估计是一种在给定观测数据的条件下,通过最大化似然函数来估计模型参数的方法。在线性回归模型中,如果假设误差项
ϵ
遵循正态分布
ϵ∼N(0,σ2I)
,那么对于给定的数据
(xi,yi)
,似然函数为:
L(w)=i=1∏n2πσ1exp(−2σ2(yi−xiTw)2)
对数似然函数为:
logL(w)=−2nlog(2π)−nlogσ−2σ21i=1∑n(yi−xiTw)2
最大化
logL(w)
相当于最小化
∑i=1n(yi−xiTw)2
,这与最小二乘法的目标一致。
事实上,极大似然估计视角下线性回归更贴近一个传统认知上的优化问题。对于任何一个参数
w
,任意的
x
都会产生一个
y
的分布。由此,线性回归问题就变成了,我期待给定的参数
w
能让
y
十分可能从上述分布中采集出来,即一个极大似然问题。单纯的认知误差项是不符合直觉的,但倘若从分布去思考,二者的联系便豁然开朗了。然而,必须指出的是:机器学习和统计学习问题都在假定样本误差的前提下进行,某种意义上:采样误差最小的优化过程和极大似然估计是一致的。
Softmax函数和多分类问题
Softmax函数
线性回归通常用于预测连续值,但当我们想要处理分类问题时,可以利用Softmax函数将线性回归模型扩展到多分类问题。本文将介绍Softmax函数的基本概念、损失函数以及求导过程。Softmax函数是一个将任意实数向量转换为概率分布的函数。对于一个给定的实数向量
o
,Softmax函数定义为:
Softmax(oi)=∑jeojeoi
其中,
oi
是向量
o
中的第
i
个元素,分母是所有
eoj
的和,确保了所有输出值的和为1,从而构成一个概率分布。
在多类分类问题中,每个类别都有一个得分,这些得分通过Softmax函数转换为概率。模型的输出是一个概率分布,表示输入属于每个类别的概率。对于一个有
K
个类别的分类问题,模型输出为:
P(y=k∣x)=Softmax(ok)=∑j=1Keojeok
其中,
ok=wkTx+bk
是类别
k
的得分,
wk
和
bk
是模型参数。
损失函数
Softmax回归通常使用交叉熵损失函数(Cross-Entropy Loss),为每个样本定义如下:
Li=−k=1∑Kyiklog(P(y=k∣xi))
其中,
yik
是一个指示变量,如果样本
i
属于类别
k
,则
yik=1
,否则为
0
。
P(y=k∣xi)
是模型预测样本
i
属于类别
k
的概率。
对于所有样本,损失函数是每个样本损失
Li
的平均值。
下面,我们使用极大似然估计推到损失函数:
假设我们有一个数据集,其中包含
n
个独立同分布的样本,每个样本
i
属于
K
个类别中的一个。模型预测的概率
P(y=k∣xi)
表示给定输入
xi
时,样本属于类别
k
的概率。 对于所有样本,似然函数
L
是模型对所有观测数据分类正确的联合概率:
L=i=1∏nP(y=yi∣xi)
在实践中,为了便于计算,通常对似然函数取对数得到对数似然函数:
logL=i=1∑nlogP(y=yi∣xi)
在Softmax模型中,
P(y=k∣xi)
可以通过Softmax函数计算得到。因此,对数似然函数可以写为:
logL=i=1∑nlog(∑j=1Keojeoyi)
其中
oj=wjTxi+bj
是类别
j
的得分。
定义损失函数:
l=−i=1∑nyilogP(y=yi∣xi)
损失函数的求导
现在,我们要对交叉熵损失函数关于softmax函数的输出
oj
求导。假设对于一个样本
i
,真实类别是
c
,则
yi
是一个one-hot向量,其中
yc=1
,而对其他类别
j=c
,
yj=0
。 损失函数关于
oj
的偏导数计算如下:
∂oj∂l=∂oj∂(−i=1∑nyilogP(y=yi∣xi))
由于
yi
是one-hot编码,我们可以得到简化后的偏导数公式:
∂oj∂l=−yj+softmax(oj)
事实上,就是softmax模型分配的概率和实际概率的差值。