神经网络权重矩阵初始化:策略与影响

文章目录

    • 一、权重矩阵初始化:神经网络训练的关键起点
      • (一)初始化的重要性及随机特性
      • (二)不同初始化方法的探索历程
        • 零初始化:简单却致命的选择(仅适用于单层网络)
        • 标准初始化:适用于简单网络的初步尝试
        • Xavier 初始化:解决方差问题的有效探索
        • MSRA 初始化:ReLU 激活函数的理想搭档
      • 小结:初始化方法的综合应用指南
    • 二、参考

一、权重矩阵初始化:神经网络训练的关键起点

(一)初始化的重要性及随机特性

权重矩阵初始化在神经网络训练中犹如基石般重要,是开启高效训练之旅的第一步。正确的初始化方法能够如同找到一条通往成功的捷径,使训练事半功倍。然而,这一过程充满了不确定性,就像在未知的道路中选择下山路径,每次重新初始化就如同重新选择道路,即使使用相同的初始化算法,也会给训练结果带来显著差异。例如,在实际训练中,第一次初始化可能需要 3000 次迭代才能达到 96% 的精度,而第二次初始化仅需 2000 次迭代就能达到相同精度,这种情况屡见不鲜。这充分体现了初始化的随机性对训练过程的深远影响。

(二)不同初始化方法的探索历程

随着神经网络研究的不断深入,人们针对不同的网络结构和激活函数,探索出了多种权重矩阵初始化方法,以应对训练过程中出现的各种问题。

零初始化:简单却致命的选择(仅适用于单层网络)

零初始化是一种最为直接的初始化方式,即将所有层的权重矩阵 (W) 值初始化为 0。然而,这种看似简单的方法在多层网络中却存在严重缺陷。当多层网络采用零初始化时,由于初始值相同,梯度在反向传播过程中会均匀回传,导致所有权重 (W) 的值同步更新,毫无差别。这使得网络无法学习到合理的权重值,无论经过多少轮训练,最终结果都难以正确。从实际的权重矩阵值打印输出中可以清晰地看到,(W1)、(B1)、(W2) 内部单元的值完全一致,这就是零初始化带来的灾难性后果。因此,在多层网络中,零初始化是绝对不可取的。

W1= [[-0.82452497 -0.82452497 -0.82452497]]
B1= [[-0.01143752 -0.01143752 -0.01143752]]
W2= [[-0.68583865] [-0.68583865] [-0.68583865]]
B2= [[0.68359678]]
标准初始化:适用于简单网络的初步尝试

标准正态初始化方法,也称为 Normal 初始化,旨在保证激活函数的输入均值为 0,方差为 1。其权重矩阵 (W) 的初始化公式为

W ∼ N [ 0 , 1 ] W \sim N \begin{bmatrix} 0, 1 \end{bmatrix} WN[0,1]

在实际应用中,通常会根据全连接层的输入和输出数量进一步调整初始化细节

W ∼ N ( 0 , 1 n i n ) W \sim N \begin{pmatrix} 0, \frac{1}{\sqrt{n_{in}}} \end{pmatrix} WN(0,nin 1)

W ∼ U ( − 1 n i n , 1 n i n ) W \sim U \begin{pmatrix} -\frac{1}{\sqrt{n_{in}}}, \frac{1}{\sqrt{n_{in}}} \end{pmatrix} WU(nin 1,nin 1)

在目标问题相对简单、网络深度不大的情况下,标准初始化方法能够发挥一定作用。然而,当面对深度网络时,它也暴露出了明显的不足。

以一个 6 层深度网络为例,使用全连接层和 Sigmoid 激活函数时,各层激活函数的直方图显示,

激活值严重向两侧 [0,1] 靠近。从 Sigmoid 函数曲线可知,这些值的导数趋近于 0,这意味着反向传播时梯度会逐步消失。而中间地段的值较少,不利于参数学习,从而限制了网络的性能提升

Xavier 初始化:解决方差问题的有效探索

为了克服标准初始化在深度网络中的困境,Xavier Glorot 等人提出了 Xavier 初始化方法。该方法基于两个重要条件:正向传播时,激活值的方差保持不变;反向传播时,关于状态值的梯度的方差保持不变。其初始化公式为

