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

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

相关推荐

  1. 梯度下降机器学习关系

    2024-01-27 11:34:01       26 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-27 11:34:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-27 11:34:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-27 11:34:01       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-27 11:34:01       20 阅读

热门阅读

  1. CentOS:安装node及pm2

    2024-01-27 11:34:01       34 阅读
  2. Istio蓝绿升级

    2024-01-27 11:34:01       29 阅读
  3. 使用 badblocks 命令处理硬盘坏道

    2024-01-27 11:34:01       38 阅读
  4. STL_list

    STL_list

    2024-01-27 11:34:01      33 阅读
  5. PalWorld/幻兽帕鲁Ubuntu 22.04 LTS 一键部署脚本

    2024-01-27 11:34:01       33 阅读
  6. python语法学习

    2024-01-27 11:34:01       27 阅读
  7. emacs 源码分析(六)

    2024-01-27 11:34:01       40 阅读