人脑是怎么防止梯度消失和梯度爆炸的?

[学习笔记]重新评估生产联邦学习中的梯度泄漏攻击 对论文中重新评估生产联邦学习中的梯度泄露攻击的危害进行学习整理 阅读详情

来源丨知乎问答

编辑丨极市平台

文授权自知乎,仅学术分享,著作权归作者所有

观点一

作者丨冒蓝火的加特林

感觉这个问题跟我的科研方向有一点关系,所以就厚着脸皮强答一波了。

(1)动物的神经元都是以脉冲的形式进行信息交流的,而脉冲是离散的,所以从数学角度人脑(往大了说就是动物)交换信息的方式是离散的,也就是不能求导,所以就不存在所谓的“梯度”这一概念了;当然也有论文可以建模,以一种伪bp的方式进行脉冲迭代,当然这就是后话了;

神经元的模型;树突用来收集信息,轴突用来发送信息,二者又合称神经突

(2)基础知识准备:要解决题主的这两个问题,首先就要知道人脑是怎样基于脉冲的形式进行学习的:当一个神经元通过突触(准确的说是轴突)传输脉冲到下一个神经元,下一个神经元收到脉冲后就会引起膜电位的上升,不发射脉冲的时候,由于神经元存在离子泄露,导致膜电位下降;而当该神经元的膜电位达到一定阈值的时候,就会发射脉冲到下下个神经元了,当然你也得让神经元歇一会,在它发射脉冲后的一段时间内,你咋扒拉它,它也不射了,哦,不是,是不发射脉冲了(说白了就是贤者时间呗)。

神经元膜电位随前级神经元发射脉冲的关系:下面的绿条条就是脉冲,蓝线线就是膜电位变化曲线,红线线就是如果你不再来脉冲的话,膜电位的走向

上面说到,前级神经元发射脉冲会引起后级神经元膜电位变化,进而导致后级神经元发射脉冲,完成信号传递;但是前级神经元的脉冲引起后级膜电位变化程度可是不一样的!这就引出了大脑最重要的学习机制-STDP;啥意思呢?就是说前级脉冲引起后级膜电位的变化程度是与前后级神经元发射脉冲的时间差有关的。这个膜电位的变化程度,你可以理解为一种权重;而这种更新权重方法与时间是有关的,这也是和传统神经网络最不一样的特点。

STDP学习机制:更新的权重随前后神经元发射脉冲的时间差之间的关系

(3)怎样防止“梯度消失”:(1)中提到了,脉冲是离散的,所以其实是不存在梯度的,那么我所理解的就是如果大脑在进行迭代过程中更新的权重过小怎么办?这个问题,就引出了大脑的长期记忆功能,“一朝被蛇咬,十年怕井绳”,你小时候遇见了一件非常可怕的事情为什么你能够记一辈子呢?这就引出了大脑的cell assembly(细胞集群)的特点了,下图就是大脑的功能分区,我们在处理一件事情的时候,可不是所有的分区都在工作的,其实只用到了其中一部分,所以就本着谁的活谁干的原则。如果你24小时干同一件事情,大脑中负责你干活的那块区域不整点活儿不得被你活活累死。所以大脑的不同区域内部之间是存在集群效应的,它们之间的相互紧密连接,相互抱团,有点类似与循环神经网络的结构,由于绑定的非常紧密,突触之间的权重也非常高;这就回答了你的梯度消失:大脑A分区平时不工作,消停待着,但是如果开始工作,只要有一个脉冲进来,整个分区集群就会瞬间被激活,进行工作,相互之间产生脉冲,相互之间更新权重,大脑就开始进入训练阶段了~!,如果你持续做事件A,A分区就会一直处于激活状态,就像嚼了炫迈一样;如果你突然不做A了,A分区就没有外接刺激,由于神经元的不应期和STDP的学习机制,它就会一点点的萎下来,再次恢复待机状态,所以也就不存在所谓的梯度消失;不知道我这样说是否能够算回答你的第一个问题;

大脑的分工和集群效应

(4)怎样防止“梯度爆炸”?那么我所理解的就是如果大脑在进行迭代过程中更新的权重过大怎么办?这个其实反而很好解释,根据(2)中神经元的特点,你会发现,更新权重其实只与前级神经元和后级神经元有关,继而大脑更新权重的方式就只有两层神经元的参与,所以就不会被滚起雪球来;同时为了怕更新权重过大把脑子烧坏了,还特意为神经元准备了不应期(也就是(2)中提到的贤者时间),后级神经元不能持续发射脉冲,根据STDP学习的规则,也就不能持续的一直的更新脉冲;

