一文搞懂机器学习中的优化方法!

推荐直接网站在线阅读:aicoting AI算法面试学习在线网站

在机器学习中,模型的训练本质上是一个优化问题:我们希望找到一组参数,使得模型在给定数据上的损失最小化(或目标函数最大化)。优化方法提供了一套系统的数学工具,用于高效、稳定地寻找最佳参数。

优化方法部分我们来看一下最经典的梯度下降,并且为大家简单的介绍一下凸优化和约束优化,前面说过这部分其实是研究生课程,不用担心,我写的是简单内容,大家应该都能看懂!

梯度下降及其变体

在机器学习中,梯度下降(Gradient Descent, GD)是优化模型参数最核心的方法。通过沿着损失函数的梯度反方向更新参数,梯度下降可以找到使损失最小的参数组合。

基本梯度下降(Batch Gradient Descent, BGD)

原理

BGD 每次使用整个训练集计算梯度,更新参数:

θt+1=θt−η∇θL(θt)

  • θt:当前参数
  • η:学习率
  • ∇θL(θt):损失函数对参数的梯度

优缺点

基本梯度下降方法梯度稳定,更新方向准确,收敛稳定,不容易跳出局部极小值(凸问题除外)。

但是大数据集计算成本高,不适合在线学习或实时训练。

应用场景

  • 小型数据集或需要精确优化的线性模型(如线性回归)

随机梯度下降(Stochastic Gradient Descent, SGD)

原理

SGD 每次只使用一个样本计算梯度:

  • :当前样本
  • :学习率

优缺点

随机梯度下降计算效率高,适合大规模数据,梯度噪声有助于跳出局部极小值。

但是梯度震荡,收敛不稳定,可能需要更多迭代次数。

应用场景

  • 在线学习、深度神经网络训练
  • 推荐系统或大规模数据流处理

Mini-batch 梯度下降

原理

  • 每次使用小批量样本(如 32 或 128 个)计算梯度
  • 参数更新公式:
  • m为批量大小

优缺点

Mini-batch 梯度下降兼顾了 SGD 的效率和 BGD 的稳定性,可利用 GPU 并行计算。

但是批量大小需要调优,批量过小可能震荡,过大降低效率。

应用场景

  • 深度学习训练中的默认选择
  • CNN、RNN 等大规模模型训练

动量法(Momentum)

原理

  • 引入"惯性",累积历史梯度,减少震荡,加快收敛:
  • 为动量系数(通常 0.9)

优缺点

动量法可以加快收敛速度,减少梯度方向震荡。

但是需要调节动量系数,可能对非凸损失函数过冲。

应用场景

  • 深度神经网络
  • CNN、RNN 等梯度震荡明显的网络

自适应学习率方法

1.AdaGrad 原理

  • 为每个参数使用不同的自适应学习率:
  • 为梯度平方累积
  • 优点:适合稀疏特征
  • 缺点:学习率随迭代不断衰减,可能过早停止

2.RMSProp 原理

  • 改进 AdaGrad,使用梯度平方的指数衰减平均:
  • 优点:解决 AdaGrad 学习率过快衰减问题

3.Adam(Adaptive Moment Estimation) 原理

  • 结合动量和自适应学习率
  • 优点:
  • 收敛快,适合大多数深度学习任务
  • 自动调节学习率
  • 缺点:
  • 对超参数敏感
  • 内存占用较高

应用场景

  • CNN、RNN、Transformer 等深度网络
  • 高维稀疏特征优化

学习率策略

1.固定学习率:简单但不灵活

2.学习率衰减:随训练轮数降低

3.循环学习率(Cyclic LR):周期性调整学习率,如从低到高再到低

4.自适应优化算法(Adam、RMSProp):自动调节学习率,无需手动调整

凸优化与约束优化

在机器学习中,优化问题无处不在。无论是训练线性回归、支持向量机,还是深度神经网络,核心目标都是通过优化方法找到最优参数。为了更高效地求解这些问题,凸优化(Convex Optimization)与约束优化(Constrained Optimization)提供了理论基础和方法支持。

凸优化(Convex Optimization)

定义

一个优化问题称为凸优化问题,如果其目标函数是凸函数,且约束条件是凸集合。形式化表示为:

  • f(θ)为凸函数,即满足:
  • 为凸集合 直观点理解就是凸函数形状像碗,任何两点连线都在函数曲面之上。凸优化问题只有一个全局最优点,没有局部极小值困扰。

添加图片注释,不超过 140 字(可选)

常见凸优化问题

  1. 线性回归:
  2. 支持向量机(SVM)凸优化:
  3. Lasso 回归(带 L1 正则):

凸优化求解方法包括梯度下降(Gradient Descent)、牛顿法(Newton's Method)、拟牛顿法(BFGS)、内点法(Interior Point Method),这些方法理论保证收敛到全局最优解,算法稳定高效。

约束优化(Constrained Optimization)

定义

约束优化问题是指优化目标受约束条件限制,形式化表示为:

  • :不等式约束
  • :等式约束 也就是优化的解必须同时满足"边界条件",比如权重非负、概率和为 1。

求解方法

  1. 拉格朗日乘子法(Lagrange Multiplier)
  • 构造拉格朗日函数:
  • 求解一阶条件(KKT 条件)得到最优解
  1. 投影梯度法(Projected Gradient Descent)
  • 每次梯度更新后,将参数投影到可行集合内:
  1. 罚函数法(Penalty Method)
  • 将约束转化为损失函数的一部分:

约束优化的应用场景包括支持向量机(保证分类间隔约束)、概率模型(保证概率和为 1)、资源分配问题(权重或预算限制)等等。

但是在许多机器学习问题中,凸优化和约束优化往往结合使用,SVM 是典型例子:凸目标函数 + 不等式约束,Lasso 回归也可看作带约束的凸优化问题(L1 范数约束)。

最新的文章都在公众号aicoting更新,别忘记关注哦!!!

相关推荐
铉铉这波能秀4 分钟前
LeetCode Hot100数据结构背景知识之元组(Tuple)Python2026新版
数据结构·python·算法·leetcode·元组·tuple
晚霞的不甘10 分钟前
Flutter for OpenHarmony 实现计算几何:Graham Scan 凸包算法的可视化演示
人工智能·算法·flutter·架构·开源·音视频
㓗冽24 分钟前
60题之内难题分析
开发语言·c++·算法
大江东去浪淘尽千古风流人物26 分钟前
【VLN】VLN仿真与训练三要素 Dataset,Simulators,Benchmarks(2)
深度学习·算法·机器人·概率论·slam
铉铉这波能秀1 小时前
LeetCode Hot100数据结构背景知识之字典(Dictionary)Python2026新版
数据结构·python·算法·leetcode·字典·dictionary
蜡笔小马1 小时前
10.Boost.Geometry R-tree 空间索引详解
开发语言·c++·算法·r-tree
唐梓航-求职中1 小时前
编程-技术-算法-leetcode-288. 单词的唯一缩写
算法·leetcode·c#
仟濹1 小时前
【算法打卡day3 | 2026-02-08 周日 | 算法: BFS】3_卡码网99_计数孤岛_BFS | 4_卡码网100_最大岛屿的面积DFS
算法·深度优先·宽度优先
Ll13045252981 小时前
Leetcode二叉树part4
算法·leetcode·职场和发展
颜酱1 小时前
二叉树遍历思维实战
javascript·后端·算法