从 Batch Norm 到 SGD 隐藏的内容

我们仍然不了解机器学习的哪些方面

       欢迎来到雲闪世界。令人惊讶的是,机器学习中的一些基本主题仍然不为研究人员所知,尽管它们很基础且常用,但却似乎很神秘。机器学习的有趣之处在于我们构建了可以工作的东西,然后弄清楚它们为什么可以工作!

在这里,我旨在探索一些机器学习概念中的未知领域,以表明虽然这些想法看起来很基础,但实际上它们是由一层又一层的抽象构成的。这有助于我们练习质疑我们知识的深度

在本文中,我们探讨了深度学习中的几个关键现象,这些现象挑战了我们对神经网络的传统理解。

  • 我们从批量标准化及其尚未完全理解的底层机制开始。
  • 我们检验了一个违反直觉的观察结果:过度参数化的模型往往具有更好的概括性,这与经典的机器学习理论相矛盾。
  • 我们探索了梯度下降的隐式正则化效应,这似乎自然地使神经网络偏向于更简单、更通用的解决方案。
  • 最后,我们谈谈彩票假说,该假说提出大型神经网络包含较小的子网络,这些子网络在单独训练时能够实现相当的性能。

1.批量标准化

批量标准化由Sergey IoffeChristian Szegedy于 2015 年提出[1],是一种更快、更稳定地训练神经网络的方法。之前人们知道,将输入数据转换为均值为零、方差为一,可以加快收敛速度​​。作者进一步利用了这个想法,并引入了批量标准化,将隐藏层的输入转换为均值为零、方差为一。

Resnet 中使用的残差块 (Residual Block) 的概述以及其中 Batch Norm 的使用

       自引入以来,批量规范在神经网络中变得很常见。其中一个例子就是它在著名的 ResNet 架构中的应用。因此,我们可以自信地说,我们确信它有多么有效。

       一项关于 Batch Norm 有效性的有趣研究 [2] 表明,训练完整的 ResNet-866 网络可以产生93 % 的准确率,而冻结所有参数并训练Batch Norm 层的参数则可以获得83 % 的准确率——仅相差 10%。

Batch Norm 有三个好处:

  • 通过规范化每一层的输入,它可以加速训练过程。
  • 它降低了对初始条件的敏感性,这意味着我们不需要太仔细地初始化权重。
  • 批量规范化也充当正则化器。它提高了模型的泛化能力,在某些情况下还减少了对其他正则化技术的需求。

我们不明白什么

虽然 Batch Normalization 的积极作用显而易见,但没有人真正理解其有效性背后的原因。最初,Batch Normalization 论文的作者将其作为解决内部协变量偏移问题的一种方法引入。

关于内部协变量偏移,需要注意的是,您会发现它有各种定义,乍一看似乎没有关联。以下是我想要的定义。

神经网络的各层在从终点(输出层)到起点(输入层)的反向传播过程中会进行更新。内部协变量偏移是指在训练过程中,随着前几层的参数更新,某一层的输入分布会发生变化的现象。

当我们改变早期层的参数时,我们也会改变后期层的输入分布,这些后期层的输入分布已经更新,可以更好地适应旧的分布。

内部协变量转移会减慢训练速度并使网络更难收敛,因为每一层都必须不断适应由先前层的更新引入的输入分布的变化。

原始 Batch Normalization 论文的作者认为其有效的原因在于缓解了内部协变量偏移的问题。然而,后来的一篇论文 [3] 认为 Batch Norm 的成功与内部协变量偏移无关,而在于平滑了优化景观

两种损失景观的比较:高度粗糙和尖锐的损失表面(左)与更平滑的损失表面(右)

       上图取自 [4],它实际上与批量归一化无关,但很好地可视化了平滑的损失景观。然而,批量归一化因平滑损失景观而有效的理论本身也存在挑战和问题。

批量规范注意事项

由于我们对批量标准化的工作原理的理解有限,因此在网络中使用它们时需要考虑以下几点:

  • 使用 Batch Norm 时,训练模式推理模式之间存在差异。使用错误的模式可能会导致难以识别的意外行为。[5]
  • 批量归一化很大程度上依赖于小批量的大小。因此,虽然它使得谨慎初始化权重的必要性降低,但选择正确的小批量大小变得更加关键。[5]
  • 关于是在激活函数之前还是之后使用 Batch Norm,仍存在争议。[6]
  • 虽然 Batch Norm 具有正则化效应,但它与其他正则化(如dropout权重衰减)的相互作用尚不清楚。

当谈到批量规范时,有许多问题需要回答,但研究仍在进行中,以揭示这些层如何影响神经网络。

2.过度参数化和泛化

人脸识别实验表明,网络中权重的最佳数量可以比数据点的数量大得多

       大型网络挑战了我们对神经网络工作方式的旧观念。

