逻辑回归梯度推导

逻辑回归是一种广泛使用的分类算法,用于估计一个事件发生的概率。它是线性回归的扩展,通过sigmoid函数将线性回归的输出映射到[0, 1]区间,从而用于分类任务。
在逻辑回归中,我们使用对数似然损失函数(log-likelihood loss function)来衡量模型预测值与真实值之间的差异。我们的目标是最小化这个损失函数,以找到最优的模型参数。
假设我们有以下符号:

  • h θ ( x ) h_{\theta}(x) hθ(x) 是模型预测的概率, h θ ( x ) = 1 1 + e − θ T x h_{\theta}(x) = \frac{1}{1 + e^{-\theta^T x}} hθ(x)=1+eθTx1
  • m m m 是训练样本的数量。
  • y y y 是实际输出标签,取值为0或1。
  • θ \theta θ 是模型参数。
  • x x x 是单个训练样本的特征向量。

对数似然损失函数为(也可以说是交叉熵损失,来源于KL散度的后一项):
L ( θ ) = − 1 m ∑ i = 1 m [ y ( i ) log ⁡ ( h θ ( x ( i ) ) ) + ( 1 − y ( i ) ) log ⁡ ( 1 − h θ ( x ( i ) ) ) ] L(\theta) = -\frac{1}{m} \sum_{i=1}^{m} [y^{(i)} \log(h_{\theta}(x^{(i)})) + (1 - y^{(i)}) \log(1 - h_{\theta}(x^{(i)}))] L(θ)=m1i=1m[y(i)log(hθ(x(i)))+(1y(i))log(1hθ(x(i)))]

为了找到最小化损失函数的参数 θ \theta θ,我们需要计算损失函数关 $\theta $ 的梯度。以下是梯度计算的过程:

对 $ L(\theta) $ 求关于$ \theta_j $ 的偏导数:
∂ ∂ θ j L ( θ ) = − 1 m ∑ i = 1 m [ y ( i ) ∂ ∂ θ j log ⁡ ( h θ ( x ( i ) ) ) + ( 1 − y ( i ) ) ∂ ∂ θ j log ⁡ ( 1 − h θ ( x ( i ) ) ) ] = − 1 m ∑ i = 1 m [ y ( i ) h θ ( x ( i ) ) ∂ ∂ θ j h θ ( x ( i ) ) − 1 − y ( i ) 1 − h θ ( x ( i ) ) ∂ ∂ θ j h θ ( x ( i ) ) ] = − 1 m ∑ i = 1 m [ y ( i ) 1 h θ ( x ( i ) ) − ( 1 − y ( i ) ) 1 1 − h θ ( x ( i ) ) ] ∂ ∂ θ j h θ ( x ( i ) ) \begin{align*} \frac{\partial}{\partial \theta_j} L(\theta) &= -\frac{1}{m} \sum_{i=1}^{m} \left[ y^{(i)} \frac{\partial}{\partial \theta_j} \log(h_{\theta}(x^{(i)})) + (1 - y^{(i)}) \frac{\partial}{\partial \theta_j} \log(1 - h_{\theta}(x^{(i)})) \right] \\ &= -\frac{1}{m} \sum_{i=1}^{m} \left[ \frac{y^{(i)}}{h_{\theta}(x^{(i)})} \frac{\partial}{\partial \theta_j} h_{\theta}(x^{(i)}) - \frac{1 - y^{(i)}}{1 - h_{\theta}(x^{(i)})} \frac{\partial}{\partial \theta_j} h_{\theta}(x^{(i)}) \right] \\ &= -\frac{1}{m} \sum_{i=1}^{m} \left[ y^{(i)} \frac{1}{h_{\theta}(x^{(i)})} - (1 - y^{(i)}) \frac{1}{1 - h_{\theta}(x^{(i)})} \right] \frac{\partial}{\partial \theta_j} h_{\theta}(x^{(i)}) \end{align*} θjL(θ)=m1i=1m[y(i)θjlog(hθ(x(i)))+(1y(i))θjlog(1hθ(x(i)))]=m1i=1m[hθ(x(i))y(i)θjhθ(x(i))1hθ(x(i))1y(i)θjhθ(x(i))]=m1i=1m[y(i)hθ(x(i))1(1y(i))1hθ(x(i))1]θjhθ(x(i))

