机器学习系列--关于LR的两个问题

来源:互联网 发布:高颜值笔记本 知乎 编辑:程序博客网 时间:2024/06/05 16:48

  逻辑回归是应用非常广泛的一个分类机器学习算法,有关LR的算法推导以及计算过程有很多资料可以参考,在这里我们就不再赘述。这里我们主要关心两个问题,也是在面试的过程经常会被问到的,下面我们就分别介绍。

LR为什么使用sigmoid函数

Logistic回归虽然名字里带“回归”,但是它实际上是一种分类方法,主要用于两分类问题(即输出只有两种,分别代表两个类别)。假设训练样本的类别为C1C2,样本中属于C1C2的样本数分别为N1N2个。这里我们通过使用贝叶斯概率推导出LR中为什么使用的是Sigmoid函数。样本属于C1的概率如下:

P(C1|x)=P(x|C1)P(C1)P(x|C1)P(C1)+P(x|C2)P(C2)=11+P(x|C2)P(C2)P(x|C1)P(C1)=11+exp(z)=σ(z)

z=lnP(x|C1)P(C1)P(x|C2)P(C2)z=lnP(x|C1)P(x|C2)+lnP(C1)P(C2)

lnP(C1)P(C2)=lnN1N1+N2N2N1+N_2=lnN1N2

接下来是很关键的一步,我们假设训练集中的样本服从高斯分布。即类别为C1的样本服从均值为μ1方差为Σ1的高斯分布,类别为C2的样本服从均值为μ2方差为Σ2的高斯分布。
P(x|C1)=1(2π)D/21|Σ1|1/2exp{12(xμ1)T(Σ1)1(xμ1)}

P(x|C2)=1(2π)D/21|Σ2|1/2exp{12(xμ2)T(Σ2)1(xμ2)}

有了上面的假设,我们就可以继续计算z
lnP(x|C1)P(x|C2)=ln1(2π)D/21|Σ1|1/2exp{12(xμ1)T(Σ1)1(xμ1)}1(2π)D/21|Σ2|1/2exp{12(xμ2)T(Σ2)1(xμ2)}=ln|Σ2|1/2|Σ1|1/212[(xμ1)T(Σ1)1(xμ1)(xμ2)T(Σ2)1(xμ2)]

所以
z=ln|Σ2|1/2|Σ1|1/212xT(Σ1)1x+(μ1)T(Σ1)1x12(μ1)T(Σ1)1μ1+12xT(Σ2)1x(μ2)T(Σ2)1x+12(μ2)T(Σ2)1μ2+lnN1N2

P(C1|x)=σ(z)

此时z仍然很复杂,我们进一步假设两类样本服从方差一样,均值不一样的高斯分布,即Σ1=Σ2=Σ,此时,
z=(μ1μ2)TΣ1x12(μ1)TΣ1μ1+12(μ2)TΣ1μ2+lnN1N2

到这里,是不是就很熟悉了,w=(μ1μ2)TΣ1b=12(μ1)TΣ1μ1+12(μ2)TΣ1μ2+lnN1N2
P(C1|x)=σ(wx+b)

wb就是LR模型要学习的参数,也是假设样本的高斯分布的参数的组合。如果我们假设样本服从的是其他的分布,可能得到的就不是Sigmoid函数了,以上就是LR中为什么使用的是Sigmoid函数。

LR中损失函数为什么不能使用平方损失函数

LR的损失函数是交叉熵损失函数,使用梯度下降的方法去训练模型的参数。在回归问题中,我们常使用平方损失作为损失函数,然后使用最小二乘计算。那么问题来了,在LR中能否使用平方损失作为损失函数呢?答案是否定的,理由如下–假设我们使用平方损失作为LR的损失函数,那么L(f)定义如下:

fw,b(x)=σ(iwixi+b)

L(f)=12n(fw,b(xn)yn)2

那么Lwi=(fw,b(x)y)2wi=2(fw,b(x)y)fw,b(x)zzwi=2(fw,b(x)y)fw,b(x)(1fw,b(x))xi
当样本的label y=0时,如果模型预测为fw,b(x)=1,这是模型离正确的预测很远,但是Lwi=0,此时利用梯度更新参数时,给我们的假象却是我们已经达到了最优解,而实际上我们还远远没有达到最优解!这就说明在LR中,我们是不能使用平方损失作为损失函数的!