传统上,人们认为使用过度参数化的模型会导致过度拟合。因此,解决方案要么是限制网络规模,要么是添加正则化以防止对训练数据的过度拟合。

令人惊讶的是,在神经网络中,使用更大的网络可以改善泛化误差(|训练误差 - 测试误差|)。换句话说,更大的网络泛化效果更好。[7] 这与传统复杂性指标(如VC 维度,一种量化从示例中学习难度的指标)的承诺相矛盾。[8]

这一理论也挑战了关于深度神经网络 (DNN) 是通过记忆训练数据还是通过学习模式来实现其性能的争论。[9] 如果它们记忆数据,它们怎么可能推广到预测看不见的数据?如果它们不记忆数据而只学习底层模式,那么即使我们在标签中引入一定量的噪音,它们如何预测正确的标签?

分类器的过度拟合

理解深度学习需要重新思考泛化

关于这个主题的一篇有趣的论文是《理解深度学习需要重新思考泛化》 [10]。作者认为,传统方法无法解释为什么较大的网络具有良好的泛化能力,同时这些网络甚至可以拟合随机数据。

本文的一个值得注意的部分解释了显式正则化(例如权重衰减,dropout和数据增强)对泛化误差的作用:

显式正则化可能会提高泛化性能,但对于控制泛化误差来说,它本身既不是必要的也不是充分的。L2 正则化(权重衰减)有时甚至有助于优化,这说明它在深度学习中不太为人所知。[10]

即使使用了 dropout 和权重衰减,InceptionV3 仍然能够超出预期地很好地拟合随机训练集。这并不是要贬低正则化,而是要强调通过改变模型架构可以获得更大的收益。

正则化对泛化的影响。[10]

那么,泛化能力好的神经网络与泛化能力差的神经网络有何不同?这似乎是一个兔子洞。我们还需要重新思考以下几点:

  • 我们对模型有效容量的理解。
  • 我们对模型复杂性 和大小的测量。模型参数或 FLOP 仅仅是好的指标吗?显然不是。
  • 泛化的定义以及如何测量它。

随着网络规模(H)不断增加,训练和测试误差不断减少,并且不会发生过度拟合。[11]

当谈到大型网络和参数数量对泛化的影响时,你可以找到大量的论文和博客文章,有些甚至与其他相矛盾。

我们目前的理解表明,尽管较大的网络容易过拟合,但它们的泛化能力却很好。这可能是由于它们的深度,与浅层网络相比,它们可以学习更复杂的模式。这主要取决于领域——某些数据类型可能受益于较小的模型并遵循奥卡姆剃刀原理(不要错过这篇文章,请继续阅读👇)。

3.神经网络中的隐式正则化

机器学习的核心是梯度下降——我们在损失图中寻找局部最小值所采取的步骤。梯度下降 (GD) 和随机梯度下降 (SGD) 是任何刚开始学习机器学习的人最先掌握的算法之一。

由于该算法看起来很简单,人们可能会认为它没有太多深度。然而,在机器学习中,你永远找不到池子的按钮。

神经网络是否受益于梯度下降的隐式正则化,从而促使它们找到更简单更通用的解决方案?这可能是上一节中过度参数化的网络泛化的原因吗?

二维梯度下降。(来源:Wikimedia Commons)

有两个实验需要你密切关注:

实验 1

当 [11] 的作者使用 SGD 且未进行显式正则化在 CIFAR-10 和 MNIST 数据集上训练模型时,他们得出结论,随着网络规模的增加,测试和训练误差会不断减少。这与网络越大,测试误差越大(因为过拟合)的理念相悖。即使在向网络添加越来越多的参数后,泛化误差也不会增加。然后,他们通过添加随机标签噪声来强制网络过拟合。如下图所示,即使有 5% 的随机标签,测试误差也会进一步减少,并且没有明显的过拟合迹象。

网络的测试和训练误差随着规模 (H) 的增加和标签噪声的增加而增加。左侧是 MNIST,右侧是 CIFAR-10。[11]

实验 2

一篇重要的论文《寻找真正的归纳偏差》 [12] 通过使用线性可分数据集拟合预测器进行实验。作者展示了使用梯度下降且没有正则化的逻辑回归如何固有地将解决方案偏向最大边距分离器(也称为硬边距 SVM)。这是梯度下降的一个有趣且令人惊讶的行为。因为即使损失和优化不直接涉及任何鼓励边距最大化的术语(如您在支持向量机中发现的术语),梯度下降固有地将解决方案偏向最大边距分类器。

H3 表示硬边界 SVM 如何对数据集进行分类

梯度下降作为自然正则化器

