LR介绍
Logistic Regression 是一种非线性的回归模型,同时也可以使用逻辑回归模型来作分类任务。
Logistic Regression回归模型使用的Sigmoid函数作为假设模型。
hθ(x)=11+e−x
其中
x=∑niθifi,i=1,2...n n表示
x这个样本共有
n维的特征,
fi表示
x这个样本的第
i个特征,
θi表示
x这个样本第
i个特征的权重。而逻辑回归模型的训练过程就是学习这个
θ,训练完成后的逻辑回归模型就可以用来给样本分类。
Sigmoid函数是长成这样的。
思考题1:为什么逻辑回归的假设模型使用的是Sigmoid函数?
公式推导:
由于逻辑回归服从伯努利分布。所以对于二分类问题来说。
hθ(x)表示类别为1的情况。那么类别为0的情况就是1−hθ(x)
那么输入x判断类别为1的概率为P(y=1|x;θ)=hθ(x),判断类别为0的概率为P(y=0|x;θ)=1−hθ(x)
综合在一起就是
$P(y|x;θ)=hθ(x)y+(1−hθ(x))1−y
接下来为了能够使用梯度下降的方法来training
θ这个值,所以需要设置损失函数。
通常分类问题的损失函数是误差平方和(MSE)但是,我们会发现这时候的代价函数是非凸的,也就是函数图像中会出现许多的局部最小值,导致梯度下降法极其容易得到局部最小值。
如下图所示:
为了能够得到一个凸函数,所以需要修改loss function来获得一个优化的凸函数。
Loss function
Loss(hθ(x),yi)=log(P(yi|x;θ))=−[log(hθ(x))⋅yi+log(1−hθ(x))⋅(1−yi)]
而函数整体的损失就是(共有m个样本参与训练)
J(θ)=−1m∑im[log(hθ(x))⋅yi+log(1−hθ(x))⋅(1−yi)]
LR的梯度下降公式推导
由于新设置的Loss function是非凸的,所以我们可以使用梯度下降发的方法来求出当Loss funciton最小时的θ向量。梯度下降法的迭代公式是
θj=θj−α∂∂θJ(θ)
其中
α是learning rate学习率。
接下来是公式推导:
−1m∂∂θ[log(h)⋅y+log(1−h)⋅(1−y)]
=−1m[1h⋅h′⋅y+1(1−h)⋅(−h′)⋅(1−y)]
由于hθ(x)=11+e−θTX,所以h′=−h2⋅e−θTX⋅(−X),将h′代入
=−1m[1h⋅(h2⋅e−θTX⋅X)⋅y+1(1−h)⋅(h2⋅e−θTX⋅(−X))⋅(1−y)]
又由于e−θTX=1h−1=1−hh, 代入可得
=−1m[⋅(h⋅1−hh⋅X)⋅y+1(1−h)⋅(h2⋅1−hh⋅(−X))⋅(1−y)]
=−1m[1h⋅(1−h)⋅X⋅y−h⋅X⋅(1−y)]
=−1m(y−h)X
=1m(h−y)X
=∑mi=1(hθ(x(i))−y(i))x(i)j
所以更新θ的公式变化为下面这种情况
θj=θj−α∑i=1m(hθ(x(i))−y(i))x(i)j
这样就完成了相关的推导。
思考题解答
1.这里可以去查看 最大熵模型。逻辑回归模型是最大熵模型的一个特例,并且在给定条件下求熵最大的分布就是Sigmoid函数。
同时伯努利的指数族形式就是11+e−x
参考
Stanford机器学习课程笔记——LR的公式推导和过拟合问题解决方案
为什么 LR 模型要使用 sigmoid 函数,背后的数学原理是什么?-知乎