W ∼ N ( 0 , 2 n i n + n o u t ) W \sim N \begin{pmatrix} 0, \sqrt{\frac{2}{n_{in} + n_{out}}} \end{pmatrix} WN(0,nin+nout2 )

W ∼ U ( − 6 n i n + n o u t , 6 n i n + n o u t ) W \sim U \begin{pmatrix} -\sqrt{\frac{6}{n_{in} + n_{out}}}, \sqrt{\frac{6}{n_{in} + n_{out}}} \end{pmatrix} WU(nin+nout6 ,nin+nout6 )

其中 W W W 为权重矩阵, N N N 表示正态分布, U U U 表示均匀分布。

Xavier 初始化方法主要针对全连接神经网络,适用于 tanh 和 softsign 等激活函数,假设激活函数关于 0 对称。在 6 层深度网络中的表现表明,它能够使后面几层的激活函数输出值分布基本符合正态分布,有利于神经网络的学习。

随机初始化和Xavier初始化的各层激活值与反向传播梯度比较

然而,随着深度学习的发展,ReLU 激活函数的广泛应用又带来了新的挑战。

在使用 ReLU 激活函数时,Xavier 初始化虽然在一定程度上改善了激活值分布,但仍存在问题,随着层的加深,激活值会逐步向 0 偏向,同样导致梯度消失问题

MSRA 初始化:ReLU 激活函数的理想搭档

为了解决 ReLU 激活函数带来的方差变化问题,He Kaiming 等人提出了 MSRA 初始化方法(又称 He 初始化法)。该方法的条件是正向传播时,状态值的方差保持不变;反向传播时,关于激活值的梯度的方差保持不变

当仅考虑输入个数时,对于 ReLU 激活函数,MSRA 初始化是一个均值为 0,方差为 2 / n 2/n 2/n 的高斯分布,公式为

W ∼ N ( 0 , 2 n ) W \sim N \begin{pmatrix} 0, \sqrt{\frac{2}{n}} \end{pmatrix} WN(0,n2 )

W ∼ U ( − 6 n i n , 6 n o u t ) W \sim U \begin{pmatrix} -\sqrt{\frac{6}{n_{in}}}, \sqrt{\frac{6}{n_{out}}} \end{pmatrix} WU(nin6 ,nout6 )

在使用 ReLU 激活函数时,MSRA 初始化方法表现出色,各层激活值从 0 到 1 的分布非常均匀,不会因层的加深而出现梯度消失问题。

对于 Leaky ReLU 激活函数,也有相应的初始化公式

W ∼ N [ 0 , 2 ( 1 + α 2 ) n ^ i ] n ^ i = h i ⋅ w i ⋅ d i h i : 卷积核高度, w i : 卷积核宽度, d i : 卷积核个数 W \sim N \begin{bmatrix} 0, \sqrt{\frac{2}{(1+\alpha^2) \hat n_i}} \end{bmatrix} \\ \hat n_i = h_i \cdot w_i \cdot d_i \\ h_i: 卷积核高度,w_i: 卷积核宽度,d_i: 卷积核个数 WN[0,(1+α2)n^i2 ]n^i=hiwidihi:卷积核高度,wi:卷积核宽度,di:卷积核个数

因此,在使用 ReLU 或 Leaky ReLU 激活函数时,推荐使用 MSRA 初始化方法。

小结:初始化方法的综合应用指南

综合上述不同初始化方法的特点和适用场景,可以总结出以下规律。

ID网络深度初始化方法激活函数说明
1单层零初始化可以
2双层零初始化Sigmoid误,不能进行正确的反向传播
3双层随机初始化Sigmoid可以
4多层随机初始化Sigmoid激活值分布成凹形,不利于反向传播
5多层Xavier初始化Tanh正确
6多层Xavier初始化ReLU激活值分布偏向0,不利于反向传播
7多层MSRA初始化ReLU正确

对于单层网络,零初始化是可行的,但在多层网络中,除了特殊情况外,应避免使用。随机初始化在双层 Sigmoid 网络中可以使用,但在多层 Sigmoid 网络中,激活值分布不利于反向传播。Xavier 初始化适用于多层 tanh 网络,但在多层 ReLU 网络中存在激活值偏向 0 的问题而 MSRA 初始化则是多层 ReLU 网络的理想选择。随着网络深度和激活函数的不断变化,合适的初始化方法选择至关重要,它直接影响着神经网络的训练效果和性能表现。