(5)最后,其实大脑是十分复杂的,而且神经元发射脉冲其实上是非常稀疏的。我所答的内容其实也存在很多不客观或者不准确的地方,真心非常欢迎大家能够一起讨论,批评指正~~!

原文链接:

https://www.zhihu.com/question/380335971/answer/1537460713

观点二

作者丨哈佛孙一峰

现在大家普遍认为人脑并没有像DNN那样的梯度回传机制...了解一点生物学就知道神经元的传递是单向的。但是至于能不能2个神经元一个前馈一个回传?现在的研究并没有发现...而且一般都是把这种链接看成循环结构的(RNN)。

其次新生的动物大概率不需要学习就能掌握很多基本的信息处理能力。例如牛羊马这些一生下来就能走路的。说明他们基因里就预编程了走路运动,视觉等一些基本能力,而这些能力我们都是通过backpropagation训练模型来达成的。人类之所以生下来看不清。现有的解释大约是人类在出生时并没有发育完全,不然婴儿头太大无法顺利生产。

但是,大脑里肯定是存在回传error从而修改突触权重的机制的。这一类机制里现在最靠谱的就是predictive coding。

4月18号,Hinton老爷子昨天刚在nature上发了一篇paper。里面提出了一种不需要backpropagation的local优化方法。感兴趣的可以去下面这个链接看一下。

https://www.nature.com/articles/s41583-020-0277-3

论文中有一段专门讲了一点先验知识的部分。和之前答案的第二段观点基本相吻合。

文章主要基于The NGRAD hypothesis。之前很多模型具体实现这个假设就是依托于predictive coding。本文在我看来也是类似于predictive coding的。没有细读,还有望其他大佬来纠正。

原文链接:

https://www.zhihu.com/question/380335971/answer/1086366831

观点三

作者丨googol

1.为什么会有梯度爆炸?

神经网络的层数太多,对激活函数求导,如果结果大于1,由于随层数增加求出的梯度信息指数增加,即为梯度爆炸。若小于1,则指数减小,即为梯度消失。

2.人脑是怎么运作的?

是你给一个图像进去人脑就全脑同时激活了吗?显然不是,大脑是分区激活的。但是,将信息储存在一个较远的地方只是人脑算法一个很小的部分,它与动物与人惊人的识物能力无关。我觉得它更多的与短时记忆的储存(在变为长时记忆之前)有关。

3.先天结构?

拜托,现在人脑大块的,广泛分布的解剖结构和神经编码机制都没发掘完,就着眼小方向上的小结构了?皮质微柱,这个开发完了吗?回传通路呢,这个在大脑中比正传通路都要多,这个应用了吗?

4.关于先天结构的解读?

现在AI研究认为人脑结构没用多少是建立在对先天结构错误或片面的解读上?典型的如大脑中大量的抑制性突触。这个在主流观点中被解读为了这是大脑让兴奋维持在一个较均衡的值的方法,目的防止梯度爆炸或消失的发生,在AI研究领域表现为操作上表现为加上或减去一个高斯分布。但是那为什么大脑越高级皮质区的神经网络抑制性突触更多?按照这个理论不应该中间层最多吗?大量的对人脑结构的评估建立在以深度学习为基础的标尺上,说的冷静一点是盲目的假设深度学习是机器学习的终点,说不好听一点那就是“键盘指挥大脑的行为”。

5.深度神经网络一定要做深吗?

显然不是,大脑从来没有这么深的神经网络,而且大脑的识物能力一点也不比现在的神经网络弱(见第6条)。当然了,这还有一种解读就是,自然没我们聪明嘛,我们能做出80层,但人脑只有6层,看我们多厉害,自然用6层可以解决,我们80层都解决不了嘛。

6.深度学习的缺陷?

不要说现在AI识物能力超过人类了。请问现在训练的神经网络,可不可以帮我们把一个生物(动物或植物)分类到种?可不可以充当智能生物图鉴?(就是我输入一个照片,它不是输出蛾子,而是输出草地贪夜蛾?)可不可以帮助我们发现环境中隐藏的拟态生物?不行,真不行。那有没有人可以做到?真有!请搜索“博物学家”。

7.未来的方向?

一种当然是变更算法,从基础的层面去革新,而不能满足小修小改,因为输入的数据在现在的框架下并没有被充分利用。一种当然是等待更大的计算机,然后整天幻想有了太阳那么大的计算机,就可以实现强人工智能的美梦了。

8.为什么一定要解决梯度爆炸(梯度消失)的问题?

对啊,为什么一定要起解决呢?解决这个问题是未来AI发展必然的方向吗?还是这只是一种可能的途径?

9.关于反向传播算法。

