机器学习入门:第七章 广义线性模型 Softmax原理(2)

Softmax迭代推导

Softmax属于多可能性分类,如数字的识别,0到9,10种可能性。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-e0ORfKDO-1649987735466)(/images/kuxue/machine_learning/Softmax.png)]

假设有k种分类: y ∈ 1 , 2 , . . . , k y\in 1,2,...,k y1,2,...,k,每种分类对应的概率: ϕ 1 , ϕ 2 , . . . , ϕ k \phi_1,\phi_2,...,\phi_k ϕ1,ϕ2,...,ϕk,由全概率公式可以得到 ∑ i = 1 k ϕ i = 1 \sum_{i=1}^k \phi_i=1 i=1kϕi=1,则 ϕ i = 1 − ∑ i = 1 k − 1 ϕ k − 1 \phi_i=1-\sum_{i=1}^{k-1}\phi_{k-1} ϕi=1i=1k1ϕk1,。

构建广义线性模型:

引入 T ( y ) T(y) T(y),它是k-1维的向量,因为第k维可以用前面k-1维表示出,如下:

T ( 1 ) = ( 1 0 0 0 . . . 0 ) , T ( 2 ) = ( 0 1 0 0 . . . 0 ) , T ( 3 ) = ( 0 0 1 0 . . . 0 ) , . . . , T ( k − 1 ) = ( 0 0 0 0 . . . 1 ) , T ( k ) = ( 0 0 0 0 . . . 0 ) T(1)=\begin{pmatrix} 1\\0\\0\\0\\...\\0\end{pmatrix},T(2)=\begin{pmatrix} 0\\1\\0\\0\\...\\0\end{pmatrix},T(3)=\begin{pmatrix} 0\\0\\1\\0\\...\\0\end{pmatrix},...,T(k-1)=\begin{pmatrix} 0\\0\\0\\0\\...\\1\end{pmatrix},T(k)=\begin{pmatrix} 0\\0\\0\\0\\...\\0\end{pmatrix} T(1)=1000...0,T(2)=0100...0,T(3)=0010...0,...,T(k1)=0000...1,T(k)=0000...0

引入指示函数: μ \mu μ,用 μ ( y = i ) = 1 \mu(y=i)=1 μ(y=i)=1表示属于i分类,同样 μ ( y = i ) = 0 \mu(y=i)=0 μ(y=i)=0,表示不属于i分类。
构建概率密度函数为:

P ( y ; ϕ ) = ϕ 1 μ ( y = 1 ) ∙ ϕ 2 μ ( y = 2 ) . . . ϕ k μ ( y = k ) = ϕ 1 μ ( y = 1 ) ∙ ϕ 2 μ ( y = 2 ) . . . ϕ k 1 − ∑ i = 1 k − 1 μ ( y = k ) = ϕ 1 T ( y ) 1 ∙ ϕ 2 T ( y ) 2 . . . ϕ k 1 − ∑ i = 1 k − 1 T ( y ) k = e x p ( T ( y ) 1 ∙ l n ϕ 1 + ( T ( y ) 2 ∙ l n ϕ 2 ) + . . . + ( 1 − ∑ i = 1 k − 1 T ( y ) i ) ∙ l n ϕ k ) = e x p ( T ( y ) 1 ∙ l n ϕ 1 ϕ k + ( T ( y ) 2 ∙ l n ϕ 2 ϕ k ) + . . . + T ( y ) k − 1 ∙ l n ϕ k − 1 ϕ k + l n ϕ k ) P(y;\phi)=\phi_1^{\mu(y=1)}\bullet \phi_2^{\mu(y=2)}...\phi_k^{\mu(y=k)}\\ =\phi_1^{\mu(y=1)}\bullet \phi_2^{\mu(y=2)}...\phi_k^{1-\sum_{i=1}^{k-1}\mu(y=k)}\\ =\phi_1^{T(y)1}\bullet \phi_2^{T(y)2}...\phi_k^{1-\sum_{i=1}^{k-1}T(y)k}\\ =exp(T(y)1\bullet ln\phi_1+(T(y)2\bullet ln\phi_2)+...+(1-\sum_{i=1}^{k-1}T(y)_i)\bullet ln\phi_k)\\ =exp(T(y)1\bullet ln \frac{\phi_1}{\phi_k}+(T(y)2\bullet ln \frac{\phi_2}{\phi_k})+...+T(y)_{k-1} \bullet ln \frac{\phi_{k-1}}{\phi_k} +ln \phi_k) P(y;ϕ)=ϕ1μ(y=1)ϕ2μ(y=2)...ϕkμ(y=k)=ϕ1μ(y=1)ϕ2μ(y=2)...ϕk1i=1k1μ(y=k)=ϕ1T(y)1ϕ2T(y)2...ϕk1i=1k1T(y)k=exp(T(y)1lnϕ1+(T(y)2lnϕ2)+...+(1i=1k1T(y)i)lnϕk)=exp(T(y)1lnϕkϕ1+(T(y)2lnϕkϕ2)+...+T(y)k1lnϕkϕk1+lnϕk)

对比指数分布族:

