记录一下Logistic Regression以及对应的推导

首先Logistic Regression虽然被称为逻辑回归,但是主要是用来解决分类问题。

基本原理
Logistic Regression和Linear Regression的原理是相似的,简单描述为:

(1)找一个合适的预测函数(hypothesis),一般表示为h函数,该函数就是我们需要找的分类函数,用来预测输入数据的判断结果。这个过程非常关键,需要对数据有一定的了解或分析,或者知道函数的“大概”形式,比如是线性函数还是非线性函数。
(2)构造一个Cost函数(损失函数),该函数表示预测的输出(h)与训练数据类别(y)之间的偏差,可以是二者之间的差(h-y)或者是其他的形式。综合考虑所有训练数据的“损失”,将Cost求和或者求平均,记为J(θ)J(θ)J(θ)函数,表示所有训练数据预测值与实际类别的偏差。
(3)显然,j(θ)j(\theta)j(θ)函数的值越小表示预测函数越准确(即h函数约准确),所以这一步需要做的是找到J(θ)J(θ)J(θ)函数的最小值。找函数的最小值有不同的方法,Logistic Regression实现时有的是梯度下降法(Gradient Descent)。

hθ(x)=y=11+e−zh_\theta(x) = y = \frac{1}{1+e^{-z}}hθ​(x)=y=1+e−z1​,其中z=ωTx+bz = \omega^Tx+bz=ωTx+b

sigmoid的函数输出是介于(0,1)之间的,中间值是0.5, 于是之前的公式hθ(x)h_\theta(x)hθ​(x)的含义就很好理解了,因为hθ(x)h_\theta(x)hθ​(x)输出是介于(0,1)之间,也就表明了数据属于某一类别的概率。

Logistic Regression算法是将线性函数的结果映射到了sigmoid函数中。
可以将上面的式子变化一下:


1y=1+e−(wT+b)\frac{1}{y} = 1 + e^{-(w^T+b)}y1​=1+e−(wT+b)

1−1y=e−(wT+b)1-\frac{1}{y}=e^{-(w^T+b)}1−y1​=e−(wT+b),然后两边求对数

lny1−y=wT+bln\frac{y}{1-y}=w^T+bln1−yy​=wT+b


若将y视为样本x作为正例的可能性,则1-y就是作为反例的可能性,两者的比值称为“几率”,再取对数,就是“对数几率”。

极大似然估计,估计参数

有了上面公式,接下来需要做的就是怎样取估计参数θ\thetaθ了。首先我们来看,θ\thetaθ函数的值有特殊的含义,他表示hθ(x)h_{\theta}(x)hθ​(x)结果取1的概率,因此对于输入x分类结果为类别1和类别0的概率分别为:

p(y=1∣x;θ)=hθ(x)p(y=1|x;\theta)=h_{\theta}(x)p(y=1∣x;θ)=hθ​(x)

p(y=0∣x;θ)=1−hθ(x)p(y=0|x;\theta)=1-h_{\theta}(x)p(y=0∣x;θ)=1−hθ​(x)

根据上式,使用概率论中极大似然估计的方法去求解损失函数,首先得到概率函数为:

P(y∣x;θ)=(hθ(x))y∗(1−hθ(x))1−yP(y|x;\theta)=(h_{\theta}(x))^y * (1-h_{\theta}(x))^{1-y}P(y∣x;θ)=(hθ​(x))y∗(1−hθ​(x))1−y,其中y=0或1

又有样本之间是相互独立的,所以似然函数为:

L(θ)=Πi=1mP(yi∣xi;θ)=Πi=1m(hθ(xi))yi(1−hθ(xi))1−yiL(\theta)=\Pi_{i=1}^m P(y^{i}|x^{i};\theta)=\Pi_{i=1}^m(h_{\theta}(x^i))^{y^i}(1-h_{\theta}(x^i))^{1-y^i}L(θ)=Πi=1m​P(yi∣xi;θ)=Πi=1m​(hθ​(xi))yi(1−hθ​(xi))1−yi

对数似然函数:

