CS229 Lecture 4
这节课听的也是不太懂,先把笔记记下来
课程要点:
牛顿方法
广义线性模型
指数分布族
多项式分布
牛顿方法
牛顿方法提供了一种求解极值的方法,它需要迭代的次数会较梯度下降、上升之类的算法少很多。
上图中左子图中有函数 f ( x ) f(x) f(x)要求解其与 x x x轴的交点,一种方法是选一点 x 0 x_{0} x0,计算其在对应的 f ( x 0 ) f(x_0) f(x0),过 ( x 0 , f ( x 0 ) ) (x_0,f(x_0)) (x0,f(x0))做一条切线与 x x x轴的交点为 x 1 x_1 x1,如图中,中间子图。接着计算 f ( x 1 ) f(x_1) f(x1)的值,再过 ( x 1 , f ( x 1 ) ) (x_1,f(x_1)) (x1,f(x1))做一条切线交 x x x轴于 x 2 x_2 x2,如图中右子图。如此迭代直到 f ( x ? ) = 0 f(x_?)=0 f(x?)=0。
下面用公式表达其迭代过程(由于我们一般求解的是 θ \theta θ把上面的 x x x替换为 θ \theta θ):
f ( θ ) f(\theta) f(θ) f i n d find find θ \theta θ s . t    f ( θ ) s.t\,\, f(\theta) s.tf(θ)
f ′ ( θ ( 0 ) ) = f ( θ ( 0 ) ) △          △ = f ( θ ( 0 ) ) f ′ ( θ ( 0 ) ) f^{'}(\theta^{(0)})=\frac{f(\theta^{(0)})}{\triangle}\,\,\,\,\,\,\,\,\triangle=\frac{f(\theta^{(0)})}{f^{'}(\theta^{(0)})} f′(θ(0))=△f(θ(0))△=f′(θ(0))f(θ(0))
θ ( 1 ) = θ ( 0 ) − f ( θ ( 0 ) ) f ′ ( θ ( 0 ) ) \theta^{(1)}=\theta^{(0)}-\frac{f(\theta^{(0)})}{f^{'}(\theta^{(0)})} θ(1)=θ(0)−f′(θ(0))f(θ(0))
θ ( t + 1 ) = θ ( t ) − f ( θ ( t ) ) f ′ ( θ ( t ) ) \theta^{(t+1)}=\theta^{(t)}-\frac{f(\theta^{(t)})}{f^{'}(\theta^{(t)})} θ(t+1)=θ(t)−f′(θ(t))f(θ(t))
从上面的推导可以看出,牛顿方法的迭代规律,使用其求解似然函数 L ( θ ) L(\theta) L(θ):
L ( θ ) L(\theta) L(θ) w a n t want want θ \theta θ s . t s.t s.t L ′ ( θ ) = 0 L^{'}(\theta)=0 L′(θ)=0
θ ( t + 1 ) = θ ( t ) − L ′ ( θ ( t ) ) L ′ ′ ( θ ( t ) ) \theta^{(t+1)}=\theta^{(t)}-\frac{L^{'}(\theta^{(t)})}{L^{''}(\theta^{(t)})} θ(t+1)=θ(t)−L′′(θ(t))L′(θ(t))
牛顿方法的收敛速度非常快,在收敛到较小时可以达到二次收敛的效果:
0.01 e r r o r → 0.001 e r r o r → 0.00001 e r r o r 0.01 error\rightarrow0.001 error\rightarrow0.00001 error 0.01error→0.001error→0.00001error
如果需要迭代的
θ
\theta
θ并不是一个实数而是向量的画,牛顿方法的迭代公式为:
θ
(
t
+
1
)
=
θ
(
t
)
−
H
−
1
▽
θ
L
\theta^{(t+1)}=\theta^{(t)}-H^{-1}\bigtriangledown_{\theta}L
θ(t+1)=θ(t)−H−1▽θL
其中
H
H
H是
H
e
s
s
i
a
n
Hessian
Hessian矩阵,其形状为
n
∗
n
n*n
n∗n或
(
n
+
1
)
∗
(
n
+
1
)
(n+1)*(n+1)
(n+1)∗(n+1),且
H
i
j
=
∂
2
L
∂
θ
i
∂
θ
j
H_{ij}=\frac{\partial^{2}L}{\partial\theta_{i}\partial\theta_{j}}
Hij=∂θi∂θj∂2L
虽然说牛顿迭代的次数要相对于梯度方法要少很多,但是如果矩阵 H H H并不小的话(特征数很多),计算这个矩阵的逆代价还是挺高的,所以整体下来耗费的计算量并不一定比梯度方法少。
牛顿方法求极致不论是极大还是极小其迭代公式都是一样的。
广义线性模型
前面学过的最小二乘使用的假设是高斯分布, p ( y ∣ x ; θ ) p(y|x;\theta) p(y∣x;θ) 其中 y ∈ R y\in R y∈R,还有逻辑回归,使用的是伯努利分布( B e r n o u l l i Bernoulli Bernoulli)分布, y ∈ { 0 , 1 } y\in \{0,1\} y∈{0,1}。
实际上上面提到的高斯分布和伯努利分布都属于指数分布族(
e
x
p
o
n
e
n
t
i
a
l
f
a
m
i
l
y
exponential family
exponentialfamily),如果满足指数分布族那么分布函数可以被写成:
p
(
y
;
η
)
=
b
(
y
)
e
x
p
(
η
T
T
(
y
)
−
a
(
η
)
)
p(y;\eta) = b(y)exp(\eta^{T}T(y) − a(\eta))
p(y;η)=b(y)exp(ηTT(y)−a(η))
其中 η \eta η被称为自然参数( n a t u r a l    p a r a m e t e r natural\,\,parameter naturalparameter)也叫标准参数( c a n o n i c a l    p a r a m e t e r canonical\,\,parameter canonicalparameter)。 T ( y ) T(y) T(y)被称为充分统计量,在通常情况下 T ( y ) = y T(y)=y T(y)=y,最后 a ( η ) a(\eta) a(η)被称为 l o g    p a r t i t i o n    f u n c t i o n log\,\,partition\,\,function logpartitionfunction。其中 T , a , b T,a,b T,a,b的形式确定了 p ( y ; η ) p(y;\eta) p(y;η)分布所属的类型,而 η \eta η则改变了此种分布的分布状态。例如伯努利分布函数 p ( y = 1 ; ϕ ) = ϕ p(y=1;\phi)=\phi p(y=1;ϕ)=ϕ,当我们改变 η \eta η的时候,也就对应改变了 ϕ \phi ϕ。
伯努利分布是指数分族的一个特例:
B e r ( ϕ ) Ber(\phi) Ber(ϕ) 对应于 p ( y = 1 ; ϕ ) = ϕ p(y=1;\phi)=\phi p(y=1;ϕ)=ϕ
既然说伯努利分布是指数分布族的一个特例,那么将对应的
T
,
a
,
b
T,a,b
T,a,b都是啥?伯努利分布的结果只有两种
{
0
,
1
}
\{0,1\}
{0,1}。
p
(
y
;
ϕ
)
=
ϕ
y
(
1
−
ϕ
)
1
−
y
=
e
x
p
(
l
o
g
(
ϕ
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
−
ϕ
)
)
p(y;\phi)=\phi^{y}(1-\phi)^{1-y}=exp(log(\phi^{y}(1-\phi)^{1-y}))\\ =exp(ylog\phi+(1-y)log(1-\phi))\\ =exp(ylog(\frac{\phi}{(1-\phi)})+log(1-\phi))
p(y;ϕ)=ϕy(1−ϕ)1−y=exp(log(ϕy(1−ϕ)1−y))=exp(ylogϕ+(1−y)log(1−ϕ))=exp(ylog((1−ϕ)ϕ)+log(1−ϕ))
从上面的公式可以看出 η = l o g ( ϕ 1 − ϕ ) \eta=log(\frac{\phi}{1-\phi}) η=log(1−ϕϕ), T ( y ) = y T(y)=y T(y)=y, a ( η ) = − l o g ( 1 − ϕ ) a(\eta)=-log(1-\phi) a(η)=−log(1−ϕ)和 b ( y ) = 1 b(y)=1 b(y)=1,可以得出 ϕ = 1 1 + e − η \phi=\frac{1}{1+e^{-\eta}} ϕ=1+e−η1
高斯分布是指数分布族的一个特例
我们直到高斯分布
N
~
(
u
,
σ
2
)
N~(u,\sigma^{2})
N~(u,σ2),前面讨论其实
σ
2
\sigma^{2}
σ2取多大其实对求解最大值并没有影响,为了推导方便设
σ
2
=
1
\sigma^{2}=1
σ2=1:
1
2
π
e
x
p
−
1
2
(
y
−
μ
)
2
=
1
2
π
e
x
p
(
−
1
2
y
2
)
e
x
p
(
μ
y
−
1
2
μ
2
)
\frac{1}{\sqrt{2\pi}}exp^{-\frac{1}{2}(y-\mu)^{2}}=\frac{1}{\sqrt{2\pi}}exp^{(-\frac{1}{2}y^2)}exp^{(\mu y-\frac{1}{2}\mu^2)}
2π1exp−21(y−μ)2=2π1exp(−21y2)exp(μy−21μ2)
这里可以得到:
μ
=
η
\mu=\eta
μ=η
T ( y ) = y T(y)=y T(y)=y
a ( n ) = μ 2 2 = η 2 2 a(n)=\frac{\mu^{2}}{2}=\frac{\eta^2}{2} a(n)=2μ2=2η2
b ( y ) = 1 2 π e x p ( − 1 2 y 2 ) b(y)=\frac{1}{\sqrt{2\pi}}exp^{(-\frac{1}{2}y^2)} b(y)=2π1exp(−21y2)
其实还有很多分布如泊松分布、多项式分布也是指数分布族
广义线性模型(GLM)
根据基于 x , y x,y x,y的条件分布构建广义线性模型需要基于3个假设:
- y ∣ x ; θ ∼ E x p o n e n t i a l    F a m i l y y|x;\theta\sim Exponential\,\,Family y∣x;θ∼ExponentialFamily即给定 x x x及参数 θ \theta θ, y y y的分布服从指数分布族,这个指数分布族的参数是 η \eta η。
- 给定 x x x,我们目标是预测 T ( y ) T(y) T(y),在大多数情况下 T ( y ) = y T(y)=y T(y)=y,这意味着我们我们学习到的模型 h h h其 h ( x ) = E [ y ∣ x ] h(x)=E[y|x] h(x)=E[y∣x]。
- 输入 x x x和 η \eta η满足线性关系,通常情况下为 η = θ T x \eta=\theta^Tx η=θTx,如果 η \eta η是向量的话满足 η i = θ i T x \eta_i=\theta_{i}^{T}x ηi=θiTx
如果我们模型能满足这些假设条件,我们就称其为广义线性模型,满足这个模型的话,会拥有很多优秀的属性,广义线性模型可以很好模拟不同的分布。
例如在逻辑回归里面,我们要预测的 y ∈ { 0 , 1 } y\in\{0,1\} y∈{0,1},那么很自然的想到伯努利分布,即 y ∣ x ; θ ∼ B e r n o u l l i ( ϕ ) y|x; θ ∼ Bernoulli(\phi) y∣x;θ∼Bernoulli(ϕ)而 E [ y ∣ x ; θ ] = ϕ E[y|x;\theta]=\phi E[y∣x;θ]=ϕ。
h θ ( x ) = E [ y ∣ x ; θ ] = ϕ = 1 / ( 1 + e − η ) = 1 / ( e − θ T x ) h_{\theta}(x)=E[y|x;\theta]=\phi=1/(1+e^{-\eta})=1/(e^{-\theta^Tx}) hθ(x)=E[y∣x;θ]=ϕ=1/(1+e−η)=1/(e−θTx)
上式中第一个等式是因为伯努利的期望等于 ϕ \phi ϕ,第二个等式是基于前面推导的 ϕ \phi ϕ和 η \eta η的关系,第三个等式是因为等三个假设。
上面就得出来了逻辑回归的公式。其中 g ( η ) = E [ T ( y ) ; η ] = 1 / ( e − η ) g(\eta)=E[T(y);\eta]=1/(e^{-\eta}) g(η)=E[T(y);η]=1/(e−η),这个 g g g被称为正则响应函数(canonical response function), g − 1 g^{-1} g−1被称为正则关联函数。
多项式分布和softmax regression
现在又一个多元分类问题,即 y ∈ { 1 , 2 , 3 , ⋯   , k } y\in\{1,2,3,\cdots,k\} y∈{1,2,3,⋯,k}。概率分布为 p ( y = i ) = ϕ i p(y=i)=\phi_i p(y=i)=ϕi,现在有参数 ϕ 1 , ϕ 2 , ⋯   , ϕ k \phi_1,\phi_2,\cdots,\phi_k ϕ1,ϕ2,⋯,ϕk。实际上 ϕ k = 1 − ϕ 1 , ϕ 2 , ⋯   , ϕ k − 1 \phi_k=1-\phi_1,\phi_2,\cdots,\phi_{k-1} ϕk=1−ϕ1,ϕ2,⋯,ϕk−1。所有 k − 1 k-1 k−1个参数 ϕ 1 , ϕ 2 , ⋯   , ϕ k − 1 \phi_1,\phi_2,\cdots,\phi_{k-1} ϕ1,ϕ2,⋯,ϕk−1。
现在令 T ( 1 ) = [ 1 0 ⋮ 0 ] T(1)=\begin{bmatrix} 1\\0\\\vdots\\0 \end{bmatrix} T(1)=⎣⎢⎢⎢⎡10⋮0⎦⎥⎥⎥⎤, T ( 2 ) = [ 0 1 ⋮ 0 ] T(2)=\begin{bmatrix} 0\\1\\\vdots\\0 \end{bmatrix} T(2)=⎣⎢⎢⎢⎡01⋮0⎦⎥⎥⎥⎤, ⋯ ⋯ \cdots\cdots ⋯⋯ T ( k − 1 ) = [ 0 0 ⋮ 1 ] T(k-1)=\begin{bmatrix} 0\\0\\\vdots\\1 \end{bmatrix} T(k−1)=⎣⎢⎢⎢⎡00⋮1⎦⎥⎥⎥⎤, T ( k ) = [ 0 0 ⋮ 0 ] T(k)=\begin{bmatrix} 0\\0\\\vdots\\0 \end{bmatrix} T(k)=⎣⎢⎢⎢⎡00⋮0⎦⎥⎥⎥⎤
再定义下指示函数用来表示命题的真假,定义如下:
1 { T r u e } = 1 1\{True\}=1 1{True}=1且 1 { F a l s e } = 0 1\{False\}=0 1{False}=0,例如 1 { 2 = 3 } = 0 1\{2=3\}=0 1{2=3}=0
有了指示函数可以使得 T ( y ) i = 1 { y = i } T(y)_i=1\{y=i\} T(y)i=1{y=i}。
p ( y ) = ϕ 1 1 { y = 1 } ϕ 2 1 { y = 2 } ⋯ ϕ k 1 { y = k } = ϕ 1 T ( y ) 1 ϕ 2 T ( y ) 2 ⋯ ϕ k 1 − ∑ T ( y ) i = p ( y ; η ) = b ( y ) e x p ( η T T ( y ) − a ( η ) ) p(y)=\phi_1^{1\{y=1\}}\phi_2^{1\{y=2\}}\cdots\phi_k^{1\{y=k\}}=\phi_1^{T(y)_1}\phi_2^{T(y)_2}\cdots\phi_k^{1-{\sum{T(y)_i}}}\\= p(y;\eta) = b(y)exp(\eta^{T}T(y) − a(\eta)) p(y)=ϕ11{y=1}ϕ21{y=2}⋯ϕk1{y=k}=ϕ1T(y)1ϕ2T(y)2⋯ϕk1−∑T(y)i=p(y;η)=b(y)exp(ηTT(y)−a(η))
得出:
b
(
y
)
=
1
b(y)=1
b(y)=1
a
(
η
)
=
−
l
o
g
(
ϕ
k
)
a(\eta)=-log(\phi^k)
a(η)=−log(ϕk)
η = [ l o g ( ϕ 1 / ϕ k ) l o g ( ϕ 2 / ϕ k ) ⋮ l o g ( ϕ k − 1 / ϕ k ) ] \eta=\begin{bmatrix} log(\phi^1/\phi^k)\\log(\phi^2/\phi^k)\\\vdots\\log(\phi^{k-1}/\phi^k) \end{bmatrix} η=⎣⎢⎢⎢⎡log(ϕ1/ϕk)log(ϕ2/ϕk)⋮log(ϕk−1/ϕk)⎦⎥⎥⎥⎤
η i = l o g ϕ i ϕ k \eta_i=log{\frac{\phi_i}{\phi_k}} ηi=logϕkϕi
进而有 e η i = ϕ i ϕ k → ϕ k e η i = ϕ i → ϕ k ∑ e η i = 1 → ϕ i = e η i ∑ j k e η j e^{\eta_i}=\frac{\phi_i}{\phi_k}\rightarrow \phi_ke^{\eta_i}=\phi_i\rightarrow\phi_k\sum{e^{\eta_i}}=1\rightarrow \phi_i=\frac{e^{\eta_i}}{\sum_{j}^{k} e^{\eta^j}} eηi=ϕkϕi→ϕkeηi=ϕi→ϕk∑eηi=1→ϕi=∑jkeηjeηi
我们知道 p ( y = i ∣ x ; θ ) = ϕ i = e η i ∑ j k e η j = e θ i T x ∑ j k e θ j T x p(y=i|x;\theta)=\phi_i=\frac{e^{\eta_i}}{\sum_{j}^{k} e^{\eta^j}}=\frac{e^{\theta_i^Tx}}{\sum_{j}^{k} e^{\theta_j^Tx}} p(y=i∣x;θ)=ϕi=∑jkeηjeηi=∑jkeθjTxeθiTx
我们这里的多分类问题被称为
s
o
f
t
m
a
x
  
r
e
g
r
e
s
s
i
o
n
softmax \,\,regression
softmaxregression,这是一种基于逻辑回归的衍生方法。
h
θ
(
x
)
=
E
[
T
(
y
)
∣
x
;
θ
]
=
E
[
1
{
y
=
1
}
1
{
y
=
2
}
⋮
x
;
θ
1
{
y
=
k
−
1
}
]
=
[
ϕ
i
ϕ
2
⋮
ϕ
k
−
1
]
=
[
e
θ
1
T
x
∑
j
k
e
θ
j
T
x
e
θ
2
T
x
∑
j
k
e
θ
j
T
x
⋮
e
θ
k
−
1
T
x
∑
j
k
e
θ
j
T
x
]
h_\theta(x)=E[T(y)|x;\theta]=E\left[\begin{array}{c|c} 1\{y=1\}&\\1\{y=2\}&\\\vdots &x;\theta\\1\{y=k-1\}& \end{array}\right]=\begin{bmatrix} \phi_i\\\phi_2\\\vdots\\\phi_{k-1} \end{bmatrix}=\begin{bmatrix} \frac{e^{\theta_1^Tx}}{\sum_{j}^{k} e^{\theta_j^Tx}}\\\frac{e^{\theta_2^Tx}}{\sum_{j}^{k} e^{\theta_j^Tx}}\\\vdots\\\frac{e^{\theta_{k-1}^Tx}}{\sum_{j}^{k} e^{\theta_j^Tx}} \end{bmatrix}
hθ(x)=E[T(y)∣x;θ]=E⎣⎢⎢⎢⎡1{y=1}1{y=2}⋮1{y=k−1}x;θ⎦⎥⎥⎥⎤=⎣⎢⎢⎢⎡ϕiϕ2⋮ϕk−1⎦⎥⎥⎥⎤=⎣⎢⎢⎢⎢⎢⎢⎢⎢⎡∑jkeθjTxeθ1Tx∑jkeθjTxeθ2Tx⋮∑jkeθjTxeθk−1Tx⎦⎥⎥⎥⎥⎥⎥⎥⎥⎤
上式就是 s o f t m a x    r e g r e s s i o n softmax\,\, regression softmaxregression的拟合函数。
如果要求解最佳的
θ
\theta
θ时,需要对极大似然函数进行求解,
s
o
f
t
m
a
x
softmax
softmax的的极大似然函数定义为:
L
(
θ
)
=
∑
i
=
1
m
l
o
g
p
(
y
(
i
)
;
x
(
i
)
;
θ
)
=
∑
i
=
1
m
l
o
g
∏
l
=
1
k
(
e
θ
l
T
x
(
i
)
∑
j
k
e
θ
j
T
x
(
i
)
)
1
{
y
(
i
)
=
l
}
L(\theta)=\sum_{i=1}^{m}logp(y^{(i)};x^{(i)};\theta)=\sum_{i=1}^{m}log\prod_{l=1}^{k}(\frac{e^{\theta_{l}^Tx^{(i)}}}{\sum_{j}^{k} e^{\theta_j^Tx^{(i)}}})^{1\{y^{(i)=l}\}}
L(θ)=i=1∑mlogp(y(i);x(i);θ)=i=1∑mlogl=1∏k(∑jkeθjTx(i)eθlTx(i))1{y(i)=l}
使用牛顿法或者梯度上升方法求解最大值。
待理解!