注:本篇文章求解思路、过程均为原创,本文出现的文字、公式等均为对照原计算手稿逐字手敲,绝无复制粘贴学术不端之举,转载请注明URL以及出处。

1.什么是逻辑回归?

Logistic−RegressionLogistic-RegressionLogistic−Regression是一种广义线性回归,与多重线性回归分析有很多相同之处。如它们的模型形式基本上相同,都具有 w∗x+bw*x+bw∗x+b。而多重线性回归直接将 w∗x+bw*x+bw∗x+b 作为因变量,因此他们的因变量不同。

  • 下文中所出现的 w∗xw*xw∗x 均为内积形式。

2.逻辑回归损失函数推导及其模型的推导

  • 下面我们就进行逻辑回归模型以及其损失函数的推导,全程简单粗暴,逐层递进,详略得当,干货满满!

逻辑回归损失函数的推导

Part 1:问题分析

LRLRLR 为什么用SigmoidSigmoidSigmoid 函数?

假设有一个二分类问题,输出 yyy{ 0,1 },而线性模型的预测值 yyy 为实数值,即找到一个阶跃函数将实数 zzz 映射为 { 0,1 },这样就能很好地处理分类问题。
由于SigmoidSigmoidSigmoid 函数具有如下很好的性质:
1)可将值域上的结果映射到(0,1)(0,1)(0,1)之间;
2)可将0.5作为决策边界;
3)数学特性好,容易求导.

所以利用了SigmoidSigmoidSigmoid 函数:

g(z)g(z)g(z) = 11+e−z\frac{1}{1+e^{-z}}1+e−z1​


因为g(z)g(z)g(z)最后输出的是样本类别的概率值,所以将阈值设为0.5,g(z)>0.5g(z)>0.5g(z)>0.5时,概率值为 1,g(z)<0.5g(z)<0.5g(z)<0.5时,概率值为 0.

Part 2:构造预测函数

为了使模型分类更准确,需要找到一个最优线性函数模型,并对每个 xxx 找到最优参数,进而使这个最优线性函数模型的参数达到最优。即:

wT∗x=w0x+w1x1+...+wnxn=∑i=1Nwixiw^T*x=w_0x+w_1x_1+...+w_nx_n=\sum_{i=1}^Nw_ix_iwT∗x=w0​x+w1​x1​+...+wn​xn​=∑i=1N​wi​xi​,
w∈Rnw∈R^nw∈Rn,称为权值向量,
NNN为特征个数.

将其与SigmoidSigmoidSigmoid 函数结合构造LogisticLogisticLogistic 回归预测函数:

π(x)=g(wTz)=11+e−wT∗xπ(x)=g(w^Tz)=\frac{1}{1+e^{-w^T*x}}π(x)=g(wTz)=1+e−wT∗x1​

  • 注意:若最优线性函数模型为 w∗x+bw*x+bw∗x+b,b∈Rb∈Rb∈R 为偏置,可将权值向量与输入向量加以扩充为w=(w(1),w(2),...,w(n),b)Tw=(w^{(1)},w^{(2)},...,w^{(n)},b)^Tw=(w(1),w(2),...,w(n),b)T, x=(x(1),x(2),...,x(n),b)Tx=(x^{(1)},x^{(2)},...,x^{(n)},b)^Tx=(x(1),x(2),...,x(n),b)T, 即仍记作 wT∗xw^T*xwT∗x.

Part 3:构造损失函数

若模仿线性回归中的平方误差损失函数,会得到一个非凸函数,使损失函数有许多局部最优解,得不到全局最优解。

对于二分类问题函数 π(x)π(x)π(x) ,最大化样本概率就可以得到更优分类模型,所以有:

P(Y=1∣x)=π(x)P (Y=1|x) = π(x)P(Y=1∣x)=π(x),

1−P(Y=0∣x)=π(x)1 - P (Y=0|x) = π(x)1−P(Y=0∣x)=π(x).

整合为似然函数为:

L(w)=∏Ni=1P(Y∣x;w)=∏Ni=1[π(xi)]yi[1−π(xi)]1−yiL(w)=\prod\frac{N}{i=1}P(Y|x;w)=\prod\frac{N}{i=1}[π(x_i)]^{y_i}[1-π(x_i)]^{1-y_i}L(w)=∏i=1N​P(Y∣x;w)=∏i=1N​[π(xi​)]yi​[1−π(xi​)]1−yi​

逻辑回归模型的推导

Part 1:模型参数的估计

为什么要取对数?

应用极大似然法估计模型参数,即求解 argmaxL(w)argmax L(w)argmaxL(w),样本集中众多样本,要求其连乘概率为(0,1)间的数,连乘越来越小,所以利用对数变换将其变为连加,不会超出计算精度,不会溢出。即:

L(w)=∏Ni=1[π(xi)]yi[1−π(xi)]1−yiL(w)=\prod\frac{N}{i=1}[π(x_i)]^{y_i}[1-π(x_i)]^{1-y_i}L(w)=∏i=1N​[π(xi​)]yi​[1−π(xi​)]1−yi​

的对数似然函数为:

L(w)=∑i=1N[yiπ(xi)+(1−yi)log(1−π(xi))]L(w)=\sum_{i=1}^N[y_iπ(x_i)+(1-y_i)log(1-π(x_i))]L(w)=∑i=1N​[yi​π(xi​)+(1−yi​)log(1−π(xi​))]

=∑i=1N[yilogπ(xi)+log(1−π(xi))−yilog(1−π(xi))]=\sum_{i=1}^N[y_ilogπ(x_i)+log(1-π(x_i))-y_ilog(1-π(x_i))]=∑i=1N​[yi​logπ(xi​)+log(1−π(xi​))−yi​log(1−π(xi​))]

=∑i=1N[yilogπ(xi)1−π(xi)+log(1−π(xi))=\sum_{i=1}^N[y_ilog\frac{π(x_i)}{1-π(x_i)}+log(1-π(x_i))=∑i=1N​[yi​log1−π(xi​)π(xi​)​+log(1−π(xi​))

此时引入事件概率 PPP,那么该事件的几率是 P1−P\frac{P}{1-P}1−PP​,该事件的对数几率即logistlogistlogist函数为:

logist(P)=logP1−Plogist(P)=log\frac{P}{1-P}logist(P)=log1−PP​

此时引入预测函数 π(x)=11+e−wT∗x=P(Y=1∣x)π(x)=\frac{1}{1+e^{-w^T*x}}=P(Y=1|x)π(x)=1+e−wT∗x1​=P(Y=1∣x)

令 z=wT∗xz=w^T*xz=wT∗x,

得到:

P(Y=1∣x)=11+e−z=1∗ez(1+e−z)∗ez=ezez+1P(Y=1|x)=\frac{1}{1+e^{-z}}=\frac{1 * e^{z}}{(1+e^{-z}) * e^{z}}=\frac{e^{z}}{e^{z}+1}P(Y=1∣x)=1+e−z1​=(1+e−z)∗ez1∗ez​=ez+1ez​

1−P(Y=1∣x)=ez+1ez+1−ezez+1=1ez+11-P(Y=1|x)=\frac{e^{z}+1}{e^{z}+1}-\frac{e^{z}}{e^{z}+1}=\frac{1}{e^{z}+1}1−P(Y=1∣x)=ez+1ez+1​−ez+1ez​=ez+11​

所以求得其 logistlogistlogist函数为:

logP(Y=1∣x)1−P(Y=1∣x)=logez=zlog\frac{P(Y=1|x)}{1-P(Y=1|x)}=log e^z=zlog1−P(Y=1∣x)P(Y=1∣x)​=logez=z

代入对数似然函数:

L(w)=∑i=1N[yiz+log(1−π(xi))]L(w)=\sum_{i=1}^N[y_iz+log(1-π(x_i))]L(w)=∑i=1N​[yi​z+log(1−π(xi​))]

=∑i=1N[yiz+log(1+ez)−1]=\sum_{i=1}^N[y_iz+log(1+e^z)^{-1}]=∑i=1N​[yi​z+log(1+ez)−1]

=∑i=1N[yi(wT∗x)−log(1+exp(wT∗x))]=\sum_{i=1}^N[y_i(w^T*x)-log(1+exp(w^T*x))]=∑i=1N​[yi​(wT∗x)−log(1+exp(wT∗x))]

对 L(w)L(w)L(w) 求极大值,得到 www 的估计值,这样,问题就变成了以对数似然函数为目标函数的最优化问题。

Part 2:Logistic回归学习的算法

LogisticLogisticLogistic回归学习的算法通常为梯度下降法和拟牛顿法,此处采用梯度下降法求解模型参数:

对 www 求导:

Lw′(w,xi,yi)=∑i=1N[xiyi−xiexp(wT∗xi)1+exp(wT∗xi)]L'_w(w,x_i,y_i)=\sum_{i=1}^N[x_iy_i-\frac{x_i exp(w^{T*x_i})}{1+exp(w^{T*x_i})}]Lw′​(w,xi​,yi​)=∑i=1N​[xi​yi​−1+exp(wT∗xi​)xi​exp(wT∗xi​)​]

根据梯度下降算法:

1)取初始值 w0∈Rnw_0∈R_nw0​∈Rn​,置 k=0k=0k=0.

2)计算 L(wk)L(w_k)L(wk​).

3)计算梯度 pk=∇L(wk)p_k=∇L(w_k)pk​=∇L(wk​),当∣∣pk∣∣<ε∣∣pk∣∣<\varepsilon∣∣pk∣∣<ε 时,停止迭代,令 w∗=wkw^∗=w_kw∗=wk​ ,w∗w^*w∗为所求参数 www的解。

