Logistic回归理论知识补充

建模流程

假设我们建立一个二分类模型。假设有两个人A、B在争论如何对一个新样本 x x x进行0-1二分类,他们两个分别对新样本进行打分,如果A的分数大于B的分数,则样本被预测为1,反之则被预测为0。

假设两人的打分分数可以通过线性回归进行预测建模
y 1 = θ 1 x + ϵ 1 , ϵ 1 ∼ N 1 ( 0 , δ ) y 2 = θ 2 x + ϵ 2 , ϵ 2 ∼ N 2 ( 0 , δ ) \begin{aligned} &y_{1}=\theta_{1} x+\epsilon_{1}, \epsilon_{1} \sim N_{1}(0, \delta) \\ &y_{2}=\theta_{2} x+\epsilon_{2}, \epsilon_{2} \sim N_{2}(0, \delta) \end{aligned} ​y1​=θ1​x+ϵ1​,ϵ1​∼N1​(0,δ)y2​=θ2​x+ϵ2​,ϵ2​∼N2​(0,δ)​
这里两个模型的残差都服从高斯分布。

现在我们研究 y 1 y_1 y1​和 y 2 y_2 y2​的大小关系
y 1 − y 2 = ( θ 1 − θ 2 ) x + ( ϵ 1 − ϵ 2 ) y_{1}-y_{2}=\left(\theta_{1}-\theta_{2}\right) x+\left(\epsilon_{1}-\epsilon_{2}\right) y1​−y2​=(θ1​−θ2​)x+(ϵ1​−ϵ2​)
于是有
y ′ = θ ′ x + ϵ ′ , ϵ ′ ∼ N ( 0 , δ ) y^{\prime}=\theta^{\prime} x+\epsilon^{\prime}, \epsilon^{\prime} \sim N(0, \delta) y′=θ′x+ϵ′,ϵ′∼N(0,δ)
进一步,根据我们的假设,A的分数大于B的分数,则样本被预测为1,也就是 y ′ > 0 y^{\prime}>0 y′>0的情况
P ( y = 1 ) = P ′ ( θ ′ x + ϵ ′ > = 0 ) = 1 − P ′ ( ϵ ′ < − θ ′ x ) P(y=1)=P^{\prime}\left(\theta^{\prime} x+\epsilon^{\prime}>=0\right)=1-P^{\prime}\left(\epsilon^{\prime}<-\theta^{\prime} x\right) P(y=1)=P′(θ′x+ϵ′>=0)=1−P′(ϵ′<−θ′x)
所以问题就转化为了求 P ′ ( ϵ ′ < − θ ′ x ) P^{\prime}\left(\epsilon^{\prime}<-\theta^{\prime} x\right) P′(ϵ′<−θ′x),也就是高斯分布的累积分布函数。这种建模方式叫做prohit回归。

但是高斯分布的累积分布不可解析求出,用概率密度函数表示为 F ( x ; μ , σ ) = 1 σ 2 π ∫ − ∞ x exp ⁡ ( − ( t − μ ) 2 2 σ 2 ) d t F(x ; \mu, \sigma)=\dfrac{1}{\sigma \sqrt{2 \pi}} \int_{-\infty}^{x} \exp \left(-\dfrac{(t-\mu)^{2}}{2 \sigma^{2}}\right) d t F(x;μ,σ)=σ2π ​1​∫−∞x​exp(−2σ2(t−μ)2​)dt,我们只能大致看出高斯分布的累积分布函数长啥样

(source: https://www.wikiwand.com/zh-sg/%E6%AD%A3%E6%80%81%E5%88%86%E5%B8%83)

可见其形状与sigmoid函数非常类似,我们就直接用sigmoid函数近似表示它
P ( y = 1 ) = P ′ ( θ ′ x + ϵ ′ > = 0 ) = 1 − P ′ ( ϵ ′ < − θ ′ x ) = 1 − 1 1 + exp ⁡ ( − z ) = 1 + exp ⁡ ( − z ) − 1 1 + exp ⁡ ( − z ) = 1 1 + exp ⁡ z = 1 1 + exp ⁡ ( − θ ′ x ) P(y=1)=P^{\prime}\left(\theta^{\prime} x+\epsilon^{\prime}>=0\right)=1-P^{\prime}\left(\epsilon^{\prime}<-\theta^{\prime} x\right)\\ =1-\dfrac{1}{1+\exp(-z)}=\dfrac{1+\exp(-z)-1}{1+\exp(-z)}\\ =\dfrac{1}{1+\exp{z}}=\dfrac{1}{1+\exp(-\theta^{\prime} x)} P(y=1)=P′(θ′x+ϵ′>=0)=1−P′(ϵ′<−θ′x)=1−1+exp(−z)1​=1+exp(−z)1+exp(−z)−1​=1+expz1​=1+exp(−θ′x)1​
这正是Logistic二分类表达式。

损失函数

Logistic回归的损失函数是通过最大似然估计(存在即合理)得到的。这个损失函数叫做交叉熵。其实对于他的损失函数的推导,并不一定需要假设模型符合logistic回归。

假设 l l l表示(0, 1)标签, y y y表示样本预测的概率。则该样本存在的概率可表示为:
y l ( 1 − y ) 1 − l y^{l}(1-y)^{1-l} yl(1−y)1−l
也就是满足伯努利分布。

由最大似然估计,可得我们需要最小化如下函数
− ( l log ⁡ y + ( 1 − l ) log ⁡ ( 1 − y ) ) -(l \log y+(1-l) \log (1-y)) −(llogy+(1−l)log(1−y))
当标签 l = 1 l=1 l=1时, ( 1 − l ) log ⁡ ( 1 − y ) ) = 0 (1-l) \log (1-y))=0 (1−l)log(1−y))=0,最小化公式等价于最小化 − log ⁡ y -\log y −logy,即让 y → 1 y\rightarrow1 y→1.

