忘掉Xavier初始化吧!最强初始化方法ZerO来了

news2024/11/25 11:53:22

2306238b04bb7bc113b013dd209419e4.png

文 | 小戏

谈及最典型的深度学习模型的训练,脑海里浮现的格式化的套路是什么?给定一个问题,给定一个数据集,弯弯绕绕确定好选择的神经网络的架构,然后上手调参,接下来的工作彷佛像是固定的重复工作,随机初始化参数,迭代训练,评估结果,直到一个模型新鲜出炉

其实认真反思一下这套流水线的作业方法,其中的随机性主要集中在随机初始化参数上,如果再问一个为什么,为什么我们要随机初始化参数呢?答案可能是因为梯度下降法总是需要给这些权重参数一个值,如果我们延用逻辑回归中令初始权重都为 0 的做法,在梯度下降的过程里将无法对权重带来任何更新。那么一个简单的方式就是随机,但是随机是一个相对模糊的概念,但是显然,无论是理论上还是经验上都可以观察到,随机初始化权重的好坏可以极大的影响神经网络模型的收敛,同时,过大的参数将会导致梯度爆炸,而过小的参数将会导致梯度消失,方差的不合理也会导致神经网络模型难以稳定,因此,一个合理的规范的参数对模型的训练而言变得尤为重要,从而使得各种 Norm 方法在深度学习中扮演着越来越重要的角色。

b1ded0f609fc56ce77a516c50b2667e3.png

基于这些经验式的法则,便用于了种种参数随机初始化的方法,诸如 Xavier 初始化,He 初始化等等,这些参数初始化的方式的优势几乎都集中于去稳定一个良好的方差,尽管在很大程度上解决了参数“稳定性”的问题,但是“随机性”的问题仍然存在,随机数种子也不可避免的成为了一种另类的“超参数”。

而今天的这篇文章,则切换了思路,如果可以用一种完全确定的参数初始化方法,去满足这些对于初始权重在信号传播与梯度下降里的要求,那么是不是可以在一举解决参数随机初始化的问题,为模型带来随机初始化参数所不具备的更好的性能呢?这篇 TMLR 的论文提出了一种名为 ZerO 的初始化方法,仅仅使用 0 和 1 做初始化,在抛弃了 Batch Norm 层的情况下仍然可以训练 500 层级别的模型,并且应用于 ResNet 在多个数据集上刷新了 SOTA ,并证明了这种确定性的初始化方法的诸多好处。

论文题目:
ZerO Initialization: Initializing Neural Networks with only Zeros and Ones

论文链接:
https://openreview.net/pdf?id=1AxQpKmiTc

ad8637a253d04f1fd8b4469d6e74b6c5.png1. 从恒等初始化开始dbfb79f5c55b93c3210fbd3afad64021.png

困扰随机初始化方法的很关键的一点在于如何使得神经网络各层参数之间的方差不发生变化,那么一种简单的思路便是让各层之间的权重完全相等,并且使得上一层的输入“完整”的传入下一层,这样方差便不再成为一个需要考虑的问题。那么很自然的,便是将神经网络的权重层初始化为一个单位矩阵,这种初始化方法被称为恒等初始化(Identity Initialization)。在理论上恒等初始化具有相当好的性质,这种性质被称为动力等距(Dynamical Isometry),最早由 Saxe 等人在2014年提出,它描述了当输入输出的雅可比矩阵的奇异值分布全部在 1 附近时,即 (这里 表示输出向量, 表示输入向量)时,神经网络具有稳定的信号传播以及梯度下降的行为,可以期待具有良好的训练表现。显然,单位矩阵   天然的满足动力等距的条件,但是恒等初始化优美的理论推导却都建立在各层的维度是相等的假设之上,但显然在实际中,这种假设有些过强使得它没法真正用于实际工作之中。

从恒等初始化的思想出发,一种显然的改进方式是部分单位矩阵(Partial Identity Matrix),它的定义十分自然,对于行列中“超出”的部分补零即可:

ad5d4332a8ed9218ac6aa1694525009b.png

然而,当使用部分单位矩阵在训练诸如 ResNet 等经典结构中时,往往将会出现一种所谓“训练衰减(Training Degeneracy)”的现象,这种现象可以做如下描述:

假设 是一个 层的神经网络,对于 有 ,而对于 ,有 ,对于 有 。这里的 是神经网络的参数矩阵, 具有相同的隐藏层维度 ,输入数据维度为 ,输出数据的维度为 ,此处假设 ,定义余项 ,令 为第 层的激活函数,当初始化 , 时,对于任意 ,将有:

这即表明,无论隐藏层维度有多高,神经网络   的维度仅仅依赖于输入数据的维度 ,从而极大的限制了神经网络的表达能力

5339039faf9b5d471fa7c5fb7f2b9350.png

如上图所示,使用部分单位矩阵初始,在 MINST  上使用一个 3 层的神经网络进行训练,红色虚线表示 的维度为 784 ,可以看出,无论 的维度有多大, 的秩在训练过程在始终低于 的维度

32249fdf4670f99f8fa72d0187d5f568.png2. 哈达玛变换与 ZerOe314b895619b27102475b5db994602b8.png

为了避免直接使用部分单位矩阵作为初始权重参数进行训练而出现的训练衰减问题,论文作者提出了使用哈达玛变换(Hadamard Transform)来初始化权重参数,熟悉图像的小伙伴也许对哈达玛矩阵并不陌生,哈达玛变换常用作图像与视频编码,哈达玛矩阵是均由+1与-1的元素构成,且满足 。哈达玛矩阵可以通过递归的构造得到,设 ,则有:

c22c221d9d89f247d3f03b069f47475b.png

哈达玛变换即使用哈达玛矩阵进行的线性变换,直观上讲,在二维平面中,哈达玛变换可以将标准坐标轴旋转45度,论文作者证明了针对部分单位矩阵应用哈达姆变换,即 ,可以有效的规避训练衰减对神经网络训练带来的伤害,即,当初始化权重为 , 时,对于任意 ,将有:

应用哈达玛变换的权重神奇的打破了训练衰减 ,区别于随机初始化权重,随机初始化权重生效由于构造的一个随机权重矩阵可以被认作按列线性无关的,从而可以认为:

而哈达玛变换从另一个方面规避了训练衰减的问题,本质上来讲,部分单位矩阵的训练衰减主要是源自于“补零”的操作,使得这些位置的输入在激活函数阶段无法生效,从而使得维度被 限制,而哈达玛变换通过将基向量“旋转”,打破了在传递过程中零元素的对称性,从而解决了训练衰减的问题。而这种“旋转”方式的选择显然不止一种,但是作者认为哈达玛变换是最自然的一种选择,以上文中的 MNIST 上训练的三层网络为例,下图展现了哈达玛变换打破训练衰减的直观图例:

8a467fd403afd7225675f2ad372581a9.png

通过哈达玛变换解决训练衰减的问题后,结合恒等初始化,作者构建了 ZerO 初始化方法,具体算法步骤如下图所示:

a4ae2aed0543ce9477034cfe32b47476.png

1b7b8999cb4a3d7a5e70c9e27e48ab91.png3. 数值实验f0107d5549bce5154d0609f8f7e71f4c.png

这篇论文通过将 ZerO 初始化分别用于 ResNet-18 与 ResNet-50 在 CIFAR-10 与 ImageNet 数据集上进行训练,实验结果如下图所示:

f59e8cf2ddfc5fa98124bd3e6ab5c20a.png

通过对比 Kaiming Init 与 Xavier Init,可以看到在测试误差上 Zero Init 在两个数据集上均取得了更好的效果

同时,通过将 ZerO 方法与其他权重初始化方法进行对比,在 ResNet-18 与 ResNet-50 网络上,ZerO 方法均取得了更好的表现:

4e2923ca0e18cdfd3800688e9c6e54fb.png

并且,对比其他权重初始化方法,ZerO 方法还可以训练更深的网络,在没有使用 batch normalization 的情况下,在 CIFAR-10 数据集上成功训练出了 500 层深的 ResNet 网络

53390c9eea9d83cd5eac97dbc18555b9.png

最后,作者还将 ZerO 方法成功用于了 Transformer 之中,通过使用 ZerO 初始化多头注意力与前馈层权重,并在多头注意力中将 固定为单位矩阵, 与 固定为零。在 WikiText-2 数据集上,对比标准的权重初始化方法,ZerO 不仅可以训练出 20 层的 Transformer ,并且在大部分情况下表现也优于标准的权重初始化方法。

01d5b8b26612381bc0f4573d2f35fcef.png

综合来讲,ZerO 在诸如超参数设置、模型深度等方面均具有其余模型所不具备的优良特性,并且,由于其确定性的权重初始化方法,也使得使用 ZerO 方法训练得到的结果在重复训练的过程中变换程度更低,因此也使得使用 ZerO 方式训练出的模型更具可复现性

07ba73072f20cafce6fb26d2db2d14e5.png4. GLRLfeb97277d7275c9cd4d163a70c0a7b8f.png

在 ZerO 的性能之外,论文作者在 ZerO 的训练过程中发现了一个更加有趣的现象,被称为低秩的学习轨迹(Low-Rank Learning Trajectory),这点在前面的图表中就已经可以露出端倪:

33661f07107f86bc3bb3461a63c020ee.png

可以看到,使用哈达玛变换作为初始权重的训练过程与使用随机初始化权重的训练过程有很大区别,相较于随机初始化权重一开始就训练一个较为“复杂”(权重秩很大)的网络,ZerO 一开始似乎在训练一个更为“简单”的网络,并在不断的学习过程中逐渐使得网络变得“复杂”

为了展示这种现象,作者通过定义:

来衡量稳定时的权重矩阵的秩,从而侧面反映网络的复杂度,此处的 表示矩阵的奇异值,通过计算 ZerO 与其他随机初始化方法的稳定秩,可以得到如下图的结果:

b0a10e7348bd1fc345f8d8529ad77138.png

上层图表示 ResNet-18 在 CIFAR-10 的训练结果,下层图表示 ResNet-50 在 ImageNet 的训练结果,从左到右分别提取了 ResNet 第二、三、四组残差块的第一层卷积,可以看到,ZerO 初始化具有明显的低秩学习的特征

论文作者指出,这是第一次在实际算例中观察到这种贪心的低秩学习(greedy low-rank learning,GLRL)现象,GLRL 是一种梯度下降的理论特征,它展现了当初始化权重为无穷时,梯度下降隐含地偏好于简单的解决方案,即在梯度下降过程中,偏好以权重矩阵的秩递增的顺序在解空间中搜索,在低秩空间无法找到最小值后,才转去高秩空间进行搜索。

GLRL 现象可以帮助解释基于梯度下降法的神经网络卓越的泛化能力以及经常收敛到低秩的全局或局部最优解之中。然而在理论推导中假设初始化权重为无穷大,这在实际中无法应用与观察,但是,ZerO 成功证明了 GLRL 现象不仅仅存在于初始权重无穷的假设之中,同时也在恒等初始化之中有类似的效果。

3ac6ba71fd5a21ede3de8e980373e2c5.png4. 结论与思考f124b2b335569e65bb29a8e45a244494.png

针对深度神经网络的理论研究如火如荼,这篇论文事实上从某种程度上讲是在这些神经网络理论的指导下的探索之作,在恒等初始化动力等距的优良性质下利用哈达玛变换将其进行扩展,在得到了一个表现优异的初始化方法的基础上,还验证了 GLRL 现象在现实中的存在。

