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

四、神经网络——正则化方法

四、正则化方法

  • 在深度学习中,所有能够缓解网络过拟合的方法都叫做正则化方法(越复杂的模型越容易发生过拟合)

  • 在设计机器学习算法时希望在新样本上的泛化能力强。许多机器学习算法都采用相关的策略来减小测试误差,这些策略统称为正则化

  • 神经网络的强大的表示能力经常遇到过拟合,所以需要使用不同形式的正则化策略

  • 目前深度学习中使用较多的策略有范数惩罚DropOut, 特殊的网络层等。

1.范数惩罚(L1, L2)

(1)L1正则化

会直接把高次项前面的系数变为0

  • 定义:在损失函数中添加L1范数作为正则化项,公式为J(w)=MSE(w)+α∑i=1n∣wi∣J(w) = MSE(w)+\alpha \sum_{i = 1}^n|w_i|J(w)=MSE(w)+αi=1nwi

  • 惩罚系数

    • α\alphaα控制正则化强度,值越大惩罚力度越大
    • 属于需要人工调整的超参数
  • 权重影响

    • 通过绝对值函数的梯度特性(x>0导数为1,x<0导数为-1)迫使权重趋向0
    • 可能使不重要的特征权重精确等于0,实现特征筛选
  • 应用场景

    • 适用于需要特征选择的场景
    • 加入线性回归后形成Lasso回归模型
  • 优化过程

    • 初始化权重后,正则化项的负梯度方向会持续推动权重向0靠近
    • 当权重=0时梯度消失,优化停止
  • 使用L1正则化的线性回归模型就是Lasso回归

(2)L2正则化(优先选择)

  • 公式:J(w)=MSE(w)+α∑i=1nwi2J(w) = MSE(w)+\alpha \sum_{i = 1}^nw_i^2J(w)=MSE(w)+αi=1nwi2

    • α\alphaα叫做惩罚系数,该值越大则权重调整幅度就越大,即表示对特征权重惩罚力度就越大
  • L2正则化会使得权重趋向于0,一般不等于0

  • 使用L2正则化的线性回归模型是岭回归

2.DropOut正则化(随机失活)

  • 在训练时候用,在预测的时候一定不能将其中某些层失活掉(即在测试过程中,随机失活不起作用)
  • 在训练神经网络中模型参数较多,在数据量不足的情况下,很容易发生过拟合,DropOut(随机失活)是一种有效的正则化方法
  • 在训练过程中,DropOut的实现是让神经元以超参数p的概率停止工作或者激活被置为0, 未被置为0的进行缩放,缩放比例为11−p\frac{1}{1-p}1p1(实质上是增大比例)。训练过程可以认为是对完整的神经网络的一些子集进行训练,每次基于输入数据只更新子网络的参数
import torch
import torch.nn as nntorch.random.manual_seed(22)
input = torch.randn([1, 4])
layer = nn.Linear(in_features=4, out_features=5)
y = layer(input)
print(y)dropout = nn.Dropout(p = 0.75)
out = dropout(y)
print(out)

3.批量归一化(BN层)

  • 在计算机视觉(CV)中使用较多

先对数据标准化,再对数据重构(缩放+平移):f(x)=λ⋅x−E(x)Var(x)+ϵ+βf(x) = \lambda \cdot \frac{x - E(x)}{\sqrt{Var(x)}+\epsilon}+\betaf(x)=λVar(x)+ϵxE(x)+β

  • λ\lambdaλβ\betaβ是可学习的参数,它相当于对标准化后的值做了一个线性变换λ\lambdaλ为系数,β\betaβ为偏置
  • epsepseps通常指为1e−51e-51e5,避免分母为000
  • E(x)E(x)E(x)表示变量的均值
  • Var(x)Var(x)Var(x)表示变量的方差
http://www.xdnf.cn/news/15332.html

相关文章:

  • 喷涂机器人cad【1张】+三维图+设计说明书+降重
  • redis数据结构和数据类型
  • vector之动态二维数组的底层
  • 2025年亚太中文赛B题第一版本超详细解题思路
  • C++:非类型模板参数,模板特化以及模板的分离编译
  • Java大厂面试故事:谢飞机的互联网医疗系统技术面试(Spring Boot、MyBatis、Kafka、Spring Security、AI等)
  • FastAPI + SQLAlchemy (异步版)连接数据库时,对数据进行加密
  • 【字节跳动】数据挖掘面试题0016:解释AUC的定义,它解决了什么问题,优缺点是什么,并说出工业界如何计算AUC。
  • UE5多人MOBA+GAS 18、用对象池来设置小兵的队伍的生成,为小兵设置一个目标从己方出生点攻打对方出生点,优化小兵的血条UI
  • (补充)RS422
  • 【每日刷题】x 的平方根
  • 2D下的几何变换(C#实现,持续更新)
  • Elasticsearch混合搜索深度解析(下):执行机制与完整流程
  • 【AI News | 20250710】每日AI进展
  • 2025年DevSecOps工具全景图:安全左移时代的国产化突围
  • 深入探索Kafka Streams:企业级实时数据处理实践指南
  • 11. TCP 滑动窗口、拥塞控制是什么,有什么区别
  • 8-day06预训练模型
  • 揭示张量分析的强大力量:高级研究的基础-AI云计算拓展核心内容
  • Django老年健康问诊系统 计算机毕业设计源码32407
  • 从就绪到终止:操作系统进程状态转换指南
  • 将手工建模模型(fbx、obj)转换为3dtiles的免费工具!
  • 上半年净利预增66%-97%,高增长的赛力斯该咋看?
  • 聊一聊在 Spring Boot 项目中自定义 Validation 注解
  • 牛客小白月赛119
  • 进程状态 + 进程优先级切换调度-进程概念(5)
  • 【C++篇】二叉树进阶(上篇):二叉搜索树
  • Qt中QGraphicsView类应用解析:构建高效2D图形界面的核心技术
  • 数据结构-顺序表
  • 【C语言网络编程】HTTP 客户端请求(域名解析过程)