否则 ,求 λkλkλk 使L(wk+λkpk)=maxλ≥0L(wk+λpk)L(w_k+λ_kp_k)=max_{λ≥0}L(w_k+λp_k)L(wk​+λk​pk​)=maxλ≥0​L(wk​+λpk​).

4)置wk+1=w(k)+λkpkw_{k+1}=w_{(k)}+λ_kp_kwk+1​=w(k)​+λk​pk​,计算L(wk+1)L(w_{k+1})L(wk+1​),

当∣∣L(wk+1)−L(wk)∣∣<ε∣∣L(w_{k+1})−L(w_{k})∣∣<\varepsilon∣∣L(wk+1​)−L(wk​)∣∣<ε 或 ∣∣wk+1−wk∣∣<ε∣∣w_{k+1}−w_{k}∣∣<\varepsilon∣∣wk+1​−wk​∣∣<ε时,停止迭代,令 w∗=wk+wk+1w^∗=w_k+w_{k+1}w∗=wk​+wk+1​,w∗w^*w∗为所求参数 www的解。

5)否则,置 k=k+1,转第三步。

Part 3:最终模型

最终,学到的 logisticlogisticlogistic 回归模型为:

P(Y=1∣x)=exp(w∗∗x)1+exp(w∗∗x)P(Y=1|x)=\frac{exp(w^**x)}{1+exp(w^**x)}P(Y=1∣x)=1+exp(w∗∗x)exp(w∗∗x)​

P(Y=0∣x)=11+exp(w∗∗x)P(Y=0|x)=\frac{1}{1+exp(w^**x)}P(Y=0∣x)=1+exp(w∗∗x)1​

参考资料:《统计学习方法第二版》李航

