当前位置: 首页 > news >正文

学习笔记2: 深度学习之logistic回归梯度下降

梯度下降与参数更新优化

在得到代价函数后,关键是如何更新参数(如 www, bbb),以使模型表现最佳,即使得代价函数 J(w,b)J(w, b)J(w,b) 最小。


1. 梯度下降(Gradient Descent)

问题:如何找到合适的 w,bw, bw,b 使 J(w,b)J(w, b)J(w,b) 最小?

当只考虑 www(忽略 bbb),JJJ 是一元函数:

请添加图片描述

其中:

  • α\alphaα:学习率 (learning rate)
  • dwdwdwwww 的梯度

当初始点在极小值右侧,导数为正,www 会向左更新;左侧同理。不断迭代,最终收敛到极小值。

考虑两个参数 w,bw, bw,b 时,
w:=w−α∂J(w,b)∂w w := w - \alpha \frac{\partial J(w, b)}{\partial w} w:=wαwJ(w,b)
b:=b−α∂J(w,b)∂b b := b - \alpha \frac{\partial J(w, b)}{\partial b} b:=bαbJ(w,b)
不断计算偏导并更新参数,使 JJJ 达到最小。


2. logistic回归中的梯度下降

z^=σ(wTX+b)\hat z = \sigma(w^T X + b)z^=σ(wTX+b)

y^=a=σ(z)\hat y = a = \sigma(z)y^=a=σ(z)

交叉熵损失函数:
L(a,y)=−[ylog⁡a+(1−y)log⁡(1−a)] L(a, y) = -[y\log a + (1-y)\log(1-a)] L(a,y)=[yloga+(1y)log(1a)]

当样本 XXX 有两个特征 x1,x2x_1, x_2x1,x2 时,求导过程如下:
在这里插入图片描述

交叉熵损失函数对 aaa 的导数:

dLda=−ya+1−y1−a\frac{dL}{da} = -\frac{y}{a} + \frac{1-y}{1-a}dadL=ay+1a1y
以下为AI求导过程,仅供参考。
在这里插入图片描述

Sigmoid函数对 zzz 的导数:

dadz=a(1−a)\frac{da}{dz} = a(1-a)dzda=a(1a)
以下为AI求导过程,仅供参考。

在这里插入图片描述

损失函数对 zzz 的导数:

dLdz=a−y\frac{dL}{dz} = a - ydzdL=ay

因此,三个参数的梯度分别为:

dw1=x1(a−y)dw_1 = x_1(a-y)dw1=x1(ay)

dw2=x2(a−y)dw_2 = x_2(a-y)dw2=x2(ay)

db=a−ydb = a-ydb=ay

参数更新:

w1:=w1−αdw1w_1 := w_1 - \alpha dw_1w1:=w1αdw1

w2:=w2−αdw2w_2 := w_2 - \alpha dw_2w2:=w2αdw2

b:=b−αdbb := b - \alpha dbb:=bαdb


3. 在 mmm 个样本上进行梯度下降

代价函数:

J(w,b)=1m∑i=1mL(y^(i),y(i))=−1m∑i=1m[y(i)log⁡y^(i)+(1−y(i))log⁡(1−y^(i))] J(w,b) = \frac{1}{m} \sum_{i=1}^m L(\hat y^{(i)}, y^{(i)}) = -\frac{1}{m} \sum_{i=1}^m [y^{(i)}\log \hat y^{(i)} + (1-y^{(i)})\log(1-\hat y^{(i)})] J(w,b)=m1i=1mL(y^(i),y(i))=m1i=1m[y(i)logy^(i)+(1y(i))log(1y^(i))]

求导:
∂J(w,b)∂w1=1m∑i=1m∂L(a(i),y(i))∂w1=1m∑i=1mdw1(i) \frac{\partial J(w,b)}{\partial w_1} = \frac{1}{m}\sum^m_{i=1}\frac{\partial L(a^{(i)},y^{(i)})}{\partial w_1}=\frac{1}{m}\sum^m_{i=1} dw_1^{(i)} w1J(w,b)=m1i=1mw1L(a(i),y(i))=m1i=1mdw1(i)

伪代码:

在这里插入图片描述

左侧:计算代价函数和所有参数的偏导
右侧:更新参数


但这样做可能会存在一个问题,我们当前的例子中只存在三个参数w1,w2,bw_1,w_2,bw1,w2,b,但在实际应用中可能存在nnnwww参数,这样将导致我们的计算中存在两个forforfor循环,计算mmm个样本,计算nnnwww参数,当计算量很大时,这样做就非常消耗资源了,因此引出向量化(vectorization)的概念。


http://www.dtcms.com/a/477830.html

相关文章:

  • 网络安全等级测评师能力评估样卷及答案
  • 网站服务器用什么系统网站建设及管理制度文章
  • 网站添加wordpress创意咨询策划公司
  • 企业网站设计专业好吗胶州房产网
  • 环境变量完全指南:用 Vite 把「配置」玩出花
  • 深入解析JAVA虚拟线程
  • 不同设计牙周探针在深牙周袋探查中的精确性与局限性比较
  • 三极管分类
  • Leetcode 3710. Maximum Partition Factor
  • 亚马逊,塔吉特采购测评:高砍单率核心原因及技术破解策略
  • SQLite3数据库——Linux应用
  • 人机关系中“看不见的手”
  • 上街区网站建设做网站用什么系统好
  • k8s cert-manager cert-manager-webhook-xxx pod 证书过期问题处理
  • 宝塔服务器磁盘爆满:占用50G磁盘空间的.forever日志文件处理导致服务崩溃的教训
  • Docker资源限制全解析
  • 毫米级的安全舞蹈
  • 成都网站专业制作一造和一建哪个难度大
  • 解码AI智能体的大脑:Function Calling 与 ReAct 策略深度对决
  • K8s多租户方案指南--图文篇
  • 去一个新公司~重新设置git信息,clone项目 ~需要做的
  • wordpress 自动标签插件廊坊seo推广
  • Abase 数据库:永久关闭 misopt_preventing 选项的方法
  • 基于单片机的智能洗碗机设计
  • 网站策划书ppt9377白蛇传奇
  • 从Wireshark到Mitmproxy:网络数据侦探——抓包工具在爬虫开发中的艺术与科学之“HTTPS全流量解密实战”
  • HTTP与HTTPS的五大核心区别
  • 关于2025.10.13力扣每日的学习
  • Hive 删除分区语句卡死问题
  • 19.1 TCP 和 UDP 有什么区别?