分类|深度学习(李宏毅)(二)

一、生成模型

假设有两个类别 C 1 、 C 2 C_{1}、C_{2} C1C2 P ( C 1 ∣ x ) = P ( x ∣ C 1 ) P ( C 1 ) P ( x ∣ C 1 ) P ( C 1 ) + P ( x ∣ C 2 ) P ( C 2 ) P(C_{1}|x)=\frac{P(x|C_{1})P(C_{1})}{P(x|C_{1})P(C_{1})+P(x|C_{2})P(C_{2})} P(C1x)=P(xC1)P(C1)+P(xC2)P(C2)P(xC1)P(C1)其中 P ( C 1 ) 、 P ( C 2 ) P(C_{1})、P(C_{2}) P(C1)P(C2)为先验分布, P ( x ∣ C 1 ) 、 P ( x ∣ C 2 ) P(x|C_{1})、P(x|C_{2}) P(xC1)P(xC2)都是高斯分布,服从以下分布:

f μ , Σ ( x ) = 1 ( 2 π ) D / 2 ∣ Σ ∣ 1 / 2 e x p − 1 2 ( x − u ) T Σ − 1 ( x − u ) f_{\mu ,\Sigma }(x)=\frac{1}{(2\pi )^{D/2}|\Sigma |^{1/2}}exp^{-\frac{1}{2}(x-u)^{T}\Sigma ^{-1}(x-u)} fμ,Σ(x)=(2π)D/2Σ1/21exp21(xu)TΣ1(xu)

二、计算某一类样本的高斯分布

根据已有的标签数据可以求得每一类均值和方差的估计,由于该类样本服从高斯分布,则其似然如下:

L ( μ , Σ ) = f μ , Σ ( x 1 ) f μ , Σ ( x 2 ) f μ , Σ ( x 1 ) ⋯ f μ , Σ ( x N ) L(\mu ,\Sigma )=f_{\mu ,\Sigma }(x_{1})f_{\mu ,\Sigma }(x_{2})f_{\mu ,\Sigma }(x_{1})\cdots f_{\mu ,\Sigma }(x_{N}) L(μ,Σ)=fμ,Σ(x1)fμ,Σ(x2)fμ,Σ(x1)fμ,Σ(xN)
μ ∗ , Σ ∗ = a r g m a x μ ∗ , Σ ∗ L ( μ , Σ ) \mu ^{*},\Sigma^{*}=\underset{\mu ^{*},\Sigma^{*}}{argmax}L(\mu ,\Sigma ) μ,Σ=μ,ΣargmaxL(μ,Σ)

求解可得:

μ ∗ = 1 N ∑ 1 N x n \mu ^{*}=\frac{1}{N}\sum_{1}^{N}x^{n} μ=N11Nxn
Σ ∗ = 1 N ∑ 1 N ( x n − μ ∗ ) ( x n − μ ∗ ) T \Sigma^{*}=\frac{1}{N}\sum_{1}^{N}(x^{n}-\mu ^{*})(x^{n}-\mu ^{*})^{T} Σ=N11N(xnμ)(xnμ)T

三、逻辑回归(判别模型)推导

这里的推导假设 P ( C 1 ) 、 P ( C 2 ) P(C_{1})、P(C_{2}) P(C1)P(C2)具有同样的方差,且 Σ \Sigma Σ是对角线矩阵(即假设特征之间相互独立),证明如下:

后验概率 P ( C 1 ∣ x ) = P ( x ∣ C 1 ) P ( C 1 ) P ( x ∣ C 1 ) P ( C 1 ) + P ( x ∣ C 2 ) P ( C 2 ) = 1 1 + P ( x ∣ C 2 ) P ( C 2 ) P ( x ∣ C 1 ) P ( C 1 ) P(C_{1}|x)=\frac{P(x|C_{1})P(C_{1})}{P(x|C_{1})P(C_{1})+P(x|C_{2})P(C_{2})}=\frac{1}{1+\frac{P(x|C_{2})P(C_{2})}{P(x|C_{1})P(C_{1})}} P(C1x)=P(xC1)P(C1)+P(xC2)P(C2)P(xC1)P(C1)=1+P(xC1)P(C1)P(xC2)P(C2)1
令 z = l n P ( x ∣ C 2 ) P ( C 2 ) P ( x ∣ C 1 ) P ( C 1 ) 令z=ln\frac{P(x|C_{2})P(C_{2})}{P(x|C_{1})P(C_{1})} z=lnP(xC1)P(C1)P(xC2)P(C2)
⇒ e − z = P ( x ∣ C 1 ) P ( C 1 ) P ( x ∣ C 2 ) P ( C 2 ) \Rightarrow e^{-z}=\frac{P(x|C_{1})P(C_{1})}{P(x|C_{2})P(C_{2})} ez=P(xC2)P(C2)P(xC1)P(C1)
⇒ P ( C 1 ∣ x ) = 1 1 + e − z = σ ( z ) \Rightarrow P(C_{1}|x)=\frac{1}{1+e^{-z}}=\sigma (z) P(C1x)=1+ez1=σ(z)

σ ( z ) \sigma (z) σ(z)即是sigmoid函数,其图像为:

sigmoid函数

另外 z = l n P ( x ∣ C 1 ) P ( x ∣ C 2 ) + l n P ( C 1 ) P ( C 2 ) z=ln\frac{P(x|C_{1})}{P(x|C_{2})}+ln\frac{P(C_{1})}{P(C_{2})} z=lnP(xC2)P(xC1)+lnP(C2)P(C1),其中

