1 逻辑回归(Logistic Regression)
逻辑回归(Logistic Regression,简称LR)是机器学习中十分常用的一种分类算法。
逻辑回归和线性回归都是广义的线性回归, 逻辑回归的模型本质上是一个线性回归模型,只是在特征到结果的映射中加入了一层函数映射,即先把特征线性求和,然后使用函数g(z)将最为假设函数来预测。g(z)可以将连续值映射到0和1上。虽然逻辑回归是以线性回归为理论支持的,但线性回归模型无法做到sigmoid的非线性形式,sigmoid可以轻松处理0/1分类问题。
下面推导Sigmoid函数:
接下来把对数几率转换一下,就可以得到Sigmoid函数:
2 逻辑回归的代价函数
接下来要做的就是根据给定的训练集,把参数给求出来了。
为了估计参数θ,我们如果采用线性回归的代价函数(cost function 也是目标函数)作为logistic的代价函数 (注:线性回归的参数可以用梯度下降法和最小二乘法来求得,最小二乘法能求出固定形式的解析解)如下:
其中,i表示第i个样本,y(i)是真实值,hθ(x(i))是预测的值。我们将sigmoid函数带入上述成本函数中,绘制其图像,发现这个成本函数的函数图像是一个非凸函数,如下图所示,这个函数里面有很多极小值,如果采用梯度下降法,则会导致陷入局部最优解中。此路不通!
经典线性模型的优化目标函数是最小二乘,而逻辑回归则是似然函数。
3 极大似然估计法(MLE)
极大似然估计法(the Principle of Maximum Likelihood )由高斯和费希尔(R.A.Figher)先后提出,是被使用最广泛的一种参数估计方法,该方法建立的依据是直观的极大似然原理。
3.1 极大似然原理
训练样本的分布能够代表样本的真实分布(满足VC边界),每个样本集的样本都是独立同分布(iid)的随机变量,且有充分多的训练样本。
3.2 极大似然估计求解步骤
4. 逻辑回归的代价函数推导
我们现在要求的是使得l(w)最大的w,我们在l(w)前面加个负号就变成就最小,就是要求的代价函数。
从图中不难看出,如果样本的值是1的话,估计值ϕ(z)越接近1付出的代价就越小,反之越大;同理,如果样本的值是0的话,估计值ϕ(z)越接近0付出的代价就越小,反之越大。
l(w) + 正则项就是 逻辑回归的损失函数。
接下来思考的是如何调整θ以使得J(θ)取得最小值?
5 利用梯度下降法求参数
在开始梯度下降之前,要这里插一句,sigmoid function 有一个很好的性质就是
下面会用到这个性质。
还有,我们要明确一点,梯度的负方向就是代价函数下降最快的方向。为什么?好,我来说明一下。借助于泰特展开,我们有
其中,f′(x)和δ为向量,那么这两者的内积就等于
当θ=π时,也就是δ在f′(x)的负方向上时,取得最小值,也就是下降的最快的方向了。
当然,在样本量极大的时候,每次更新权重会非常耗费时间,这时可以采用随机梯度下降法,这时每次迭代时需要将样本重新打乱,然后用下式不断更新权重。
也就是去掉了求和,而是针对每个样本点都进行更新。
6 结束语
逻辑回归最大的优势在于它的输出结果不仅可以用于分类,还可以表征某个样本属于某类别的概率。逻辑斯谛函数(Sigmoid函数)将原本输出结果从范围(−∞,+∞) 映射到(0,1),从而完成概率的估测。逻辑回归得判定的阈值能够映射为平面的一条判定边界,随着特征的复杂化,判定边界可能是多种多样的样貌,但是它能够较好地把两类样本点分隔开,解决分类问题。
求解逻辑回归参数的传统方法是梯度下降,构造为凸函数的代价函数后,每次沿着偏导方向(下降速度最快方向)迈进一小部分,直至N次迭代后到达最低点。
以上就是我参考了基本书中的说法之后对逻辑回归整个推到过程的梳理,也不知道讲清楚没有。
如有不足,还请指正~
7 参考文献
[1] Raschka S. Python Machine Learning[M]. Packt Publishing, 2015.
[2] 周志华. 机器学习 : = Machine learning[M]. 清华大学出版社, 2016.
[3] 逻辑回归(logistic regression)的本质——极大似然估计 https://blog.csdn.net/zjuPeco/article/details/77165974