虽然人们一直希望找到反向传播算法的生理基础,但可惜一直没找到。反而出现了打击反传算法的证据,比如Hinton的胶囊神经网络,就不是用反传算法来实现机器学习的(虽然效率现在并不高)。

补图:其实从图中可以看出有六层(不算子层),且每层神经细胞形状不同(大概率对应不同功能)但大脑中确实不存在单单一个皮质区(脑区)就有80层的神经网络。不同于大多数,我恰恰认为大脑并没有去解决梯度爆炸,而且很好的绕开了它,并且这使得它比任何现有的程序都强大。

原文链接:

https://www.zhihu.com/question/380335971/answer/1098719869

[学习笔记]适可而止:生产联邦学习中针对梯度泄漏的自适应防御 对论文《More than Enough is Too Much: Adaptive Defenses against Gradient Leakage in Production Federated Learning》的部分翻译 阅读详情

相关推荐

梯度消失与梯度爆炸产生原因及解决方法

1 、什么是梯度消失和梯度爆炸 在反向传播过程中需要对激活函数进行求导,如果导数大于1,那么随着网络层数的增加梯度更新将会朝着指数爆炸的方式增加这就是梯度爆炸。同样如果导数小于1,那么随着网络层数的增加梯度更新信息会朝着指数衰减的方式减少这就是梯度消失。因此,梯度消失、爆炸,其根本原因在于反向传播训练法则,属于先天不足。 2、梯度消失、爆炸导致原因 2.1、从BP(反向传播原理)解释梯度消失和梯度爆炸 举例,一个简单的深层网络如下: 图中是一个四层的全连接网络,假设每一层网络激活后..

霜叶的博客 2万+

[学习笔记]梯度深度泄露DLG

对论文中提到的梯度深度泄露DLG进行一些整理

m0_71291382的博客 1479

PyTorch使用Tricks:梯度裁剪-防止梯度爆炸或梯度消失 !!

梯度裁剪(Gradient Clipping)是一种防止梯度爆炸或梯度消失的优化技术,它可以在反向传播过程中对梯度进行缩放或截断,使其保持在一个合理的范围内。按照梯度的绝对值进行裁剪,即如果梯度的绝对值超过了一个阈值,就将其设置为该阈值的符号乘以该阈值。按照梯度的范数进行裁剪,即如果梯度的范数超过了一个阈值,就将其按比例缩小,使其范数等于该阈值。例如,如果阈值为1,那么梯度的范数就是1。在PyTorch中,可以使用和这两个函数来实现梯度裁剪,它们都是在梯度计算完成后,更新权重之前调用的。

不要给自己设限,尝试更多可能(思所向 皆可往) 1万+

【学习笔记】适可而止:生产联邦学习中针对梯度泄漏的自适应防御

零基础小白对《More than Enough is Too Much: Adaptive Defenses against Gradient Leakage in Production Federated Learning》一文的学习与理解

m0_71291382的博客 621

机器学习总结(二):梯度消失和梯度爆炸

神经网络的训练过程通常分为两个阶段:前向传播和反向传播。 前向传播如下图所示,原理比较简单 上一层的神经元与本层的神经元有连接,那么本层的神经元的激活等于上一层神经元对应的权值进行加权和运算,最后通过一个非线性函数(激活函数)如ReLu,sigmoid等函数,最后得到的结果就是本层神经元的输出。逐层逐神经元通过该操作向前传播,最终得到输出层的结果。 反向传播由最后一层开始,逐层向前传播进行

以梦为马,不负韶华 3万+

【梯度消失】【梯度爆炸】梯度爆炸和梯度消失是什么?详细解释

通常发生在深度神经网络中,特别是使用Sigmoid或Tanh等激活函数时。它会导致前面几层的梯度接近零,从而使得这些层几乎无法学习。解决方法包括使用ReLU激活函数、良好的权重初始化、批量归一化和残差网络等。

wq6qeg88的博客 1343

深度学习防止梯度消失与梯度爆炸的几种方法

深度学习防止梯度消失与梯度爆炸的几种方法一:梯度剪切、正则二:Relu、Leakrelu、Elu等激活函数三:batchnorm四:残差结构五:LSTM六:预训练加微调 一:梯度剪切、正则 梯度剪切这个方案主要是针对梯度爆炸提出的,其思想是设置一个梯度剪切阈值,然后更新梯度的时候,如果梯度超过这个阈值,那么就将其强制限制在这个范围之内。这可以防止梯度爆炸。 pytorch中的实现:gradient clipping. optimizer.zero_grad() loss, hidden =

Zob_z的博客 9946