计算 h θ ( x ) h_{\theta}(x) hθ(x) 关于 θ j \theta _{j} θj的偏导数:
∂ ∂ θ j h θ ( x ) = ∂ ∂ θ j ( 1 1 + e − θ T x ) = e − θ T x ( 1 + e − θ T x ) 2 ∂ ∂ θ j ( − θ T x ) = e − θ T x ( 1 + e − θ T x ) 2 ( − x j ) = h θ ( x ) ( 1 − h θ ( x ) ) ( − x j ) \begin{align*} \frac{\partial}{\partial \theta_j} h_{\theta}(x) &= \frac{\partial}{\partial \theta_j} \left( \frac{1}{1 + e^{-\theta^T x}} \right) \\ &= \frac{e^{-\theta^T x}}{(1 + e^{-\theta^T x})^2} \frac{\partial}{\partial \theta_j} (-\theta^T x) \\ &= \frac{e^{-\theta^T x}}{(1 + e^{-\theta^T x})^2} (-x_j) \\ &= h_{\theta}(x) (1 - h_{\theta}(x)) (-x_j) \\ \end{align*} θjhθ(x)=θj(1+eθTx1)=(1+eθTx)2eθTxθj(θTx)=(1+eθTx)2eθTx(xj)=hθ(x)(1hθ(x))(xj)
将 ( ∂ ∂ θ j h θ ( x ) \frac{\partial}{\partial \theta_j} h_{\theta}(x) θjhθ(x) ) 的结果代入梯度公式中:
∂ ∂ θ j L ( θ ) = − 1 m ∑ i = 1 m [ y ( i ) 1 h θ ( x ( i ) ) − ( 1 − y ( i ) ) 1 1 − h θ ( x ( i ) ) ] h θ ( x ) ( 1 − h θ ( x ) ) ( − x j ) = − 1 m ∑ i = 1 m [ y ( i ) ( 1 − h θ ( x ( i ) ) ) − ( 1 − y ( i ) ) h θ ( x ( i ) ) ] ( − x j ( i ) ) = − 1 m ∑ i = 1 m [ y ( i ) − h θ ( x ( i ) ) ] ( − x j ( i ) ) \begin{align*} \frac{\partial}{\partial \theta_j} L(\theta) &= -\frac{1}{m} \sum_{i=1}^{m} \left[ y^{(i)} \frac{1}{h_{\theta}(x^{(i)})} - (1 - y^{(i)}) \frac{1}{1 - h_{\theta}(x^{(i)})} \right]h_{\theta}(x) (1 - h_{\theta}(x)) (-x_j) \\ &= -\frac{1}{m} \sum_{i=1}^{m} \left[ y^{(i)} (1 - h_{\theta}(x^{(i)})) - (1 - y^{(i)}) h_{\theta}(x^{(i)}) \right] (-x_j^{(i)}) \\ &= -\frac{1}{m} \sum_{i=1}^{m} \left[ y^{(i)} - h_{\theta}(x^{(i)}) \right] (-x_j^{(i)}) \end{align*} θjL(θ)=m1i=1m[y(i)hθ(x(i))1(1y(i))1hθ(x(i))1]hθ(x)(1hθ(x))(xj)=m1i=1m[y(i)(1hθ(x(i)))(1y(i))hθ(x(i))](xj(i))=m1i=1m[y(i)hθ(x(i))](xj(i))
因此,逻辑回归损失函数 L ( θ ) L(\theta) L(θ) 关于参数 θ j \theta_j θj的梯度是:
∂ ∂ θ j L ( θ ) = − 1 m ∑ i = 1 m [ h θ ( x ( i ) ) − y ( i ) ] x j ( i ) \frac{\partial}{\partial \theta_j} L(\theta) = -\frac{1}{m} \sum_{i=1}^{m} \left[ h_{\theta}(x^{(i)}) - y^{(i)} \right] x_j^{(i)} θjL(θ)=m1i=1m[hθ(x(i))y(i)]xj(i)

​ 这个梯度表达式告诉我们,对于每个参数 θ j \theta_j θj,我们需要计算模型预测 h θ ( x ( i ) ) h_{\theta}(x^{(i)}) hθ(x(i)) 和实际标签 y ( i ) y^{(i)} y(i) 之间的差异,然后将这个差异乘以特征 x j ( i ) x_j^{(i)} xj(i),最后对所有训练样本求和并除以样本数量 m m m。这个梯度用于在优化过程中更新参数 θ j \theta_j θj,以最小化损失函数。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/756054.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

石家庄高校大学智能制造实验室数字孪生可视化系统平台项目验收

智能制造作为未来制造业的发展方向,已成为各国竞相发展的重点领域。石家庄高校大学智能制造实验室积极响应国家发展战略,结合自身优势,决定引进数字孪生技术,构建一个集教学、科研、生产于一体的可视化系统平台。 数字孪生可视化…

influxdb时序数据库使用

influxdb时序数据库使用 1.1.免费无云influx申请1.2.Telegraf安装1.3.influxdb安装mac安装Redhat && Centos安装docker安装Kubernetes安装windows安装 1.4.influx CLI 安装1.5.influx命令行界面1.5.influx配置项权限认证配置管理 API 令牌 InfluxDB 是一个开源分布式时…

kali Linux基本命令(超全)_kali linux命令

一、系统信息 arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架构(2) uname -r 显示正在使用的内核版本 dmidecode -q 显示硬件系统部件- (SMBIOS / DMI) hdparm -i /dev/hda 罗列一个磁盘的架构特性 hdparm -tT /dev/sda 在磁盘上执行测试性读取操作 cat /proc/cpu…

【从0实现React18】 (六) 完成commit提交流程并初步实现react-dom包,完成首屏渲染测试

