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

  • [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,因此说梯度下降算法是机器学习的精髓那就一点不为过了。

相关推荐
星核0penstarry几秒前
B站AI大赛3万份投稿背后的真相:门槛下移后,新的壁垒是什么?
人工智能·个人开发·ai编程·自动写代码
luj_176812 分钟前
一线一区一变破解人盯人防守密码
开发语言·网络·c++·经验分享·算法
新新学长搞科研14 分钟前
【EI检索丨院士主讲】2026年人工智能、大数据与社会计算国际学术会议(ABDSC 2026)
人工智能
广州山泉婚姻18 分钟前
C/C++动态内存:堆内存的申请、使用与释放
c++·人工智能
纪伊路上盛名在23 分钟前
Omni-Mol:用多模态大语言模型构建通用多任务分子模型
人工智能·语言模型·自然语言处理·蛋白质·通用模型·生物大分子·混合专家moe
硅谷秋水25 分钟前
超越模仿:通过离线策略Q-规划实现机器人策略的自我改进
人工智能·深度学习·机器学习·机器人
Fairy要carry28 分钟前
制造业实习02-控制下载速度的几个问题
人工智能
Csvn32 分钟前
第 21 章 排错与调试实战
人工智能·aigc·agent
Wang's Blog35 分钟前
Java框架快速入门: Spring Security+OAuth2之字段验证与自定义验证注解实战
java·算法·spring
科技林总37 分钟前
氛围编程场景下AI提示词使用核心原则
人工智能