深度学习-数值稳定性和模型初始化

到目前为止,我们实现的每个模型都是根据某个预先制定的分布来初始化模型的参数,有人会认为初始化方案时理所当然的,忽略了如何做出这些选择的细节,甚至有人可能会觉得,初始化方案的选择并不是特别重要,实际上,初始化方案的选择在神经网络学习中起着举足轻重的作用,保持数值稳定性至关重要。此外,这些初始化方案的选择可以与非线性激活函数的选择有趣的结合在一起。我们选择哪个函数以及如何初始化参数可以决定优化算法收敛的速度有多快,糟糕的选择可能会导致我们在训练时遇到梯度爆炸或者梯度消失,本节将更详细的探讨这些主题,讨论一些有用的启发方式方法。这些启发方式在整个深度学习中都很有用。

4.8.1 梯度小时和梯度爆炸

考虑一个具有L层,输入x和输出o的深层网络。每一层l由变换f1定义,该变换的参数为权重W(l),隐藏变量是h(l) 令h(0) =x。我们的网络可以表示为

h(l) = Flh(l-1), 因此 o = FL .... Fl(x)

换而言之,该剃度是L-1 个矩阵M(L) ... M(l + 1) 与梯度向量v(l)的乘积。因此,我们容易受到数值下溢问题的影响,当将过多的概率在一起相承时,这种问题经常会出现。在处理概率时,一个常见的技巧是切换到对数空间,即将数值表示的压力从尾数转移到指数。遗憾的是,这会使上面的问题更为严重,矩阵M可能是各种各样的特征值,可能很小,也可能很大,而他们的乘积可能非常大,也可能非常小。

不稳定梯度带来的风险不仅在于数值表示,也威胁到优化算法的稳定性。我们可能面临一些问题,要么是梯度爆炸问题,参数更新过大,破坏了模型的稳定收敛,要么是梯度消失问题,参数更新过小,在每次更新时几乎不会移动。导致模型无法学习。

1 梯度消失

曾经sigmoid 函数很流行,因为它类似于阈值函数,由于早期的人工神经网络受到生物神经网络的启发,神经元要饿完全激活,要么完全不激活的想法很吸引力。然而,却是导致梯度消失的一个常见原因,我们仔细看着sigmoid函数为什么导致梯度消失

%matplotlib inline

import torch

from d2l import torch as d2l

x = torch.arange(-8.0, 8.0, 0.1, requires_grad = True);

y = torch.sigmoid(x)

y.backward(torch.ones_like(x))

d2l.plot(x.detach().numpy(),[y.detach().numpy(),x.grad.numpy()],legend=['sigmoid','gradient'],figsize=(4.5,2.5))

正如上图曲线所示sigmoid函数输入很大或者很小梯度就会消失此外反向传播通过许多除非恰好sigmoid函数输入接近位置否则整个乘积梯度可能会消失网络很多层时候除非我们很小心否则某一层可能会切断梯度事实这个问题曾经困扰深度网络训练因此更稳定RelU系列函数已经成为从业者默认选择(虽然从神经科学的角度看起来不会太合理)

  1. 梯度爆炸

梯度消失相反梯度爆炸可能同样令人烦恼为了更好说明这一点我们生成100高斯随机矩阵将他们某个初始矩阵相乘对于我们选择尺寸矩阵乘积发生了爆炸当这种情况深度网络初始化所导致我们没有机会梯度下降优化收敛

M = torch.normal(0, 1, size = (4,4))

printf('一个矩阵\n');

for i in range(100)

M = torch.mm(M, torch.normal(0, 1, size(4, 4)));

3 打破对成型

神经网络设计中另一个问题参数固有对称性假设我们有一个简单多层感知有一个隐藏两个隐藏单元在这种情况下我们可以第一层权重进行排列并且同样输出层权重进行重排列可以获得相同函数第一个隐藏单元第二个隐藏单元没有什么区别换句话说每一层隐藏单元之间具有排列对称性

4.8.2 参数初始化

解决上述问题一种方法进行参数初始化优化期间适当正则化也可以进一步提高稳定性

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

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

相关文章

SFINAE(Substitution Failure Is Not An Error)

C 中的 SFINAE(替换失败并非错误) SFINAE(Substitution Failure Is Not An Error)是 C 模板元编程的核心机制之一,允许在编译时根据类型特性选择不同的模板实现。以下通过代码示例和底层原理,逐步解析 SFI…

【Python笔记 04】输入函数、转义字符

一、Input 输入函数 prompt是提示,会在控制台显示,用作提示函数。 name input("请输入您的姓名:") print (name)提示你输入任意信息: 输入input test后回车,他输出input test 二、常用的转义字符 只讲…

什么是量子计算?它能做什么?

抛一枚硬币。要么正面朝上,要么反面朝上,对吧?当然,那是在我们看到硬币落地的结果之后。但当硬币还在空中旋转时,它既不是正面也不是反面,而是正面和反面都有一定的可能性。 这个灰色地带就是量子计算的简…

入门 Go 语言

本专栏的 Go 语言学习参考了B站UP 软件工艺师的视频 本节需要: Go 语言环境VSCode 安装环境 下载 Go 环境,并安装下载 VSCode,安装。在 VSCode 中安装 Go 扩展: 接下来就可以编写 Go 语言了 第一条 Go Go 语言是一种编译型…

Oracle EBS R12.2 汉化