二、参考

  1. Xavier Glorot 和 Yoshua Bengio 于 AISTATS 2010 发表的论文“Understanding the difficulty of training deep feedforward neural networks”,链接:http://proceedings.mlr.press/v9/glorot10a/glorot10a.pdf。
  2. https://blog.csdn.net/victoriaw/article/details/73000632。
  3. 何凯明(Microsoft Research Asia,2015)的论文,链接:https://arxiv.org/pdf/1502.01852.pdf。

通过对神经网络权重矩阵初始化方法的深入研究和理解,能够在构建和训练神经网络时,根据具体的网络结构和激活函数,选择最为合适的初始化方法,从而为神经网络的成功训练和高效性能奠定坚实基础。这不仅有助于提高模型的准确性和稳定性,还能加速训练过程。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

react-dnd 拖拽事件与输入框的文本选中冲突

问题描述 当我们使用拖拽库的时候,往往会遇到拖拽的一个元素他的子孙元素有输入框类型的dom节点,当拖拽的事件绑定在该元素身上时候,发现子孙的输入框不能进行文本选中了,会按住鼠标去选中文本的时候会触发拖拽 实际的效果&…

【构建工具】现代开发的重要角色

你可能有所听闻构建工具,但是不知道是干什么的,或者是开发中用到了,大概会使用,但是想理解一下具体的工作原理等,那么我将分享一下我对其的理解。【 我将分为两篇来讲解】。 当我们谈到构建工具时,可以把它…

【环境搭建】Jeecg-Boot v3.5.0 Docker搭建

前言 最近需要复现JeecgBoot的SQL注入漏洞,必须要搭建JeecgBoot v3.5.0这个版本才行,DockerHub没人push这个版本的,相关博客也比较少,所以自己来搭建,记录一下过程。 前置环境 Ubuntu 20.04Docker version 27.3.1do…

如何通过编译器标志增强移动应用的安全性

作为一名 Android 或 iOS 开发者,您可能已经熟悉一些常见的安全开发最佳实践,比如验证外部输入、合理管理内存以及避免使用弱加密算法。然而,即便是最精心编写的代码,也可能包含一些 bug,其中一些可能会导致可被利用的…

华为eNSP:VRRP

一、VRRP背景概述 在现代网络环境中,主机通常通过默认网关进行网络通信。当默认网关出现故障时,网络通信会中断,影响业务连续性和稳定性。为了提高网络的可靠性和冗余性,采用虚拟路由冗余协议(VRRP)是一种…

前端请求后端接口报错(blockedmixed-content),以及解决办法

报错原因:被浏览器拦截了,因为接口地址不是https的。 什么是混合内容(Mixed Content) 混合内容是指在同一页面中同时包含安全(HTTPS)和非安全(HTTP)资源的情况。当浏览器试图加载非…

【随心记】---- vue表格n-form中自定义增加必填星号

【如上图所示】&#xff1a;自定义增加星号样式 【思路】&#xff1a; 通过插槽实现 【代码】&#xff1a;通过vue的插槽实现自定义样式 <n-form-item-gi label"提示函正文" path"fileList" :span"12"><template #label><div>…

元宇宙时代的社交平台:Facebook的愿景与实践

随着科技的不断进步&#xff0c;元宇宙&#xff08;Metaverse&#xff09;这一概念逐渐走进了人们的视野。作为全球最大的社交平台之一&#xff0c;Facebook&#xff08;现Meta&#xff09;在这场元宇宙革命中扮演着重要角色。Meta不仅在不断扩展其社交平台的边界&#xff0c;还…

HtmlRAG开源,RAG系统联网搜索能力起飞~

网络是RAG系统中使用的主要外部知识来源&#xff0c;许多商业系统&#xff0c;如ChatGPT和Perplexity&#xff0c;都使用网络搜索引擎作为他们的主要检索系统。传统的RAG系统将网页的HTML内容转换为纯文本后输入LLM&#xff0c;这会导致结构和语义信息的丢失。 HTML转换为纯文…

人工智能大语言模型起源篇(一),从哪里开始

序言&#xff1a;许多人最初接触人工智能都是在ChatGPT火热之际&#xff0c;并且大多停留在应用层面。对于希望了解其技术根源的人来说&#xff0c;往往难以找到方向。因此&#xff0c;我们编写了《人工智能大语言模型起源篇》&#xff0c;旨在帮助读者找到正确的学习路径&…