尽管就目前而言,神经网络的理论研究还不如物理学一样有一座“坚硬的大厦”,但是从这篇论文可以看出它已然可以在高点为我们的工作提出一点建议与指导,其实与其麻木的将深度学习模型的训练作为流水线上的拧螺丝安螺帽,不如从这种固定的“套路”中跳出来看看这整个工厂各个机器实际的运营运转的方式方法,这或许需要亿点点数学思维,但这又何尝不是学习神经网络这样一个未知黑盒的乐趣所在呢?

2f25d775b69f766a04f76cba65412682.png卖萌屋作者:小戏

边学语言学边学NLP~

作品推荐

  1. 千呼万唤始出来——GPT-3终于开源!

  2. NLP哪个细分方向最具社会价值?

  3. 吴恩达发起新型竞赛范式!模型固定,只调数据?!

  4. 仅仅因为方法 Too Simple 就被拒稿,合理吗?

  5. 算法工程师的三观测试

27b0a83f3ebad0ea8433f0d99a41b0ef.jpeg后台回复关键词【入群

加入卖萌屋NLP、CV、搜推广与求职讨论群

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

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

相关文章

AD20和立创EDA设计(3)微调原理图和原理图检查

(1)本文主要介绍如何将从立创EDA导出的原理图在AD20进行调整。 (2)需提前观看:AD20和立创EDA设计(2)提取立创EDA的原理图库和PCB库; (3)邀请加入嵌入式社区&a…

英语学习词根词缀总结

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站 点击跳转浏览。 目录 一.联想法 二.词根词缀法 索引 高频词根A-B系列 1.ab/abs- 表示远离,或否定 2.ac-/acr- 表示尖,酸&#x…

CSS基础总结(二)

文章目录 一、CSS复合选择器 1.后代选择器 2.子选择器 3.并集选择器 4.伪类选择器 复合选择器总结 二、CSS元素显示模式 1.概述 2.块元素 3.行内元素 4.行内块元素 5.元素显示模式的转换 元素显示模式总结 三、CSS背景 1.概述 2.背景图片 3.背景平铺 4.背景图片位…

[Android移动安全渗透基础教程] 易受攻击的移动应用程序