η = ( l n ϕ 1 ϕ k l n ϕ 2 ϕ k . . . l n ϕ k − 1 ϕ k ) , b ( y ) = 1 , a ( η ) = − l n ϕ k , 则 η i = l n ϕ i ϕ k ⇒ ϕ i = ϕ k ∙ e η i \eta=\begin{pmatrix} ln \frac{\phi_1}{\phi_k}\\ ln \frac{\phi_2}{\phi_k}\\...\\ ln \frac{\phi_{k-1}}{\phi_k}\end{pmatrix},b(y)=1,a(\eta) = -ln \phi_k,则 \eta_i=ln \frac{\phi_i}{\phi_k}\Rightarrow \phi_i=\phi_k \bullet e^{\eta_i} η=lnϕkϕ1lnϕkϕ2...lnϕkϕk1,b(y)=1,a(η)=lnϕkηi=lnϕkϕiϕi=ϕkeηi

根据广义线性模型第三点:

η = θ T x \eta=\theta^Tx η=θTx

最终可以得到

ϕ k ( e η 1 + e η 2 + . . . + e η i ) = 1 ⇒ ϕ k = 1 ∑ j = 1 k e η j ⇒ ϕ i = e η i ∑ j = 1 k e η j = e θ i x ∑ j = 1 k e θ j x \phi_k(e^{\eta_1}+e^{\eta_2}+...+e^{\eta_i})=1\Rightarrow \phi_k=\frac{1}{\sum_{j=1}^ke^{\eta_j}}\Rightarrow \phi_i=\frac{e^{\eta_i}}{\sum_{j=1}^ke^{\eta_j}}=\frac{e^{\theta_ix}}{\sum_{j=1}^ke^{\theta_jx}} ϕk(eη1+eη2+...+eηi)=1ϕk=j=1keηj1ϕi=j=1keηjeηi=j=1keθjxeθix

h θ ( x ) = E [ T ( y ) ∣ x ; θ ] = ( ϕ 1 ϕ 2 . . . ϕ k − 1 ) = ( e θ 1 T x ∑ j = 1 k e θ 1 T x e θ 1 T x ∑ j = 2 k e θ 1 T x . . . e θ k − 1 T x ∑ j = 1 k e θ 1 T x ) h\theta(x)=E[T(y)|x;\theta]=\begin{pmatrix} \phi_1\\ \phi_2\\...\\ \phi_{k-1}\end{pmatrix} =\begin{pmatrix} \frac{e^{\theta_1^Tx}}{\sum_{j=1}^ke^{\theta_1^Tx}}\\ \frac{e^{\theta_1^Tx}}{\sum_{j=2}^ke^{\theta_1^Tx}}\\...\\ \frac{e^{\theta_{k-1}^Tx}}{\sum_{j=1}^ke^{\theta_1^Tx}}\end{pmatrix} hθ(x)=E[T(y)x;θ]=ϕ1ϕ2...ϕk1=j=1keθ1Txeθ1Txj=2keθ1Txeθ1Tx...j=1keθ1Txeθk1Tx

构建极大似然函数:

L ( θ ) = ∑ i = 1 m ( l n ∏ l = 1 k ( e θ l T x ( i ) ∑ j = 1 k e θ j T x ) μ ( y ( i ) = l ) ) = ∑ i = 1 m ( ∑ l = 1 k μ ( y i = l ) ∙ l n ( e θ l T x ( i ) ∑ j = 1 k e θ j T x i ) ) L(\theta)=\sum_{i=1}^m(ln\prod_{l=1}^k(\frac{e^{\theta_{l}^Tx^{(i)}}}{\sum_{j=1}^ke^{\theta_j^Tx}})^{\mu(y^{(i)=l})})=\sum_{i=1}^m(\sum_{l=1}^k \mu(y^{i}=l)\bullet ln(\frac{e^{\theta_{l}^Tx^{(i)}}}{\sum_{j=1}^ke^{\theta_j^Tx^{i}}})) L(θ)=i=1m(lnl=1k(j=1keθjTxeθlTx(i))μ(y(i)=l))=i=1m(l=1kμ(yi=l)ln(j=1keθjTxieθlTx(i)))

∂ L ( θ ) ∂ θ l = ∑ i = 1 m ( μ ( y ( i ) = l ) − ( e θ l T x ( i ) ∑ j = 1 k e θ j T x i ) ∙ x ( i ) ) \frac {\partial L(\theta)}{\partial \theta_l}=\sum_{i=1}^m(\mu (y^{(i)}=l)-(\frac{e^{\theta_{l}^Tx^{(i)}}}{\sum_{j=1}^ke^{\theta_j^Tx^{i}}})\bullet x^{(i)}) θlL(θ)=i=1m(μ(y(i)=l)(j=1keθjTxieθlTx(i))x(i))

利用梯度上升公式,更新:

θ l = θ l + ∂ ∂ L ( θ ) ∂ θ l \theta_l=\theta_l+\partial \frac{\partial L(\theta)}{\partial \theta_l} θl=θl+θlL(θ)

