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

正则化和优化策略

L1 正则化和 L2 正则化是两种常见的正则化方法,用于防止模型过拟合。它们通过对模型权重的惩罚项来控制模型的复杂度。

1. L1 正则化(Lasso)

L1 正则化通过在损失函数中加入权重向量的 绝对值之和 来实现正则化,其公式为:

L 1 = L ( w ) + λ ∑ i = 1 n ∣ w i ∣ \mathcal{L}_1 = \mathcal{L}(w) + \lambda \sum_{i=1}^{n} |w_i| L1=L(w)+λi=1nwi

  • L ( w ) \mathcal{L}(w) L(w):原始损失函数。
  • w i w_i wi:模型的每个权重。
  • λ > 0 \lambda > 0 λ>0:正则化系数,控制正则化的强度。
  • ∑ i = 1 n ∣ w i ∣ \sum_{i=1}^{n} |w_i| i=1nwi:权重的绝对值之和。

L1 正则化的特点

  • L1 正则化倾向于使某些权重变为零,这有助于产生稀疏模型(即很多权重为零)。

2. L2 正则化(Ridge)

L2 正则化通过在损失函数中加入权重向量的 平方和 来实现正则化,其公式为:

L 2 = L ( w ) + λ 2 ∑ i = 1 n w i 2 \mathcal{L}_2 = \mathcal{L}(w) + \frac{\lambda}{2} \sum_{i=1}^{n} w_i^2 L2=L(w)+2λi=1nwi2

  • L ( w ) \mathcal{L}(w) L(w):原始损失函数。
  • w i w_i wi:模型的每个权重。
  • λ > 0 \lambda > 0 λ>0:正则化系数,控制正则化的强度。
  • ∑ i = 1 n w i 2 \sum_{i=1}^{n} w_i^2 i=1nwi2:权重的平方和。

L2 正则化的特点

  • L2 正则化倾向于使权重变小,但不会使权重变为零,从而使得所有特征都能对模型产生影响,避免了过大的权重值。

总结:

  • L1 正则化:通过惩罚 权重的绝对值 来促进稀疏性,使得某些权重变为零。
  • L2 正则化:通过惩罚 权重的平方和 来抑制过大的权重值,保持权重的平滑。

这些正则化方法可以帮助模型避免过拟合,并提升模型的泛化能力。

损失函数

1. 学习率( η \eta η

  • η \eta η 是学习率(learning rate),它控制着每次参数更新的幅度。
  • 学习率决定了每次更新时要“走多远”。如果学习率过大,可能会导致在最优解附近跳跃;如果学习率过小,模型收敛速度可能非常慢。

2. 梯度( ∇ w L ( w t ) \nabla_w \mathcal{L}(w_t) wL(wt)

  • ∇ w L ( w t ) \nabla_w \mathcal{L}(w_t) wL(wt)损失函数 L \mathcal{L} L 对权重 w t w_t wt 的梯度,它表示的是损失函数关于当前权重 w t w_t wt 的变化率。
  • 梯度 是一个向量,指示了在当前权重 w t w_t wt 下,损失函数值增加最快的方向。换句话说,梯度告诉我们如何调整权重 w t w_t wt 以减少损失函数的值。

3. 损失函数 L \mathcal{L} L

  • L \mathcal{L} L 通常是 损失函数,损失函数是一个数学函数,它衡量模型的预测值与真实值之间的差距

  • 例如,假设你有一个简单的线性回归模型:
    y pred = w ⋅ x + b y_{\text{pred}} = w \cdot x + b ypred=wx+b
    损失函数是均方误差(MSE):
    L ( w ) = 1 n ∑ i = 1 n ( y pred , i − y true , i ) 2 \mathcal{L}(w) = \frac{1}{n} \sum_{i=1}^{n} (y_{\text{pred}, i} - y_{\text{true}, i})^2 L(w)=n1i=1n(ypred,iytrue,i)2
    如果我们想要找到权重 w w w 的梯度,我们需要对 w w w 求偏导数:
    ∇ w L ( w ) = ∂ L ( w ) ∂ w \nabla_w \mathcal{L}(w) = \frac{\partial \mathcal{L}(w)}{\partial w} wL(w)=wL(w)
    这就得到了权重的梯度,它告诉我们如何调整权重 w w w,使得损失函数 L \mathcal{L} L 减小。

  • 梯度更新公式:
    w t + 1 = w t − η ∇ w L ( w t ) w_{t+1} = w_t - \eta \nabla_w \mathcal{L}(w_t) wt+1=wtηwL(wt)

各种梯度下降方法

随机梯度下降每次仅用一个样本计算梯度

批量梯度下降每次使用一个小批量样本(大小为 B)计算梯度

带动量的梯度下降 Momentum 通过引入动量项 加速收敛

Adagrad 根据参数的历史梯度调整每个参数的学习率

RMSProp 对 Adagrad 进行改进,通过指数加权平均控制梯度平方的累积

Adam 结合了动量和 RMSProp 的思想,同时估计梯度的一阶矩(均值)和二阶矩(方差)

随机梯度—批量梯度—动量梯度—adagrad—rmsprop—adam

http://www.xdnf.cn/news/764.html

相关文章:

  • 体育用品有哪些·棒球1号位
  • 脚本中**通配符用法解析
  • 【CentOs】构建云服务器部署环境
  • 基数平衡多伯努利滤波器(CB-MBM):基于约束优化的多目标数量与存在概率联合估计方法
  • 在Fortran和Python之间共享变量
  • 一个Nuxt3 SSR服务端渲染简洁好用的开源个人博客系统 交互设计体验简单 腾讯markdown编辑器 支持drawio画图
  • STM32开发过程中碰到的问题总结 - 4
  • [Windows] 星光桌面精灵 V0.5
  • OSI七层模型
  • 开源项目FastAPI-MCP:一键API转换MCP服务
  • 信创时代编程开发语言选择指南:国产替代背景下的技术路径与实践建议
  • MIT6.S081-lab4前置
  • ROS机器人开发实践->机器人建模与仿真
  • LeetCode每日一题4.20
  • SSRF学习
  • 【Agent】AI智能体评测基座AgentCLUE-General
  • 21.Chromium指纹浏览器开发教程之触摸屏点指纹定制
  • RHCSA Linux 系统文件内容显示2
  • 云梦数字化系统 介绍
  • 2025 第十六届蓝桥杯Java B组
  • 信号的概念
  • 《软件设计师》复习笔记(2.4)——输入输出、中断、总线、可靠性
  • TensorFlow介绍
  • 漫游git rebase + 浅谈git checkout和git branch -f的分支命令
  • Linux内核哈希表学习笔记
  • Vue3 + TypeScript + Pinia 搭建一套企业级的开发脚手架
  • 数字化时代下的工业物联网智能体开发平台策略
  • Vue3中provide和inject数据修改规则
  • 代码随想录训练营第36天 ||1049. 最后一块石头的重量 II 494. 目标和 474. 一和零
  • C++——智能指针