l n P ( x ∣ C 1 ) P ( x ∣ C 2 ) = l n 1 ( 2 π ) D / 2 ∣ Σ 1 ∣ 1 / 2 e x p − 1 2 ( x − μ 1 ) T ( Σ 1 ) − 1 ( x − μ 1 ) 1 ( 2 π ) D / 2 ∣ Σ 2 ∣ 1 / 2 e x p − 1 2 ( x − μ 2 ) T ( Σ 2 ) − 1 ( x − μ 2 ) ln\frac{P(x|C_{1})}{P(x|C_{2})}=ln\frac{\frac{1}{(2\pi )^{D/2}|\Sigma ^{1}|^{1/2}}exp^{-\frac{1}{2}(x-\mu ^{1})^{T}(\Sigma^{1}) ^{-1}(x-\mu ^{1})}}{\frac{1}{(2\pi )^{D/2}|\Sigma ^{2}|^{1/2}}exp^{-\frac{1}{2}(x-\mu ^{2})^{T}(\Sigma^{2}) ^{-1}(x-\mu ^{2})}} lnP(xC2)P(xC1)=ln(2π)D/2Σ21/21exp21(xμ2)T(Σ2)1(xμ2)(2π)D/2Σ11/21exp21(xμ1)T(Σ1)1(xμ1)
= l n ∣ Σ 1 ∣ 1 / 2 ∣ Σ 2 ∣ 1 / 2 e x p − 1 2 ( x − μ 1 ) T ( Σ 1 ) − 1 ( x − μ 1 ) + 1 2 ( x − μ 2 ) T ( Σ 2 ) − 1 ( x − μ 2 ) =ln\frac{|\Sigma ^{1}|^{1/2}}{|\Sigma ^{2}|^{1/2}}exp^{-\frac{1}{2}(x-\mu ^{1})^{T}(\Sigma^{1}) ^{-1}(x-\mu ^{1})+\frac{1}{2}(x-\mu ^{2})^{T}(\Sigma^{2}) ^{-1}(x-\mu ^{2})} =lnΣ21/2Σ11/2exp21(xμ1)T(Σ1)1(xμ1)+21(xμ2)T(Σ2)1(xμ2)
= l n ∣ Σ 1 ∣ 1 / 2 ∣ Σ 2 ∣ 1 / 2 − 1 2 [ ( x − μ 1 ) T ( Σ 1 ) − 1 ( x − μ 1 ) − ( x − μ 2 ) T ( Σ 2 ) − 1 ( x − μ 2 ) ] =ln\frac{|\Sigma ^{1}|^{1/2}}{|\Sigma ^{2}|^{1/2}}-\frac{1}{2}[(x-\mu ^{1})^{T}(\Sigma^{1}) ^{-1}(x-\mu ^{1})-(x-\mu ^{2})^{T}(\Sigma^{2}) ^{-1}(x-\mu ^{2})] =lnΣ21/2Σ11/221[(xμ1)T(Σ1)1(xμ1)(xμ2)T(Σ2)1(xμ2)]
其中
( x − μ 1 ) T ( Σ 1 ) − 1 ( x − μ 1 ) = x T ( Σ 1 ) − 1 x − x T ( Σ 1 ) − 1 μ 1 − ( μ 1 ) T ( Σ 1 ) − 1 x + ( μ 1 ) T ( Σ 1 ) − 1 μ 1 = x T ( Σ 1 ) − 1 x − 2 ( μ 1 ) T ( Σ 1 ) − 1 x + ( μ 1 ) T ( Σ 1 ) − 1 μ 1 (x-\mu ^{1})^{T}(\Sigma^{1})^{-1}(x-\mu ^{1})\\=x^{T}(\Sigma ^{1})^{-1}x{\color{Red} {-x^{T}(\Sigma ^{1})^{-1}\mu ^{1}-(\mu ^{1})^{T}(\Sigma ^{1})^{-1}x}}+(\mu ^{1})^{T}(\Sigma ^{1})^{-1}\mu ^{1}\\=x^{T}(\Sigma ^{1})^{-1}x{\color{Red} {-2(\mu^{1})^{T}(\Sigma ^{1})^{-1}x}}+(\mu ^{1})^{T}(\Sigma ^{1})^{-1}\mu ^{1} (xμ1)T(Σ1)1(xμ1)=xT(Σ1)1xxT(Σ1)1μ1(μ1)T(Σ1)1x+(μ1)T(Σ1)1μ1=xT(Σ1)1x2(μ1)T(Σ1)1x+(μ1)T(Σ1)1μ1
同理
( x − μ 2 ) T ( Σ 2 ) − 1 ( x − μ 2 ) = x T ( Σ 2 ) − 1 x − 2 ( μ 2 ) T ( Σ 2 ) − 1 x + ( μ 2 ) T ( Σ 2 ) − 1 μ 2 (x-\mu ^{2})^{T}(\Sigma^{2})^{-1}(x-\mu ^{2})=x^{T}(\Sigma ^{2})^{-1}x{\color{Red} {-2(\mu^{2})^{T}(\Sigma ^{2})^{-1}x}}+(\mu ^{2})^{T}(\Sigma ^{2})^{-1}\mu ^{2} (xμ2)T(Σ2)1(xμ2)=xT(Σ2)1x2(μ2)T(Σ2)1x+(μ2)T(Σ2)1μ2

因为前面假设 Σ 1 = Σ 2 = Σ \Sigma^{1}=\Sigma^{2}=\Sigma Σ1=Σ2=Σ,所以 l n ∣ Σ 1 ∣ 1 / 2 ∣ Σ 2 ∣ 1 / 2 = 0 ln\frac{|\Sigma ^{1}|^{1/2}}{|\Sigma ^{2}|^{1/2}}=0 lnΣ21/2Σ11/2=0, x T ( Σ 1 ) − 1 x = x T ( Σ 2 ) − 1 x x^{T}(\Sigma ^{1})^{-1}x=x^{T}(\Sigma ^{2})^{-1}x xT(Σ1)1x=xT(Σ2)1x

