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

Class2基础优化算法

梯度
梯度(Gradient)其实就是函数在某一点的“斜率”或“变化方向”。

一元函数(只有一个变量)里,梯度就是导数,告诉你函数值随着变量变化快不快,往上还是往下。

多元函数(多个变量)里,梯度是一个向量,告诉你函数在各个变量方向上,变化最快的方向和变化率。

想象你在一个山谷里(这个山谷是你的损失函数的图像),你想找到最低点(最小损失)。
在这里插入图片描述
梯度告诉你哪个方向是“上坡”,也就是说,沿着梯度的方向,函数值会增加。

所以,如果你想找最低点,你需要往梯度的反方向走,才能让损失变小。

损失函数

损失函数(Loss Function),也叫代价函数,是用来衡量模型预测结果和真实结果之间差距的一个函数。

损失函数告诉我们模型预测得有多“差”。损失越小,说明模型预测越准确。

假设你用线性回归预测房价:

真实房价是 𝑦

模型预测房价是 𝑦^

一个常用的损失函数是均方误差(MSE):
在这里插入图片描述
把所有预测值和真实值的差(误差)平方后求平均。

误差平方能保证正负误差都计入,且更大误差惩罚更重。

梯度下降

梯度下降(Gradient Descent)是一种迭代优化算法,用来找到函数的最小值,尤其常用在机器学习里优化模型参数。

梯度告诉我们函数上升最快的方向。

梯度下降就是往梯度的反方向走,也就是沿着函数值减少最快的方向移动。(你站在一个山坡上,想下山到谷底。梯度告诉你“坡度最大的上坡方向”,而你要往相反方向走,才能最快下坡。)

每一步,我们根据梯度更新参数,逐渐让损失函数变小。

在这里插入图片描述

在这里插入图片描述

梯度下降的因素
一.学习率(Learning Rate)
学习率是每一步沿梯度方向更新参数的“步长”大小。

学习率太大,可能导致“走过头”,错过最优点,甚至发散;学习率太小,收敛很慢,训练时间长。

二.批量大小(Batch Size)
一次计算梯度用的数据量大小,比如全量数据(批量梯度下降)还是一小部分数据(随机梯度下降)。

小批量的梯度更新有噪声,能跳出局部最优,但收敛更“抖”;大批量更稳定但计算开销大。

三.初始参数值(Initialization)

四.损失函数的形状(函数的曲率)

在这里插入图片描述
小批量随机梯度下降
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
批量大小
不能太小:

每次计算量太小。不适合并行来最大利用计算资源

不能太大:

内存消耗增加浪费计算,例如如果所有样本都是相同的就没有意义

总结

在这里插入图片描述

http://www.lryc.cn/news/576231.html

相关文章:

  • 悦己汉服体验馆小程序(协同过滤算法、WebSocket即时聊天)
  • 优化 ArcPy 脚本性能
  • 桌面小屏幕实战课程:DesktopScreen 13 HTTP SERVER
  • 电子电气架构 --- 涵盖“诊断与 ECU 平台”领域特有项目要求(上)
  • 鸿蒙 List 组件解析:从基础列表到高性能界面开发指南
  • 智能制造数字孪生集成交付生态链:智慧产线极速克隆,孪生重构生产周期
  • 什么是 A/B 测试?
  • swift 对象转Json
  • matplotlib 绘制热力图
  • 基于JavaWeb的校园失物招领系统设计与实现
  • 【图像处理入门】12. 综合项目与进阶:超分辨率、医学分割与工业检测
  • SQL学习笔记4
  • 华为云Flexus+DeepSeek征文|高可用部署 Dify 平台构建 Flux 绘画中台 Chatflow 的设计与实现
  • SYSCFG 时钟在 GD32F4 系列微控制器中的作用
  • 【策划所需编程知识】
  • 每日算法刷题Day39 6.26:leetcode前缀和2道题,用时1h20min
  • python基于Django+mysql实现的图书管理系统【完整源码+数据库】
  • Unity性能优化-渲染模块(1)-CPU侧(1)-优化方向
  • Spring Boot整合Redis指南
  • C++ 快速回顾(三)
  • PICkit3编程器MCLR引脚全解析
  • vue-27(实践练习:将现有组件重构为使用组合式 API)
  • <script setup> 语法糖
  • Netty入门案例:简单Echo服务器(同步)
  • 预训练语言模型
  • 关于USB模式的一些内容(附USB接口颜色释义图)
  • Veo 3 视频生成大模型完整操作教程(2025)
  • Ai大模型 - ocr图像识别形成结构化数据(pp-ocr+nlp结合) 以及训练微调实现方案(初稿)
  • 82、高级特性-配置加载优先级
  • debain切换 opensuse 我都安装了什么