第六章 广义线性模型 Softmax原理(2)

Softmax迭代推导

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

假设有k种分类:$y\in 1,2,...,k$,每种分类对应的概率:$\phi_1,\phi_2,...,\phi<>k$,由全概率公式可以得到$\sum{i=1}^k \phi_i=1$,则$\phi<>i=1-\sum{i=1}^{k-1}\phi_{k-1}$,。

构建广义线性模型:

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

$$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}$$

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

$$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)$$

对比指数分布族:

$$\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}$$

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

$\eta=\theta^Tx$

最终可以得到

$$\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}}$$

$$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}$$

构建极大似然函数:

$$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}}}))$$

$$\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)})$$

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

$$\theta_l=\theta_l+\partial \frac{\partial L(\theta)}{\partial \theta_l}$$

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

$$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)}}}$$

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

$$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}$$

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

$$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}$$

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

总结

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

PS: 如本文对您有帮助,不妨通过一下方式支持一下博主噢 ^_^

官方
微信
官方微信
Q Q
咨询
意见
反馈
返回
顶部