z = ( μ 1 ) T ( Σ 1 ) − 1 x − 1 2 ( μ 1 ) T ( Σ 1 ) − 1 μ 1 − ( μ 2 ) T ( Σ 2 ) − 1 x + 1 2 ( μ 2 ) T ( Σ 2 ) − 1 μ 2 + l n P ( C 1 ) P ( C 2 ) z=(\mu^{1})^{T}(\Sigma ^{1})^{-1}x-\frac{1}{2}(\mu ^{1})^{T}(\Sigma ^{1})^{-1}\mu ^{1}-(\mu^{2})^{T}(\Sigma ^{2})^{-1}x+\frac{1}{2}(\mu ^{2})^{T}(\Sigma ^{2})^{-1}\mu ^{2}+ln\frac{P(C^{1})}{P(C^{2})} z=(μ1)T(Σ1)1x21(μ1)T(Σ1)1μ1(μ2)T(Σ2)1x+21(μ2)T(Σ2)1μ2+lnP(C2)P(C1)
= ( μ 1 − μ 2 ) T Σ − 1 ⏟ w x − 1 2 ( μ 1 ) T Σ − 1 μ 1 + 1 2 ( μ 2 ) T Σ − 1 μ 2 + l n P ( C 1 ) P ( C 2 ) ⏟ b =\underset{w}{\underbrace{(\mu ^{1}-\mu ^{2})^{T}\Sigma ^{-1}}}x\underset{b}{\underbrace{-\frac{1}{2}(\mu ^{1})^{T}\Sigma ^{-1}\mu ^{1}+\frac{1}{2}(\mu ^{2})^{T}\Sigma ^{-1}\mu ^{2}+ln\frac{P(C_{1})}{P(C_{2})}}} =w (μ1μ2)TΣ1xb 21(μ1)TΣ1μ1+21(μ2)TΣ1μ2+lnP(C2)P(C1)
P ( C 1 ∣ x ) = σ ( w x + b ) P(C_{1}|x)=\sigma (wx+b) P(C1x)=σ(wx+b)

在使用生成模型时需要估计 μ 1 、 μ 2 、 Σ \mu_{1}、\mu_{2}、\Sigma μ1μ2Σ,现在可以直接估计 w w w b b b

四、逻辑回归的损失函数

  1. 交叉熵损失函数
    f w , b ( x ) = σ ( w x + b ) f_{w,b}(x)=\sigma (wx+b) fw,b(x)=σ(wx+b),则逻辑回归的损失函数(即似然)为:

L ( w , b ) = f w , b ( x 1 ) f w , b ( x 2 ) ( 1 − f w , b ( x 3 ) ) ⋯ f w , b ( x N ) L (w,b)=f_{w,b}(x^{1})f_{w,b}(x^{2})(1-f_{w,b}(x^{3}))\cdots f_{w,b}(x^{N}) L(w,b)=fw,b(x1)fw,b(x2)(1fw,b(x3))fw,b(xN)
w ∗ , b ∗ = a r g m a x w , b L ( w , b ) = a r g m i n w , b ( − l n L ( w , b ) ) w^{*},b^{*}=\underset{w,b}{argmax}L (w,b)=\underset{w,b}{argmin}(-lnL (w,b)) w,b=w,bargmaxL(w,b)=w,bargmin(lnL(w,b))

上式中

l n L ( w , b ) = − [ y ^ 1 l n f ( x 1 ) + ( 1 − y ^ 1 ) l n ( 1 − f ( x 1 ) ) ] − [ y ^ 2 l n f ( x 2 ) + ( 1 − y ^ 2 ) l n ( 1 − f ( x 2 ) ) ] − [ y ^ 3 l n f ( x 3 ) + ( 1 − y ^ 3 ) l n ( 1 − f ( x 3 ) ) ] ⋯ = ∑ − [ y ^ n l n f ( x n ) + ( 1 − y ^ n ) l n ( 1 − f ( x n ) ) ] lnL (w,b)\\=-[\hat{y}^{1}lnf(x^{1})+(1-\hat{y}^{1})ln(1-f(x^{1}))]\\-[\hat{y}^{2}lnf(x^{2})+(1-\hat{y}^{2})ln(1-f(x^{2}))]\\-[\hat{y}^{3}lnf(x^{3})+(1-\hat{y}^{3})ln(1-f(x^{3}))]\\\cdots \\=\sum-[\hat{y}^{n}lnf(x^{n})+(1-\hat{y}^{n})ln(1-f(x^{n}))] lnL(w,b)=[y^1lnf(x1)+(1y^1)ln(1f(x1))][y^2lnf(x2)+(1y^2)ln(1f(x2))][y^3lnf(x3)+(1y^3)ln(1f(x3))]=[y^nlnf(xn)+(1y^n)ln(1f(xn))]