当标签 l = 0 l=0 l=0时, l log ⁡ y = 0 l \log y=0 llogy=0,最小化公式等价于最小化 − ( 1 − l ) log ⁡ ( 1 − y ) -(1-l) \log (1-y) −(1−l)log(1−y),即让 y → 0 y\rightarrow0 y→0.

【注意最大似然估计时,我们其实是把所有样本的概率相加,也就是 ∑ i = 1 N y l ( 1 − y ) 1 − l \sum_{i=1}^{N}y^{l}(1-y)^{1-l} ∑i=1N​yl(1−y)1−l,然后取对数】

现在我们思考一个问题,如果我们选择下面这个损失函数,是否也满足上面的这种直觉性结论呢?
L o s s = − ( l − y ) 2 Loss = -(l-y)^{2} Loss=−(l−y)2
即 l = 1 l=1 l=1时, y → 1 y\rightarrow1 y→1, l = 0 l=0 l=0时, y → 0 y\rightarrow0 y→0。

梯度下降优化算法

当建立好模型后,最终需要对损失函数进行优化。这种对待优化的参数没有限制的优化问题叫做无约束优化问题。
min ⁡ f ( x ) \min f(x) minf(x)
其中 x x x为待求参数

如果要理解梯度下降法,我们要从泰勒展开开始理解。针对 f ( x ) f(x) f(x)做一阶泰勒展开,有
f ( x ) = f ( x k ) + ∇ f ( x k ) T ( x − x k ) + o ( ∥ x − x k ∥ ) f(x)=f\left(x_{k}\right)+\nabla f\left(x_{k}\right)^{T}\left(x-x_{k}\right)+o\left(\left\|x-x_{k}\right\|\right) f(x)=f(xk​)+∇f(xk​)T(x−xk​)+o(∥x−xk​∥)
其中高阶量 o o o是在 ( x − x k ) (x-x_k) (x−xk​)的前提下才趋向于0,如果 ( x − x k ) (x-x_k) (x−xk​)太大,高阶量就会影响等式右边前两项。

如果我们把 x x x看做空间中的向量,那么 ( x − x k ) (x-x_k) (x−xk​)也是向量,梯度 f ′ ( x k ) f^{\prime}(x_k) f′(xk​)也是向量。我们可以把上式写为
f ( x ) ≈ f ( x k ) + λ ∗ d ∗ f ′ ( x k ) f\left(x\right) \approx f\left(x_{k}\right)+\lambda * \boldsymbol{d} * f^{\prime}\left(x_{k}\right) f(x)≈f(xk​)+λ∗d∗f′(xk​)
这里 d \boldsymbol{d} d表示沿着 x x x方向的单位向量, λ \lambda λ表示单位向量长度。根据向量乘积规则,我们有
f ( x ) ≈ f ( x k ) + λ ∗ ∣ d ∣ ∗ ∣ f ′ ( x k ) ∣ ∗ cos ⁡ ( θ ) f\left(x\right) \approx f\left(x_{k}\right)+\lambda * |\boldsymbol{d}| *\left|f^{\prime}\left(x_{k}\right)\right| * \cos (\theta) f(x)≈f(xk​)+λ∗∣d∣∗∣f′(xk​)∣∗cos(θ)
这里 θ \theta θ表示梯度向量和 ( x − x k ) (x-x_k) (x−xk​)这个向量的夹角。因为我们企图最小化 f ( x ) f(x) f(x),而 f ( x k ) = f ( x 0 ) f(x_k)=f(x_0) f(xk​)=f(x0​)随机初始化后模型的输出,这就意味着它与 λ , d \lambda, d λ,d一样也是个常量,如果要是整个式子最小,显然要让 θ = π , cos ⁡ ( θ ) = − 1 \theta=\pi, \cos(\theta)=-1 θ=π,cos(θ)=−1,也就是 x k x_k xk​无限靠近 x x x时,两个向量方向相反的时刻。此时我们有
d = − f ′ ( x k ) ∥ f ′ ( x k ) ∥ d=\frac{-f^{\prime}\left(x_{k}\right)}{\left\|f^{\prime}\left(x_{k}\right)\right\|} d=∥f′(xk​)∥−f′(xk​)​

