1. 什么是LR回归?LR的公式及求导?为什么sigmoid函数

2021-07-31  本文已影响0人  Jarkata

1. 什么是LR回归

LR回归(Logistic Regression, LR)是一种常用的处理二分类问题线性模型。为了解决连续的线性函数不适合进行分类的问题,引入非线性函数gR^{D} \rightarrow (0,1)来预测类别标签的后验概率p(y=1|x)


其中g(\cdot)通常被称为激活函数(Activication Function),其作用是把线性函数的值域从实数区间“挤压”到(0,1)之间,可以用来表示概率

在Logistic回归中,我们使用Logistic函数来作为激活函数,标签y=1的后验概率为:


为了简单起见,这里\boldsymbol{x} = [x_1,...,x_D,1]^T\boldsymbol{w} = [w_1,...,w_D,b]^T分别为D+1维的增广特征向量增广权重向量

标签y=0的后验概率为:

将公式进行变换后可以得到:



其中\frac{p(y=1|x)}{p(y=0|x)}为样本x为正反例后验概率的比值,称为几率(Odds),几率的对数称为对数几率。这样,Logistic回归可以看作预测值为“标签的对数几率”的线性回归模型。因此,Logistic回归也称为对数几率回归。(Logit Regression)

2. 参数学习

Logistic回归采用交叉熵作为损失函数,并使用梯度下降法来对参数进行优化。

给定N个训练样本\{ (x^{(n)},y^{(n)})\}^{N}_{n=1},用Logistic回归模型对每个样本x^{(n)}进行预测,输出其标签为1的后验概率,记为\hat{y}^{(n)}


使用交叉熵损失,其风险函数为



风险函数R(w)关于参数w的偏导数为:

采用梯度下降法,Logistic回归的训练过程为::初始化𝒘0 ← 0,然后通过下式来迭代更新参数:


其中\alpha是学习率,\hat{y}^{(n)}_{w_t}是当参数为w_t时,Logistic回归模型的输出。

可知,风险函数ℛ(𝒘) 是关于参数𝒘 的连续可导的凸函数.因此除了梯度下降法之外,Logistic 回归还可以用高阶的优化方法(比如牛顿法)来进行优化。

3. Softmax回归

Softmax 回归(Softmax Regression),也称为多项(Multinomial)或多类(Multi-Class)的Logistic 回归,是Logistic 回归在多分类问题上的推广

对于多类问题,类别标签y \in \{1,2,...,C \}可以有C个取值,给定一个样本x,Softmax 回归预测的属于类别𝑐 的条件概率为:


其中w_c是第c类的权重向量。

Softmax回归的决策函数可以表示为


Softmax回归与Logistic回归的关系:
当类别数C=2时,Softmax回归的决策函数为:



其中𝐼(⋅) 是指示函数.对比二分类决策函数,可以发现二分类中的权重向量𝒘 = 𝒘1 − 𝒘0.

4. 为什么LR可以用sigmoid来表示概率?

注意:不是因为sigmoid值域(0,1),所以sigmoid可以作为概率。而是问为什么选取sigmoid作为概率表示?

从贝叶斯的角度出发,其实sigmoid函数就是在给定x的情况下,y属于类别c的条件概率:


当x是连续变量时,假设x对两类的条件概率服从高斯分布且方差相同

其中D是随机变量x的维数,所以有

所以


可见,a(x)x的线性函数,其中,

以上是两类分类问题的推导。
推广以上结论到多分类问题,给定样本x属于第k类的后验概率为:


此时结果是softmax函数。

为什么要同方差? 因为同方差的时候,a式中的上下两项的二次项刚好可以抵消掉,只剩下一次项。中间省去了一些简单的推导过程。

5. 为什么LR使用交叉熵作为损失函数,而不是MSE?

一种解释:
MSE的梯度更小,参数w学习更慢。


我们想衡量模型输出a和label y的逼近程度,其实这两个Loss都可以。但是为什么Logistic Regression采用的是交叉熵作为损失函数呢?看下这两个Loss function对w的导数,也就是SGD梯度下降时,w的梯度。

sigmoid函数\sigma(z)如下图所示,可知导数\sigma ' (z)在输出接近0和1时非常小。故导致在使用最小均方差Loss时,模型参数w会学习的非常慢。而使用交叉熵Loss则没有这个问题。但是我们使用交叉熵的话就不会出现这样的情况,它的导数就是一个差值,误差大的话更新的就快,误差小的话就更新的慢点,这正是我们想要的。因此,我们需要用交叉熵而不是MSE作为损失函数。为了更快的学习速度,分类问题一般采用交叉熵损失函数。

另一种解释:
用MSE的话,损失函数不是凸函数,不容易求解,容易进入局部最优。


上一篇下一篇

猜你喜欢

热点阅读