Improved-Deep-Leakage-from-Gradients:“改进的梯度深度泄漏”(iDLG)的代码

改进的深度泄漏 “”(iDLG)的代码。 抽象的 人们普遍认为,共享梯度不会泄漏诸如协作学习和联合学习等分布式学习系统中的私人训练数据。 [1]提出了一种方法,该方法显示了从公开共享的梯度中获得私人训练数据的可能性。 在他们的“从梯度深度泄漏”(DLG)方法中,他们在共享梯度的监督下合成了虚拟数据和相应的标签。 但是,DLG难以收敛并始终如一地发现地面真相标签。 在本文中,我们发现共享梯度无疑泄漏了地面真相标签。 我们提出了一种简单但可靠的方法来从梯度中提取准确的数据。 特别是,我们的方法可以肯定地提取出与DLG相反的地面标签,因此我们将其命名为改进的DLG(iDLG)。 我们的方法适用于任何在单热标签上经过交叉熵损失训练的可微模型。 我们以数学方式说明了我们的方法如何从梯度中提取地面标签,并通过经验证明了其优于DLG的优势。 实验 数据集 戴高乐 iDLG MNIST 89.9%

梯度消失和梯度爆炸_人脑是怎么防止梯度消失和梯度爆炸的?

↑ 点击蓝字关注极市平台来源丨知乎问答编辑丨极市平台本文部分授权自知乎问答,仅用于学术分享,著作权归作者所有。极市导读梯度消失和梯度爆炸一直是深度学习的难点,而人脑有接近900亿个神经元,可以说是一个非常规模庞大的网络。那么人脑是如何防止梯度消失和梯度爆炸的?极市小编在知乎上发现了这个有意思的问题,分享给大家思考。>>加入极市CV技术交流群,走在计算机视觉的最前沿观点一作...

weixin_39744240的博客 213

生成式引擎优化(GEO)标准化操作流程:构建高效AI生成系统的全链路指南

GEO是针对生成式AI的内容优化策略,通过提升内容在AI生成答案中的引用优先级实现品牌传播。相比传统SEO,GEO使内容直接嵌入AI答案,无需用户点击链接。核心流程包括:1)逆向拆解AI问答场景,结构化知识资产;2)生产权威内容(白皮书、专利数据)和算法适配内容(PCOE模板);3)技术实现(数据投喂、模型微调);4)331渠道分发策略;5)效果监控与动态防御。需注意采用结构化数据标记、主动提交训练数据,并避免简单复制SEO策略。2025版强调内容权威性和语义优化,通过AI原生内容工程实现高效曝光。

解锁AI流量新红利!🚀 GEO优化(生成引擎优化)助您掌控AI搜索,让AI成为您的品牌最佳代言人! 1167

国密USB Key开发实战:SKF库调用全流程解析(附代码示例)

本文详细解析了国密USB Key开发中SKF库的调用全流程,涵盖从设备枚举、应用容器遍历到数字签名与验证的核心步骤。通过实战代码示例,深入探讨了SKF库的层次化模型、SM2签名实现细节以及纯软件验签方案,为开发电子签章、安全登录等合规应用提供了一套完整的调用开发指南。

oo7890的博客 527

人脑是怎么防止梯度消失和梯度爆炸的

神经网络,也称为人工神经网络 (ANN) 或模拟神经网络 (SNN),是机器学习的子集,并且是深度学习算法的核心。其名称和结构是受人类大脑的启发,模仿了生物神经元信号相互传递的方式。

小舟的博客 401

WIFI基础入门--802.11g--增强速率物理层ERP--15

WIFI基础入门--802.11--增强速率物理层--191.802.11g的组件保护机制 1.802.11g的组件 802.11g其实是将好几种物理层规范合而为一。虽然统称为增强速率物理层(Extended Rate PHY简称ERP),但是实际上ERP有好几种不同的方式: ERP-DSSS与ERP-CCK 这两种模式向下兼容于原始直接序列规范(1Mbps与2Mbps),以及所提到的802.11...

香蕉一号 4619

梯度消失和梯度爆炸_人脑是怎么防止梯度消失和梯度爆炸的

导读梯度消失和梯度爆炸一直是深度学习的难点,而人脑有接近900亿个神经元,可以说是一个非常规模庞大的网络。那么人脑是如何防止梯度消失和梯度爆炸的?极市小编在知乎上发现了这个有意思的问题,分享给大家思考。观点一感觉这个问题跟我的科研方向有一点关系,所以就厚着脸皮强答一波了。(1)动物的神经元都是以脉冲的形式进行信息交流的,而脉冲是离散的,所以从数学角度人脑(往大了说就是动物)交换信息的方...