实验表明,隐式正则化效应似乎在优化过程中更倾向于更简单、更稳定的解决方案。这意味着 GD 偏爱更简单的模型,通常会收敛到一种特殊类型的局部最小值,称为“平坦”最小值,与更尖锐的最小值相比,这种局部最小值往往具有较低的泛化误差。这有助于解释为什么深度学习模型通常在训练数据之外的现实任务上表现良好。这表明优化过程本身可以被视为一种隐式正则化形式,从而产生的模型不仅在训练数据上的误差最小,而且在预测未知数据方面也具有稳健性。完整的理论解释仍然是一个活跃的研究领域。

4.彩票假说

模型修剪可以将训练好的神经网络的参数减少 90%。如果操作正确,可以在不降低准确率的情况下实现这一点。但你只能在模型训练完成后修剪它。如果我们能在训练之前删除多余的参数,这将意味着使用更少的时间和资源。

彩票假说 [13] 认为,神经网络包含子网络,这些子网络在单独训练时可以达到与原始网络相当的测试准确率。这些子网络(中奖彩票)具有使其训练成功的初始权重(彩票)

作者通过迭代修剪方法找到这些子网络:

  • 训练网络:首先,他们训练原始未修剪的网络。
  • 修剪:训练后,修剪p%的权重。
  • 重置权重:剩余权重将设置为初始初始化时的原始值。
  • 重新训练:对修剪后的网络进行重新训练,看它是否能达到与之前网络相同或更高的性能。
  • 重复:重复此过程,直到原始网络达到所需的稀疏度,或者修剪后的网络不再能达到未修剪网络的性能。
彩票假说论文中使用的迭代剪枝

所提出的迭代训练方法计算成本很高,需要在多次实验中对网络进行 15 次或更多次的训练。

