在机器学习领域,很多模型都是属于广义线性模型(Generalized Linear Model, GLM),如线性回归,逻辑回归,Softmax回归等。
广义线性模型有3个基本假设:
(1) 样本观测值
y
i
y_i
yi满足带参数
η
\eta
η的指数分布族。即GLM是基于指数分布族的,所以我们先来看一下指数分布族的一般形式:
p
(
y
;
η
)
=
b
(
y
)
e
x
p
(
η
T
T
(
y
)
−
a
(
η
)
)
p(y;\eta)=b(y)exp(\eta^TT(y)-a(\eta))
p(y;η)=b(y)exp(ηTT(y)−a(η))
其中, η \eta η 为自然参数,在一般情况下, η \eta η为实数(多项式分布中 η \eta η为向量)。 T ( y ) T(y) T(y)为充分统计量(一般情况下,如高斯分布和伯努利分布中, T ( y ) = y T(y)=y T(y)=y)。 a ( η ) a(\eta) a(η)为累积量函数。给定 T , a , b T,a,b T,a,b, 通过参数 η \eta η ,我们可以得到指数分布族中的各类分布。
进一步解释下什么是充分统计量: T ( y ) T(y) T(y)是未知分布 p p p参数 θ \theta θ的充分统计量,当且仅当 T ( y ) T(y) T(y)能够提供 θ \theta θ的全部信息。比如在正态分布中,样本均值和方差就是未知的正态分布的充分统计量,因为这两个参数可以完全描述整个样本的分布特性。
对于假设1,换句话说:给定 x , θ x,\theta x,θ, 输出 y y y 满足参数为 η \eta η的指数族分布。
(2) 分布模型参数 η \eta η与输入样本 x x x呈线性关系,即 η = θ T x \eta=\theta^{T}x η=θTx。(当 η \eta η为变量时, η i = θ i T x \eta_i=\theta_i^Tx ηi=θiTx)
(3) h ( x ) = E [ y ∣ x ] h(x)=E[y|x] h(x)=E[y∣x](线性回归和逻辑回归都满足该式,例如逻辑回归中, h ( x ) = p ( y = 1 ∣ x ; θ ) h(x)=p(y=1|x;\theta) h(x)=p(y=1∣x;θ),数学期望 E [ y ∣ x ] = 1 ∗ p ( y = 1 ∣ x ; θ ) + 0 ∗ p ( y = 0 ∣ x ; θ ) E[y|x]=1*p(y=1|x;\theta)+0*p(y=0|x;\theta) E[y∣x]=1∗p(y=1∣x;θ)+0∗p(y=0∣x;θ),因此 h ( x ) = E [ y ∣ x ] h(x)=E[y|x] h(x)=E[y∣x])
接下来,我们首先证明高斯分布、伯努利分布和多项式分布属于指数分布族,然后我们由广义线性模型推导出线性回归,逻辑回归和多项式回归。这是因为:线性回归假设样本和噪声服从高斯分布,逻辑回归假设样本服从伯努利分布,多项式回归假设样本服从多项式分布。
注:关于多项式回归,会介绍得稍微详细点。
文章目录
一、证明分布属于指数分布族
1.1 证明高斯分布属于指数分布族
因为方差 σ 2 \sigma^2 σ2项对我们最终求 θ \theta θ和 h θ ( x ) h_\theta(x) hθ(x)没有影响,,因此为了简化计算,我们令 σ = 1 \sigma=1 σ=1:
p ( y ; u ) = 1 2 π σ e x p ( − ( y − u ) 2 2 σ 2 ) = 1 2 π e x p ( − ( y − u ) 2 2 ) = 1 2 π e x p ( − 1 2 y 2 ) ∗ e x p ( u y − 1 2 u 2 ) \begin{aligned} p(y;u)&={1\over \sqrt{2\pi}\sigma}exp(-{(y-u)^2\over 2\sigma^2})\\ &= {1\over \sqrt{2\pi}}exp(-{(y-u)^2\over 2})\\ &={1\over \sqrt{2\pi}}exp(-{1\over 2}y^2)*exp(uy-{1\over 2}u^2) \end{aligned} p(y;u)=2πσ1exp(−2σ2(y−u)2)=2π1exp(−2(y−u)2)=2π1exp(−21y2)∗exp(uy−21u2)
因此:
b
(
y
)
=
1
2
π
e
x
p
(
−
1
2
y
2
)
η
=
u
T
(
y
)
=
y
a
(
η
)
=
1
2
u
2
=
1
2
η
2
\begin{aligned} b(y)&={1\over \sqrt{2\pi}}exp(-{1\over 2}y^2)\\ \eta&=u \\ T(y) &=y\\ a(\eta)&={1\over 2}u^2 ={1\over 2}\eta^2 \end{aligned}
b(y)ηT(y)a(η)=2π1exp(−21y2)=u=y=21u2=21η2
由以上分析,我们可以得到结论:高斯分布属于指数分布族的一类。
1.2 证明伯努利分布属于指数分布族
p ( y ; ϕ ) = ϕ y ( 1 − ϕ ) 1 − y = e x p ( y l o g ϕ + ( 1 − y ) l o g ( 1 − ϕ ) ) = e x p ( y l o g ϕ 1 − ϕ + l o g ( 1 − ϕ ) ) \begin{aligned} p(y;\phi)&=\phi^y(1-\phi)^{1-y}\\ &= exp(ylog\phi+(1-y)log(1-\phi))\\ &=exp(ylog{\phi\over 1-\phi}+log(1-\phi)) \end{aligned} p(y;ϕ)=ϕy(1−ϕ)1−y=exp(ylogϕ+(1−y)log(1−ϕ))=exp(ylog1−ϕϕ+log(1−ϕ))
因此:
b
(
y
)
=
1
η
=
l
o
g
ϕ
1
−
ϕ
T
(
y
)
=
y
a
(
η
)
=
−
l
o
g
(
1
−
ϕ
)
=
l
o
g
(
e
η
+
1
)
\begin{aligned} b(y)&=1\\ \eta&=log{\phi\over 1-\phi} \\ T(y) &=y\\ a(\eta)&=-log(1-\phi)=log(e^\eta+1) \end{aligned}
b(y)ηT(y)a(η)=1=log1−ϕϕ=y=−log(1−ϕ)=log(eη+1)
由以上分析,我们可以得到结论:伯努利分布属于指数分布族的一类。
同时,由 η = l o g ϕ 1 − ϕ \eta=log{\phi\over 1-\phi} η=log1−ϕϕ可以得到 ϕ = 1 1 + e − η \phi={1\over 1+e^{-\eta}} ϕ=1+e−η1,这就是我们熟悉的sigmoid函数。 同时根据第2个假设中的 η = θ T x \eta=\theta^{T}x η=θTx,则 η = l o g ( ϕ 1 − ϕ ) = θ T x \eta=log(\frac{\phi}{1-\phi})=\theta^{T}x η=log(1−ϕϕ)=θTx
1.3 证明多项式分布属于指数分布族
Softmax回归本质上是一个多分类问题。假设输出
y
y
y 有
k
k
k类,即
y
ϵ
[
1
,
2
,
.
.
.
,
k
]
y\epsilon [1,2,...,k]
yϵ[1,2,...,k]。我们对多项式回归输出的
k
k
k个可能值参数化:
ϕ
1
,
ϕ
2
,
.
.
.
,
ϕ
k
\phi_1,\phi_2,...,\phi_k
ϕ1,ϕ2,...,ϕk表示每个输出值的概率大小。当然,因为概率和为1,所以这么多个参数是冗余的,即其中一个参数可以由其他所有参数推导出来,比如
ϕ
k
=
1
−
∑
i
=
1
k
−
1
ϕ
i
\phi_k = 1-\sum_{i=1}^{k-1}\phi_i
ϕk=1−∑i=1k−1ϕi。
我们定义
T
(
y
)
ϵ
R
k
−
1
T(y)\epsilon R^{k-1}
T(y)ϵRk−1为以下表达式:
T ( 1 ) = [ 1 0 0 ⋮ 0 ] , T ( 2 ) = [ 0 1 0 ⋮ 0 ] , T ( 3 ) = [ 0 0 1 ⋮ 0 ] , . . . , T ( k − 1 ) = [ 0 0 0 ⋮ 1 ] , T ( k ) = [ 0 0 0 ⋮ 0 ] T(1)=\begin{bmatrix} 1 \\ 0 \\ 0 \\ \vdots\\ 0 \end{bmatrix},T(2)=\begin{bmatrix} 0 \\ 1 \\ 0 \\ \vdots\\ 0 \end{bmatrix},T(3)=\begin{bmatrix} 0 \\ 0 \\ 1 \\ \vdots\\ 0 \end{bmatrix},...,T(k-1)=\begin{bmatrix} 0 \\ 0 \\ 0 \\ \vdots\\ 1 \end{bmatrix},T(k)=\begin{bmatrix} 0 \\ 0 \\ 0 \\ \vdots\\ 0 \end{bmatrix} T(1)=⎣⎢⎢⎢⎢⎢⎡100⋮0⎦⎥⎥⎥⎥⎥⎤,T(2)=⎣⎢⎢⎢⎢⎢⎡010⋮0⎦⎥⎥⎥⎥⎥⎤,T(3)=⎣⎢⎢⎢⎢⎢⎡001⋮0⎦⎥⎥⎥⎥⎥⎤,...,T(k−1)=⎣⎢⎢⎢⎢⎢⎡000⋮1⎦⎥⎥⎥⎥⎥⎤,T(k)=⎣⎢⎢⎢⎢⎢⎡000⋮0⎦⎥⎥⎥⎥⎥⎤
我们可以看到, T ( y ) T(y) T(y) 是一个 k − 1 k−1 k−1 维的向量,而不是一个实数。我们定义 ( T ( y ) ) i (T(y))_i (T(y))i 为 T ( y ) T(y) T(y) 的第 i i i 个元素。
为了方便表示,我们使用 1 { . } 1\{.\} 1{.}作为指示性函数,当括号里的值为真时, 1 { . } = 1 1\{.\}=1 1{.}=1否则 1 { . } = 0 1\{.\}=0 1{.}=0。比如: 1 { 2 = 3 } = 0 1\{2=3\}=0 1{2=3}=0 , 1 { 3 = 4 − 1 } = 1 1\{3=4-1\}=1 1{3=4−1}=1。根据以上定义,我们可以得到下式: ( T ( y ) ) i = 1 { y = i } (T(y))_i=1\{y=i\} (T(y))i=1{y=i},且 E [ ( T ( y ) ) i ] = p ( y = i ) = ϕ i . E[(T(y))_i]=p(y=i)=\phi_i. E[(T(y))i]=p(y=i)=ϕi.
多项式分布:
p
(
y
∣
x
;
θ
)
=
ϕ
1
1
{
y
=
1
}
ϕ
2
1
{
y
=
2
}
.
.
.
ϕ
k
1
{
y
=
k
}
=
ϕ
1
1
{
y
=
1
}
ϕ
2
1
{
y
=
2
}
.
.
.
ϕ
k
1
−
∑
i
=
1
k
−
1
1
{
y
=
i
}
=
ϕ
1
(
T
(
y
)
)
1
ϕ
2
(
T
(
y
)
)
2
.
.
.
ϕ
k
1
−
∑
i
=
1
k
−
1
(
T
(
y
)
)
i
=
e
x
p
(
(
T
(
y
)
)
1
l
o
g
ϕ
1
+
(
T
(
y
)
)
2
l
o
g
ϕ
2
+
.
.
.
+
(
1
−
∑
i
=
1
k
−
1
(
T
(
y
)
)
i
)
l
o
g
ϕ
k
)
=
e
x
p
(
(
T
(
y
)
)
1
l
o
g
ϕ
1
ϕ
k
+
(
T
(
y
)
)
2
l
o
g
ϕ
2
ϕ
k
+
.
.
.
+
(
T
(
y
)
)
k
−
1
l
o
g
ϕ
k
−
1
ϕ
k
+
l
o
g
ϕ
k
)
\begin{aligned} p(y|x;\theta)&=\phi_1^{1\{y=1\}}\phi_2^{1\{y=2\}}...\phi_k^{1\{y=k\}}\\ &=\phi_1^{1\{y=1\}}\phi_2^{1\{y=2\}}...\phi_k^{1-\sum_{i=1}^{k-1}1\{y=i\}}\\ &=\phi_1^{(T(y))_1}\phi_2^{(T(y))_2}...\phi_k^{1-\sum_{i=1}^{k-1}(T(y))_i}\\ &=exp((T(y))_1log\phi_1+(T(y))_2log\phi_2+...+(1-\sum_{i=1}^{k-1}(T(y))_i)log\phi_k)\\ &=exp((T(y))_1log{\phi_1\over \phi_k}+(T(y))_2log{\phi_2\over \phi_k}+...+(T(y))_{k-1}log{\phi_{k-1}\over \phi_k}+log\phi_k) \end{aligned}
p(y∣x;θ)=ϕ11{y=1}ϕ21{y=2}...ϕk1{y=k}=ϕ11{y=1}ϕ21{y=2}...ϕk1−∑i=1k−11{y=i}=ϕ1(T(y))1ϕ2(T(y))2...ϕk1−∑i=1k−1(T(y))i=exp((T(y))1logϕ1+(T(y))2logϕ2+...+(1−i=1∑k−1(T(y))i)logϕk)=exp((T(y))1logϕkϕ1+(T(y))2logϕkϕ2+...+(T(y))k−1logϕkϕk−1+logϕk)
因此:
b
(
y
)
=
1
η
=
[
l
o
g
ϕ
1
ϕ
k
l
o
g
ϕ
2
ϕ
k
⋮
l
o
g
ϕ
k
−
1
ϕ
k
]
T
(
y
)
=
[
(
T
(
y
)
)
1
(
T
(
y
)
)
2
⋮
(
T
(
y
)
)
k
−
1
]
a
(
η
)
=
−
l
o
g
(
ϕ
k
)
\begin{aligned} b(y)&=1\\ \eta&=\begin{bmatrix}log{\phi_1\over \phi_k}\\ log{\phi_2\over \phi_k}\\ \vdots\\ log{\phi_{k-1}\over \phi_k} \end{bmatrix}\\ T(y) &=\begin{bmatrix}(T(y))_1\\ (T(y))_2\\ \vdots\\ (T(y))_{k-1} \end{bmatrix}\\ a(\eta)&=-log(\phi_k) \end{aligned}
b(y)ηT(y)a(η)=1=⎣⎢⎢⎢⎢⎡logϕkϕ1logϕkϕ2⋮logϕkϕk−1⎦⎥⎥⎥⎥⎤=⎣⎢⎢⎢⎡(T(y))1(T(y))2⋮(T(y))k−1⎦⎥⎥⎥⎤=−log(ϕk)
由以上分析可得到,多项式分布属于指数分布族的一类。
而且,对于类别
i
i
i,有
η
i
=
l
o
g
ϕ
i
ϕ
k
\eta_i=log{\phi_i\over \phi_k}
ηi=logϕkϕi,所以
ϕ
i
=
ϕ
k
e
η
i
\phi_i=\phi_ke^{\eta_i}
ϕi=ϕkeηi ,累加所有类别的概率为1,即:
∑
i
=
1
k
ϕ
i
=
∑
i
=
1
k
ϕ
k
e
η
i
=
1
\sum_{i=1}^k\phi_i=\sum_{i=1}^k\phi_ke^{\eta_i}=1
∑i=1kϕi=∑i=1kϕkeηi=1,所以
ϕ
k
=
1
∑
i
=
1
k
e
η
i
\phi_k={1\over \sum_{i=1}^ke^{\eta_i}}
ϕk=∑i=1keηi1,因此
ϕ
i
=
e
η
i
∑
j
=
1
k
e
η
j
\phi_i={e^{\eta_i}\over \sum_{j=1}^ke^{\eta_j}}
ϕi=∑j=1keηjeηi,这便是softmax函数的由来。
二、由GLM推导出分布
2.1 由广义线性模型推导出线性回归
我们知道,在线性回归中
y
∣
x
;
θ
−
N
(
μ
,
σ
2
)
y|x;\theta-N(\mu,\sigma^2)
y∣x;θ−N(μ,σ2),即输出
y
y
y 满足均值为
μ
\mu
μ 的高斯分布;由广义线性模型得到:
h
θ
(
x
)
=
E
[
y
∣
x
]
=
μ
=
η
=
θ
T
x
\begin{aligned} h_\theta(x)&=E[y|x]\\ &= \mu\\ &=\eta\\ &=\theta^Tx \end{aligned}
hθ(x)=E[y∣x]=μ=η=θTx
其中,第一个等式由假设3得到,第二个等式是高斯分布的数学期望,第三个等式由假设1得到,即由高斯分布属于指数分布族推导出来,第四个等式由假设2得到。
2.2 由广义线性模型推导出逻辑回归
我们知道,在逻辑回归中,
y
∣
x
;
θ
−
B
e
r
n
o
u
l
l
i
(
ϕ
)
y|x;\theta-Bernoulli(\phi)
y∣x;θ−Bernoulli(ϕ),其中
ϕ
=
p
(
y
=
1
∣
x
;
θ
)
\phi=p(y=1|x;\theta)
ϕ=p(y=1∣x;θ),即输出
y
y
y满足伯努利分布;由广义线性模型得到:
h
θ
(
x
)
=
E
[
y
∣
x
]
=
p
(
y
=
1
∣
x
;
θ
)
=
ϕ
=
1
1
+
e
−
η
=
1
1
+
e
−
θ
T
x
\begin{aligned} h_\theta(x)&=E[y|x]\\ &= p(y=1|x;\theta)\\ &=\phi\\ &={1\over 1+e^{-\eta}} \\ &={1\over 1+e^{-\theta^Tx}} \end{aligned}
hθ(x)=E[y∣x]=p(y=1∣x;θ)=ϕ=1+e−η1=1+e−θTx1
其中,第一个等式由假设3得到,第二个等式是高斯分布的数学期望,第三个等式是我们的定义,第四个等式由假设1得到,即由伯努利分布属于指数分布族推导出来,第五个等式由假设2得到。
2.3 由广义线性模型推导出多项式回归
在多项式回归中预测输出值:
h
θ
(
x
)
=
E
[
y
∣
x
]
=
[
1
{
y
=
1
}
∣
x
;
θ
1
{
y
=
2
}
∣
x
;
θ
⋮
1
{
y
=
k
−
1
}
∣
x
;
θ
]
=
[
ϕ
1
ϕ
2
⋮
ϕ
k
−
1
]
=
[
e
x
p
(
θ
1
T
x
)
∑
j
=
1
k
e
x
p
(
θ
j
T
x
)
e
x
p
(
θ
2
T
x
)
∑
j
=
1
k
e
x
p
(
θ
j
T
x
)
⋮
e
x
p
(
θ
k
−
1
T
x
)
∑
j
=
1
k
e
x
p
(
θ
j
T
x
)
]
\begin{aligned} h_\theta(x)&=E[y|x]\\ &=\begin{bmatrix} 1\{y=1\}|x;\theta\\ 1\{y=2\}|x;\theta\\ \vdots\\ 1\{y=k-1\}|x;\theta \end{bmatrix}\\ &=\begin{bmatrix} \phi_1\\ \phi_2\\ \vdots\\ \phi_{k-1} \end{bmatrix}\\ &=\begin{bmatrix} {exp(\theta_1^Tx)\over \sum_{j=1}^kexp(\theta_j^Tx)}\\ {exp(\theta_2^Tx)\over \sum_{j=1}^kexp(\theta_j^Tx)}\\ \vdots\\ {exp(\theta_{k-1}^Tx)\over \sum_{j=1}^kexp(\theta_j^Tx)} \end{bmatrix} \end{aligned}
hθ(x)=E[y∣x]=⎣⎢⎢⎢⎡1{y=1}∣x;θ1{y=2}∣x;θ⋮1{y=k−1}∣x;θ⎦⎥⎥⎥⎤=⎣⎢⎢⎢⎡ϕ1ϕ2⋮ϕk−1⎦⎥⎥⎥⎤=⎣⎢⎢⎢⎢⎢⎢⎡∑j=1kexp(θjTx)exp(θ1Tx)∑j=1kexp(θjTx)exp(θ2Tx)⋮∑j=1kexp(θjTx)exp(θk−1Tx)⎦⎥⎥⎥⎥⎥⎥⎤
输出值为每个类别的概率,且
p
(
y
=
k
∣
x
;
θ
)
=
1
−
∑
i
=
1
k
−
1
p
(
y
=
i
∣
x
;
θ
)
p(y=k|x;\theta)=1-\sum_{i=1}^{k-1}p(y=i|x;\theta)
p(y=k∣x;θ)=1−∑i=1k−1p(y=i∣x;θ)
2.3.1 多项式回归中求解参数
接下来,我们来看一下多项式回归中如何求解参数:
与逻辑回归中利用最大似然估计求解一样,在这里我们也用最大似然估计(就是利用已知的样本分布,找到最有可能(即最大概率)导致这种分布的参数值;或者什么样的参数才能使我们观测到目前这组数据的概率最大) 。
即:对数似然函数为:
J
(
θ
)
=
l
o
g
∏
i
=
1
m
p
(
y
(
i
)
∣
x
(
i
)
;
θ
)
=
∑
i
=
1
m
l
o
g
p
(
y
(
i
)
∣
x
(
i
)
;
θ
)
=
∑
i
=
1
m
l
o
g
ϕ
1
1
{
y
(
i
)
=
1
}
ϕ
2
1
{
y
(
i
)
=
2
}
.
.
.
ϕ
k
1
{
y
(
i
)
=
k
}
=
∑
i
=
1
m
1
{
y
(
i
)
=
1
}
l
o
g
ϕ
1
+
1
{
y
(
i
)
=
2
}
l
o
g
ϕ
2
+
.
.
.
+
1
{
y
(
i
)
=
k
}
l
o
g
ϕ
k
=
∑
i
=
1
m
1
{
y
(
i
)
=
1
}
l
o
g
e
x
p
(
θ
1
T
x
(
i
)
)
∑
j
=
1
k
e
x
p
(
θ
j
T
x
(
i
)
)
+
1
{
y
(
i
)
=
2
}
l
o
g
e
x
p
(
θ
2
T
x
(
i
)
)
∑
j
=
1
k
e
x
p
(
θ
j
T
x
(
i
)
)
+
.
.
.
+
1
{
y
(
i
)
=
k
}
l
o
g
e
x
p
(
θ
k
T
x
(
i
)
)
∑
j
=
1
k
e
x
p
(
θ
j
T
x
(
i
)
)
=
∑
i
=
1
m
(
1
{
y
(
i
)
=
1
}
l
o
g
e
θ
1
T
x
(
i
)
+
1
{
y
(
i
)
=
2
}
l
o
g
e
θ
2
T
x
(
i
)
+
.
.
.
+
1
{
y
(
i
)
=
k
}
l
o
g
e
θ
k
T
x
(
i
)
−
l
o
g
∑
j
=
1
k
e
θ
j
T
x
)
\begin{aligned} J(\theta)&=log\prod_{i=1}^mp(y^{(i)}|x^{(i)};\theta)\\ &=\sum_{i=1}^mlog \ p(y^{(i)}|x^{(i)};\theta)\\ &=\sum_{i=1}^mlog \ \phi_1^{1\{y^{(i)}=1\}}\phi_2^{1\{y^{(i)}=2\}}...\phi_k^{1\{y^{(i)}=k\}}\\ &=\sum_{i=1}^m{1\{y^{(i)}=1\}}log \ \phi_1+{1\{y^{(i)}=2\}}log \ \phi_2+...+{1\{y^{(i)}=k\}}log \ \phi_k\\ &=\sum_{i=1}^m{1\{y^{(i)}=1\}}log \ {exp(\theta_1^Tx^{(i)})\over \sum_{j=1}^kexp(\theta_j^Tx^{(i)})}+{1\{y^{(i)}=2\}}log \ {exp(\theta_2^Tx^{(i)})\over \sum_{j=1}^kexp(\theta_j^Tx^{(i)})}+...+{1\{y^{(i)}=k\}}log \ {exp(\theta_k^Tx^{(i)})\over \sum_{j=1}^kexp(\theta_j^Tx^{(i)})}\\ &=\sum_{i=1}^m(1\{y^{(i)}=1\}log \ e^{\theta_1^Tx^{(i)}}+1\{y^{(i)}=2\}log \ e^{\theta_2^Tx^{(i)}}+...+1\{y^{(i)}=k\}log \ e^{\theta_k^Tx^{(i)}}-log\sum_{j=1}^ke^{\theta_j^Tx}) \end{aligned}
J(θ)=logi=1∏mp(y(i)∣x(i);θ)=i=1∑mlog p(y(i)∣x(i);θ)=i=1∑mlog ϕ11{y(i)=1}ϕ21{y(i)=2}...ϕk1{y(i)=k}=i=1∑m1{y(i)=1}log ϕ1+1{y(i)=2}log ϕ2+...+1{y(i)=k}log ϕk=i=1∑m1{y(i)=1}log ∑j=1kexp(θjTx(i))exp(θ1Tx(i))+1{y(i)=2}log ∑j=1kexp(θjTx(i))exp(θ2Tx(i))+...+1{y(i)=k}log ∑j=1kexp(θjTx(i))exp(θkTx(i))=i=1∑m(1{y(i)=1}log eθ1Tx(i)+1{y(i)=2}log eθ2Tx(i)+...+1{y(i)=k}log eθkTx(i)−logj=1∑keθjTx)
最后一步中,为什么只有一个
l
o
g
∑
j
=
1
k
e
θ
j
T
x
log\sum_{j=1}^ke^{\theta_j^Tx}
log∑j=1keθjTx是因为只能有一个指数函数
1
{
.
}
1\{.\}
1{.}成立。
对类别
l
l
l的参数求导:
∂
J
(
θ
)
∂
θ
j
=
∑
i
=
1
m
(
1
{
y
(
i
)
=
l
}
∗
x
(
i
)
−
1
∑
j
=
1
k
e
x
p
(
θ
j
T
x
(
i
)
)
∗
e
x
p
(
θ
l
T
x
)
∗
x
(
i
)
)
=
∑
i
=
1
m
(
1
{
y
(
i
)
=
l
}
∗
x
(
i
)
−
p
(
y
(
i
)
=
l
∣
x
(
i
)
;
θ
)
∗
x
(
i
)
)
\begin{aligned} {\partial J(\theta)\over \partial \theta_j}&=\sum_{i=1}^m(1\{y^{(i)}=l\}*x^{(i)}-{1\over \sum_{j=1}^kexp(\theta_j^Tx^{(i)})}*exp(\theta_l^Tx)*x^{(i)})\\ &=\sum_{i=1}^m(1\{y^{(i)}=l\}*x^{(i)}-p(y^{(i)}=l|x^{(i)};\theta)*x^{(i)}) \end{aligned}
∂θj∂J(θ)=i=1∑m(1{y(i)=l}∗x(i)−∑j=1kexp(θjTx(i))1∗exp(θlTx)∗x(i))=i=1∑m(1{y(i)=l}∗x(i)−p(y(i)=l∣x(i);θ)∗x(i))
注意: ∂ J ( θ ) ∂ θ j {\partial J(\theta)\over \partial \theta_j} ∂θj∂J(θ)只是针对一个类别所做的偏导,我们还需要继续对类别的每个参数做偏导,最后对所有类别执行相同求导操作,这样才算完整地完成参数优化的一次迭代。接着,使用梯度上升法不断迭代,直到收敛。
最后,我们的预测输出值的表达式如下:
h
θ
(
x
)
=
[
e
x
p
(
θ
1
T
x
)
∑
j
=
1
k
e
x
p
(
θ
j
T
x
)
e
x
p
(
θ
2
T
x
)
∑
j
=
1
k
e
x
p
(
θ
j
T
x
)
⋮
e
x
p
(
θ
k
−
1
T
x
)
∑
j
=
1
k
e
x
p
(
θ
j
T
x
)
]
\begin{aligned} h_\theta(x) &=&\begin{bmatrix} {exp(\theta_1^Tx)\over \sum_{j=1}^kexp(\theta_j^Tx)}\\ {exp(\theta_2^Tx)\over \sum_{j=1}^kexp(\theta_j^Tx)}\\ \vdots\\ {exp(\theta_{k-1}^Tx)\over \sum_{j=1}^kexp(\theta_j^Tx)} \end{bmatrix} \end{aligned}
hθ(x)=⎣⎢⎢⎢⎢⎢⎢⎡∑j=1kexp(θjTx)exp(θ1Tx)∑j=1kexp(θjTx)exp(θ2Tx)⋮∑j=1kexp(θjTx)exp(θk−1Tx)⎦⎥⎥⎥⎥⎥⎥⎤
取 h θ ( x ) h_\theta(x) hθ(x)中概率最大的那一项作为输出值。例如:假设预测样本预测值为hθ(x)=[0.1,0,0.05,0.6,0.05,0.05,0.1,0.05,0,0]hθ(x)=[0.1,0,0.05,0.6,0.05,0.05,0.1,0.05,0,0] ,那么该测试样本被判定为4.
2.3.2 参数冗余问题
Softmax 回归有一个不寻常的特点:它有一个“冗余”的参数集。为了便于阐述这一特点,假设我们从参数向量
θ
j
\theta_j
θj中减去了向量
ψ
\textstyle \psi
ψ,这时,每一个
θ
j
\theta_j
θj 都变成了
θ
j
−
ψ
(
j
=
1
,
2
,
.
.
.
,
k
)
\theta_j-\psi(j=1,2,...,k)
θj−ψ(j=1,2,...,k)。此时假设函数变成了以下的式子:
换句话说,从
θ
j
\theta_j
θj中减去
ψ
\textstyle \psi
ψ完全不影响假设函数的预测结果!这表明前面的 softmax 回归模型中存在冗余的参数。更正式一点来说, Softmax 模型被过度参数化了。对于任意一个用于拟合数据的假设函数,可以求出多组参数值,这些参数得到的是完全相同的假设函数
h
θ
h_\theta
hθ。
进一步而言,如果参数 ( θ 1 , θ 2 , … , θ k ) (\theta_1, \theta_2,\ldots, \theta_k) (θ1,θ2,…,θk) 是代价函数 J ( θ ) J(\theta) J(θ) 的极小值点,那么 ( θ 1 − ψ , θ 2 − ψ , … , θ k − ψ ) \textstyle (\theta_1 - \psi, \theta_2 - \psi,\ldots, \theta_k - \psi) (θ1−ψ,θ2−ψ,…,θk−ψ) 同样也是它的极小值点,其中 ψ \textstyle \psi ψ 可以为任意向量。因此使 J ( θ ) \textstyle J(\theta) J(θ) 最小化的解不是唯一的。
那么,应该如何解决这个问题呢?
我们通过添加一个权重衰减项
λ
2
∑
i
=
1
k
∑
j
=
0
n
θ
i
j
2
\textstyle \frac{\lambda}{2} \sum_{i=1}^k \sum_{j=0}^{n} \theta_{ij}^2
2λ∑i=1k∑j=0nθij2 来修改代价函数,这个衰减项会惩罚过大的参数值,现在我们的代价函数变为:
有了这个权重衰减项以后 (
λ
>
0
\textstyle \lambda > 0
λ>0),代价函数就变成了严格的凸函数,这样就可以保证得到唯一的解了。 此时的 Hessian矩阵变为可逆矩阵,并且因为
J
(
θ
)
\textstyle J(\theta)
J(θ)是凸函数,梯度下降法和 L-BFGS 等算法可以保证收敛到全局最优解。
为了使用优化算法,我们需要求得这个新函数
J
(
θ
)
\textstyle J(\theta)
J(θ) 的导数,如下:
通过最小化
J
(
θ
)
\textstyle J(\theta)
J(θ),我们就能实现一个可用的 softmax 回归模型。
2.3.3 Softmax 回归 vs. k 个二元分类器
如果你在开发一个音乐分类的应用,需要对 k k k种类型的音乐进行识别,那么是选择使用 softmax 分类器呢,还是使用 logistic 回归算法建立 k k k 个独立的二元分类器呢?
这一选择取决于你的类别之间是否互斥,例如,如果你有四个类别的音乐,分别为:古典音乐、乡村音乐、摇滚乐和爵士乐,那么你可以假设每个训练样本只会被打上一个标签(即:一首歌只能属于这四种音乐类型的其中一种),此时你应该使用类别数 k = 4 k = 4 k=4 的softmax回归。(如果在你的数据集中,有的歌曲不属于以上四类的其中任何一类,那么你可以添加一个“其他类”,并将类别数 k k k 设为5。)
如果你的四个类别如下:人声音乐、舞曲、影视原声、流行歌曲,那么这些类别之间并不是互斥的。例如:一首歌曲可以来源于影视原声,同时也包含人声 。这种情况下,使用4个二分类的 logistic 回归分类器更为合适。这样,对于每个新的音乐作品 ,我们的算法可以分别判断它是否属于各个类别。
现在我们来看一个计算视觉领域的例子,你的任务是将图像分到三个不同类别中。(i) 假设这三个类别分别是:室内场景、户外城区场景、户外荒野场景。你会使用sofmax回归还是 3个logistic 回归分类器呢? (ii) 现在假设这三个类别分别是室内场景、黑白图片、包含人物的图片,你又会选择 softmax 回归还是多个 logistic 回归分类器呢?
在第一个例子中,三个类别是互斥的,因此更适于选择softmax回归分类器 。而在第二个例子中,建立三个独立的 logistic回归分类器更加合适。
参考文献
【1】广义线性模型与指数分布族
【2】机器学习(二)广义线性模型:逻辑回归与Softmax分类
【3】机器学习算法系列(24):机器学习中的损失函数
【4】Softmax回归