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

【机器学习】梯度下降算法

梯度下降算法

这篇博客更加详细,以下只是我个人的理解

梯度下降算法原理讲解——机器学习-CSDN博客

梯度下降算法是一种优化算法,通过梯度下降找到函数最小值时的自变量值。

其基本思想是沿着梯度方向的反方向更新参数,直到逼近函数的极值或者函数值足够小,或者是到达最大迭代次数。

  1. 目标函数
  2. 求目标函数的导数和梯度值
  3. 沿着梯度方向的反方向更新参数
  4. 重复直到满足条件

以线性回归为例,通过找均方差损失函数最小值,得到最优的权重。

目标函数就是损失函数,求其导数的到关于权重的线性方程,根据权重的具体的数值求得当前的梯度值,得到梯度值后沿着梯度的反方向更新权重参数,而后重复,直到损失函数的损失值满足预设的条件。

关于导数和梯度值。

导数
导数值的大小是沿着一个点的切线的斜率值,描述的函数在该点的瞬时变化率,值越大,函数变化越快。

导数的方向是函数值增加最快的方向。如开口向上的二次函数
图中的两个向量的方向就对应了抛物线中的点的导数的方向,
沿着方向,函数值增加最快(这里的向量只代表导数方向)

在这里插入图片描述
梯度
在多变量函数中,梯度是一个向量,向量有方向,梯度的方向就指出了函数在给定点的上升最快的方向
如在a(x, y) = x² / 4 + y² / 3函数中
梯度就是对各个变量求偏导,而后合并为一个向量,有大小有方向。
通过对图像做平行于xoz和yoz的平面,平面和函数相交的抛物线就是一个变量不变,另一变量变化,导致函数值变化的函数图像。(可以理解为降维到两个变量时函数的变化)通过分别对其变量求导数,可以得到两个向量,对向量进行运算,就可以得到函数的梯度,是一个有大小有方向的向量。
单个变量来看,沿着向量的方向,函数值变大最快,同时考虑多个变量,就是对多个变量的导数方向进行合并,做向量加法,得到的向量就是该点的梯度。
沿着该梯度,函数值增加最快,分解到各自的维度,就是多个变量一同增加减少,参数的值也就更新了。
沿着梯度方向的反方向,不断的迭代收敛,最终会逼近函数的最小值,最小值的变量,也就是所求的权重值。
a(x, y) = x² / 4 + y² / 3这里的x,y就相当于两个权重 w 1 , w 2 w_1,w_2 w1,w2

在这里插入图片描述
在这里插入图片描述

两个维度的分量(红色,绿色)和为黄色的梯度(这里只表示方向,并不指示大小,黄色方向并不一定是该点的梯度方向)

梯度下降算法的核心就是沿着梯度方向的反方向进行权重变量的更新,直到目标函数,损失函数的最小值。

更新梯度时,乘以一定的系数,这个系数就被称为学习率。
直接减去梯度的值,在接近函数的最低点时,可能会过大,直接越过最低点,导致震荡。通过引入学习率,可以缓解这样的问题。后序会有参数更新的优化器,参数的更新也不仅指原始的学习率和梯度值,会引入其他的参数跟新公式。


http://www.kler.cn/a/282879.html

相关文章:

  • LinuxCentos中安装apache网站服务详细教程
  • java基础入门学习09-迭代器
  • LeetCode面试经典150题C++实现,更新中
  • MyBatis——增删查改(XML 方式)
  • 重构开发之道,Blackbox.AI为技术注入智能新动力
  • 开源模型应用落地-qwen模型小试-Qwen2.5-7B-Instruct-tool usage入门-集成心知天气(二)
  • 源码编译并安装Squid的方法
  • BEVDet4D:多帧时序信息融合方法详解
  • 富格林:正规方式顺利盈利出金
  • 性能测试的基本概念
  • Pycharm安装报错:Cannot detect a launch configuration 解决办法
  • 吴恩达机器学习笔记 四十五 基于内容的过滤的tensorFlow实现
  • 怎么解决 hash 碰撞,用 C++ 实现 hashMap?
  • Nosql数据库redis集群配置详解
  • Nginx轮询负载均衡配置指南:实现高效请求分发
  • docker常用命令使用dockerfile构建镜像,推送到私有镜像仓库
  • 【AI绘画】Midjourney前置指令/describe、/shorten详解
  • 适配算能BM1684开发板,bmodel推理模型转换
  • 矩阵分块乘法的证明
  • C语言典型例题55
  • VScode打开json文件和md文件直观展示方法
  • 免费批量Excel文件合并、拆分工具
  • Linux系统结构
  • 加密软件的特殊功能有哪些
  • STM32 - 按键控制LED灯
  • 在centos中安装 --nmon性能系统监控工具