前面,我们提到 React 更新流程有四个阶段: 触发更新(Update Trigger)调度阶段(Schedule Phase)协调阶段(Reconciliation Phase)提交阶段(Commit Phase) 之前…

安防监控视频平台LntonAIServer视频监控管理平台裸土检测算法技术核心和应用场景

LntonAIServer裸土检测算法是一种基于人工智能技术的创新解决方案,旨在实现对裸土地表的自动识别。以下是对该算法的详细分析: 技术基础: 1、该算法利用深度学习和计算机视觉技术,通过捕捉视频或图像中的关键信息,如…

【ES】--Elasticsearch的翻页详解

目录 一、前言二、from+size浅分页1、from+size导致深度分页问题三、scroll深分页1、scroll原理2、scroll可以返回总计数量四、search_after深分页1、search_after避免深度分页问题一、前言 ES的分页常见的主要有三种方式:from+size浅分页、scroll深分页、search_after分页。…

IT运维问题分析报告编写经验模版

IT运维问题分析报告编写经验&模版 为提高IT运维用户服务感知满意度,提高运维工作效率,完善运维基础设施建设,现对IT运维工作中存在的紧迫性问题进行分析总结,报告如下: 本文参考资料。专栏地址(50运维…

期末考试结束,成绩如何快速发布?

随着期末考试的落幕,老师们又迎来了一项繁琐的任务将成绩单私信给学生家长。这项工作耗时耗力,而且极易出错,期末老师的工作已经足够繁重还要私发成绩,简直是雪上加霜。 好消息是,现在有了易查分小程序,只需…

MATLAB-振动问题:两自由度耦合系统自由振动

一、基本理论 二、MATLAB实现 以下是两自由度耦合系统自由振动质量块振动过程动画显示的MATLAB程序。 clear; clc; close allx0 1; D1 40; D12 8; D2 D1; m1 1; omega0 sqrt(D1/m1); k1 D12 / D1; k2 D12 / D2; k sqrt(k1 * k2); omegazh omega0 * sqrt(1 k); omeg…

不可编辑的加密word文件破解

文章目录 1 将word文件另存为xml格式2 使用记事本打开xml格式的word文件3 ctrlF查找w:enforcement4 将w:enforcement"1"改成w:enforcement"0"并保存5 用word打开xml格式的文件并另存为docx格式6 成功可以编辑 1 将word文件另存为xml格式 2 使用记事本打开x…

丙酮传感器TGS1820在呼吸气体丙酮含量分析检测中的应用

随着科技的进步,无创检测技术逐渐成为医疗保健领域的新宠。其中,基于呼吸气体的分析检测技术以其独特的优势受到了广泛关注。呼吸气中的挥发性有机化合物(VOCs)不仅为研究者们提供了关于人体健康状态的宝贵信息,而且它…

PKG打包sqlite3项目,如何添加node_sqlite3.node依赖

项目地址:https://github.com/helson-lin/pkg_sqlite 在ffandown项目内,由于项目使用了sqlite3,在跨平台打包的时候,除了本机外其他平台打包之后运行缺少node_sqlite3.node依赖。 为了解决问题,百度了很久&#xff0c…

为什么您需要将软件本地化为其他语言

将软件翻译成其他语言可以让用户和开发软件的公司受益。以下是软件翻译之所以重要的几个原因: 不断增加的受众:当软件被翻译成不同的语言时,世界各地的更多人都可以访问它。这使公司能够扩大客户群并增加销售额。 改善用户体验:用…

Java异常处理详解【入门篇】

Java异常处理详解【入门篇】 Java异常处理详解1. 异常的概念2. 异常的分类2.1 检查异常(Checked Exception)2.2 非检查异常(Unchecked Exception)2.3 错误(Error) 3. 异常处理机制3.1 try-catch3.2 finally…

1/7精确到100位,1000位,100000位怎么算?

双精度 Console.WriteLine("1/7的值是" (double)1 / 7);结果:0.14285714285714285 即使使用双精度浮点数,精确的位数也是有限的,如果想精确到小数点后100位,1000位,甚至更高哪? 朴素的除法 除数 余数 商…

麒麟桌面系统CVE-2024-1086漏洞修复

原文链接:麒麟桌面操作系统上CVE-2024-1086漏洞修复 Hello,大家好啊!今天给大家带来一篇在麒麟桌面操作系统上修复CVE-2024-1086漏洞的文章。漏洞CVE-2024-1086是一个新的安全漏洞,如果不及时修复,可能会对系统造成安全…

设计模式 - Observer Pattern 观察者模式

文章目录 定义观察者模式的实现构成构成UML图 观察者模式的代码实现场景代码实现 总结优点缺点应用场景 其他设计模式文章: 定义 观察者模式是行为型模式的一种,它定义对象间的一种一对多的依赖关系,使得每当一个对象改变状态,它…

ThreadPoolExecutor线程池创建线程

线程池介绍 降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行。提高线程的可管理性。线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源&#…

find()方法——字符串首次出现的索引位置

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 语法参考 find()方法实现查询一个字符串在其本身字符串对象中首次出现的索引位置,如起始位置从11到结束位置17之间子字符串出现的位置&a…