上式即为交叉熵损失函数:

H ( p , q ) = − ∑ x p ( x ) l n q ( x ) H(p,q)=-\sum_{x}p(x)lnq(x) H(p,q)=xp(x)lnq(x)

接下来对参数进行求导:

∂ − L n f ( w , b ) ∂ w i = ∑ − [ y ^ n ∂ l n f ( x n ) ∂ w i + ( 1 − y ^ n ) ∂ l n ( 1 − f ( x n ) ) ) ∂ w i ] \frac{\partial -Lnf(w,b)}{\partial w_{i}}=\sum-[\hat{y}^{n}\frac{\partial lnf(x^{n})}{\partial w_{i}}+(1-\hat{y}^{n})\frac{\partial ln(1-f(x^{n})))}{\partial w_{i}}] wiLnf(w,b)=[y^nwilnf(xn)+(1y^n)wiln(1f(xn)))]
∂ l n f ( x n ) ∂ w i = ∂ l n f ( x n ) ∂ z ∂ z ∂ w i = ∂ l n σ ( z ) ∂ z ∂ z ∂ w i = 1 σ ( z ) σ ( z ) ( 1 − σ ( z ) ) ∂ z ∂ w i ( 注 意 : ∂ σ ( z ) ∂ z = σ ( z ) ( 1 − σ ( z ) ) , s i g m o i d 函 数 的 导 数 ) \frac{\partial lnf(x^{n})}{\partial w_{i}}=\frac{\partial lnf(x^{n})}{\partial z}\frac{\partial z}{\partial w_{i}}=\frac{\partial ln\sigma (z)}{\partial z}\frac{\partial z}{\partial w_{i}}=\frac{1}{\sigma (z)}\sigma (z)(1-\sigma (z))\frac{\partial z}{\partial w_{i}}\\(注意:\frac{\partial \sigma (z)}{\partial z}=\sigma (z)(1-\sigma (z)),sigmoid函数的导数) wilnf(xn)=zlnf(xn)wiz=zlnσ(z)wiz=σ(z)1σ(z)(1σ(z))wiz(zσ(z)=σ(z)(1σ(z))sigmoid)
∂ l n ( 1 − f w , b ( x n ) ) ∂ w i = − 1 1 − σ ( z ) ( 1 − σ ( z ) ) σ ( z ) x i = − σ ( z ) x i \frac{\partial ln(1-f_{w,b}(x^{n}))}{\partial w_{i}}=\frac{-1}{1-\sigma (z)}(1-\sigma (z))\sigma (z)x_{i}=-\sigma (z)x_{i} wiln(1fw,b(xn))=1σ(z)1(1σ(z))σ(z)xi=σ(z)xi
所以 − ∂ l n L ( w , b ) ∂ w i = ∑ − [ y ^ n ( 1 − f w , b ( x n ) ) x i n − ( 1 − y ^ n ) f w , b ( x n ) x i n ] = ∑ − ( y ^ n − f w , b ( x n ) ) x i n -\frac{\partial lnL(w,b)}{\partial w_{i}}=\sum-[\hat{y}^{n}(1-f_{w,b}(x^{n}))x_{i}^{n}-(1-\hat{y}^{n})f_{w,b}(x^{n})x_{i}^{n}]=\sum-(\hat{y}^{n}-f_{w,b}(x^{n}))x_{i}^{n} wilnL(w,b)=[y^n(1fw,b(xn))xin(1y^n)fw,b(xn)xin]=(y^nfw,b(xn))xin
更新梯度
w i ← w i − η ∑ − ( y ^ n − f w , b ( x n ) ) x i n ( 这 表 明 当 使 用 交 叉 熵 作 为 损 失 函 数 是 , 如 果 预 测 值 与 实 际 值 有 较 大 的 差 距 时 会 产 生 较 大 的 梯 度 更 新 。 ) w_{i}\leftarrow w_{i}-\eta \sum-(\hat{y}^{n}-f_{w,b}(x^{n}))x_{i}^{n}\\(这表明当使用交叉熵作为损失函数是,如果预测值与实际值有较大的差距时会产生较大的梯度更新。) wiwiη(y^nfw,b(xn))xin(使)

  1. 均方误差损失函数

