1. Logistic回归简介

Logistic回归是解决二分类问题的分类算法。假设有深度学习算法原理——Softmax Regression_分类算法个训练样本深度学习算法原理——Softmax Regression_Softmax回归_02,对于Logistic回归,其输入特征为:深度学习算法原理——Softmax Regression_分类算法_03,类标记为:深度学习算法原理——Softmax Regression_Softmax回归_04,假设函数为Sigmoid函数:

深度学习算法原理——Softmax Regression_分类算法_05

其中,模型的参数为深度学习算法原理——Softmax Regression_梯度下降法_06,需要通过最小化损失函数得到,模型的损失函数为:

深度学习算法原理——Softmax Regression_梯度下降法_07

此时,可以通过梯度下降法对其进行求解,其梯度为:

深度学习算法原理——Softmax Regression_分类算法_08

深度学习算法原理——Softmax Regression_分类算法_09

而:

深度学习算法原理——Softmax Regression_深度学习_10

深度学习算法原理——Softmax Regression_深度学习_11

因此,梯度的公式为:

深度学习算法原理——Softmax Regression_分类算法_12

根据梯度下降法,得到如下的更新公式:

深度学习算法原理——Softmax Regression_梯度下降法_13

2. Softmax回归

2.1. Softmax回归简介

Softmax是Logistic回归在多分类上的推广,即类标签深度学习算法原理——Softmax Regression_梯度下降法_14的取值大于等于深度学习算法原理——Softmax Regression_梯度下降法_15。假设有深度学习算法原理——Softmax Regression_分类算法个训练样本深度学习算法原理——Softmax Regression_Softmax回归_02,对于Softmax回归,其输入特征为:深度学习算法原理——Softmax Regression_分类算法_03,类标记为:深度学习算法原理——Softmax Regression_梯度下降法_19。假设函数为对于每一个样本估计其所属的类别的概率深度学习算法原理——Softmax Regression_梯度下降法_20,具体的假设函数为:

深度学习算法原理——Softmax Regression_深度学习_21

其中$\theta 深度学习算法原理——Softmax Regression_分类算法_22\theta _i\in \Re ^{n+1}$。则对于每一个样本估计其所属的类别的概率为:

深度学习算法原理——Softmax Regression_分类算法_23

2.2. Softmax回归的代价函数

类似于Logistic回归,在Softmax的代价函数中引入指示函数深度学习算法原理——Softmax Regression_损失函数_24,其具体形式为:

深度学习算法原理——Softmax Regression_分类算法_25

那么,对于Softmax回归的代价函数为:

深度学习算法原理——Softmax Regression_深度学习_26

2.3. Softmax回归的求解

对于上述的代价函数,可以使用梯度下降法对其进行求解,首先对其进行求梯度:

深度学习算法原理——Softmax Regression_分类算法_27

已知,对于一个样本只会属于一个类别:

  • 若$ y^{(i)}=j深度学习算法原理——Softmax Regression_损失函数_28I\left { y^{(i)}=j \right }=1$

深度学习算法原理——Softmax Regression_深度学习_29

  • 若$ y^{(i)}\neq j深度学习算法原理——Softmax Regression_分类算法_30y^{(i)}\neq {j}‘深度学习算法原理——Softmax Regression_损失函数_28I\left { y^{(i)}=j \right }=0深度学习算法原理——Softmax Regression_损失函数_32I\left { y^{(i)}={j}’ \right }=1$

深度学习算法原理——Softmax Regression_分类算法_33

最终的结果为:

深度学习算法原理——Softmax Regression_梯度下降法_34

注意,此处的深度学习算法原理——Softmax Regression_Softmax回归_35表示的是一个向量。通过梯度下降法的公式可以更新:

深度学习算法原理——Softmax Regression_梯度下降法_13

2.4. Softmax回归中的参数特点

在Softmax回归中存在着参数冗余的问题。简单来讲就是参数中有些参数是没有任何用的,为了证明这点,假设从参数向量深度学习算法原理——Softmax Regression_分类算法_37中减去向量$\psi $,假设函数为:

深度学习算法原理——Softmax Regression_Softmax回归_38

从上面可以看出从参数向量深度学习算法原理——Softmax Regression_分类算法_37中减去向量$\psi $对预测结果并没有任何的影响,也就是说在模型中,存在着多组的最优解。

为了是算法能够尽可能简单,保留所有的参数,但是对代价函数加入权重衰减来解决参数冗余的问题,权重衰减即对参数进行正则化。

如对参数进行L2正则约束,L2正则为:

深度学习算法原理——Softmax Regression_分类算法_40

此时,代价函数为:

深度学习算法原理——Softmax Regression_损失函数_41

其中,深度学习算法原理——Softmax Regression_损失函数_42,此时代价函数是一个严格的凸函数。

对该函数的导数为:

深度学习算法原理——Softmax Regression_梯度下降法_43

2.5. Softmax与Logistic回归的关系

Logistic回归算法是Softmax回归的特征情况,即深度学习算法原理——Softmax Regression_分类算法_44时的情况,当
深度学习算法原理——Softmax Regression_分类算法_44时,Softmax回归为:

深度学习算法原理——Softmax Regression_梯度下降法_46

利用Softmax回归参数冗余的特点,令深度学习算法原理——Softmax Regression_深度学习_47,从两个向量中都减去这个向量,得到:

深度学习算法原理——Softmax Regression_Softmax回归_48

上述的表达形式与Logistic回归是一致的。

2.6. 多分类算法和二分类算法的选择

有人会觉得对于一个多分类问题,可以使用多个二分类来完成,对于多分类问题是直接选择多分类的分类器还是选择多个二分类的分类器进行叠加,在UFLDL中,作者给出了这样的解释:取决于类别之间是否互斥。

对于一个多分类的问题,是直接选择多分类器直接计算还是选择多个二分类器进行计算取决于问题中类别之间是否互斥。

  • 是互斥的 --> Softmax回归
  • 不是互斥的 --> 多个独立的Logistic回归

对于Softmax回归更多内容,包括实验可见博客简单易学的机器学习算法——Softmax Regression

参考文献

[1] 英文版:UFLDL Tutorial

[2] 中文版:UFLDL教程

[3] 《Python机器学习算法》第2章 Softmax Regression