注:本文中所有公式和思路来自于Andrew NG先生的《cs229-notes1》,我只是为了加深记忆和理解写的本文。
本来线性回归不打算说Softmax回归,因为套用Logistic回归的那一套思路基本没有任何难度,昨晚翻了翻Andrew NG的machine learning的讲义,觉得说得挺实在也挺简单,原版为英文版,如果大家看起来不方便,这里不妨和大家分享一下。
Logistic是解决二分类问题的,而Softmax是解决多分类的方法,Softmax和Logistic一样都是指数簇分布,是对数线性模型,广义上的线性回归。
既然是多分类,y∈{1, 2,3 ...k},用Φ1、Φ2、Φ3...Φk表示样本属于该类别的概率,既然是概率,那么加和就为1:
为了方便起见,我们去掉Φk:
接下来定义T(y)∈R:
我们定义一个规则:
对于这个规则,我们举个例子说明一下:
我们将这个规则与T(y)联系起来:
对T(y)求期望即使概率:
我们求一下联合概率:
虽然看起来有些乱,但是请耐住性子,都是很简单的变换而已,其中最后一步,我们令:
我们将其中的η改写成通项:
为了方便起见,我们令:
整理下所有关于Φ的公式:
代换公式,可以新的等式:
根据在Logistic中的假设,我们可以知道η与x是线性相关的,所以可以得到:
为了记号方便,我们做一个对于第k类的假定:
最终我们得到最终的概率公式:
那么最终的分类过程其实是这样的:
其实计算的是一个样本属于每个分类的概率,我们取一下对数似然::
最后我们可以用Logistic最后的那一套去优化这个θ,什么BGD、SGD、mini-batch都是可以的,也可以用牛顿法等等,就不详细说了。
到此Softmax就介绍到这里,欢迎批评指正!