也许每个人出生的时候都以为这世界都是为他一个人而存在的,当他发现自己错的时候,他便开始长大 少走了弯路,也就错过了风景,无论如何,感谢经历 0x01 如何设置 GoatDroid (FourGoats) 1.1 简介(概述&#…

【014】基于Vue.js的移动端购物商城网站(含源码、课设报告)

文章目录一、项目介绍二、代码及报告获取一、项目介绍 基于Vue.js的移动端购物商城网站(含源码、课设报告),代码获取放在文末了,码字不易,感谢点赞~ 一、系统概述 本部分主要是对项目进行简要描述,包括开发背景、目的、内容及意…

用C++如何进行判断

📒博客主页: ​​开心档博客主页​​ 🎉欢迎关注🔎点赞👍收藏⭐留言📝 📌本文由开心档原创! 📆51CTO首发时间:🌴2022年12月12日🌴 ✉…

5个可保存的在线代码片段平台推荐-变成自己的代码词典库

文章目录1、谷歌等现代浏览器自带的代码片段2、github、gitee、gitcode等在线托管平台的gist列表3、各大在线IDE平台4、掘金代码片段5、在线笔记1、谷歌等现代浏览器自带的代码片段 路径:浏览器开发者工具->源代码->代码段 可以新建很多代码段,在…

深度Linux 居家办公 内网穿透 ssh反向映射 访问公司办公内网 局域网的一个简单方案 + vnc图形界面

1. 公网服务器 自行参考以下项目: x86_64: Docker arm64: Docker 2. 处于内网的办公机器 2.1 vpn客户端 BIOS配置定时开机(一般在电源选项或者唤醒设置里) 安装vpn客户端,配置好证书 配置开机自动,参考配置 /usr/…

[附源码]Nodejs计算机毕业设计基于的扶贫产品展销平台Express(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程。欢迎交流 项目运行 环境配置: Node.js Vscode Mysql5.7 HBuilderXNavicat11VueExpress。 项目技术: Express框架 Node.js Vue 等等组成,B/S模式 Vscode管理前后端分…

架构设计(三):引入缓存

架构设计(三):引入缓存 作者:Grey 原文地址: 博客园:架构设计(三):引入缓存 CSDN:架构设计(三):引入缓存 缓存是一个…

红黑树详解及代码实现(C++)

红黑树定义 红黑树是一种二叉搜索树,但在每个节点上增加一个存储位标识节点的颜色,RED或BLACK。通过对任何一条从根到叶子的路径上各个结点着色方式的限制,红黑树确保没有一条路径会比其他路径长出两倍,因而接近平衡。&#xff0…

共同转债,新化转债上市价格预测

共同转债基本信息转债名称:共同转债,评级:A,发行规模:3.8亿元。正股名称:共同药业,今日收盘价:32.66,转股价格:27.14。当前转股价值 转债面值 / 转股价格 * …

TPU编程竞赛系列|基于TPU-MLIR实现UNet模型部署,比“快”更快!

由算能举办的TPU编程竞赛-AI应用挑战赛正式开赛啦!本次大赛会为选手们提供一个预训练的分割模型UNet及数据集,无需训练模型,选手使用算能的MLIR开源编译器进行编译、量化及调优,兼顾精度与推理速度,最终实现UNet模型在…

社媒营销14问

👇点击一键关注主笔:邹小困、邝晴岚主持人:增长黑盒分析师刘千出品:增长黑盒研究组前言移动互联网和智能终端的发展,共同催生了很多社交媒体,并吸引了大批量的用户。社交媒体已经成为日常生活的一部分&…

RTOS概念及线程的引入

目录 RTOS的概念 用人来类比单片机程序和RTOS 程序简单示例 提出问题 RTOS的概念 用人来类比单片机程序和RTOS 妈妈要一边给小孩喂饭,一边加班跟同事微信交流,怎么办? 对于单线条的人,不能分心、不能同时做事,她只…

深入解读云场景下的网络抖动 | 龙蜥技术

文/eBPF 技术探索 SIG 一、网络抖动背景 延时高,网络卡,卡住了美好! 应用抖,业务惊,惊扰了谁的心? 当你在观看世界杯梅西主罚点球突然视频中断了几秒钟 当你在游戏中奋力厮杀突然手机在转圈圈无法响应…

毕业设计-基于大数据的新闻推荐系统-python

目录 前言 课题背景和意义 实现技术思路 实现效果图样例 前言 📅大四是整个大学期间最忙碌的时光,一边要忙着备考或实习为毕业后面临的就业升学做准备,一边要为毕业设计耗费大量精力。近几年各个学校要求的毕设项目越来越难,有不少课题是研究生级别难度的,对本科…

Qt第四十三章:弹出框QDialog

弹出框类型 ①模态框(阻塞窗口):QDialog().exec() ②窗口模态框(阻塞当前窗口):QDialog().open() ③非模态框(非阻塞):QDialog().show() 弹出框事件 ①触发accept()信号返回1 ②触发reject()信号返回0 ③触发done(int)信号返回int ④擦除弹…

MySql 事务的ACID与实现原理

数据库的事务是并发控制的基本单位,是指逻辑上的一组操作,要么全部执行,要么全部不执行。 一、事务的ACID: (1)原子性:事务是一个不可分割的工作单元,事务里的操作要么都成功&…

华秋干货分享|PCB电气安全间距设计规则

PCB工程师在设计电子产品的过程中,不能只考虑设计出来的精度以及完美要求,还有很大一个制约条件就是生产工艺的能力问题,因此DFM可制造性分析非常重要。避免设计出来的产品无法生产浪费时间及成本的问题发生。 那么走线层的可制造性都有那些…