于是我们有
x − x k = λ ∗ d = λ ∗ − f ′ ( x k ) ∥ f ′ ( x k ) ∥ ⇒ x = x k − λ ∗ f ′ ( x k ) ∥ f ′ ( x k ) ∥ x-x_{k}=\lambda * d = \lambda * \frac{-f^{\prime}\left(x_{k}\right)}{\left\|f^{\prime}\left(x_{k}\right)\right\|}\\ \Rightarrow x=x_{k}-\lambda *\frac{f^{\prime}\left(x_{k}\right)}{\left\|f^{\prime}\left(x_{k}\right)\right\|} x−xk​=λ∗d=λ∗∥f′(xk​)∥−f′(xk​)​⇒x=xk​−λ∗∥f′(xk​)∥f′(xk​)​
又因为 ∥ f ′ ( x k ) ∥ = ∥ f ′ ( x 0 ) ∥ \left\|f^{\prime}\left(x_{k}\right)\right\|=\left\|f^{\prime}\left(x_{0}\right)\right\| ∥f′(xk​)∥=∥f′(x0​)∥是个常数,因为 x 0 x_{0} x0​如果是随机初始化确定下来的,那么其梯度也肯定是常数。(比如线性回归使用梯度下降法的时候,第一轮我们随机初始化权重参数,此时这些参数是固定的),那么我们就可以把 λ \lambda λ与 ∥ f ′ ( x k ) ∥ = ∥ f ′ ( x 0 ) ∥ \left\|f^{\prime}\left(x_{k}\right)\right\|=\left\|f^{\prime}\left(x_{0}\right)\right\| ∥f′(xk​)∥=∥f′(x0​)∥合并为一个常数,也即是学习率。于是最后公式转化为
x = x k + 1 = x k − λ ∗ f ′ ( x k ) ∥ f ′ ( x k ) ∥ = x k − η ∗ f ′ ( x k ) = x k − η ∇ f ( x k ) T x=x_{k+1}=x_{k}-\lambda *\frac{f^{\prime}\left(x_{k}\right)}{\left\|f^{\prime}\left(x_{k}\right)\right\|}=x_{k}-\eta* f^{\prime}(x_{k})=x_{k}-\eta \nabla f\left(x_{k}\right)^{T} x=xk+1​=xk​−λ∗∥f′(xk​)∥f′(xk​)​=xk​−η∗f′(xk​)=xk​−η∇f(xk​)T
这里 η \eta η的作用就是控制每一步移动的步长,因为我们说过,只有 x − x k x-x_{k} x−xk​足够小,也就是当前一步和上一步的距离足够小,一阶泰勒展开的高阶量才会很小,不影响头两项。

对于梯度下降法要注意

  1. 学习率不能太小,也不能太大
  2. 要注意损失函数曲线的鞍马点,鞍马点与局部最小点都会让梯度无法下降
  3. 如果输入变量 x 1 , x 2 x_{1},x_{2} x1​,x2​尺度相同,比如 l = x 1 2 + x 2 2 l=x_{1}^{2} + x_{2}^{2} l=x12​+x22​,那么梯度就是等高线的法向量,梯度下降就会沿着等高线法向量以最快速度向最低点移动。但是如果输入变量 x 1 , x 2 x_{1}, x_{2} x1​,x2​尺度不同,比如 l = x 1 2 + 100 x 2 2 l=x_{1}^{2} + 100x_{2}^{2} l=x12​+100x22​,那么梯度就会实时扭动变化,无法最快移动到最低点,此时要做输入变量的尺度归一化。

【《机器学习实战》。sklearn代码分为三种封装方式,纯python写,C++写加python封装,fortran写加python(pyc)封装。】

