作者: 引线小白-本文永久链接:httpss://www.limoncc.com/post/b1417de51d2c97b0ef371b6561a65f4b/
知识共享许可协议: 本博客采用署名-非商业-禁止演绎4.0国际许可证
Knowledge is the antidote to fear.
摘要:本文意在理清分类分布的基础问题。若有错误,请大家指正。
关键词:multinoulli
,Categorical
,softmax
一、分类分布的若干形式
1.1、分类分布指示形式
第一,回顾一下猫猫分布 (multinoulli distribution)或者叫 (Categorical distribution)。因为有英文 cat,我又叫它猫猫分布🐈:
$$\begin{align}
\mathrm{Cat}(x\mid\bm{\mu})=\prod_{c=1}^{C}\mu_c^{\mathbb{I}(x=c)},x\in\{1,…,C\}
\end{align}$$其中
$\displaystyle \bm{\mu}=[\mu_1,\mu_2,…,\mu_C]^\text{T}\,,\sum_{c=1}^{C}\mu_c=\bm{1}^\text{T}\bm{\mu}=1$
1.2、分类分布0-1编码形式
第二、特别的,我们使用0-1编码来表示分类时,我们有:
$$\begin{align}
\mathrm{Cat}(\bm{x}\mid\bm{\mu})=\prod_{c=1}^{C}\mu_c^{x_c}\,,\bm{x}=[x_1,x_2,…,x_C]^\text{T}\,,\bm{x}\in\{0,1\}^C
\end{align}$$
其中 $\displaystyle \sum_{c=1}^{C}x_c=\bm{1}^\text{T}\bm{x}=1$
1.3、分类分布指数族形式
第三、继续使用0-1编码,现在我们使用指数族的思想,对分类分布,也就是这个猫猫加以变形,这形式是我们要经常用到的形式:
$$\begin{align}
\mathrm{Cat}(\bm{x}\mid\bm{\mu})
&=\prod_{c=1}^{C}\mu_c^{x_c}
=\exp\bigg[\sum_{c=1}^C x_c\ln\mu_c\bigg]
=\exp\bigg[\bm{x}^\text{T}\ln \bm{\mu}\bigg]\\
&=\exp\bigg[\bm{x}^\text{T}\ln\frac{\bm{\mu}}{\mu_C}+\ln \mu_C\bigg]
\end{align}$$
我们定义一个新的向量 $\displaystyle \bm{\eta}=\ln\frac{\bm{\mu}}{\mu_C}$,于是有:
$$\begin{align}
\bm{\mu}
=\mathcal{S}\big(\bm{\eta}\big)=\mathrm{softmax}\big(\bm{\eta}\big)
=\Bigg[\frac{\mathrm{e}^{\eta_c}}{\sum_{c=1}^{C}\mathrm{e}^{\eta_c}}\Bigg]_{1\times C}
=\frac{\mathrm{e}^\bm{\eta}}{\bm{I}^\text{T}\mathrm{e}^\bm{\eta}}
\end{align}$$
亦有
$$\begin{align}
\bm{x}\sim \mathrm{Cat}\big(\bm{x}\mid \mathcal{S}\big(\bm{\eta}\big)\big)=\exp \big[\bm{x}^\text{T}\bm{\eta}-\ln [\bm{I}^\text{T}\mathrm{e}^\bm{\eta}]\big]
\end{align}$$
二、分类分布、sofxmax和多元logistic回归。
2.1、多元logistic回归模型
考虑如下广义线性模型连接函数 $\displaystyle g \big(\bm{\mu}\big)=\bm{\eta}=\bm{W}\bm{x}\to \bm{\mu}=\mathcal{S}\big(\bm{W}\bm{x}\big)$。这一模型的形式具有十分重要的意义,首先让我们把诸多特征与与分类建立的了数学模型,其次分类分布的期望是一组归一化的概率,直接代表了我们对一次特征观测应该对应于哪个分类的信心。辅助以决策论,很容易做出推断。
$$\begin{align}
\bm{y}\sim \mathrm{Cat}\big(\bm{y}\mid \mathcal{S}\big(\bm{W}\bm{x}\big)\big)
\end{align}$$我们有对数似然:
$$\begin{align}
\ell \big(\mathcal{D}\mid \bm{W}\big)
&=\ln \prod_{i=1}^N\prod_{c=1}^{C}\mathcal{S}_{ic}^{y_{ic}}
=\sum_{i=1}^N \bm{y}_i ^\text{T}\ln \mathcal{S}\big(\bm{W}\bm{x}_i\big)
=\sum_{i=1}^N\bigg[\bm{y}_i ^\text{T}\bm{W}\bm{x}_i-\ln \bigg(\bm{I}^\text{T} \exp \big[\bm{W}\bm{x}_i\big]\bigg)\bigg]\\
&=\sum_{i=1}^N\bigg[\bm{y}_i ^\text{T}\bm{\eta}_i-\ln \bigg(\bm{I}^\text{T} \exp \big[\bm{\eta}_i\big]\bigg)\bigg]
\end{align}$$
2.2、多元logistic回归的梯度
我们有:
$$\begin{align}
\frac{\partial \ell}{\partial \bm{\eta}}
=\sum_{i=1}^N \Bigg[\bm{y}_i- \frac{\mathrm{diag}\big[\mathrm{e}^{\bm{\eta}_i}\big]\bm{I}}{\bm{I}^\text{T} \exp \big[\bm{\eta}_i\big]}\Bigg]
=\sum_{i=1}^N \big[\bm{y}_i- \mathcal{S}\big(\bm{\eta}_i\big)\big]
\end{align}$$有如下微分
$$\begin{align}
\mathrm{d}\ell
=\sum_{i=1}^N \big[\bm{y}_i- \mathcal{S}\big(\bm{\eta}_i\big)\big]^\text{T}\mathrm{d}\bm{\eta}_i
=\mathrm{tr}\bigg(\sum_{i=1}^N \big[\bm{y}_i- \mathcal{S}\big(\bm{\eta}_i\big)\big]^\text{T}\mathrm{d}\bm{\eta}_i\bigg)
\end{align}$$
注意到 $\displaystyle \bm{\eta}_i=\bm{W}\bm{x}_i\to \mathrm{d}\bm{\eta}_i=\mathrm{d}\bm{W}\bm{x}_i$于是根据数量函数与矩阵微分的地定义有 :
$$\begin{align}
&\mathrm{d}\ell
=\mathrm{tr}\bigg(\frac{\partial \ell}{\partial \bm{\eta}_i ^\text{T}}\cdot\mathrm{d}\bm{\eta}_i\bigg)
=\sum_{i=1}^N\mathrm{tr}\Big( \big[\bm{y}_i- \mathcal{S}\big(\bm{\eta}_i\big)\big]^\text{T}\mathrm{d}\bm{W}\bm{x}_i\Big)
=\sum_{i=1}^N\mathrm{tr}\Big( \bm{x}_i\big[\bm{y}_i- \mathcal{S}\big(\bm{\eta}_i\big)\big]^\text{T}\mathrm{d}\bm{W}\Big)\\
&\Longrightarrow \frac{\partial \ell}{\partial \bm{W}}=\sum_{i=1}^N \big[\bm{y}_i- \mathcal{S}\big(\bm{\eta}_i\big)\big]\bm{x}_i^\text{T}
\end{align}$$
也就是说我们有梯度
$$\begin{align}
\nabla_{\bm{W}}
=\sum_{i=1}^N \big[\bm{y}_i- \mathcal{S}\big(\bm{\eta}_i\big)\big]\bm{x}_i^\text{T}
=\sum_{i=1}^N \big[\bm{y}_i- \bm{\mu}_i\big]\bm{x}_i^\text{T}
\end{align}$$
2.3、多元logistic回归的海赛矩阵
注意到梯度的维数是 $\displaystyle D\times D$,应用 $\displaystyle \frac{\partial \big[a(\bm{x})\bm{f}(\bm{x})\big]}{\partial \bm{x}^\text{T}}=a\frac{\partial \bm{f}}{\partial \bm{x}^\text{T}}+\bm{f}\frac{\partial a}{\partial \bm{x}^\text{T}}$,于是我们注意到有如下结论
$$\begin{align}
\dot{\mathcal{S}}
&=\frac{\partial \mathcal{S}\big(\bm{\eta}\big)}{\partial \bm{\eta}^\text{T}}
=\frac{1}{\bm{I}^\text{T}\mathrm{e}^\bm{\eta}}\mathrm{diag}\big[\mathrm{e}^\bm{\eta}\big]-
\mathrm{e}^\bm{\eta}\left[\frac{\mathrm{diag}\big[\mathrm{e}^\bm{\eta}\big]\bm{I}}{\big[\bm{I}^\text{T}\mathrm{e}^\bm{\eta}\big]^2}\right]^\text{T}\\
&=\frac{\mathrm{diag}\big[\mathrm{e}^\bm{\eta}\big]}{\bm{I}^\text{T}\mathrm{e}^\bm{\eta}}-
\frac{ \mathrm{e}^\bm{\eta}\big[\mathrm{e}^\bm{\eta}\big]^\text{T}}{\big[\bm{I}^\text{T}\mathrm{e}^\bm{\eta}\big]^2}=\mathrm{diag}\big[\bm{\mu}\big]-\bm{\mu}\bm{\mu}^\text{T}
\end{align}$$
现在我们更进一步求这个矩阵梯度的微分,同时注意到有( $\displaystyle \mathrm{vec}\big(\bm{A}\bm{X}\bm{B}\big)=\big[\bm{B}^\text{T}\otimes \bm{A}\big]\mathrm{vec}\big(\bm{X}\big)$),于是我们可以导出矩阵导数:
$$\begin{align}
&\mathrm{d}\nabla=
\sum_{i=1}^N\dot{\mathcal{S}}\big(\bm{\eta}_i\big)\cdot\mathrm{d}\bm{\eta}_i \cdot\bm{x}_i ^\text{T}
=\sum_{i=1}^N\dot{\mathcal{S}}\big(\bm{\eta}_i\big)\cdot\mathrm{d}\bm{W}\cdot\bm{x}_i\cdot \bm{x}_i ^\text{T}\\
\Longrightarrow&\mathrm{vec}\big(\mathrm{d}\nabla\big)=\mathrm{vec}\bigg(\sum_{i=1}^N\dot{\mathcal{S}}\big(\bm{\eta}_i\big)\cdot\mathrm{d}\bm{W}\cdot\bm{x}_i\cdot \bm{x}_i ^\text{T}\bigg)\\
\Longrightarrow&\mathrm{d}\mathrm{vec}\big(\nabla\big)=\sum_{i=1}^N \mathrm{vec}\big(\dot{\mathcal{S}}\big(\bm{\eta}_i\big)\cdot\mathrm{d}\bm{W}\cdot\bm{x}_i\cdot \bm{x}_i ^\text{T}\big)\\
\Longrightarrow&\mathrm{d}\mathrm{vec}\big(\nabla\big)=\sum_{i=1}^N\big[\bm{x}_i \bm{x}_i ^\text{T}\otimes\dot{\mathcal{S}}\big(\bm{\eta}_i\big)\big]\mathrm{d}\mathrm{vec}\big(\bm{W}\big)\\
\Longrightarrow&\bm{H}=\frac{\partial \mathrm{vec}\big(\nabla\big)}{\partial \mathrm{vec}^\text{T}\big(\bm{W}\big)}=\sum_{i=1}^N\bm{x}_i \bm{x}_i ^\text{T}\otimes\dot{\mathcal{S}}\big(\bm{\eta}_i\big)=\sum_{i=1}^N\bm{x}_i \bm{x}_i ^\text{T}\otimes \big[\mathrm{diag}\big[\bm{\mu}_i\big]-\bm{\mu}_i\bm{\mu}_i^\text{T}\big]
\end{align}$$
为了方便计算,我们把梯度也向量化,于是我们有
$$\begin{align}
\begin{cases}
\displaystyle\nabla=\mathrm{vec}\big(\nabla_{\bm{W}}\big)=\sum_{i=1}^N\bm{x}_i \otimes\big[\bm{y}_i- \bm{\mu}_i\big]\\
\displaystyle\bm{H}=\sum_{i=1}^N\bm{x}_i \bm{x}_i ^\text{T}\otimes \big[\mathrm{diag}\big[\bm{\mu}_i\big]-\bm{\mu}_i\bm{\mu}_i^\text{T}\big]
\end{cases}
\end{align}$$
牛顿-拉弗迭代法有:
$$\begin{align}
\mathrm{vec}\big(\bm{W}\big):=\mathrm{vec}\big(\bm{W}\big)-\bm{H}^{-1}\nabla
\end{align}$$
当然各种优化方法都可以加以应用。
三、评述
1、分类分布,有人又叫多项式分布,这里n=1,不过我不太赞成这个说法,使用分类分布更加恰当。当然更萌(๑•ᴗ•๑)一点可以叫猫猫分布。
2、分类分布是一种很特殊的分布:对任意一个连续分布,如果我们将其离散化,我们都可以归结为一个分类分布。
3、分类问题可以归结为:对特征向量分类,或者说对特征空间进行划分。由于与分类分布的关系使得 softmax函数经常出现,一般把它放在神经网络的最后一层来输出概率。
版权声明 | |
由引线小白创作并维护的柠檬CC博客采用署名-非商业-禁止演绎4.0国际许可证。 本文首发于柠檬CC [ https://www.limoncc.com ] , 版权所有、侵权必究。 | |
本文永久链接 | httpss://www.limoncc.com/post/b1417de51d2c97b0ef371b6561a65f4b/ |
如果您需要引用本文,请参考: |
引线小白. (May. 6, 2017). 《分类分布大意》[Blog post]. Retrieved from https://www.limoncc.com/post/b1417de51d2c97b0ef371b6561a65f4b |
@online{limoncc-b1417de51d2c97b0ef371b6561a65f4b, title={分类分布大意}, author={引线小白}, year={2017}, month={May}, date={6}, url={\url{https://www.limoncc.com/post/b1417de51d2c97b0ef371b6561a65f4b}}, } |