1. Logistic回归简介
Logistic回归是解决二分类问题的分类算法。假设有个训练样本,对于Logistic回归,其输入特征为:,类标记为:,假设函数为Sigmoid函数:
其中,模型的参数为,需要通过最小化损失函数得到,模型的损失函数为:
此时,可以通过梯度下降法对其进行求解,其梯度为:
而:
因此,梯度的公式为:
根据梯度下降法,得到如下的更新公式:
2. Softmax回归
2.1. Softmax回归简介
Softmax是Logistic回归在多分类上的推广,即类标签的取值大于等于。假设有个训练样本,对于Softmax回归,其输入特征为:,类标记为:。假设函数为对于每一个样本估计其所属的类别的概率,具体的假设函数为:
其中$\theta \theta _i\in \Re ^{n+1}$。则对于每一个样本估计其所属的类别的概率为:
2.2. Softmax回归的代价函数
类似于Logistic回归,在Softmax的代价函数中引入指示函数,其具体形式为:
那么,对于Softmax回归的代价函数为:
2.3. Softmax回归的求解
对于上述的代价函数,可以使用梯度下降法对其进行求解,首先对其进行求梯度:
已知,对于一个样本只会属于一个类别:
- 若$ y^{(i)}=jI\left { y^{(i)}=j \right }=1$
- 若$ y^{(i)}\neq jy^{(i)}\neq {j}‘I\left { y^{(i)}=j \right }=0I\left { y^{(i)}={j}’ \right }=1$
最终的结果为:
注意,此处的表示的是一个向量。通过梯度下降法的公式可以更新:
2.4. Softmax回归中的参数特点
在Softmax回归中存在着参数冗余的问题。简单来讲就是参数中有些参数是没有任何用的,为了证明这点,假设从参数向量中减去向量$\psi $,假设函数为:
从上面可以看出从参数向量中减去向量$\psi $对预测结果并没有任何的影响,也就是说在模型中,存在着多组的最优解。
为了是算法能够尽可能简单,保留所有的参数,但是对代价函数加入权重衰减来解决参数冗余的问题,权重衰减即对参数进行正则化。
如对参数进行L2正则约束,L2正则为:
此时,代价函数为:
其中,,此时代价函数是一个严格的凸函数。
对该函数的导数为:
2.5. Softmax与Logistic回归的关系
Logistic回归算法是Softmax回归的特征情况,即时的情况,当
时,Softmax回归为:
利用Softmax回归参数冗余的特点,令,从两个向量中都减去这个向量,得到:
上述的表达形式与Logistic回归是一致的。
2.6. 多分类算法和二分类算法的选择
有人会觉得对于一个多分类问题,可以使用多个二分类来完成,对于多分类问题是直接选择多分类的分类器还是选择多个二分类的分类器进行叠加,在UFLDL中,作者给出了这样的解释:取决于类别之间是否互斥。
对于一个多分类的问题,是直接选择多分类器直接计算还是选择多个二分类器进行计算取决于问题中类别之间是否互斥。
- 是互斥的 --> Softmax回归
- 不是互斥的 --> 多个独立的Logistic回归
对于Softmax回归更多内容,包括实验可见博客简单易学的机器学习算法——Softmax Regression
参考文献
[1] 英文版:UFLDL Tutorial
[2] 中文版:UFLDL教程
[3] 《Python机器学习算法》第2章 Softmax Regression