Softmax Regression
softmax regression是对logistic regression 的扩展,由于logistic regression只能处理二分类问题,而实际应用中多分类问题随处可见,如手写体数字识别问题,此时的类别为10。
有些人可能会想,这类问题我们也可以把它转化为二分类问题,这里就要谈到softmax regression和 k binary classes的区别了,softmax regreesion认为对于一个样本只可能属于一类,即类别是相互排斥的;
而k binary classes 是没有该限制的。
在logistic regression中,使用logsitic distribution作为模型的条件概率分布

该概率表示样本属于类别‘1’的概率,对于多分类问题样本属于类别 ‘j'的概率如下式所示:

假设类别数据为:k ,在softmax regression中,样本属于不同类别的概率分布为

注: theta不是一个向量,而是一个 k*n的矩阵,k表示类别数据,n表示样本的长度。每一行对应相应类别的参数,theta的形式如下

相应的损失函数为:

注: 这里使用的损失函数为极大似然估计,由于极大似然估计要取最大值,为了与损失函数相一致,因为前面加负号
为了求解系统参数,一般使用牛顿法,梯度下降法,L-BFGS等方向求解,需要计算梯度

softmax regression对参数求解的最优值不至一个,当求得一个最优解theta时,如果给theta的每一项都减去一个相同的值,得到的损失函数值是一样的。

通过阅读tornadomeet的博客,了解到这有可能是由于我们使用的损失函数不是严格凸问优化问题,即局部最小值附近是一个平坦区域,因为在该区域的theta都是问题的最优解。为了解决这个问题,一般加入规则项

注:lambda为权重衰减因子
此时的梯度为:

参考资料:http://deeplearning.stanford.edu/wiki/index.php/Softmax_Regression

浙公网安备 33010602011771号