感谢关注雲闪世界。(亚马逊aws和谷歌GCP服务协助解决云计算及产业相关解决方案)

 订阅频道(https://t.me/awsgoogvps_Host)
 TG交流群(t.me/awsgoogvpsHost)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/3269664.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

Linux网络:传输层协议TCP(三)滑动窗口及流量控制

目录 一、关于滑动窗口在TCP中的应用 1.1什么是滑动窗口,为什么要有滑动窗口 1.2滑动窗口的实现 1.3滑动窗口针对丢包重传的处理机制 二、流量控制 一、关于滑动窗口在TCP中的应用 1.1什么是滑动窗口,为什么要有滑动窗口 在上一篇博文中博主阐述了…

叉车安全防撞系统有哪些?叉车防撞装置解决方案

叉车安全防撞系统作为现代工业物流中的安防防护装置,为企业的安全生产提供了强有力的保障。该系统集成了先进的传感器技术、高效的算法处理以及人性化的操作界面,确保叉车在作业过程中能够准确感知周围环境,及时作出反应,有效避免…

车载录像机:移动安全领域的科技新星

随着科技的飞速发展,人类社会的各个领域都在不断经历技术革新。其中,车载录像机作为安防行业与汽车技术结合的产物,日益受到人们的关注。它不仅体现了人类科技发展的成果,更在安防领域发挥了重要作用。本文将详细介绍车载录像机的…

信号、电源、网线、传感器防雷,SPD系列防雷器全覆盖!

信号、电源、网线、传感器防雷,SPD系列防雷器全覆盖! SPD 系列防雷器是一种安装于被保护设备一侧的产品,旨在保护电子设备免受雷击、电磁脉冲、过压过渡冲击等造成的设备损坏。该产品广泛应用于工业控制、安全监测、网络通讯、交通电压等行业…

Windows 实用小工具:窗口钉子/文件管理 2024/7/27

一: wintop 窗口置顶工具 二:WinDirStat 这是一个免费的、开源的磁盘使用分析工具,适用于Windows系统。它会扫描你的硬盘,列出所有文件和文件夹的大小,并以图形化的方式展示,便于理解。 可以用来检测硬盘文件夹占用从而,酌情处…

多模态聊天效果如何?尝试和AI大模型煲电话粥

01 能像真人一样聊天的AI “我第一次来直播的发布会,有点紧张。”当OpenAI前沿研究部门主管马克(Mark Chen)通过手机对ChatGPT说话时,ChatGPT回答,“要不你深呼吸一下?” “好的,我深呼吸。”…

蓝牙耳机百元之内怎么选?四款百元精品爆款蓝牙耳机盘点

在蓝牙耳机的海洋中,百元价位仿佛是一片神秘的绿洲,既诱人又充满未知,如何在众多选项中挑选出真正的精品呢?蓝牙耳机百元之内怎么选?这是许多消费者的共同疑问,带着这个疑问,作为蓝牙耳机发烧党…

【计算机网络】DNS命令练习与抓包分析实验

一:实验目的 1:掌握DNS缓存的清除方法,了解DNS缓存的作用和影响。 2:熟悉nslookup和dig等DNS查询工具的使用,理解DNS查询的基本原理和过程。 3:通过抓包和分析,深入了解DNS查询和响应消息的格…

SpringBoot+ Sharding Sphere 轻松实现数据库字段加解密

一、介绍 在实际的软件系统开发过程中,由于业务的需求,在代码层面实现数据的脱敏还是远远不够的,往往还需要在数据库层面针对某些关键性的敏感信息,例如:身份证号、银行卡号、手机号、工资等信息进行加密存储&#xf…

使用API Monitor探测C++程序在调用HtmlHelp接口打开.chm文件时传入了哪些参数

目录 1、API Monitor介绍 2、为何要使用API Monitor工具? 2、HtmlHelp函数在API列表函数中找不到,将所在模块作为外部Extern DLL模块添加到API Monitor中 3、开启对Beyond Compare工具软件的实时监测 4、在Beyond Compare软件中打开chm帮助文档&…

数据库密码实现加盐加密处理

在实际的开发中,我们的数据库密码一般都是明文的方式存储在数据库中,但是,这种操作非常不安全,容易被黑! 那么,此时我们就需要对其进行加密处理,市面上比较常见的就是MD5加密了,但是…

2024年起重信号司索工(建筑特殊工种)证模拟考试题库及起重信号司索工(建筑特殊工种)理论考试试题

题库来源:安全生产模拟考试一点通公众号小程序 2024年起重信号司索工(建筑特殊工种)证模拟考试题库及起重信号司索工(建筑特殊工种)理论考试试题是由安全生产模拟考试一点通提供,起重信号司索工(建筑特殊工种)证模拟考试题库是根据起重信号司索工(建筑特…

aarch64环境安装minio

1.去官网查看最新版本 MinIO | 用于AI的S3 & Kubernetes原生对象存储 2.使用命令安装,采取wget和dnf安装 wget https://dl.min.io/server/minio/release/linux-arm64/archive/minio-20240113075303.0.0-1.aarch64.rpm -O minio.rpm sudo dnf install minio.rpm 注意点…

SpringCloud Nacos的配置与使用

Spring Cloud Nacos的配置与使用 文章目录 Spring Cloud Nacos的配置与使用1. 简单介绍2. 环境搭建3. 服务注册/服务发现4. Nacos 负载均衡4.1 服务下线4.2 权重配置4.3 同集群优先访问 5. Nacos 健康检查5.1 两种健康检查机制5.2 服务实例类型 6.Nacos 环境隔离6.1 创建namesp…

GeneCompass:跨物种大模型用于破解基因调控机理

GeneCompass是第一个基于知识的跨物种基础模型,该模型预先训练了来自人类和小鼠的超过1.2亿个单细胞转录组。在预训练过程中,GeneCompass有效整合了四种生物先验知识,以自监督的方式增强了对基因调控机制的理解。对多个下游任务进行微调&…

E19.【C语言】练习:数组

有序序列合并 描述 输入两个升序排列的序列,将两个序列合并为一个有序序列并输出。 数据范围: 1≤n,m≤1000 , 序列中的值满足 0≤val≤30000 输入描述: 输入包含三行, 第一行包含两个正整数n, m,用空…

VSCode 解决 pylint 报错 No name QWidget in module PyQt5.QtWidgets

问题 启用了 VSCode 的 Pylint 插件, 即便 Python 环境中安装了 PyQt5, 也无法正确解析 PyQt5 的导入 PyQt5 底层代码是用 C/C 写的, pylint 默认不会深入解析 pylint doesn’t load any C extensions by default, because those can run arbitrary code. 解决 修改 Settings…

k8s学习--k8s集群部署kubesphere的详细过程

文章目录 kubesphere简介k8s群集部署kubespere环境准备工作一、配置nfs二、配置storageclass三、kubesphere开启服务(devops) kubesphere简介 下面是官方文档描述 KubeSphere 是在 Kubernetes 之上构建的面向云原生应用的分布式操作系统,完全开源,支持多…

免费的批量自动处理工具,让重复工作一键搞定

对于一些重复的工作,大部分情况下我们可以借助工具批量自动处理,无需手动一个一个去操作。小编今天就和大家分享几款可以一键帮我们搞定重复任务的免费工具。 1.TinyTask:解放双手的自动化神器 TinyTask是一款小巧但功能强大的自动化工具&a…

如何用AP525采集【车机播放的扫频信号】的频响曲线

一.测试目的 车机播放20~20khz的扫频信号,这个信号从功放的输出端(eg. CH1)接入到AP525的模拟输入端(eg. Analog input),通过APx500 软件分析采集回来的扫频信号的频响曲线 二.APx500输出输入配置 三.生成扫频信号 1…