Softmax迭代推导
Softmax属于多可能性分类,如数字的识别,0到9,10种可能性。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-e0ORfKDO-1649987735466)(/images/kuxue/machine_learning/Softmax.png)]
假设有k种分类: y ∈ 1 , 2 , . . . , k y\in 1,2,...,k y∈1,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=1−∑i=1k−1ϕk−1,。
构建广义线性模型:
引入 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(k−1)=⎝⎜⎜⎜⎜⎜⎜⎛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)...ϕk1−∑i=1k−1μ(y=k)=ϕ1T(y)1∙ϕ2T(y)2...ϕk1−∑i=1k−1T(y)k=exp(T(y)1∙lnϕ1+(T(y)2∙lnϕ2)+...+(1−i=1∑k−1T(y)i)∙lnϕk)=exp(T(y)1∙lnϕkϕ1+(T(y)2∙lnϕkϕ2)+...+T(y)k−1∙lnϕkϕk−1+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ϕk−1⎠⎟⎟⎟⎞,b(y)=1,a(η)=−lnϕk,则ηi=lnϕkϕi⇒ϕi=ϕk∙eη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...ϕk−1⎠⎟⎟⎞=⎝⎜⎜⎜⎜⎜⎜⎜⎛∑j=1keθ1Txeθ1Tx∑j=2keθ1Txeθ1Tx...∑j=1keθ1Txeθk−1Tx⎠⎟⎟⎟⎟⎟⎟⎟⎞
构建极大似然函数:
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=1∑m(lnl=1∏k(∑j=1keθjTxeθlTx(i))μ(y(i)=l))=i=1∑m(l=1∑kμ(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)}) ∂θl∂L(θ)=i=1∑m(μ(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+∂∂θl∂L(θ)
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)=j∣x(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)Tx11−1+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}} 1−1+e(θ2−θ1)Tx1=1−1+e(θ.)Tx1 ,这与 logistic回归是一致的。
总结
softmax算法在机器学习里占有很重要的地位,虽然很多机器学习的学习包已经高度的集成了softmax算法,但从推到的过程中,可以看到很多的知识点,好像看到了算法的机器学习算法推到的大统一。广义线性模型,解释了机器学习算法的很多问题,最小二乘法的理论依据,Logistic回归Sigmoid函数的由来,softmax 的推到,进一步解释了Logistic回归和softmax的关系,理论的依据终于贯通了,可以放心了。