【西瓜书笔记】补充1:logistic回归及其损失函数,梯度下降推导相关推荐

  1. 读西瓜书笔记(一)绪论

    读西瓜书笔记(一)绪论 (一)什么是机器学习 机器学习致力于研究如何通过计算的手段,利用经验来改善自身的性能. 机器学习所研究的主要内容,是关于在计算机上从数据中产生"模型"的算法 ...

  2. 西瓜书笔记系列 - 第1章 绪论 - 1.1 引言

    西瓜书笔记系列 - 目录 1.1 引言   人们能做出有效的预判,是因为人们已经积累了许多经验,而通过对经验的利用,就能对新情况做出有效的决策.   对于计算机而言,机器学习正是这样一门学科,它致力于 ...

  3. 西瓜书笔记7:贝叶斯分类器

    目录 相关概率知识 贝叶斯-全概率公式 先验概率.后验概率.似然概率 7.1 贝叶斯决策论 7.2 极大似然估计 极大似然估计公式 均值方差估计公式推导 概率知识复习 高斯分布 最大似然估计 7.3 ...

  4. 西瓜书笔记3: 线性模型

    目录 3.1 基本形式 3.2 线性回归 情形1, 输入属性只有1个 情形2, 样本属性d个, 多元线性回归 线性模型变化, 广义线性模型 3.3对数几率回归 对数几率函数 对数几率回归 参数估计-极 ...

  5. DeepLearningAI 学习笔记 1.2 logistic 回归

    1.2 logistic 回归 视频:第二周 神经网络基础 整理:飞龙 logistic 回归属于广义线性回归.所谓广义线性回归,就是在线性回归的模型上加一些东西,使其适应不同的任务. logitic ...

  6. 机器学习(MACHINE LEARNING) 【周志华版-”西瓜书“-笔记】 DAY11-特征选择和稀疏学习

    特征工程是机器学习中非常重要的一个环节,它的好坏直接影响了机器学习效果的优劣.而特征工程里非常关键的一步就是特征选择. 如果把机器学习比作是一个厨师做菜的过程,那么数据就是原材料(菜),模型可以理解为 ...

  7. 机器学习(MACHINE LEARNING) 【周志华版-”西瓜书“-笔记】 DAY3-线性模型

    3.1 基本形式 一般用向量形式写成 本文介绍几种经典的线性模型,看我们先从回归任务开始,然后讨论二分类和多分类任务. 3.2 线性回归 线性回归是一种监督学习下的线性模型,线性回归试图从给定数据集中 ...

  8. 吴恩达深度学习笔记2.2 logistic回归

    regression:回归  supervised:有监督的 logistic回归是一种学习算法被用于有监督学习问题,当y全都是0或1时 例子:判断是否有猫 给定一个由特征向量x代表的图像,那个算法将 ...

  9. 医咖会免费STATA教程学习笔记——二分类Logistic回归

    1.使用logistic回归前需要检查 (1)因变量为二分类变量 (2)因变量发生的概率小于15% 2.导入数据集 webuse lbw, clear 3.命令 logistic low age i. ...

最新文章

  1. 发改委:互联网企业没有出现大规模裁员现象
  2. 大数据精准投放平台_大数据库(可视化精准平台,能够使您的广告更加精准有效)...
  3. 【PC工具】文件夹多文件群体比较工具beyond compare4
  4. 华南师范大学计算机学院重修,为什么说本科绩点低毁一生 大学重修可以刷绩点吗...
  5. java 并列排名,178. 分数排名
  6. SpringBoot2 集成 xxl-job任务调度中心_参数传递
  7. set、vector与list的构造与排序的耗时测试
  8. 【Elasticsearch】Elasticsearch 7.3 的 offheap 原理
  9. 民科微服务电脑版下载_天翼云桌面通用版电脑版下载|天翼云桌面通用版PC客户端 V1.23.0 官方最新版 下载_当下软件园...
  10. 所有受限制的应用程序包_您需要了解的有关Mac的Apple新款M1芯片的所有信息
  11. 基于TCP协议的Socket通信,实现文件断点续传
  12. python 读取并显示图片,用plt 同时显示多幅图像
  13. js实现浏览器打印PDF
  14. 渗透测试报告模板_演习防守方总结模板写作公式
  15. Sonic 云真机测试平台1.3.2-release版本搭建
  16. 求助:如何实现EA自动判断趋势,寻找高低点,并获取高低点K线价格数据,然后根据价格画出支撑阻力区域.
  17. 用Python写一个企业微信自动化打卡的脚本
  18. 我同学——应聘阿里巴巴之经过
  19. Inline Hook 钩子编写技巧
  20. 北航和北理工计算机专业哪个好,北理和北航哪个好?

热门文章

  1. 软件工程画图专项练习
  2. opencv建立图片坐标系位置
  3. json to excel java_java解析json生成excel
  4. 企业需要考虑的远程办公相关问题
  5. ubuntu中snap包的安装、更新删除与简单使用
  6. WireShark流量分析(中国菜刀,webshell)
  7. git 拉取所有远程分支
  8. 1.5v电池是几号?
  9. 【操作系统】30天自制操作系统--(9)叠加处理
  10. 【CSS】css清除浮动的几种方法