l(θ)=logL(θ)=∑i=1mlog((hθ(xi))yi)+log((1−hθ(xi))1−yi)=∑i=1myilog((hθ(xi))+(1−yi)log(1−hθ(xi))l(\theta)=logL(\theta)=\sum_{i=1}^mlog((h_{\theta}(x^i))^{y^i})+log((1-h_{\theta}(x^i))^{1-y^i})=\sum_{i=1}^m y^i log((h_{\theta}(x^i))+ (1-y^i)log(1-h_{\theta}(x^i))l(θ)=logL(θ)=∑i=1m​log((hθ​(xi))yi)+log((1−hθ​(xi))1−yi)=∑i=1m​yilog((hθ​(xi))+(1−yi)log(1−hθ​(xi))

最大似然估计就是要求使得l(θ)l(\theta)l(θ)取最大值时的θ\thetaθ,这里可以使用梯度上升法求解:

J(θ)=−1ml(θ)J(\theta)=-\frac{1}{m}l(\theta)J(θ)=−m1​l(θ)

因为乘了一个负的系数−1m-\frac{1}{m}−m1​,然后就可以使用梯度下降算法进行参数求解了


最大似然估计就是要求使得l(θ)l(\theta)l(θ)取最大值时的θ\thetaθ,转化为求是J(θ)J(\theta)J(θ)最小的θ\thetaθ值

θj:=θj−α∂∂θjJ(θ)\theta_j := \theta_j - \alpha\frac{\partial}{\partial\theta_j}J(\theta)θj​:=θj​−α∂θj​∂​J(θ) (j=0,…,n表示第j个参数)

∂∂θjJ(θ)=∂∂θj[−1m∑i=1myilog((hθ(xi))+(1−yi)log(1−hθ(xi))]\frac{\partial}{\partial\theta_j}J(\theta)=\frac{\partial}{\partial\theta_j}[-\frac{1}{m}\sum_{i=1}^m y^i log((h_{\theta}(x^i))+ (1-y^i)log(1-h_{\theta}(x^i))]∂θj​∂​J(θ)=∂θj​∂​[−m1​∑i=1m​yilog((hθ​(xi))+(1−yi)log(1−hθ​(xi))]

=−1m∑i=1m(yi1hθ(xi)∂∂θj(hθ(xi))+(1−yi)11−hθ(xi)∂∂θj(1−hθ(xi)))=-\frac{1}{m}\sum_{i=1}^m(y^i\frac{1}{h_{\theta}(x^i)}\frac{\partial}{\partial\theta_j}(h_{\theta}(x^i))+(1-y^i)\frac{1}{1-h_{\theta}(x^i)}\frac{\partial}{\partial\theta_j}(1-h_{\theta}(x^i)))=−m1​∑i=1m​(yihθ​(xi)1​∂θj​∂​(hθ​(xi))+(1−yi)1−hθ​(xi)1​∂θj​∂​(1−hθ​(xi)))

=−1m∑i=1m(yi1g(θTxi)−(1−yi)11−g(θTxi))∂∂θjg(θTxi)=-\frac{1}{m}\sum_{i=1}^m(y^i\frac{1}{g(\theta^Tx^i)}-(1-y^i)\frac{1}{1-g(\theta^Tx^i)})\frac{\partial}{\partial\theta_j}g(\theta^Tx^i)=−m1​∑i=1m​(yig(θTxi)1​−(1−yi)1−g(θTxi)1​)∂θj​∂​g(θTxi) (A)

其中:

∂∂θjg(θTxi)=g(θTxi)(1−g(θTxi))∂∂θj(θTxi)\frac{\partial}{\partial\theta_j}g(\theta^Tx^i)=g(\theta^Tx^i)(1-g(\theta^Tx^i))\frac{\partial}{\partial\theta_j}(\theta^Tx^i)∂θj​∂​g(θTxi)=g(θTxi)(1−g(θTxi))∂θj​∂​(θTxi)

=g(θTxi)(1−g(θTxi))=g(\theta^Tx^i)(1-g(\theta^Tx^i))=g(θTxi)(1−g(θTxi)) (B)

将A带入B中,得:

∂∂θjJ(θ)=−1m∑i=1m(yi(1−g(θTxi)−(1−yi)g(θTxi))xji\frac{\partial}{\partial\theta_j}J(\theta)=-\frac{1}{m}\sum_{i=1}^m(y^i(1-g(\theta^Tx^i)-(1-y^i)g(\theta^Tx^i))x_j^i∂θj​∂​J(θ)=−m1​∑i=1m​(yi(1−g(θTxi)−(1−yi)g(θTxi))xji​

=−1m∑i=1m(yi−yig(θTxi)−g(θTxi)+yig(θTxi))=-\frac{1}{m}\sum_{i=1}^m(y^i-y^ig(\theta^Tx^i)-g(\theta^Tx^i)+y^ig(\theta^Tx^i))=−m1​∑i=1m​(yi−yig(θTxi)−g(θTxi)+yig(θTxi))

=−1m∑i=1m(yi−g(θTxi)xji)=-\frac{1}{m}\sum_{i=1}^m(y^i-g(\theta^Tx^i)x_j^i)=−m1​∑i=1m​(yi−g(θTxi)xji​)

其中g(θTxi)=hθ(xi)g(\theta^Tx^i)=h_{\theta}(x^i)g(θTxi)=hθ​(xi)即预测值

所以 ∂∂θjJ(θ)=−1m∑i=1m(hθ(xi)−yi)xji\frac{\partial}{\partial\theta_j}J(\theta)=-\frac{1}{m}\sum_{i=1}^m(h_\theta(x^i)-y^i)x_j^i∂θj​∂​J(θ)=−m1​∑i=1m​(hθ​(xi)−yi)xji​

所以参数更新公式:

θj:=θj+α∑i=1m(yi−hθ(xi))xji\theta_j := \theta_j + \alpha\sum_{i=1}^m(y^i-h_\theta(x^i))x_j^iθj​:=θj​+α∑i=1m​(yi−hθ​(xi))xji​ (省略1m\frac{1}{m}m1​)


参考文章:
https://blog.csdn.net/maymay_/article/details/80259104

Logistic Regression推导相关推荐

  1. 逻辑回归(logistic regression)损失函数(loss function)推导

    逻辑回归(logistic regression) 逻辑回归(LR)可以看做线性回归(linear regression)的拓展,二者的区别是:逻辑回归的结果为0或1,即分类:线性回归的结果是连续值, ...

  2. 交叉熵代价函数(损失函数)及其求导推导 (Logistic Regression)

    目录 1. 前言 2. 交叉熵损失函数 3. 交叉熵损失函数的求导 前言 说明:本文只讨论Logistic回归的交叉熵,对Softmax回归的交叉熵类似(Logistic回归和Softmax回归两者本 ...

  3. Logistic Regression 的简单推导

    Logistic Regression 是一种 Generalized Linear Model(GLM),也即广义线性模型. 1. LR 的基本假设 逻辑回归其实是假设事件发生比(odd)的对数为线 ...

  4. 机器学习基础(十一)—— Logistic Regression 梯度更新公式的推导

    Logistic Regression 所要最佳化的问题是: minw1N∑n=1Nln(1+exp(−ynwTxn))Ein( ...

  5. 逻辑回归(Logistic Regression)简介及C++实现

    逻辑回归(Logistic Regression):该模型用于分类而非回归,可以使用logistic sigmoid函数( 可参考:http://blog.csdn.net/fengbingchun/ ...

  6. python训练模型函数参数_一步步亲手用python实现Logistic Regression

    前面的[DL笔记1]Logistic回归:最基础的神经网络和[DL笔记2]神经网络编程原则&Logistic Regression的算法解析讲解了Logistic regression的基本原 ...

  7. 【机器学习】逻辑回归(Logistic Regression)

    注:最近开始学习<人工智能>选修课,老师提纲挈领的介绍了一番,听完课只了解了个大概,剩下的细节只能自己继续摸索. 从本质上讲:机器学习就是一个模型对外界的刺激(训练样本)做出反应,趋利避害 ...

  8. 逻辑回归Logistic Regression 之基础知识准备

    0. 前言   这学期 Pattern Recognition 课程的 project 之一是手写数字识别,之二是做一个网站验证码的识别(鸭梨不小哇).面包要一口一口吃,先尝试把模式识别的经典问题-- ...

  9. 【机器学习】Logistic Regression 的前世今生(理论篇)

    Logistic Regression 的前世今生(理论篇) 本博客仅为作者记录笔记之用,不免有很多细节不对之处. 还望各位看官能够见谅,欢迎批评指正. 博客虽水,然亦博主之苦劳也. 如需转载,请附上 ...

最新文章

  1. 数学图形(1.2)Sin曲线
  2. ES索引模板——就是在新建索引时候指定的正则匹配来设置mapping而已,对于自动扩容有用...
  3. 使用java代码判断一个字符串里是否包含中文字符
  4. python变量和字符串
  5. 数据分析、关键词和地下产业
  6. 加州大学欧文计算机工程硕士,UCI加州大学尔湾分校软件工程硕士Master of Software Engineering...
  7. 规划极限编程阅读笔记01
  8. NOIP2001数的计算
  9. MyISAM如何查看哪个session持有表锁
  10. 利用Linq对集合元素合并、去重复处理
  11. NeatUpload 的使用
  12. keras中文版官方文档
  13. ftp服务器vsftpd配置文件,vsftpd配置文件详解及ftp服务器搭建
  14. 搜狗输入法劝退换成了谷歌拼音
  15. linux防挂马软件,Linux利用Python脚本检测网站挂马程序
  16. flv转mp4,电脑视频flv怎么批量转mp4格式
  17. 《三体》与《西部世界》
  18. Rollup-前端模块化打包工具入门
  19. envi精度评定_envi分类精度评价操作步骤
  20. SimpleMind Pro 1.29.1 小巧的思维导图工具

热门文章

  1. 基于eBPF的云原生可观测性开源工具Kindling之Kindling-agent 性能测试评估
  2. 【HIT-OSLAB-实验中的碎碎念】
  3. WEB页面SEO —— 网站TDK优化细节
  4. linux下MaKefile编写
  5. Python 通用爬虫 和讯博客 scrapy
  6. 【MQTT】Windows:安装MQTT
  7. 汶川地震十年祭 | 川大分享会:人如树,把根留住
  8. aec java ios_Java並發編程之原子操作類
  9. 【产品】《用户体验要素》框架层(界面设计、导航设计和信息设计)
  10. 福大软工 · 第十次作业 - 项目测评(团队)