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

【机器学习合集】泛化与正则化合集 ->(个人学习记录笔记)

文章目录

  • 泛化与正则化
    • 1. 泛化(generalization)
    • 2. 正则化方法
      • 2.1 显式正则化方法
        • 显式正则化方法对比
        • 提前终止模型的训练
        • 多个模型集成
        • Dropout技术
      • 2.2 参数正则化方法
      • 2.3 隐式正则化方法
        • 方法对比

泛化与正则化

1. 泛化(generalization)

在这里插入图片描述

泛化不好可能带来的问题

  • 模型性能不稳定
  • 容易受到攻击

在这里插入图片描述

2. 正则化方法

  • 提高泛化能力
    在这里插入图片描述

2.1 显式正则化方法

显式正则化方法对比

显式正则化是一种用于减少过拟合风险的技术,通过在损失函数中引入附加项来限制模型的复杂性。以下是一些常见的显式正则化方法:

  1. L1正则化(Lasso正则化)

    • 目标:最小化损失函数的同时,最小化模型参数的绝对值之和。
    • 效果:L1正则化鼓励模型具有稀疏性,某些参数变为零,从而实现特征选择。
  2. L2正则化(Ridge正则化)

    • 目标:最小化损失函数的同时,最小化模型参数的平方之和。
    • 效果:L2正则化有助于防止模型参数过大,减少过拟合风险。
  3. 弹性网络(Elastic Net正则化)

    • 目标:综合L1正则化和L2正则化,以平衡特征选择和模型参数缩减。
    • 效果:弹性网络结合了L1和L2的优点,适用于多重共线性问题。
  4. Dropout

    • 操作:在训练过程中,以一定概率随机将神经元设置为零。
    • 效果:Dropout有助于减少神经网络的过拟合,增加模型的鲁棒性。
  5. 权重衰减(Weight Decay)

    • 目标:在损失函数中添加一个惩罚项,降低参数的绝对值。
    • 效果:权重衰减有助于限制模型的复杂性,减少过拟合。
  6. 正交正则化

    • 目标:鼓励模型参数矩阵的列之间正交,以减少参数之间的相关性。
    • 效果:正交正则化有助于解决多重共线性问题,改善模型的稳定性。
  7. 知识蒸馏(Knowledge Distillation)

    • 目标:在训练时,通过学习来自教师模型的软标签,来约束学生模型。
    • 效果:知识蒸馏有助于改善模型的泛化性能和鲁棒性。
  8. 核正则化

    • 目标:对核矩阵施加正则化以降低复杂性。
    • 效果:核正则化有助于防止支持向量机等模型的过拟合。

这些显式正则化方法都旨在通过不同方式限制模型的复杂性,以减少过拟合的风险。选择适当的正则化方法通常取决于特定的问题和数据。

提前终止模型的训练

在这里插入图片描述

多个模型集成

在这里插入图片描述

Dropout技术

在这里插入图片描述

Dropout技术对模型的影响
在这里插入图片描述
在这里插入图片描述

2.2 参数正则化方法

损失函数的更改
在这里插入图片描述

2.3 隐式正则化方法

方法对比

隐式正则化是指在训练深度神经网络时,通过网络结构、数据增强等隐含方式降低模型的过拟合风险。以下是一些常见的隐式正则化方法:

  1. 数据增强

    • 操作:通过对训练数据进行随机变换,如旋转、翻转、剪裁等,增加数据样本的多样性。
    • 效果:数据增强有助于提高模型的泛化性能,降低对特定数据分布的依赖。
  2. 早停(Early Stopping)

    • 操作:在训练过程中监测验证集上的性能,当性能不再提升时停止训练。
    • 效果:早停有助于防止模型在训练数据上过分拟合,促使模型更早地停止学习。
  3. 梯度裁剪(Gradient Clipping)

    • 操作:限制梯度的大小,以防止梯度爆炸问题。
    • 效果:梯度裁剪有助于提高模型的稳定性,防止过度学习。
  4. 参数共享

    • 操作:在网络的某些层中共享参数,减少模型参数数量。
    • 效果:参数共享有助于减小模型的复杂性,降低过拟合风险。
  5. 权重初始化

    • 操作:合适的权重初始化方法有助于更好地训练深度网络。
    • 效果:权重初始化可以影响网络的收敛速度和性能。

