![f8727875b6f17537256ec3ac7f20d1a8.png](https://i-blog.csdnimg.cn/blog_migrate/ea39adbc9770154d492ce1e61f8021c6.jpeg)
1 逻辑回归与多分类
我们已经知道,普通的logistic回归只能针对二分类(Binary Classification)问题,要想实现多个类别的分类,我们必须要改进logistic回归,让其适应多分类问题。
关于这种改进,有两种方式可以做到。
- 第一种方式是直接根据每个类别,都建立一个二分类器,带有这个类别的样本标记为1,带有其他类别的样本标记为0。假如我们有k个类别,最后我们就得到了k个针对不同标记的普通的logistic二分类器。(本质上就是ovr的做法)
- 第二种方式是修改logistic回归的损失函数,让其适应多分类问题。这个损失函数不再笼统地只考虑二分类非1就0的损失,而是具体考虑每个样本标记的损失。这种方法叫做softmax回归,即logistic回归的多分类版本。
2 ovr
![15b7601fbb018edb6421d4f618598b1e.png](https://i-blog.csdnimg.cn/blog_migrate/6250148d28d2c585caacf358e739e9ad.jpeg)
对于二分类问题,我们只需要一个分类器即可,但是对于多分类问题,我们需要多个分类器
对于
针对每一个测试样本,我们需要找到这k个分类函数输出值最大的那一个,即为测试样本的标记
3 softmax
该模型将逻辑回归推广到分类问题,其中类标签y可以采用两个以上的可能值。这对于诸如MNIST数字分类之类的问题将是有用的,其中目标是区分10个不同的数字。Softmax回归是一种监督学习算法,但我们稍后会将其与我们的深度学习/无监督特征学习方法结合使用。
在softmax回归设置中,我们对多类分类感兴趣(而不是仅对二元分类),所以y
可以取k
个不同的取值。因此,在我们的训练集
给定测试输入x,我们希望我们的模型估计每个类别的概率。因此,我们的模型将输出k维向量(其元素总和为1),给出我们的k个类别的估计概率。具体地说,我们的假设$h_theta(x)$采用以下形式:
![cf88945993c6558b33c02ce289f57d0a.png](https://i-blog.csdnimg.cn/blog_migrate/b62cb4e861f7c759772144893a1d2f45.jpeg)
其中,
为方便起见,我们还会向量法来表示模型的所有参数。当你实现softmax回归时,将θ表示为通过堆叠
![0abf485648f2c7384ace4b10a3462990.png](https://i-blog.csdnimg.cn/blog_migrate/1ea318bad78d37a46b518eb439f2cbbd.jpeg)
损失函数
![a4fee05a6ac7c293e168fef4dbbe1e5e.png](https://i-blog.csdnimg.cn/blog_migrate/150c23ae6509a19503d6e5a1718c674b.jpeg)
求导后,可得
![860a82d3ab1d5e2d3b68a62e07c2d5df.png](https://i-blog.csdnimg.cn/blog_migrate/846856e542c36de161c33b4b4f3f294f.jpeg)
更新参数
![8d9bd67574f399dd26bbb13ca8eb0c0c.png](https://i-blog.csdnimg.cn/blog_migrate/30aa3a648c29f335a7d7672aa56870ff.jpeg)
4 ovr vs. softmax
假设您正在处理音乐分类应用程序,并且您正在尝试识别k种类型的音乐。您应该使用softmax分类器,还是应该使用逻辑回归构建k个单独的二元分类器?这取决于这四个类是否相互排斥。例如,如果您的四个类是经典,乡村,摇滚和爵士乐,那么假设您的每个训练样例都标有这四个类别标签中的一个,那么您应该构建一个k = 4的softmax分类器。(如果有'还有一些不属于上述四个类的例子,那么你可以在softmax回归中设置k = 5,并且还有第五个,“以上都不是”类。)但是,如果你的类别是has_vocals,舞蹈,配乐,流行音乐,那么这些课程并不相互排斥;例如,可以有一段来自音轨的流行音乐,另外还有人声。在这种情况下,构建4个二元逻辑回归分类器更合适。这样,对于每个新的音乐作品,您的算法可以单独决定它是否属于四个类别中的每一个。现在,考虑一个计算机视觉示例,您尝试将图像分为三个不同的类。(i)假设您的课程是indoor_scene,outdoor_urban_scene和outdoor_wilderness_scene。你会使用sofmax回归还是三个逻辑回归分类器?(ii)现在假设你的课程是indoor_scene,black_and_white_image和image_has_people。您会使用softmax回归或多重逻辑回归分类器吗?在第一种情况下,类是互斥的,因此softmax回归分类器是合适的。在第二种情况下,构建三个单独的逻辑回归分类器更为合适。
总结就是,如果类别之间是互斥的,那么用softmax会比较合适,如果类别之间不是互斥的,用ovr比较合适。