二分类问题Sigmod

  在 logistic 回归中,我们的训练集由  个已标记的样本构成: ,其中输入特征。(我们对符号的约定如下:特征向量  的维度为 ,其中  对应截距项 。) 由于 logistic 回归是针对二分类问题的,因此类标记 。假设函数(hypothesis function) 如下:

<dl> <dd> </dd> </dl>

我们将训练模型参数 ,使其能够最小化代价函数 :

<dl> <dd> </dd> </dl>

多分类问题

   在一个多分类问题中,因变量y有k个取值,即。例如在邮件分类问题中,我们要把邮件分为垃圾邮件、个人邮件、工作邮件3类,目标值y是一个有3个取值的离散值。这是一个多分类问题,二分类模型在这里不太适用。

  主要应用就是多分类,sigmoid函数只能分两类,而softmax能分多类,softmax是sigmoid的扩展。

  Logistic函数只能被使用在二分类问题中,但是它的多项式回归,即softmax函数,可以解决多分类问题。

  在 softmax回归中,我们解决的是多分类问题(相对于 logistic 回归解决的二分类问题),类标  可以取  个不同的值(而不是 2 个)。因此,对于训练集 ,我们有 。(注意此处的类别下标从 1 开始,而不是 0) 

  对于给定的测试输入 ,我们想用假设函数针对每一个类别j估算出概率值 。也就是说,我们想估计  的每一种分类结果出现的概率。因此,我们的假设函数将要输出一个  维的向量(向量元素的和为1)来表示这  个估计的概率值。 具体地说,我们的假设函数  形式如下:

<dl> <dd> </dd> </dl>


  其中  是模型的参数。请注意 这一项对概率分布进行归一化,使得所有概率之和为 1 。


  为了方便起见,我们同样使用符号  来表示全部的模型参数。在实现Softmax回归时,将  用一个  的矩阵来表示会很方便,该矩阵是将  按行罗列起来得到的,如下所示:

<dl> <dd> </dd> </dl>

代价函数

 值为假的表达式 。举例来说,表达式  的值为1 ,的值为 0。我们的代价函数为:

<dl> <dd> </dd> </dl>


值得注意的是,上述公式是logistic回归代价函数的推广。logistic回归代价函数可以改为:

<dl> <dd> </dd> </dl>


可以看到,Softmax代价函数与logistic 代价函数在形式上非常类似,只是在Softmax损失函数中对类标记的 k 个可能值进行了累加。注意在Softmax回归中将 x 分类为类别  的概率为:

<dl> <dd> . </dd> </dl>


对于  的最小化问题,目前还没有闭式解法。因此,我们使用迭代的优化算法(例如梯度下降法,或 L-BFGS)。经过求导,我们得到梯度公式如下:

<dl> <dd> </dd> </dl>


让我们来回顾一下符号 "" 的含义。 本身是一个向量,它的第  个元素  是  的第  个分量的偏导数。


有了上面的偏导数公式以后,我们就可以将它代入到梯度下降法等算法中,来最小化 。 例如,在梯度下降法的标准实现中,每一次迭代需要进行如下更新: ()。

当实现 softmax 回归算法时, 我们通常会使用上述代价函数的一个改进版本。

Softmax回归与Logistic 回归的关系

当类别数  时,softmax 回归退化为 logistic 回归。这表明 softmax 回归是 logistic 回归的一般形式。具体地说,当  时,softmax 回归的假设函数为:

<dl> <dd> </dd> </dl>


利用softmax回归参数冗余的特点,我们令 ,并且从两个参数向量中都减去向量 ,得到:

<dl> <dd> </dd> </dl>


因此,用 来表示,我们就会发现 softmax 回归器预测其中一个类别的概率为 ,另一个类别概率的为 ,这与 logistic回归是一致的。

广义线性模型

linear,Logistic,Softmax 都是一个东西推导出来的。
这些分布之所以长成这个样子,是因为我们对y进行了假设。
当y是两点分布-------->linear model
当y是正态分布-------->Logistic model
当y是多项式分布-------->Softmax

http://ufldl.stanford.edu/wiki/index.php/Softmax回归#Softmax.E5.9B.9E.E5.BD.92.E4.B8.8ELogistic_.E5.9B.9E.E5.BD.92.E7.9A.84.E5.85.B3.E7.B3.BB