一、Multionoulli分布
Multionoulli分布(或范畴分布)指在具有k个不同状态的单个离散型随机变量上的分布,其中k是一个有限值。Multionoulli分布,由向量参数化,其中每一个分量
表示第i个状态的概率。最后第k个状态的概率可以通过
给出,
。这里
,其实应该为
即除第k个状态的其他状态概率之和。
Multionoulli分布经常用来表示对象分类的分布,很少假设状态1具有数值1之类的。因此,不需要Multionoulli分布的随机变量的期望和方差。
注:Multionoulli分布是多项式分布的一个特例。多项式分布是中的向量分布,用于表示对Multionoulli分布采样n次时k个类别中的每一个被访问的次数。很多地方使用“多项式分布”而实际上说的是Multionoulli分布,但并没有说是对于n=1的情况。
参考:深度学习(Ian GoodFellow) 40页
二、softmax(用于Multionoulli输出分布的softmax单元)
当想要表示具有n个可能取值的离散型随机变量的分布时,可以使用softmax函数。softmax函数最常用作分类器的输出,来表示n个不同类别的概率分布。
对于有n个值的离散变量,。不仅要求每个
在0到1之间,而且
。
首先,线性层预测了未归一化的对数概率: ,其中
。softmax函数然后对z指数化和归一化来获得需要的
。最终,softmax函数的形式为:
我们想要最大化;即
,当最大化对数似然时,第一项鼓励
被推高,第二项则鼓励所有的z被压低。为了对第二项
有一个直观的理解,注意到这一项可以大致近似认为
。这种近似是基于对任何明显小于
的
,
都是不重要的。
从这种近似中得到的直觉是,负对数似然代价函数总是强烈地惩罚最活跃的不正确的预测。如果正确答案已经具有了softmax的最大输入,那么项和
项将大致抵消。这个样本对于整体训练代价贡献很小,这个代价主要由其他未被正确分类的样本产生。
参考:深度学习(Ian GoodFellow) 115页
三、softmax求导(这里只是针对单个样本的情况)
多分类问题,我们通常使用交叉熵损失函数,其中目标类的
是1(真实值),其余类为0(one-hot编码的形式);也可以写成
,
表示真实值,
是求出的softmax值。
当预测第i个时,此时可认为=1,则
接着,对loss求导。
根据softmax的定义: ;且有
。
对其求导: