机器学习之梯度下降(BGD,SGD, MBGD)

2023-11-08

梯度下降

(批量)梯度下降法(BGD)

1. 递推公式推导过程

通过多项式对函数进行逼近的方法得到
f ( x ) = f ( x 0 ) + f ′ ( x 0 ) 1 ! ( x − x 0 ) + f ′ ′ ( x 0 ) 2 ! ( x − x 0 ) 2 + ⋯ + f ( n ) ( x 0 ) n ! ( x − x 0 ) n + R n ( x ) f(x)=f(x_0)+\frac{f'(x_0)}{1!}(x-x_0)+\frac{f''(x_0)}{2!}(x-x_0)^2+\dots+\frac{f^{(n)}(x_0)}{n!}(x-x_0)^n+R_n(x) f(x)=f(x0)+1!f(x0)(xx0)+2!f(x0)(xx0)2++n!f(n)(x0)(xx0)n+Rn(x)

f ( x ) ≈ f ( x 0 ) + f ′ ( x 0 ) ( x − x 0 ) f(x)≈f(x_0)+f'(x_0)(x-x_0) f(x)f(x0)+f(x0)(xx0)
其中令 Δ x = x − x 0 \Delta x=x-x_0 Δx=xx0,则有
f ( x ) ≈ f ( x 0 ) + Δ x ∇ f ( x 0 ) f(x)≈f(x_0)+\Delta x\nabla f(x_0) f(x)f(x0)+Δxf(x0)
则得到
f ( x ) − f ( x 0 ) = Δ x ∇ f ( x 0 ) f(x)-f(x_0)=\Delta x\nabla f(x_0) f(x)f(x0)=Δxf(x0)
其实 Δ x \Delta x Δx ∇ f ( x 0 ) \nabla f(x_0) f(x0)都是向量,因此需要 f ( x ) − f ( x 0 ) f(x)-f(x_0) f(x)f(x0)最小,只有当 Δ x \Delta x Δx ∇ f ( x 0 ) \nabla f(x_0) f(x0)两个方向相反,故有
Δ x = − α ∇ f ( x 0 )         α > 0 \Delta x=-\alpha \nabla f(x_0)~~~~~~~\alpha >0 Δx=αf(x0)       α>0
最终得到梯度下降法的递推公式为
x : = x − α ∇ f ( x ) x:=x-\alpha \nabla f(x) x:=xαf(x)

2. 求解最小二乘问题(采用梯度下降算法求解线性回归模型最优解)
  • 线性回归模型
    f ω ( x ) = ω 0 + ω 1 x + ⋯ + ω d x d f_\omega(x)=\omega_0+\omega_1x+\dots+\omega_dx_d fω(x)=ω0+ω1x++ωdxd
    其中d表示有d个特征.
  • 损失函数
    J ( ω ^ ) = 1 2 m ∑ i = 1 m ( X i ω ^ − y i ) 2 J(\widehat{\omega})=\frac{1}{2m}\sum\limits_{i=1}^m(X_i\widehat{\omega}-y_i)^2 J(ω )=2m1i=1m(Xiω yi)2
    其中m表示有m个样本点.
  • 使用梯度下降最小化损失函数,求解最优解

根据梯度下降递推公式有
ω ^ : = ω ^ − α ∂ J ( ω ^ ) ∂ ω ^ \widehat{\omega}:=\widehat{\omega}-\alpha\frac{\partial{J(\widehat{\omega})}}{\partial{\widehat{\omega}}} ω :=ω αω J(ω )

ω ^ : = ω ^ − α m X T ( X ω ^ − y ) = ω ^ − α m ∑ i = 1 m ( X i ω ^ − y i ) X i T \widehat{\omega}:=\widehat{\omega}-\frac{\alpha}{m}X^T(X\widehat{\omega}-y)=\widehat{\omega}-\frac{\alpha}{m}\sum\limits_{i=1}^m(X_i\widehat{\omega}-y_i)X_i^T ω :=ω mαXT(Xω y)=ω mαi=1m(Xiω yi)XiT

3. 优点

此时时间复杂度为 O ( m d ) O(md) O(md),迭代次数少

4. 缺点

每次迭代都要用到训练集所有的数据,因此当数据量大的时候迭代速度会很慢

随机梯度下降(SGD)

通过观察发现 1 m ∑ i = 1 m ( X i ω ^ − y i ) X i T \frac{1}{m}\sum\limits_{i=1}^m(X_i\widehat{\omega}-y_i)X_i^T m1i=1m(Xiω yi)XiT相当于是所有训练集样本点的均值

z i = ( X i ω ^ − y i ) X i T z_i=(X_i\widehat{\omega}-y_i)X_i^T zi=(Xiω yi)XiT,每个样本点i选取的概率为 1 m \frac{1}{m} m1,则有
E i ( z i ) = 1 m ∑ i = 1 m ( X i ω ^ − y i ) X i T E_i(z_i)=\frac{1}{m}\sum\limits_{i=1}^m(X_i\widehat{\omega}-y_i)X_i^T Ei(zi)=m1i=1m(Xiω yi)XiT
故随机梯度下降法的递推公式为
ω ^ : = ω ^ − α ( X j ω ^ − y j ) X j T \widehat{\omega}:=\widehat{\omega}-\alpha(X_j\widehat{\omega}-y_j)X_j^T ω :=ω α(Xjω yj)XjT

1. 优点

每次迭代使用随机的一个样本来对参数进行更新,使得训练速度加快,此时的时间复杂度为 O ( d ) O(d) O(d)

2. 缺点
  1. 准确度下降,当目标函数为强凸函数的情况下,无法做到线性收敛
  2. 可能会收敛到局部最优
  3. 迭代次数比BGD多

小批量梯度下降法(MBGD)

鉴于BGD,SGD的优缺点,提出每次迭代使用部分样本来对参数进行更新,故MBGD的迭代公式为
ω ^ : = ω ^ − α # J ∑ j ∈ J ( X j ω ^ − y j ) X j T \widehat{\omega}:=\widehat{\omega}-\frac{\alpha}{\# J}\sum\limits_{j\in J}(X_j\widehat{\omega}-y_j)X_j^T ω :=ω #JαjJ(Xjω yj)XjT

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

机器学习之梯度下降(BGD,SGD, MBGD) 的相关文章

  • 百万并发服务器设计

    文章目录 前言 1 改造ntyreactor 2 如何管理eventblock 创建一个eventblock 查找对应fd在那个eventblock上 具体使用 3 总结 前言 本文的基础以及使用的代码模型都继承自上一篇文章 所以请先详细阅

随机推荐

  • 大模型时代下做科研的四个思路

    背景 在模型越来越大的时代背景下 如何利用有限的资源做出一些科研工作 四个方向 1 Efficient PEFT 提升训练效率 这里以PEFT parameter efficient fine tuning 为例 2 Existing st
  • linux查看磁盘IO,网络IO 总结

    一 linux查看磁盘IO 网络 IO可用的命令 1 top 监控整体服务器 cpu 内存 磁盘 网络等 2 dstat d 查看当前磁盘每秒的读取 写入量 单位K 3 dstat r 查看当前磁盘随机的读IOPS 写IOPS 4 dsta
  • 一款简单的角度计算Python包:PyAngle

    一款简单的角度计算Python包 PyAngle GitHub仓库 gzn00417 PyAngle PyPI项目 PyAngle A simple package for angle calculation Use pip install
  • ubuntu下载的国内镜像

    阿里云镜像
  • 惊爆GPT OpenAPI的调用以及API内的参数详解

    开篇 随着人工智能技术的飞速发展 自然语言处理技术 NLP 在过去几年也取得了突飞猛进的突破 在这个过程中 一个重要且可称为颠覆者的模型 GPT 3 第三代生成式预训练 Transformer 模型 的诞生 无疑大大加速了 NLP 领域的前
  • 以太坊智能合约安全编程最佳实践smart-contract-best-practices

    https github com ConsenSys smart contract best practices Ethereum Contract Security Techniques and Tips The recent attac
  • Web UI自动化测试之Selenium工具篇

    本文大纲截图 一 自动化测试介绍 1 基本介绍 1 1 自动化 概念 由机器设备代替人工自动完成指定目标的过程 优点 1 减少人工劳动力 2 提高工作效率 3 产品规格统一标准 4 规模化 批量生产 1 2 自动化测试 软件测试 校验系统是
  • 今天我抓了个 HTTPS 的包

    之前写过一篇讲 HTTPS 的思想的文章 破玩意 用 HTTPS 传纸条 后来又写了篇用更凝练的语言总体描述了 HTTPS 的主干 叮咚 HTTPS 的分支和主干 想必通过这两篇文章 HTTPS 为什么要这么设计 以及它是用来解决什么问题的
  • Android 使用retrofit解析接口返回的xml格式数据

    直接入正题 需要解析的数据格式为 从数据格式上看 上面都是单个字段的解析 下面则是一个数组 解析过程 1 添加retrofit预返回数据处理类型 2 添加返回数据处理类 也就是后面会用的 在上图中可以看到将xml的数据结构在XmlLogin
  • Matlab实现神经网络(附上100个完整仿真源码+说明文档+数据)

    神经网络是一种模仿人类神经系统 以处理信息为目的的计算模型 它由大量节点 或称神经元 和连接它们的边组成 每个节点代表一个变量 边表示变量之间的关系 在神经网络中 信息通过节点之间的连接传递 并在各个节点之间进行处理和转换 Matlab是一
  • 算法:求最长回文数

    题目 给定一个字符串 s 找到 s 中最长的回文子串 你可以假设 s 的最大长度为 1000 eg 输入 babad 输出 bab 注意 aba 也是一个有效答案 eg 输入 cbbd 输出 bb C 采用动态规划 是学习别人的 但在lee
  • 视频清晰度、色偏以及亮度异常检测

    转自 http blog csdn net kklots article details 12720359 昨天老板临时交代一个活 要求通过算法检测监控设备是否存在失焦 偏色 亮度异常等问题 问题本身不难 在网上查看了一些资料 自己也做了一
  • 谈谈深度学习中的模型集成

    前文已经给出了三种可提升模型性能的方法论 残差连接 正则化和深度可分离卷积 本文提出另一种强大的技术是模型集成 model ensembling 集成是指将一些列不同模型的预测结果汇集到一起 从而得到更好的预测结果 集成依赖于这样的假设 即
  • adb push安装系统应用(并自启)

    1 有root权限 adb push 安装应用 system app或者system priv app 法一 对于多设备连接时用 s devicename选择设备 当adb启动失败时 用adb kill server 和adb start
  • 如何在一台电脑安装多个版本的JDK

    如何在一台电脑安装多个版本的JDK 一 打开JDK下载官网网址 下载链接 在里面选择你想要的版本进行下载 下载方式参考我的上一篇笔记 二 JDK安装路径 我这里装了1 8和17两个版本 可以把这两个不同版本放在一个大的文件夹里 方便操作 也
  • JMETER接口测试_用户登录(MD5加密)

    JMETER接口测试 用户登录 密码MD5加密 1 给整个线程组 添加全局变量 TestPlan gt 线程组 gt 右键 gt ADD Config Element gt User Defined Variables 全局变量的意思 整个
  • Hbuildx创建vue3项目

    静态网站 H5 跳小程序 微信开放文档 一 vue3的试水学习 vue3的项目 可以先尝试普通项目的vue3应用 根据示例来看 是vue3的语法没错了 可以先在这儿试一下基础的的vue3语法 vue的setup 单文件组件 这是vue3的s
  • 英特服务器的spec整数性能,单线程整数运算性能:SPEC CPU2006_商用-中关村在线

    即使在服务器市场也是高核心数的CPU称雄 单线程高性能表现依然值得拥有 它确保在任何情况下都能保证一定的性能发挥 而不是仅仅为了 embarrassingly parallel 易并行计算 软件的 throughput situations
  • Unity遮罩实现汽车后视镜(附效果图)

    话不多说 先上效果图 最近项目有用到Unity实现汽车后视镜功能 网上找了很多例子 比如这篇文章 原理确实如此 但只是在平面上实现 我想改变平面改成汽车后视镜形状 这就出现了问题 镜子效果变扭曲 我想是因为相机投射是矩形 如果你改变平面形状
  • 机器学习之梯度下降(BGD,SGD, MBGD)

    梯度下降 批量 梯度下降法 BGD 随机梯度下降 SGD 小批量梯度下降法 MBGD 梯度下降 批量 梯度下降法 BGD 1 递推公式推导过程 通过多项式对函数进行逼近的方法得到 f x f