L ( w , b ) = 1 2 ∑ ( f w , b ( x ) − y ^ n ) 2 L (w,b)=\frac{1}{2}\sum (f_{w,b}(x)-\hat{y}^{n})^{2} L(w,b)=21(fw,b(x)y^n)2

接下来对参数进行求导:

∂ ( f w , b ( x ) − y ^ n ) 2 ∂ w i = 2 ( f w , b ( x ) − y ^ n ) ∂ f w , b ( x ) ∂ z ∂ z ∂ w i = 2 ( f w , b ( x ) − y ^ n ) f w , b ( x ) ( 1 − f w , b ( x ) ) x i \frac{\partial (f_{w,b}(x)-\hat{y}^{n})^{2}}{\partial w_{i}}=2(f_{w,b}(x)-\hat{y}^{n})\frac{\partial f_{w,b}(x)}{\partial z}\frac{\partial z}{\partial w_{i}}=2(f_{w,b}(x)-\hat{y}^{n}){\color{Red} {f_{w,b}(x)(1-f_{w,b}(x))}}x_{i} wi(fw,b(x)y^n)2=2(fw,b(x)y^n)zfw,b(x)wiz=2(fw,b(x)y^n)fw,b(x)(1fw,b(x))xi

由于上式红色部分的存在会导致当 f w , b ( x ) = 0 f_{w,b}(x)=0 fw,b(x)=0 ∂ L ∂ w i = 0 \frac{\partial L}{\partial w_{i}}=0 wiL=0,而当 f w , b ( x ) = 1 f_{w,b}(x)=1 fw,b(x)=1时也有 ∂ L ∂ w i = 0 \frac{\partial L}{\partial w_{i}}=0 wiL=0

交叉熵与均方误差的图像如下:

交叉熵vs均方误差

  1. 总结
    关于为什么使用交叉熵而不使用均方误差,总结如下:
  • 神经网络中如果预测值与实际值的误差越大,那么在反向传播训练的过程中,各种参数调整的幅度就要更大,从而使训练更快收敛,如果预测值与实际值的误差小,各种参数调整的幅度就要小,从而减少震荡。
  • 使用平方误差损失函数,误差增大参数的梯度会增大,但是当误差很大时,参数的梯度就会又减小了。
  • 使用交叉熵损失是函数,误差越大参数的梯度也越大,能够快速收敛。

五、判别模型 vs 生成模型

P ( C 1 ∣ x ) = σ ( w x + b ) P(C_{1}|x)=\sigma (wx+b) P(C1x)=σ(wx+b)

判别模型会直接估计 w , b w,b w,b
生成模型会估计 μ 1 、 μ 2 、 Σ \mu_{1}、\mu_{2}、\Sigma μ1μ2Σ,其中

w T = ( μ 1 − μ 2 ) Σ − 1 , b = − 1 2 ( μ 1 ) T Σ − 1 μ 1 + 1 2 ( μ 2 ) T Σ − 1 μ 2 + l n P ( C 1 ) P ( C 2 ) w^{T}=(\mu ^{1}-\mu ^{2})\Sigma ^{-1},b=-\frac{1}{2}(\mu ^{1})^{T}\Sigma ^{-1}\mu ^{1}+\frac{1}{2}(\mu ^{2})^{T}\Sigma ^{-1}\mu ^{2}+ln\frac{P(C_{1})}{P(C_{2})} wT=(μ1μ2)Σ1,b=21(μ1)TΣ1μ1+21(μ2)TΣ1μ2+lnP(C2)P(C1)

一般情况下两种 w 和 b w和b wb不一定相同。

生成模型的优点:

  • 因为生成模型有一个先验的假设,所以需要更少的训练数据,而且对噪声有更高的鲁棒性。
  • 先验分布和类别依赖的概率分布可以从不同的来源估计。

参考资料

ref:分类问题为什么要使用交叉熵损失函数而不是均方误差

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值