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

news2025/1/16 0:09:49

文章目录

    • 一、权重矩阵初始化:神经网络训练的关键起点
      • (一)初始化的重要性及随机特性
      • (二)不同初始化方法的探索历程
        • 零初始化:简单却致命的选择(仅适用于单层网络)
        • 标准初始化:适用于简单网络的初步尝试
        • 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.coloradmin.cn/o/2258712.html

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

相关文章

【算法day13】二叉树:递归与回溯

题目引用 找树左下角的值路径总和从中序与后序遍历构造二叉树 今天就简简单单三道题吧~ 1. 找到树左下角的值 给定一个二叉树的 根节点 root,请找出该二叉树的 最底层 最左边 节点的值。 假设二叉树中至少有一个节点。 示例 1: 输入: root [2,1,3] 输出: 1 我们…

OpenCV实验:图片加水印

第二篇:图片添加水印(加 logo) 1. 实验原理 水印原理: 图片添加水印是图像叠加的一种应用,分为透明水印和不透明水印。水印的实现通常依赖于像素值操作,将水印图片融合到目标图片中,常用的方法…

路由器、二层交换机与三层交换机的区别与应用

路由器、二层交换机和三层交换机是常见的网络设备,常常协同工作。它们都可以转发数据,但在功能、工作层级以及应用场景上存在差异。 1. 工作层级 三者在OSI模型中的工作层级不同: 路由器: 工作在 网络层(第三层&#…

Motionface RTASR 离线实时语音识别直播字幕使用教程

软件使用场景: 直播、视频会议、课堂教学等需要实时字幕的场景。 1:系统要求 软件运行支持32位/64位windows 10/11系统,其他硬件要求无,无显卡也能实时识别字幕。 2:下载安装 链接:百度网盘 请输入提取码 提取码&#…

从零开始认识主板

主板(Motherboard)是计算机中最重要的硬件之一,它连接并协调了计算机中所有的其他硬件组件。以下是主板的基本组成部分及其功能,从零开始帮助你了解主板: 1. 主板的定义与作用 主板是计算机的核心电路板,用…

Cesium 限制相机倾斜角(pitch)滑动范围

1.效果 2.思路 在项目开发的时候,有一个需求是限制相机倾斜角,也就是鼠标中键调整视图俯角时,不能过大,一般 pitch 角度范围在 0 至 -90之间,-90刚好为正俯视。 在网上查阅了很多资料,发现并没有一个合适的…

【HarmonyOS之旅】HarmonyOS概述(一)

目录 1 -> HarmonyOS简介 2 -> HarmonyOS发展历程 3 -> HarmonyOS技术特性 3.1 -> 硬件互助,资源共享 3.1.1 -> 分布式软总线 3.1.2 -> 分布式设备虚拟化 3.1.3 -> 分布式数据管理 3.1.4 -> 分布式任务调度 3.1.5 -> 分布式连接…

FireFox火狐浏览器企业策略禁止更新

一直在用火狐浏览器,但是经常提示更新,进入浏览器右上角就弹出提示,比较烦。多方寻找,一直没有找到合适的方案,毕竟官方没有给出禁用检查更新的选项,甚至about:config里都没有。 最终找到了通过企业策略控…

鲲鹏麒麟安装Kafka-v1.1.1

因项目需要在鲲鹏麒麟服务器上安装Kafka v1.1.1,因此这里将安装配置过程记录下来。 环境说明 # 查看系统相关详细信息 [roottest kafka_2.12-1.1.1]# uname -a Linux test.novalocal 4.19.148 #1 SMP Mon Oct 5 22:04:46 EDT 2020 aarch64 aarch64 aarch64 GNU/Li…

EFAK kafka可视化管理工具部署使用

简介:EFAK是开源的可视化和管理软件。它允许您查询、可视化、提醒和探索您的指标,无论它们存储在何处。简单来说,它为您提供了将 Kafka 集群数据转换为漂亮的图形和可视化效果的工具。 环境:①操作系统:CentOS7.6&…

YOLOv11改进,YOLOv11添加引入U-Netv2分割网络中SDI信息融合模块+GSConv卷积,助力小目标

# 理论介绍 完成本篇需要参考以下两篇文章,并已添加到YOLOv11代码中 YOLOv11改进,YOLOv11添加GSConv卷积+Slim-neck,助力小目标检测,二次创新C3k2结构YOLOv11改进,YOLOv11添加U-Netv2分割网络中SDI信息融合模块,助力小目标检测下文都是手把手教程,跟着操作即可添加成功…

Linux dd命令读写flash之误区

1. 问题 通常在Linux系统上需使用dd命令读写flash设备,个人最近调试了一款spi-nor flash芯片,分区分配了8MB大小的分区,是用dd命令验证读写flash时,出现校验失败。 使用如下命令读写8KB数据就会出现校验数据失败 time dd if/dev…

六、nginx负载均衡

负载均衡:将四层或者七层的请求分配到多台后端的服务器上。 从而分担整个业务的负载。提高系统的稳定性,也可以提高高可用(备灾,其中一台后端服务器如果发生故障不影响整体业务). 负载均衡的算法 round robin 轮询 r…

Python使用Selenium库获取 网页节点元素、名称、内容的方法

我们要用到一些网页源码信息,例如获取一些节点的class内容, 除了使用Beautifulsoup来解析,还可以直接用Selenium库打印节点(元素)名称,用来获取元素的文本内容或者标签名。 例如获取下面的class的内容&am…

scala的泛型2

package test55 //隐式转换 //1.隐式函数 //2.隐式类 //3.隐式对象 //4.函数的隐式参数//泛型:类型参数化。 //Pair 约定一对数据 class Pair[T](var x:T, var y:T) //泛型的应用场景: //1.泛型函数 //2.泛型类 //3.泛型特质 object test2 {def main(arg…

服务器数据恢复—热备盘上线过程中硬盘离线导致raid5阵列崩溃的数据恢复案例

服务器数据恢复环境: 两组分别由4块SAS接口硬盘组建的raid5阵列,两组raid5阵列划分LUN并由LVM管理,格式化为EXT3文件系统。 服务器故障: RAID5阵列中一块硬盘未知原因离线,热备盘自动激活上线替换离线硬盘。在热备盘上…

基于Qwen2-VL模型针对LaTeX OCR任务进行微调训练 - 数据处理

基于Qwen2-VL模型针对LaTeX OCR任务进行微调训练 - 数据处理 flyfish 基于Qwen2-VL模型针对LaTeX_OCR任务进行微调训练_-_LoRA配置如何写 基于Qwen2-VL模型针对LaTeX_OCR任务进行微调训练_-_单图推理 基于Qwen2-VL模型针对LaTeX_OCR任务进行微调训练_-_原模型_单图推理 基于Q…

华为开源自研AI框架昇思MindSpore应用案例:基于MindSpore框架的SGD优化器案例实现

SGD优化器基本原理讲解 随机梯度下降(SGD)是一种迭代方法,其背后基本思想最早可以追溯到1950年代的Robbins-Monro算法,用于优化可微分目标函数。 它可以被视为梯度下降优化的随机近似,因为它用实际梯度(从…

【C++】闰年判断问题完整解析与代码优化

博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C 文章目录 💯前言💯题目描述💯我的解法分析 💯老师解法分析代码 1(未优化版本)分析 代码 2(优化版本)分析 &#x1f4af…

云和恩墨 zCloud 与华为云 GaussDB 完成兼容性互认证

近日,云和恩墨(北京)信息技术有限公司(以下简称:云和恩墨)的多元数据库智能管理平台 zCloud 与华为云计算技术有限公司(以下简称:华为云)的 GaussDB 数据库完成了兼容性互…