机器学习的精髓-梯度下降算法

  • [1. 梯度下降算法](#1. 梯度下降算法)
  • [2. 梯度下降求解](#2. 梯度下降求解)
  • [3. 总结](#3. 总结)

1. 梯度下降算法

梯度下降算法是一种优化算法,用于最小化函数的数值方法。它通过沿着函数梯度的反方向来更新参数,以逐步减小函数值。这一过程重复进行直到达到收敛条件。梯度下降算法有多种变体,包括批量梯度下降、随机梯度下降和小批量梯度下降。这些变体在处理大规模数据和优化不同类型的函数时具有不同的优势。

2. 梯度下降求解

下面用一个例子来说明,使用梯度下降求极值的过程。

求y= x 2 x^2 x2 * sin(x)函数取得极小值时x的值。
梯度下降就是x当前值-y在x处的导数,再进行不断的迭代

y' = 2x*sin(x) + x 2 x^2 x2*cos(x) (y在x处的导数)

梯度下降x' = x - y'

为了使梯度变化不至于太快,还要再y'上乘以一个learning rate即学习率

那就变成了x' = x - 0.005 * y',如下图:

learning rate = 0.5

x' = x - 0.5 * y'

当learning rate比较大时,x'变化的步长比较大,会导致它在最优解处有较大范围的波动,因此设置合适的learning rate是比较重要的,初学者一般设置learning rate=0.001,复杂的视具体情况进行调整。

3. 总结

个人理解梯度下降就是求极小值的过程,而在机器学习中就是使用梯度下降算法来求loss的最小值的,因此deep learning又被某些专家称之为Gradient programing,因此说梯度下降算法是机器学习的精髓那就一点不为过了。

相关推荐
杨航 AI1 小时前
** AI 面试算法 50 题清单**,不是单纯的 LeetCode 题号列表,而是按照“**考察概率 × 面试价值 × 你当前准备方向**”排序
算法·leetcode·面试
m0_720245018 小时前
1543.统计好三元组(简单)
开发语言·算法
To_OC8 小时前
LC 560 和为 K 的子数组:前缀和配哈希表,这对组合我是真的服了
javascript·算法·程序员
To_OC8 小时前
别死磕 Prompt 了!我用 Harness 流水线,让大模型自动产出高质量代码
人工智能·llm·agent
恒拓高科WorkPlus8 小时前
企业级即时通讯与数字协同平台:BeeWorks如何连接沟通、文档、业务与AI
人工智能
XGeFei9 小时前
【AI应用/Agent智能体搭建平台2】Dify——自部署
人工智能·笔记·学习
hans汉斯9 小时前
《软件工程与应用》期刊推荐&10月版面征稿中
图像处理·人工智能·深度学习·算法·音视频·软件工程
前端开发江鸟9 小时前
为了实现“小说自由”,我搭了一套 AI 小说工作流,结果却不如回家种田
人工智能
叠层归一研究院9 小时前
AGI 系统(八):符号范畴嵌入函子 — SymCat ↪ C_M107 严格化
c语言·开发语言·人工智能·算法·transformer·agi
2601_964840279 小时前
4G云门禁普惠化技术实践:基于边缘计算破解成本、隐私、部署三大行业瓶颈
大数据·人工智能·边缘计算