在机器学习领域,很多模型都是属于广义线性模型(Generalized Linear Model,GLM),如线性回归,逻辑回归,Softmax回归等。这篇文章广义线性模型,并由它推导出线性回归,逻辑回归,Softmax回归的表达式。
广义线性模型是基于指数分布族的,所以我们先来看一下指数分布族的一般形式:
其中, η 为自然参数, T(y) 为充分统计量(一般情况下,如高斯分布和伯努利分布中, T(y)=y ); a(η) 为累积量函数;在一般情况下, η 为实数(多项式分布中 η 为向量)。给定 T,a,b, 通过参数 η ,我们可以得到指数分布族中的各类分布。
证明高斯分布属于指数分布族:
因为方差
σ2
项对我们最终求
θ
和
hθ(x)
没有影响,因此为了简化计算,我们令
σ=1
.
因此:
由以上分析,我们可以得到结论:高斯分布属于指数分布族的一类。
证明伯努利分布属于指数分布族:
因此:
由以上分析,我们可以得到结论:伯努利分布属于指数分布族的一类。
同时,由 η=logϕ1−ϕ 可以得到 ϕ=11+e−η ,这就是我们熟悉的sigmoid函数。
为了推导广义线性模型,我们先做以下三个假设:
1. 给定
x,θ,
输出
y
满足参数为
2.
h(x)=E[y|x]
(线性回归和逻辑回归都满足该式子,例如逻辑回归中,
h(x)=p(y=1|x;θ)
,数学期望
E[y|x]=1∗p(y=1|x;θ)+0∗p(y=0|x;θ)
,因此
h(x)=E[y|x]
)
3. 自然参数
η
与输入特征变量
x
线性相关,即
个人总结:若模型的分布属于指数分布族,那么该模型可以由广义线性模型推导出来。
由广义线性模型推导出线性回归:
我们知道,在线性回归中,
y|x;θ−N(μ,σ2)
,即输出
y
满足均值为
其中,第一个等式由假设2得到,第二个等式是高斯分布的数学期望,第三个等式由假设1得到,即由高斯分布属于指数分布族推导出来,第四个等式由假设3得到。
由广义线性模型推导出逻辑回归:
我们知道,在逻辑回归中,
y|x;θ−Bernoulli(ϕ)
,其中
ϕ=p(y=1|x;θ)
,即输出
y
满足伯努利分布;由广义线性模型得到:
其中,第一个等式由假设2得到,第二个等式是高斯分布的数学期望,第三个等式是我们的定义,第四个等式由假设1得到,即由伯努利分布属于指数分布族推导出来,第五个等式由假设3得到。
由广义线性模型推导出多项式回归:
Softmax回归本质上是一个多分类问题。假设输出
y
有k类,即
我们对多项式回归输出的k个可能值参数化:
ϕ1,ϕ2,...,ϕk
,表示每个输出值的概率大小。当然,因为概率和为1,所以这么多个参数是冗余的,即其中一个参数可以由其他所有参数推导出来,比如
ϕk=1−∑k−1i=1ϕi
我们定义
T(y)ϵRk−1
为以下表达式:
我们可以看到, T(y) 是一个 k−1 维的向量,而不是一个实数。我们定义 (T(y))i 为 T(y) 的第 i 个元素。
为了方便表示,我们使用
多项式分布:
因此:
由以上分析可得到,多项式分布属于指数分布族的一类。
而且,对于类别i,有 ηi=logϕiϕk ,所以, ϕi=ϕkeηi ,累加所有类别的概率为1,即: ∑ki=1ϕi=∑ki=1ϕkeηi=1 ,所以 ϕk=1∑ki=1eηi ,因此 ϕi=eηi∑kj=1eηj ,这便是softmax函数。
预测输出值
输出值为每个类别的概率,且 p(y=k|x;θ)=1−∑k−1i=1p(y=i|x;θ)
接下来,我们开看一下参数的优化:
对数似然函数:
对类别l的参数求导:
注意: ∂l(θ)∂θj 只是针对一个类别所做的偏导,我们还需要继续对类别的每个参数做偏导,最后对所有类别执行相同求导操作,这样才算完整地完成参数优化的一次迭代。接着,使用梯度上升法不断迭代,直到收敛。
最后,我们的预测输出值的表达式如下:
取 hθ(x) 中概率最大的那一项作为输出值。例如:假设预测样本预测值为 hθ(x)=[0.1,0,0.05,0.6,0.05,0.05,0.1,0.05,0,0] ,那么该测试样本被判定为4.
值得注意的是,softmax函数存在参数冗余的问题,因此优化得到的最优参数不是唯一的。我自己在搭建卷积神经网络,使用softmax函数时就出现这个问题,导致得不到想要的结果。解决方法是在损失函数处添加权重衰减项。(具体的我就不自己写了,码了这么多公式实在不想再写了。当一回伸手党,直接贴图。有兴趣的同学可以到 Softmax回归查看详细内容)