美文网首页
逻辑回归(Logistic Regression) 总结

逻辑回归(Logistic Regression) 总结

作者: Zero黑羽枫 | 来源:发表于2019-02-28 23:04 被阅读0次

本文是我在学习了逻辑回归课程之后的总结,文中所阐述的内容仅仅是我个人的理解,如有错误或疏漏,欢迎大家批评指正。

1.逻辑回归的假设函数

在分类问题中,二分类问题有着很重要的地位,例如在判断某人是否得某种病,或者某封邮件是否为垃圾邮件等等的场景中都会用到。考虑二分类问题,对于任意输入,输出结果应该只有两种情况,即\left\{ 0, 1 \right\} ,我们要找的假设函数 h(x) 需要符合这个标准,由此引入 logistic function:

g(z) = \frac{1}{1+e^{-z}}
他的函数图像:

图像是一条形如“S”的曲线
假设函数可以写为:

h_{\theta}(x) = \frac{1}{1+e^{-\theta^{T}x}}

让我们来理解一下,假设函数输出的是一个 (0, 1) 之间的数,可以把这个数看作是 y 为 1 的可能性,如果假设函数的输出为 0.9,可以认为这一组样本的输出结果为 1 的概率就比较大。由此可以写出下面的式子

P(y=1|x;\theta)=h_{\theta}(x)=g(\theta^{T}x)
P(y=0|x;\theta)=1-P(y=1|x;\theta)=1-h_{\theta}(x)=1-g(\theta^{T}x)
这两个式子可以合并为一个式子,无论在 y 为 0 或者 1 时都成立:

P(y|x;\theta) = h_{\theta}(x)^{y} (1-h_{\theta}(x))^{1-y}
·

2.最大似然估计(Maximum Likehood Estimation, MLE)

最大似然估计的意思是在模型已经确定的情况下,求解最有可能让这个模型出现的参数,这是一个逆推的过程。常用八个字概括“模型已定,参数未知”。
根据最大似然估计,写出似然函数,通俗来说就是你拿到的这个模型长这样,这件事发生的概率是多少呢,用似然函数来表示:

L(\theta) = \prod_{i=1}^{m} P(y^{(i)}|x^{(i)};\theta)
=\prod_{i=1}^{m} h_{\theta}(x^{(i)})^{y^{(i)}} (1-h_{\theta}(x^{(i)}))^{1-y^{(i)}}
取对数:
l(\theta) = log(L(\theta))=\sum_{i=1}^{m}{(y^{(i)}log h_{\theta}(x^{(i)})+ (1-y^{(i)}) log (1-h_{\theta}(x^{(i)})) )}
我们的目标是让模型长成这个样子的概率最大,可以更好的拟合这个模型,即求:
max_{\theta} l(\theta)
·

  1. 梯度下降

根据上节课所学的梯度下降法,求 l(\theta) 的偏导数,下面是偏导数的数学公式推导,有兴趣的同学可以自己推导一遍:

\frac{\partial l(\theta)}{\partial \theta_{j}} = \sum_{i=1}^{m}{(y^{(i)} \bullet \frac{1}{ h_{\theta}(x^{(i)} ) } \bullet \frac{\partial h_{\theta}(x^{(i)})}{\partial \theta _{j}} + (1-y^{(i)}) \bullet \frac{1}{1- h_{\theta}(x^{(i)})} \bullet -\frac{\partial h_{\theta}(x^{(i)})}{\partial \theta _{j}}})
=\sum_{i=1}^{m}{ (\frac{\partial h_{\theta}(x^{(i)})}{\partial \theta _{j}} \bullet \frac{y^{(i)} - h_{\theta}(x^{(i)}) }{ h_{\theta}(x^{(i)}) \bullet (1- h_{\theta}(x^{(i)}) ) }) } ·································· ( 1 )式
把里面一个求导拿出来求解,注意是对\theta _{j}求导,只有 \theta _{j} 是变量,其他都是常量:

\frac{\partial h_{\theta}(x^{(i)})}{\partial \theta _{j}} =\frac{\partial}{\partial \theta _{j}} (\frac{1}{1+e^{-\theta ^{T}x}})
= \frac{ x_{j} e^{\theta ^{T} x^{(i)} } }{(e^{\theta ^{T} x^{(i)} } +1 )^{2} }
= x_{j} \bullet \frac{ e^{\theta ^{T} x^{(i)} } }{e^{\theta ^{T} x^{(i)} } +1 } \bullet \frac{ 1 }{e^{\theta ^{T} x^{(i)} } +1}
=x_{j } \bullet h_{\theta}(x^{(i)}) \bullet (1-h_{\theta}(x^{(i)})
结果带入( 1 )式,得到:

\frac{\partial l(\theta)}{\partial \theta_{j}} = \sum_{i=1}^{m}{(y^{(i)} - h_{\theta} (x^{(i)}))} \bullet x_{j}^{(i)}
参数 \theta _{j} 的更新方式为:

\theta _{j} := \theta _{j} - \alpha \sum_{i=1}^{m}{(y^{(i)} - h_{\theta} (x^{(i)}))} \bullet x_{j}^{(i)}

我自己理解其实式子里 \alpha 前面的正负其实无所谓,当你沿着梯度方向反向下降时,不就是梯度上升,那么就可以找到最大值了。

至此,逻辑回归的原理总结完了,这个分类算法很特别,它不是简单输出一个类别,它输出的是一个可能性,希望这篇文章可以帮助你学习这个特别的分类算法。如果你觉得有用的话不妨点个赞哦。

最后,求赞求关注,欢迎关注我的微信公众号[MachineLearning学习之路] ,深度学习 & CV 方向的童鞋不要错过!!

相关文章

网友评论

      本文标题:逻辑回归(Logistic Regression) 总结

      本文链接:https://www.haomeiwen.com/subject/yvbluqtx.html