weixin_39679468的博客 180

LabVIEW多界面应用开发:从启动器到主界面的切换架构与实现

在图形化编程领域,模块化与界面管理是构建复杂应用程序的核心。其原理在于通过清晰的程序架构,实现不同功能模块间的独立运行与协同工作,从而提升代码的可维护性和可扩展性。这种架构的技术价值在于能够有效管理应用程序的生命周期与资源,避免内存泄漏,并确保流畅的用户体验。在测控系统、自动化测试等工程实践中,常需实现如启动界面选择语言或模式后,无缝切换至主功能界面的场景。本文聚焦于LabVIEW环境,深入探讨如何利用动态调用、状态机等机制,并结合功能全局变量(FGV)与队列消息处理器(QMH)等热词技术,构建健壮的多界面

weixin_30802819的博客 263

TC3xx系列LMU与SPR实战:将关键算法从Flash搬移至PSPR提升5倍执行效率

在实际电机控制项目中,通过将FOC算法全部迁移到PSPR,我们不仅将执行时间从56μs降至11μs,还将最坏情况下的时间偏差控制在±0.3μs以内。实测数据:在TC397上执行Flash中的32位浮点矩阵乘法,平均每条指令需要8.7个周期,而同样的代码在PSPR中仅需1.2个周期。传统开发中,工程师往往将所有代码放在Flash中运行,这相当于让F1赛车在乡村公路上行驶。迁移后不仅平均执行时间缩短,更重要的是时间抖动从±15%降低到±2%以内,这对闭环控制系统至关重要。不是所有代码都适合迁移到PSPR。

weixin_31421613的博客 299

什么是梯度爆炸/梯度消失?

深度神经网络训练的时候,采用的是反向传播方式,该方式使用链式求导,计算每层梯度的时候会涉及一些连乘操作,因此如果网络过深。 那么如果连乘的因子大部分小于1,最后乘积的结果可能趋于0,也就是梯度消失,后面的网络层的参数不发生变化. 那么如果连乘的因子大部分大于1,最后乘积可能趋于无穷,这就是梯度爆炸 如何防止梯度消失? sigmoid容易发生,更换激活函数为 ReLU即可。 权重初始化用高斯初始化 如何防止梯度爆炸? 1 设置梯度剪切阈值,如果超过了该阈值,直接将梯度置为该值。 2 使用ReLU

浩瀚之水的专栏 2万+

Modbus 通信协议详解

Modbus是由 Modicon(现为施耐德电气公司的一个品牌)在 1979 年发明的,是全球第一个真正用于工业现场的总线协议。ModBus网络是一个工业通信系统,由带智能终端的可编程序控制器和计算机通过公用线路或局部专用线路连接而成。其系统结构既包括硬件、亦包括软件。它可应用于各种数据采集和过程监控。为更好地普及和推动Modbus在基于以太网上的分布式应用,目前施耐德公司已将Modbus协议的所有权移交给 IDA(,分布式自动化接口)组织,并成立了 Modbus-IDA 组织。

Projectsauron 的博客 7万+

梯度消失和梯度爆炸及解决方法

梯度消失和梯度爆炸的原因和解决办法

hollyprince的博客 1万+

【数据集】1980-2020年(5年)土地利用分类数据-中国科学院

简介1980-2020年每五年土地利用数据-中国科学院

WW、forever的博客 3934

华为OD新系统真题-最小极差分组(C/C++/Py/Java/Js/Go)

华为OD机试 新系统真题【最小极差分组】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题【最小极差分组】多语言题解。

qq_45776114的博客 594

深度学习中梯度消失和梯度爆炸的根本原因及其缓解方法

一、梯度消失和爆炸的根本原因 首先解释一下什么是梯度消失和梯度爆炸, 梯度消失:梯度趋近于零,网络权重无法更新或更新的很微小,网络训练再久也不会有效果; 梯度爆炸:梯度呈指数级增长,变的非常大,然后导致网络权重的大幅更新,使网络变得不稳定。 其实不管是梯度消失还是梯度爆炸本质上都是由于——深度神经网络的反向传播造成的。 可以通过两个角度去解释:一是在深层网络中,二是采用的激活函数导致的。 1. 深层网络角度 我们先来回顾一下神经网络反向传播的机理: 简单的三层神经网络 先看其中某一层的反算机制,上图中红色线

Oliver_jiang的博客 3万+

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

上一篇: 解析 | 如何从频域的角度解释CNN(卷积神经网络)?
下一篇: 惊呆了!这样可以将Numpy加速700倍!
机器学习算法那些事
博客等级 码龄9年 1633粉丝 62原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值