Softmax 回归有一个不寻常的特点:它有一个“冗余”的参数集。为了便于阐述这一特点,假设我们从参数向量 θ j \theta_j θj 中减去了向量 ψ \psi ψ ,这时,每一个 θ j \theta_j θj 都变成了 θ j − ψ ( j = 1 , . . . , k ) \theta_j - \psi(j=1,...,k) θjψ(j=1,...,k)。此时假设函数变成了以下的式子:

p ( y ( i ) = j ∣ x ( i ) ; θ ) = e ( θ j − ψ ) T x ( i ) ∑ j = 1 k e ( θ j − ψ ) T x ( i ) = e ( θ j ) T x ( i ) e ( − ψ ) T x ( i ) ∑ j = 1 k e ( θ j ) T x ( i ) e ( − ψ ) T x ( i ) = e ( θ j ) T x ( i ) ∑ j = 1 k e ( θ j ) T x ( i ) p(y(i)=j|x(i);\theta)=\frac{e^{{(\theta j- \psi)}^Tx^{(i)}}}{\sum_{j=1}^ke^{{(\theta j- \psi)}^Tx^{(i)}}}=\frac{e^{{(\theta j)}^Tx^{(i)}}e^{{(- \psi)}^Tx^{(i)}}}{\sum_{j=1}^ke^{{(\theta j)}^Tx^{(i)}}e^{{(- \psi)}^Tx^{(i)}}}=\frac{e^{{(\theta j)}^Tx^{(i)}}}{\sum_{j=1}^ke^{{(\theta j)}^Tx^{(i)}}} p(y(i)=jx(i);θ)=j=1ke(θjψ)Tx(i)e(θjψ)Tx(i)=j=1ke(θj)Tx(i)e(ψ)Tx(i)e(θj)Tx(i)e(ψ)Tx(i)=j=1ke(θj)Tx(i)e(θj)Tx(i)

当类别数k=2 时,softmax 回归退化为 logistic 回归。这表明 softmax 回归是 logistic 回归的一般形式。具体地说,当 k=2 时,softmax 回归的假设函数为:

h θ ( x ) = 1 e θ 1 T x + e θ 2 T x ( e θ 1 T x e θ 2 T x ) h\theta(x)=\frac{1}{e^{\theta_1^Tx}+e^{\theta_2^Tx}}\begin{pmatrix} e^{\theta_1^Tx}\\e^{\theta_2^Tx}\end{pmatrix} hθ(x)=eθ1Tx+eθ2Tx1(eθ1Txeθ2Tx)

利用softmax回归参数冗余的特点,我们令 ψ = θ 1 \psi=\theta_1 ψ=θ1,并且从两个参数向量中都减去向量 θ 1 \theta_1 θ1 ,得到:

h θ ( x ) = 1 e ( θ 1 − θ 1 ) T x + e ( θ 2 − θ 1 ) T x ( e ( θ 1 − θ 1 ) T x e ( θ 2 − θ 1 ) T x ) = ( 1 1 + e ( θ 2 − θ 1 ) T x 1 − 1 1 + e ( θ 2 − θ 1 ) T x ) h\theta(x)=\frac{1}{e^{(\theta_1-\theta_1)^Tx}+e^{(\theta_2-\theta_1)^Tx}}\begin{pmatrix} e^{(\theta_1-\theta_1)^Tx}\\e^{(\theta_2-\theta_1)^Tx}\end{pmatrix}=\begin{pmatrix} \frac {1}{1+e^{(\theta_2-\theta_1)^Tx}}\\ 1-\frac {1}{1+e^{(\theta_2-\theta_1)^Tx}}\end{pmatrix} hθ(x)=e(θ1θ1)Tx+e(θ2θ1)Tx1(e(θ1θ1)Txe(θ2θ1)Tx)=(1+e(θ2θ1)Tx111+e(θ2θ1)Tx1)

因此,用 θ . \theta^. θ.来表示 ,我们就会发现 softmax 回归器预测其中一个类别的概率为 1 1 + e ( θ 2 − θ 1 ) T x = 1 1 + e ( θ . ) T x \frac {1}{1+e^{(\theta_2-\theta_1)^Tx}}=\frac {1}{1+e^{(\theta^. )^Tx}} 1+e(θ2θ1)Tx1=1+e(θ.)Tx1 ,另一个类别概率的为 1 − 1 1 + e ( θ 2 − θ 1 ) T x = 1 − 1 1 + e ( θ . ) T x 1-\frac {1}{1+e^{(\theta_2-\theta_1)^Tx}}=1-\frac {1}{1+e^{(\theta^.)^Tx}} 11+e(θ2θ1)Tx1=11+e(θ.)Tx1 ,这与 logistic回归是一致的。

总结

softmax算法在机器学习里占有很重要的地位,虽然很多机器学习的学习包已经高度的集成了softmax算法,但从推到的过程中,可以看到很多的知识点,好像看到了算法的机器学习算法推到的大统一。广义线性模型,解释了机器学习算法的很多问题,最小二乘法的理论依据,Logistic回归Sigmoid函数的由来,softmax 的推到,进一步解释了Logistic回归和softmax的关系,理论的依据终于贯通了,可以放心了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

go2coding

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值