摆脱B端UI框架的桎梏,首先从布局开始

在 B 端开发中&#xff0c;UI 框架虽带来便利&#xff0c;但也可能形成桎梏。要摆脱这种束缚&#xff0c;首先从布局着手是个明智之举。传统的 B 端 UI 框架布局可能较为固定&#xff0c;缺乏灵活性。我们可以尝试创新的布局方式&#xff0c;如响应式设计&#xff0c;适应不同屏…

上海亚商投顾:创业板指震荡调整 机器人概念股再度爆发

上海亚商投顾前言&#xff1a;无惧大盘涨跌&#xff0c;解密龙虎榜资金&#xff0c;跟踪一线游资和机构资金动向&#xff0c;识别短期热点和强势个股。 一.市场情绪 沪指昨日冲高回落&#xff0c;深成指、创业板指盘中跌超1%&#xff0c;尾盘跌幅有所收窄。机器人概念股逆势爆…

yarn 安装问题

Couldn’t find package “regenerator-runtime” on the “npm” registry. Error: Couldn’t find package “watch-size” on the “npm” regist 标题Error: Couldn’t find package “babel-helper-vue-jsx-merge-props” on the “npm” registry. Error: Couldn’t f…

【AI知识】过拟合、欠拟合和正则化

一句话总结&#xff1a; 过拟合和欠拟合是机器学习中的两个相对的概念&#xff0c;正则化是用于解决过拟合的方法。 1. 欠拟合&#xff1a; 指模型在训练数据上表现不佳&#xff0c;不能充分捕捉数据的潜在规律&#xff0c;导致在训练集和测试集上的误差都很高。欠拟合意味着模…

flink终止提交给yarn的任务

接上文&#xff1a;一文说清flink从编码到部署上线 1.查看正在执行的flink 访问地址&#xff08;参考&#xff09;&#xff1a;http://10.86.97.191:8099/cluster/apps 2.终止任务 yarn application -kill appID 本文为&#xff1a; yarn application -kill application_17…

虚拟机如何使用物理机的公私钥

一、生成公私钥&#xff08;如果没有的话&#xff09; 使用如下指令生成 生成RSA公私钥 ssh-keygen 生成EdDSA公私钥 ssh-keygen -t ed25519 Windows目录 linux会直接生成在当前目录下。 二、导出 一般都是从windows系统导入到linux系统。 可以直接将公私钥文件复制到虚拟机…

太速科技-FMC154-基于FMC 八路SFP+万兆光纤子卡

FMC154-基于FMC 八路SFP万兆光纤子卡 一、板卡概述 本卡是一个FPGA夹层卡&#xff08;FMC&#xff09;模块&#xff0c;可提供高达8个SFP / SFP 模块接口&#xff0c;直接插入千兆位级收发器&#xff08;MGT&#xff09;的赛灵思FPGA。支持业界标准的小型可插拔&#xff0…

麒麟系统+达梦数据库+MybatisPlus+Redis+SpringBoot

环境准备 麒麟系统 在麒麟系统官网进行下载镜像 这里选择的是麒麟V10桌面版&#xff0c;使用虚拟机启动 修改root密码 # 启动到单用户模式 init 1 # 修改 root 密码 passwd root # 重启 reboot达梦数据库准备 进入达梦官网 我这里选择的是达梦数据库管理系统DM8开发版 下…

路由引入问题(双点双向路由回馈问题)

简介 总所周知&#xff0c;路由引入import又称路由重分发redistribute&#xff0c;为了解决不同路由协议进程间路由信息不互通而使用的技术&#xff0c;由于不同路由协议的算法、机制、开销等因素的差异&#xff0c;它们之间无法直接交换路由信息。因此&#xff0c;路由引入技…

Ubuntu 22.04安装Nessus(离线激活模式)

Ubuntu 22.04安装Nessus 一、 Nessus 简介二、Nessus下载安装三、激活Nessus四、创建一个基础扫描五、 破解Nessus只能扫描16个地址的限制六、更新插件 一、 Nessus 简介 Nessus 官网&#xff1a; https://www.tenable.com/ Nessus号称世界上最流行的扫描程序&#xff0c;Nessu…