LR回归(逻辑回归)和softmax回归
- 1. LR回归
- Logistic回归的函数形式
- Logistic回归的损失函数
- Logistic回归的梯度下降法
- Logistic回归防止过拟合
- Multinomial Logistic Regression
- 2. Softmax回归
- 代价函数
- Softmax回归模型参数化的特点
- 权重衰减
- Softmax回归与Logistic 回归的关系
- Softmax 回归 vs k 个二元分类器
1. LR回归
Logistic回归(Logistic Regression,简称LR)是一种常用的处理二类分类问题的模型
在二分类问题中,把因变量y可能属于的两个类分别称为负类和正类,则因变量y∈{0, 1},其中0表示负类,1表示正类。线性回归
的输出值在负无穷到正无穷的范围上,不太好解决这个问题。于是我们引入非线性变换,把线性回归的输出值压缩到(0, 1)之间,那就成了Logistic回归
使得h(x)≥0.5时,预测y=1,而当h(x)<0.5时,预测y=0。Logistic回归的名字中尽管带有回归二字,可是它是实打实的分类算法。
那用什么非线性变换把线性回归转化成Logistic回归呢?
Logistic回归的函数形式
Logistic回归模型的函数形式为:
其中x代表样本的特征向量,g(z)代表sigmoid函数,公式为
下图为sigmoid函数的图形。
此外非常重要的,sigmoid函数求导后为:
所以Logistic回归模型就是:
对于给定的输入变量,根据选择的参数确定输出变量y=1的概率,即后验概率
Logistic回归的损失函数
Logistic回归中的参数是θ,怎么估计这个参数呢?那么就要定义损失函数,通过最小化损失函数来求解参数。
线性回归中的损失函数是平方误差损失函数,如果Logistic回归也采用这种损失函数形式,那么得到的损失函数将是一个非凸函数。这意味着损失函数会有很多局部极小值,因此不容易找到全局最小值。比如左边这个就是非凸函数的形状,明显右边这个平滑的图不容易陷入局部极小值陷阱。
假设训练数据集为{(x1,y1),(x2,y2),…(xm, ym)},即有m个样本,令x=[x0, x1, …, xn]T,x0=1,即每个样本有n个特征,y∈{0, 1}。于是把Logistic回归的损失函数定义为对数损失函数:
这个对数损失函数的特点是:当类别y=1时,损失随着h(x)的减小而增大,为1时,损失为0;当类别y=0时,损失随着h(x)的增大而增大,为0时,损失为0。与损失的关系如下图:
可以把损失整理为以下的形式:
于是损失函数就成了:
这个损失函数叫做对数似然损失函数,也有个很好听的名字:交叉熵损失函数(cross entropy loss)。这个损失函数是个凸函数,因此可以用梯度下降法求得使损失函数最小的参数。
Logistic回归的梯度下降法
得到了交叉熵损失函数后,可以用梯度下降法来求得使代价函数最小的参数,也就是按下面这个公式更新每个参数θj:
如下是详细的推导过程。
已知:
首先因为sigmoid函数求导数的公式可得:
把上式代入损失函数中,并对θj求偏导:
将这个偏导数乘以学习率,得到了用梯度来更新参数的公式,再用下面这个公式来同时更新所有的参数值,使损失函数最小化,直到模型收敛。
Logistic回归防止过拟合
在损失函数中加入参数 θj 的 L2 范数,限制 θj 的大小,以解决过拟合问题,那么加入正则化项的损失函数为:
相应的,此时的梯度下降算法为:
重复以下步骤直至收敛:
Multinomial Logistic Regression
训练 [公式] 个独立的二分类 LR 模型,选第 [公式] 类为“pivot”
两边作取指数
各类条件概率之和为1
因此
其中,到此为止上式即为《统计学习方法, p80》中所提到的多项 LR 模型.
2. Softmax回归
在 softmax回归中,我们解决的是多分类问题(相对于 logistic 回归解决的二分类问题),类标y可以取k个不同的值(而不是 2 个。因此,对于训练集,我们有(注意此处的类别下标从 1 开始,而不是 0)。例如,在 MNIST 数字识别任务中,我们有 个不同的类别。
对于给定的测试输入x,我们想用假设函数针对每一个类别j估算出概率值也就是说,我们想估计x的每一种分类结果出现的概率。因此,我们的假设函数将要输出一个 k 维的向量(向量元素的和为1)来表示这k个估计的概率值。 具体地说,我们的假设函数 h(x) 形式如下:
其中是模型的参数。这一项对概率分布进行归一化,使得所有概率之和为 1。
代价函数
softmax 回归算法的代价函数。
在下面的公式中,1是指示函数,其取值规则为:
1{值为真的表达式}=1
1{值为假的表达式} =0。
举例来说,1{2+2=4}表达式 的值为1 , 1{1+1=5}的值为 0。
softmax代价函数为:
值得注意的是,上述公式是logistic回归代价函数的推广。logistic回归代价函数可以改为:
可以看到,Softmax代价函数与logistic 代价函数在形式上非常类似,只是在Softmax损失函数中对类标记的k个可能值进行了累加。注意在Softmax回归中将x分类为类别 j 的概率为:
我们使用迭代的优化算法(例如梯度下降法,或 L-BFGS)。经过求导,我们得到梯度公式如下:
有了上面的偏导数公式以后,我们就可以将它代入到梯度下降法等算法中,来最小化J(θ)。在梯度下降法的标准实现中,每一次迭代需要进行如下更新:
当实现 softmax 回归算法时, 我们通常会使用上述代价函数的一个改进版本。具体来说,就是和权重衰减(weight decay)一起使用。
Softmax回归模型参数化的特点
Softmax 回归有一个不寻常的特点:它有一个“冗余”的参数集。为了便于阐述这一特点,假设我们从参数向量θj 中减去了向量ψ,这时,每一个θj 都变成了此时假设函数变成了以下的式子:
换句话说,从θj中减去ψ完全不影响假设函数的预测结果。这表明前面的 softmax 回归模型中存在冗余的参数。更正式一点来说, Softmax 模型被过度参数化了。对于任意一个用于拟合数据的假设函数,可以求出多组参数值,这些参数得到的是完全相同的假设函数hθ。
进一步而言,如果参数是代价函数J(θ)的极小值点,那么同样也是它的极小值点,其中ψ可以为任意向量。因此使J(θ)最小化的解不是独立的。
当 ψ=θ1 时,我们总是可以将 θ1 替换为 θ1-ψ=0(即替换为全零向量),并且这种变换不会影响假设函数。因此我们可以去掉参数向量 θ1(或者其他θj中的任意一个)而不影响假设函数的表达能力。实际上,与其优化全部的 k × (n+1)个参数
,我们可以令 θ1=0 ,只优化剩余的 (k-1)×(n+1) 个参数,这样算法依然能够正常工作。
在实际应用中,为了使算法实现更简单清楚,往往保留所有参数,而不任意地将某一参数设置为 0。但此时我们需要对代价函数做一个改动:加入权重衰减。权重衰减可以解决 softmax 回归的参数冗余所带来的数值问题。
权重衰减
我们通过添加一个权重衰减项(其中n为样本的维度,k为样本的类别数)来修改代价函数,感觉还是L2正则化,为了解决参数过多模型复杂导致的过拟合问题。
这个衰减项会惩罚过大的参数值,我们的代价函数变为:
有了这个权重衰减项以后(λ>0),代价函数就变成了严格的凸函数,这样就可以保证得到独立的解了。 此时的 Hessian矩阵变为可逆矩阵,并且因为 J(θ) 是凸函数,梯度下降法和 L-BFGS 等算法可以保证收敛到全局最优解。
为了使用优化算法,我们需要求得这个新函数 J(θ) 的导数,如下:
通过最小化 J(θ) ,我们就能实现一个可用的 softmax 回归模型。
Softmax回归与Logistic 回归的关系
当类别数 k=2 时,softmax 回归退化为 logistic 回归。这表明 softmax 回归是 logistic 回归的一般形式。具体地说,当 k=2 时,softmax 回归的假设函数为:
利用softmax回归参数冗余的特点,我们令 ψ=θ1 ,并且从两个参数向量中都减去向量 θ1 ,得到:
因此,用 θ’ 来表示 θ2-θ1 ,我们就会发现 softmax 回归器预测其中一个类别的概率为另一个类别概率的为,这与 logistic回归是一致的。
Softmax 回归 vs k 个二元分类器
如果你在开发一个音乐分类的应用,需要对k种类型的音乐进行识别,那么是选择使用 softmax 分类器呢,还是使用 logistic 回归算法建立 k 个独立的二元分类器呢?
这一选择取决于你的类别之间是否互斥,例如,如果你有四个类别的音乐,分别为:古典音乐、乡村音乐、摇滚乐和爵士乐,那么你可以假设每个训练样本只会被打上一个标签(即:一首歌只能属于这四种音乐类型的其中一种),此时你应该使用类别数k= 4的softmax回归。(如果在你的数据集中,有的歌曲不属于以上四类的其中任何一类,那么你可以添加一个“其他类”,并将类别数k设为5。)
如果你的四个类别如下:人声音乐、舞曲、影视原声、流行歌曲,那么这些类别之间并不是互斥的。例如:一首歌曲可以来源于影视原声,同时也包含人声 。这种情况下,使用4个二分类的 logistic 回归分类器更为合适。这样,对于每个新的音乐作品 ,我们的算法可以分别判断它是否属于各个类别。
我们来看一个计算视觉领域的例子,你的任务是将图像分到三个不同类别中。(i) 假设这三个类别分别是:室内场景、户外城区场景、户外荒野场景。你会使用sofmax回归还是 3个logistic 回归分类器呢? (ii) 当前假设这三个类别分别是室内场景、黑白图片、包含人物的图片,你又会选择 softmax 回归还是多个 logistic 回归分类器呢?
在第一个例子中,三个类别是互斥的,因此更适于选择softmax回归分类器 。而在第二个例子中,建立三个独立的 logistic回归分类器更加合适。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)