一、前言 在使用oracle ebs时,使用中文会更好的理解整个ebs流程,以下介绍oracle r12中文补丁的方式 如果你的系统除了支持英语外,还支持其他语言,比如中文,那你在下载补丁的时候除了下载Generic Platform版本外&#…

参考文献新国标GB/T 7714-2025的 biblatex 实现

参考文献新国标GB/T 7714-2025的biblatex实现 新版 GB/T 7714 目前正在修订和征求意见(https://std.samr.gov.cn/gb/search/gbDetailed?id14CA9D282EB75AC8E06397BE0A0AEA2E)。 根据已经呈现的草案,初步实现了biblatex样式(详见biblatex-gb…

Discuz!与DeepSeek的深度融合:打造智能网址导航新标杆

引言 在数字化信息爆炸的时代,网址导航网站作为用户获取优质资源、高效浏览互联网的重要入口,其信息筛选能力、用户体验和商业化潜力成为了决定其竞争力的核心要素。Discuz!作为国内应用广泛的社区论坛系统,以其强大的功能扩展性和用户管理能…

Linux424 chage密码信息 gpasswd 附属组

https://chat.deepseek.com/a/chat/s/e55a5e85-de97-450d-a19e-2c48f6669234

【低配置电脑预训练minimind的实践】

低配置电脑预训练minimind的实践 概要 minimind是一个轻量级的LLM大语言模型,项目的初衷是拉低LLM的学习门槛,让每个人都能从理解每一行代码开始, 从零开始亲手训练一个极小的语言模型。对于很多初学者而言,电脑配置仅能够满足日…

docker部署Ollama并简单调用模型

Ollama简介 Ollama 是一个开源的大型语言模型(LLM)平台,旨在让用户能够轻松地在本地运行、管理和与大型语言模型进行交互。 Ollama 提供了一个简单的方式来加载和使用各种预训练的语言模型,支持文本生成、翻译、代码编写、问答等…

Redis安装及入门应用

应用资料:https://download.csdn.net/download/ly1h1/90685065 1.获取文件,并在该文件下执行cmd 2.输入redis-server-lucifer.exe redis.windows.conf,即可运行redis 3.安装redis客户端软件 4.安装后运行客户端软件,输入链接地址…

《重塑AI应用架构》系列: Serverless与MCP融合创新,构建AI应用全新智能中枢

在人工智能飞速发展的今天,数据孤岛和工具碎片化问题一直是阻碍AI应用高效发展的两大难题。由于缺乏统一的标准,AI应用难以无缝地获取和充分利用数据价值。 为了解决这些问题,2024年AI领域提出了MCP(Model Context Protocol模型上…

从入门到精通【MySQL】视图与用户权限管理

文章目录 📕1. 视图✏️1.1 视图的基本概念✏️1.2 试图的基本操作🔖1.2.1 创建视图🔖1.2.2 使用视图🔖1.2.3 修改数据🔖1.2.4 删除视图 ✏️1.3 视图的优点 📕2. 用户与权限管理✏️2.1 用户🔖…

输入捕获模式测频率

前提工作: PA6、PA0通过跳线相连,PA6测试PA0的输出频率 本来只有下列函数,改变占空比 但是我们需要测试频率,需要动态改变频率。 void PWM_SetCompare1(uint16_t Compare) {TIM_SetCompare1(TIM2, Compare); //设置CCR1的值 }…

通付盾入选苏州市网络和数据安全免费体验目录,引领企业安全能力跃升

近日,苏州市网络安全主管部门正式发布《苏州市网络和数据安全免费体验产品和服务目录》,通付盾凭借其在数据安全、区块链、AI领域的创新实践和前沿技术实力,成功入选该目录。 作为苏州市网络安全技术支撑单位,通付盾将通过 “免费…

AI日报 - 2025年04月25日

🌟 今日概览(60秒速览) ▎🤖 AGI突破 | OpenAI o3模型展现行动能力,英国发布RepliBench评估AI自主复制风险,DeepMind CEO担忧AGI协调挑战。 模型能力向行动和自主性演进,安全与协调成为焦点。 ▎💼 商业动向…

DeepSeek开源引爆AI Agent革命:应用生态迎来“安卓时刻”

开源低成本:AI应用开发进入“全民时代” 2025年初,中国AI领域迎来里程碑事件——DeepSeek开源模型的横空出世,迅速在全球开发者社区掀起热潮。其R1和V3模型以超低API成本(仅为GPT-4o的2%-10%)和本地化部署能力&#x…

CDGP|大模型赋能数据治理:实践案例与深度剖析

随着大数据技术的飞速发展,数据规模呈爆炸式增长,数据来源也日趋多样化。在这个背景下,大模型,即具有数十亿甚至上百亿参数的深度学习模型,逐渐成为数据处理和分析的重要工具。大模型具备处理多任务、理解复杂语言模式…

Ubuntu 一站式部署 RabbitMQ 4 并“彻底”迁移数据目录的终极实践

1 安装前准备 sudo apt update -y sudo apt install -y curl gnupg apt-transport-https lsb-release jq若计划将数据放到新磁盘(如 /dev/nvme0n1p1): sudo mkfs.xfs /dev/nvme0n1p1 sudo mkdir /data echo /dev/nvme0n1p1 /data xfs defau…

5.2.3 WPF 中 XAML 文件 Converter 使用介绍

Converter(转换器)在 WPF 数据绑定中扮演着重要角色,用于在源数据和目标属性之间进行值转换 举例来说:我想用一个bool量来控制一个背景,为true时,显示红色;为false时背景用默认颜色。因此 Backg…