在机器学习领域,很多模型都是属于广义线性模型(Generalized Linear Model, GLM),如线性回归,逻辑回归,Softmax回归 等。
广义线性模型有3个基本假设:
(1) 样本观测值
y
i
y_i
y i 满足带参数
η
\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 ) e x p ( η T T ( 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
η = θ T x 。(当
η
\eta
η 为变量时,
η
i
=
θ
i
T
x
\eta_i=\theta_i^Tx
η i = θ i T x )
(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 π
σ 1 e x p ( − 2 σ 2 ( y − u ) 2 ) = 2 π
1 e x p ( − 2 ( y − u ) 2 ) = 2 π
1 e x p ( − 2 1 y 2 ) ∗ e x p ( u y − 2 1 u 2 )
因此:
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 π
1 e x p ( − 2 1 y 2 ) = u = y = 2 1 u 2 = 2 1 η 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 = 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 − ϕ ) )
因此:
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 = l o g 1 − ϕ ϕ = y = − l o g ( 1 − ϕ ) = l o g ( e η + 1 )
由以上分析,我们可以得到结论:伯努利分布属于指数分布族的一类。
同时,由
η
=
l
o
g
ϕ
1
−
ϕ
\eta=log{\phi\over 1-\phi}
η = l o g 1 − ϕ ϕ 可以得到
ϕ
=
1
1
+
e
−
η
\phi={1\over 1+e^{-\eta}}
ϕ = 1 + e − η 1 ,这就是我们熟悉的sigmoid函数。 同时根据第2个假设中的
η
=
θ
T
x
\eta=\theta^{T}x
η = θ T x ,则
η
=
l
o
g
(
ϕ
1
−
ϕ
)
=
θ
T
x
\eta=log(\frac{\phi}{1-\phi})=\theta^{T}x
η = l o g ( 1 − ϕ ϕ ) = θ T x
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 = 1 k − 1 ϕ i 。 我们定义
T
(
y
)
ϵ
R
k
−
1
T(y)\epsilon R^{k-1}
T ( y ) ϵ R k − 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 ) = ⎣ ⎢ ⎢ ⎢ ⎢ ⎢ ⎡ 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
(
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 ; θ ) = ϕ 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 ϕ k ϕ 1 + ( T ( y ) ) 2 l o g ϕ k ϕ 2 + . . . + ( T ( y ) ) k − 1 l o g ϕ k ϕ k − 1 + l o g ϕ 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 = ⎣ ⎢ ⎢ ⎢ ⎢ ⎡ l o g ϕ k ϕ 1 l o g ϕ k ϕ 2 ⋮ l o g ϕ k ϕ k − 1 ⎦ ⎥ ⎥ ⎥ ⎥ ⎤ = ⎣ ⎢ ⎢ ⎢ ⎡ ( T ( y ) ) 1 ( T ( y ) ) 2 ⋮ ( T ( y ) ) k − 1 ⎦ ⎥ ⎥ ⎥ ⎤ = − l o g ( ϕ k )
由以上分析可得到,多项式分布属于指数分布族的一类。 而且,对于类别
i
i
i ,有
η
i
=
l
o
g
ϕ
i
ϕ
k
\eta_i=log{\phi_i\over \phi_k}
η i = l o g ϕ k ϕ i ,所以
ϕ
i
=
ϕ
k
e
η
i
\phi_i=\phi_ke^{\eta_i}
ϕ i = ϕ k e η 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 = 1 k ϕ i = ∑ i = 1 k ϕ k e η i = 1 ,所以
ϕ
k
=
1
∑
i
=
1
k
e
η
i
\phi_k={1\over \sum_{i=1}^ke^{\eta_i}}
ϕ k = ∑ i = 1 k e η i 1 ,因此
ϕ
i
=
e
η
i
∑
j
=
1
k
e
η
j
\phi_i={e^{\eta_i}\over \sum_{j=1}^ke^{\eta_j}}
ϕ i = ∑ j = 1 k e η j e η 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 ] = μ = η = θ T x
其中,第一个等式由假设3得到,第二个等式是高斯分布的数学期望,第三个等式由假设1得到,即由高斯分布属于指数分布族推导出来,第四个等式由假设2得到。
2.2 由广义线性模型推导出逻辑回归
我们知道,在逻辑回归中,
y
∣
x
;
θ
−
B
e
r
n
o
u
l
l
i
(
ϕ
)
y|x;\theta-Bernoulli(\phi)
y ∣ x ; θ − B e r n o u l l i ( ϕ ) ,其中
ϕ
=
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 − θ T x 1
其中,第一个等式由假设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 = 1 k e x p ( θ j T 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 ) ⎦ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎤ 输出值为每个类别的概率,且
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 = 1 k − 1 p ( 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 ( θ ) = 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 ∑ j = 1 k e x p ( θ j T x ( i ) ) e x p ( θ 1 T x ( i ) ) + 1 { y ( i ) = 2 } l o g ∑ j = 1 k e x p ( θ j T x ( i ) ) e x p ( θ 2 T x ( i ) ) + . . . + 1 { y ( i ) = k } l o g ∑ j = 1 k e x p ( θ j T x ( i ) ) e x p ( θ k 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 )
最后一步中,为什么只有一个
l
o
g
∑
j
=
1
k
e
θ
j
T
x
log\sum_{j=1}^ke^{\theta_j^Tx}
l o g ∑ j = 1 k e θ j T x 是因为只能有一个指数函数
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 = 1 k e x p ( θ j T x ( i ) ) 1 ∗ 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 ) )
注意:
∂
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 = 1 k e x p ( θ j T 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 ) ⎦ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎤
取
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 = 1 k ∑ j = 0 n θ i j 2 来修改代价函数,这个衰减项会惩罚过大的参数值,现在我们的代价函数变为: 有了这个权重衰减项以后 (
λ
>
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回归