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

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

LR为什么使用sigmoid函数

Logistic回归虽然名字里带“回归”,但是它实际上是一种分类方法,主要用于两分类问题(即输出只有两种,分别代表两个类别)。假设训练样本的类别为 C1 C2 ,样本中属于 C1 C2 的样本数分别为 N1 N2 个。这里我们通过使用贝叶斯概率推导出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Σ1 b=12(μ1)TΣ1μ1+12(μ2)TΣ1μ2+lnN1N2
P(C1|x)=σ(wx+b)

w b 就是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中,我们是不能使用平方损失作为损失函数的!

发布了8 篇原创文章 · 获赞 36 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/horizonheart/article/details/78826688
今日推荐