这些隐式正则化方法通过对网络结构和训练过程的调整来减少过拟合风险,而无需明确引入正则化项。选择合适的隐式正则化方法通常取决于具体的任务和网络架构。

在这里插入图片描述

相关文章:

  • Kafka入门05——基础知识
  • 二叉树的概念
  • uni-app——如何阻止事件冒泡
  • 97. 交错字符串
  • ES Nested解释
  • eslint识别不了别名解决方法
  • H5游戏源码分享-考眼力游戏猜猜金币在哪
  • 大模型在百度智能问答、搜索中的应用
  • selenium工作原理和反爬分析
  • ZKP7.1 Polynomial Commitments Based on Error-correcting Codes (Background)
  • 【前端性能】性能优化手段-高频面试题
  • JavaScript怎么把整数转换为字符串
  • 软考下午第一题 案列分析
  • C# Winform编程(10)Chart图表控件
  • 信息系统项目管理师教程 第四版【第5章-信息系统工程-思维导图】
  • 《用数据讲故事》作者Cole N. Knaflic:消除一切无效的图表
  • 【笔记】你不知道的JS读书笔记——Promise
  • Elasticsearch 参考指南(升级前重新索引)
  • js递归,无限分级树形折叠菜单
  • MySQL主从复制读写分离及奇怪的问题
  • PHP 7 修改了什么呢 -- 2
  • React+TypeScript入门
  • webpack入门学习手记(二)
  • Web设计流程优化:网页效果图设计新思路
  • 百度贴吧爬虫node+vue baidu_tieba_crawler
  • 爬虫模拟登陆 SegmentFault
  • 区块链分支循环
  • 如何编写一个可升级的智能合约
  • 入门级的git使用指北
  • 入手阿里云新服务器的部署NODE
  • 阿里云ACE认证学习知识点梳理
  • 移动端高清、多屏适配方案
  • ###51单片机学习(2)-----如何通过C语言运用延时函数设计LED流水灯
  • #if和#ifdef区别
  • #我与虚拟机的故事#连载20:周志明虚拟机第 3 版:到底值不值得买?
  • (delphi11最新学习资料) Object Pascal 学习笔记---第2章第五节(日期和时间)
  • (delphi11最新学习资料) Object Pascal 学习笔记---第7章第3节(封装和窗体)
  • (M)unity2D敌人的创建、人物属性设置,遇敌掉血
  • (vue)el-checkbox 实现展示区分 label 和 value(展示值与选中获取值需不同)
  • (图)IntelliTrace Tools 跟踪云端程序
  • *上位机的定义
  • .[hudsonL@cock.li].mkp勒索加密数据库完美恢复---惜分飞
  • .NET Framework杂记
  • .NET面试题解析(11)-SQL语言基础及数据库基本原理
  • .NET平台开源项目速览(15)文档数据库RavenDB-介绍与初体验
  • .NET学习教程二——.net基础定义+VS常用设置
  • .Net语言中的StringBuilder:入门到精通
  • .php结尾的域名,【php】php正则截取url中域名后的内容
  • [AndroidStudio]_[初级]_[修改虚拟设备镜像文件的存放位置]
  • [bbk5179]第66集 第7章 - 数据库的维护 03
  • [C++]拼图游戏
  • [hdu 1711] Number Sequence [kmp]
  • [iOS开发]iOS中TabBar中间按钮凸起的实现
  • [javaSE] GUI(事件监听机制)
  • [Java安全入门]三.CC1链