0 引言
由于要学习softmax回归,所以探究了一下softmax的推导过程。期间主要参考了一些博客和Andrew Ng 机器学习课程,在此一并感谢大家的无私与慷慨。要想明白softmax回归,需先搞清楚广义线性模型GLM,要想明白GLM又要先知道指数族分布,下面详细解释一下三者之间的关系。
1 指数族分布(The exponential family)
指数族分布是指可以表示为指数形式的概率分布。指数族分布的一般表达式如下为:
其中,η为分布的 *自然参数*;T(y)是 充分统计量,通常T(y)=y.当参数a、b、T都已知的情况下,便可获得一个以η为参数的函数族。我们常见的 伯努利分布和 高斯分布都属于指数族分布,以下把他们改写成指数族分布形式。
1.1 伯努利分布
伯努利分布是对0、1问题进行建模。对于Bernoulli(
φ
), yϵ{0,1},有
p(y=1;φ)=φ
;
p(y=0;φ)=1−φ
。将其表示成指数族格式如下:
对比指数族分布形式,可知:
表明伯努利分布也是指数分布族的一种。从上式子可以看出, η 的形式与logistic函数一致,这是因为logistic模型对问题的前置概率估计其实就是伯努利分布。
1.2高斯分布
为了方便推导,另 σ 为1:
对比指数族分布公式:
- 伯努利分布(Bernoulli):对0、1问题进行建模
- 多项式分布(Multinomial):对K个离散结果的事件建模;如softmax
- 泊松分布(Poisson):对计数过程进行建模,如网站访问量计数
- 伽马分布(Gamma)与指数分布(exponential):对有间隔的正数进行建模,如公交车到站时间问题。
- β 分布:对小数建模
- Dirichlet分布:对概率分布进行建模
- Wishart分布:协方差分布进行建模
- 高斯分布
研究指数族分布是为了引出广义线性模型,以下介绍GLM:
2 广义线性模型(General Linear Model )GLM
2.1 GLM假设
仔细观察伯努利分布和高斯分布的指数分布族形式中的η变量。可以发现,在伯努利的指数分布族形式中,η与伯努利分布的参数φ是一个logistic函数(下面会介绍logistic回归的推导)。此外,在高斯分布的指数分布族表示形式中,η与正态分布的参数μ相等,下面会根据它推导出普通最小二乘法(Ordinary Least Squares)。通过这两个例子,我们大致可以得到一个结论, η以不同的映射函数与其它概率分布函数中的参数发生联系,从而得到不同的模型,广义线性模型正是将指数分布族中的所有成员(每个成员正好有一个这样的联系)都作为线性模型的扩展,通过各种非线性的连接函数将线性函数映射到其他空间,从而大大扩大了线性模型可解决的问题。
GLM的形式化定义,有如下三个假设:
(1)
y|x;
给定样本
x
与参数
(2)给定一个
(3)
η=θTx
通过GLM三个假设,可以推导出logistic模型和普通最小二乘模型。推导过程如下:
2.2 logistic回归推导
伯努利目标函数:
- 公式第一行由GLM假设(2)得出;
- 公式第二行由伯努利分布得出
- 公式第三行由伯努利指数分布族表示得出
- 公式第四行由GLM假设(3)进行变量替换得出
2.3 高斯最小二乘推导
高斯分布目标函数:
- 第一行由GLM假设(2)得出
- 第二行由高斯分布 y|x;θ∼N(μ,σ2) 计算得到
- 第三行由高斯分布的指数族分布表示得出
第四行由GLM假设(3)得到
将η与原始概率分布中的参数联系起来的函数成为正则相应函数(canonical response function),如 φ=11+e−η 、μ=η即是正则响应函数。正则响应函数的逆成为正则关联函数(canonical link function)。
所以,对于广义线性模型,需要决策的是选用什么样的分布,当选取高斯分布时,我们就得到最小二乘模型,当选取伯努利分布时,我们得到 logistic 模型,这里所说的模型是假设函数 h 的形式。
最后总结一下:广义线性模型通过假设一个概率分布,得到不同的模型,而梯度下降和牛顿方法都是为了求取模型中的线性部分 θTx 的参数θ 。
另外一个重要的多分类模型softmax regression,同样可以通过广义线性模型推导得出,具体见下一小结。
3 softmax回归–多分类模型
3.1 softmax模型推导
在Logistic回归中,样本适用于二分法,即
yi∈{0,1}
,而softmax回归适用于多种类分类,其中
yi∈{1,2,...,k}
,其中
k
是类别种数,比如手写字符识别中
与之前不一样,此处 T(y) 不等于 y ,它是一个
引入函数 I ,使得:
由于
3.2 softmax 回归参数求解
接下来建立对数似然函数:
3.3 softmax 回归参数求解调整
比较有趣的时,softmax regression中对参数的最优化求解不只一个,每当求得一个优化参数时,如果将这个参数的每一项都减掉同一个数,其得到的损失函数值也是一样的。这说明这个参数不是唯一解。用数学公式证明过程如下所示:
那这个到底是什么原因呢?从宏观上可以这么理解,因为此时的损失函数不是严格非凸的,也就是说在局部最小值点附近是一个”平坦”的,所以在这个参数附近的值都是一样的了。那么怎样避免这个问题呢?其实加入规则项就可以解决(比如说,用牛顿法求解时,hession矩阵如果没有加入规则项,就有可能不是可逆的从而导致了刚才的情况,如果加入了规则项后该hession矩阵就不会不可逆了),加入规则项后的损失函数表达式如下:
偏导表达式:
softmax regression和k binary classifiers之间的区别和使用条件。总结就这么一个要点:如果所需的分类类别之间是严格相互排斥的,也就是两种类别不能同时被一个样本占有,这时候应该使用softmax regression。反正,如果所需分类的类别之间允许某些重叠,这时候就应该使用binary classifiers了。
参考博文:
http://blog.csdn.net/acdreamers/article/details/44663305
http://blog.csdn.net/dream_angel_z/article/details/46288167
http://deeplearning.stanford.edu/wiki/index.php/Softmax_Regression
http://www.cnblogs.com/tornadomeet/archive/2013/03/23/2977621.html