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

网站设计软件培训域名证书如何查询

网站设计软件培训,域名证书如何查询,成都网站快照优化公司,wordpress菜单没有了文章目录正则化:约束模型的复杂度一、先搞懂:什么是正则化?先明确:为什么需要正则化?二、常见的正则化方法:按 “约束方式” 分类1. 参数正则化:直接限制 “模型参数的大小”2. 结构正则化&…

文章目录

  • 正则化:约束模型的复杂度
    • 一、先搞懂:什么是正则化?
      • 先明确:为什么需要正则化?
    • 二、常见的正则化方法:按 “约束方式” 分类
      • 1. 参数正则化:直接限制 “模型参数的大小”
      • 2. 结构正则化:通过 “调整模型结构” 降低复杂度
      • 3. 数据正则化:通过 “扩充 / 处理数据” 降低复杂度

正则化:约束模型的复杂度

一、先搞懂:什么是正则化?

正则化是机器学习 / 深度学习中防止模型过拟合的关键技术,核心逻辑是 “约束模型的复杂度”—— 避免模型在训练数据上 “死记硬背”(比如记住所有训练样本的噪声),而是学会 “举一反三”(对没见过的测试数据也能准确预测)。

先明确:为什么需要正则化?

问题根源是 “过拟合”

  • 过拟合表现:模型在训练数据上误差很小(预测超准),但在测试数据上误差很大(预测不准);
  • 过拟合原因:模型太复杂(比如参数太多、层数太深),把训练数据中的 “偶然噪声” 当成了 “通用规律”;
  • 正则化的作用:通过 “给模型加限制”(比如限制参数大小、随机 “关闭” 部分神经元),让模型 “不敢太复杂”,从而保留通用规律,丢弃噪声。

二、常见的正则化方法:按 “约束方式” 分类

不同正则化方法的核心都是 “降低模型复杂度”,但实现方式不同,以下是最常用的几类:

1. 参数正则化:直接限制 “模型参数的大小”

通过在损失函数中加入 “参数惩罚项”,让模型在优化时不仅要最小化预测误差,还要尽量让参数 “更小 / 更稀疏”,从而降低复杂度。

方法核心原理
L2 正则化(权重衰减)在损失函数中加入 “参数的平方和” 作为惩罚项: 总损失 = 预测损失 + λ×(所有参数w的平方和) (λ 是正则化强度,越大惩罚越重)
L1 正则化在损失函数中加入 “参数的绝对值和” 作为惩罚项: 总损失 = 预测损失 + λ×(所有参数w的绝对值和)
ElasticNet 正则化结合 L1 和 L2 的惩罚项: 总损失 = 预测损失 + λ1×(参数绝对值和) + λ2×(参数平方和)

具体L1和L2正则化代码:

loss = loss_fn(y, labels)
# 正则项
l_item = torch.tensor(0.)for p in model.parameters():# # 添加 L1 正则项# # 求参数的绝对值# abs = p.abs()# # torch.abs(p)# # 求参数和# l_item = l_item + abs.sum()# # torch.sum(abs)# 添加 L2 正则项_sum = (p ** 2).sum()l_item = l_item + _sum# L2 正则化时,最后需要开方l_item = torch.sqrt(l_item)l_item = _lambda * l_item# 叠加到损失上loss = loss + l_item

2. 结构正则化:通过 “调整模型结构” 降低复杂度

不修改损失函数,而是直接在模型结构或训练过程中加限制,减少模型的 “表达能力”(避免太复杂)。

方法核心原理
Dropout(随机失活)训练时,随机 “关闭” 一部分神经元(比如每次训练随机让 50% 的神经元不工作),测试时恢复所有神经元; PyTorch 中用nn.Dropout(p=0.5)实现(p 是失活概率)
早停(Early Stopping)训练过程中持续监控 “验证集损失”: - 若验证集损失连续多轮(如 5 轮)不再下降,就提前停止训练; - 避免模型在训练后期 “过度拟合训练数据”

Dropout(随机失活)代码:不难看出,其实就是随机将这一层神经元的输出置为了0。

# dropout 正则化
class Dropout(nn.Module):# p: 代表神经元被置 0 的概率def __init__(self, p=0.5):# 断言判断参数p必须在 0~1 之间,充当概率值assert 0 <= p <= 1, "dropout 概率 p 必须在 0~1 之间"super().__init__()self.p = p# x: 输入张量def forward(self, x):# 判断是否不是训练模式if not self.training:return xif self.p == 0:return x# 1. 创建一个随机概率矩阵 prob,并与指定的概率值 p 进行比较,得到掩码 maskprob = torch.rand_like(x)# 判断概率是否命中,命中的则代表神经元被置零mask = prob < self.p# 取反,让命中的元素用 0 代表mask = (~mask).float()# 2. 使用神经元乘以 mask:  y = x * masky = x * mask# 3. 将输出结果乘以 1 / (1 - p): y = y * 1 / (1 - p); 这是为了起到一个缩放的效果,当 p 越大,被抑制的神经元越多,那么没被抑制的神经元的信号会被放大,反之被缩小y = y * (1 / (1 - self.p))return y

3. 数据正则化:通过 “扩充 / 处理数据” 降低复杂度

从 “数据源头” 入手,让训练数据更丰富、更具代表性,从而减少模型对 “局部噪声” 的依赖。

方法核心原理
数据增强(Data Augmentation)对训练数据做 “随机但合理的变换”,生成更多 “新样本”(标签不变)
Batch Normalization(批量归一化)训练时,对每一批数据的 “某一层输出” 做标准化(均值 = 0,方差 = 1),减少 “内部协变量偏移”(数据分布随训练变化)
http://www.dtcms.com/a/462969.html

相关文章:

  • IP分片过程深度解析
  • redis数据的使用
  • 智能网站建设模板售后黔西南建设厅网站
  • 给个网站2022年手机上能用的二级学院网站建设整改方案
  • 俄语网站建设注意事项网站建设技术员
  • 第8章:扩展边界:技术之外的视野(4)
  • 雨灿网站建设海报设计说明200字
  • 最便宜的重庆网站建设姚家园做网站
  • 【学习篇】Redis 分布式锁
  • Win文件批量格式转换为UTF8 chardet
  • 常熟公司网站建设电话百度seo怎么把关键词优化上去
  • C++ 运算符全面详解
  • 架构师论文《论大数据平台的数据质量保障测试体系》
  • MySQL执行过程
  • 手机网站建站平台三五互联网站管理登录地址
  • 怎么做付款链接网站wordpress 登录
  • 洛阳网站建设启辰网络seo排名软件哪个好
  • 表情生成器在线制作gif凌源网站优化
  • 崇川网站建设网站开发实用技术第2版
  • 电子商务网站开发实例管理员网站
  • 网站开发公司流程wordpress邮箱用不了
  • 前端网站建设邢台做移动网站
  • 企业网站模板中文wordpress分页美化
  • 效果图网站密码破解wordpress 4.8.3
  • 【agent】AI 数字人构建3:sherpa-onnx 语音转文本TMSpeech 构建和使用
  • 制作网站需要多少时间手机模拟装修app
  • LWIP IP 报文输入流程详解
  • 照明回路配线长度-连续测量更方便
  • 自学网站开发哪个网站好域名备案和网站备案区别
  • 政务门户网站建设思想河南seo推广公司