逻辑回归损失函数推导及其模型的推导相关推荐

  1. 线性回归和逻辑回归损失函数推导

    线性回归和逻辑回归损失函数推导 @(数据挖掘) 线性回归和逻辑回归损失函数推导 一.线性回归最小二乘loss推导 二.logistics回归加sigmoid原因以及交叉熵损失函数推导 一.线性回归最小 ...

  2. 逻辑回归损失函数和对数损失函数的关系

    这篇文章的目的是要记录一下自己学习对数损失函数时的一些疑惑,以及自己对疑惑的理解.这部分理解主要参考了下面这篇博客 https://www.cnblogs.com/zhangchaoyang/arti ...

  3. 对逻辑回归损失函数进行求导

    如果我们基于逻辑回归的损失函数做GD梯度下降,那么就要求梯度,而我们知道求梯度是loss损失函数对theta求偏导. 1.首先先对逻辑回归函数求导(后面对loss求偏导会用到) 2.逻辑回归损失函数 ...

  4. 逻辑回归损失函数与最大似然估计

    机器学习的损失函数是人为设计的,用于评判模型好坏(对未知的预测能力)的一个标准.尺子,就像去评判任何一件事物一样,从不同角度看往往存在不同的评判标准,不同的标准往往各有优劣,并不冲突.唯一需要注意的就 ...

  5. 逻辑回归损失函数为啥不用最小二乘法

    机器学习的损失函数是人为设计的,用于评判模型好坏(对未知的预测能力)的一个标准.尺子,就像去评判任何一件事物一样,从不同角度看往往存在不同的评判标准,不同的标准往往各有优劣,并不冲突.唯一需要注意的就 ...

  6. 逻辑回归损失函数通常是凸函数(附平方差损失的非凸证明以及交叉熵损失函数求导)

    Q:为什么逻辑回归损失函数往往要求是凸函数?(此处凸函数是指下凸,国内和国外凸函数的标准不一样,是相反的,吴恩达的机器学习课程凸函数是指下凸) A:如果损失函数是非凸的,使用梯度下降法优化时,最后得到 ...

  7. 【逻辑回归算法】{2} ——逻辑回归损失函数的梯度

    目标:求出逻辑回归损失函数的最小值. 逻辑回归的损失函数: 逻辑回归损失函数的梯度: 计算预测函数Sigmoid函数的导数: 代入: 计算过程: 最后得出逻辑回归损失函数的梯度: 回顾一下线性回归代价 ...

  8. 损失函数:逻辑回归损失函数 推导简记

    这里只推导逻辑回归的损失公式. 假设函数 hθ(x)=11+e−θTx(假设函数)h_\theta(x) = \frac{1}{1+e^{-\theta^Tx}} \tag{假设函数} hθ​(x)= ...

  9. ML | 标签为{+1,-1}时,逻辑回归损失函数推导

    文章目录 1.标签为{0,1}损失函数推导 2.标签为{+1,-1}损失函数推导 2.1 似然函数 2.2 损失函数 1.标签为{0,1}损失函数推导 参考资料:本部分资料来自这个链接 网上搜到的多数 ...

最新文章

  1. dll窗体的创建与调用
  2. 图形化mysql出现乱码_关于Mysql中文乱码问题该如何解决(乱码问题完美解决方案)...
  3. python递归函数错误使用方式
  4. UriComponentsBuilder和UriComponents url编码
  5. python网站数据写入mysql_python网络爬虫抓取动态网页并将数据存入数据库MySQL
  6. oracle pl/sql 包
  7. 跳出所有循环的语句_从零开始的Java之旅2.0 流程控制语句
  8. mysql重复make_Mysql5.6 make 错误以及解决办法
  9. Ext 组件的一些操作
  10. 中国AI英雄风云榜十位领军人揭晓 | 网易2018中国年度AI领域人物评选
  11. AspNetForums 开发过程中的源代码管理
  12. android用户界面之GridView教程实例汇总
  13. vue仿微博评论回复_js模拟回帖/微博评论功能案例
  14. 智慧图书馆管理系统提升服务水平和工作效率
  15. 洞态IAST检测RuoYi的sql注入漏洞
  16. Ubuntu环境下XAMP安装PHP的rabbitmq扩展
  17. android短信验证码方案,Android之短信验证码
  18. AXI协议详解(4)-突发传输
  19. 白噪声检验python_python 加一个白噪声跟老齐学Python之Python安装
  20. 如何使用css实现三角形?

热门文章

  1. crt远程连接linux目录的颜色不显示,SecureCRT连接linux设置vim显示颜色
  2. 小猿圈python之python期末考试测试题(一)_小猿圈python之python期末考试测试题(二)...
  3. Java实现生成和解析二维码
  4. linux stm32 swd,stm32 JTAG和SWD的使用区别
  5. python数据分析工具3:matplotlib
  6. OpenCV视频篇——颜色跟踪
  7. BaseQuickAdapter 条目复用问题
  8. sql:函数:开窗函数简介
  9. Word2019修改背景色失效的解决方法
  10. React前端性能提升长列表优化解决方案