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

文 | 极市平台

源 | 知乎问答


导读

梯度消失和梯度爆炸一直是深度学习的难点,而人脑有接近900亿个神经元,可以说是一个非常规模庞大的网络。那么人脑是如何防止梯度消失和梯度爆炸的?

观点一

作者丨冒蓝火的加特林

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

(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

后台回复关键词【入群

加入卖萌屋NLP/IR/Rec与求职讨论群

有顶会审稿人、大厂研究员、知乎大V和妹纸

等你来撩哦~

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

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

相关文章

史上最全java架构师技能图谱(下)

“java架构史上最全技能图谱分为上下两篇,这是java架构史上最全图谱下篇,包含: 大数据以及性能、设计模式、UML、中间件、分布式集群、负载均衡、通讯协议、架构设计等技术图谱等章节。 如果需要上篇内容:数结构算法、java进阶、…

Git基本指令

一、创建本地仓库进行版本控制 在工作区 local_repository 新建readme.txt文件: git init :初始化一个空的本地仓库,并在本地仓库生成了.git 文件git add readme.txt :将文件放到暂存区,表示这个文件受git管理git co…

LeetCode 21. 合并两个有序链表(单链表)

文章目录1. 题目信息2. 解题1. 题目信息 将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例:输入:1->2->4, 1->3->4 输出:1->1->2->3->4->4来源&#xff1a…

一文读懂最强中文NLP预训练模型ERNIE

基于飞桨开源的持续学习的语义理解框架ERNIE 2.0,及基于此框架的ERNIE 2.0预训练模型,在共计16个中英文任务上超越了BERT和XLNet, 取得了SOTA效果。本文带你进一步深入了解ERNIE的技术细节。 一:ERNIE 简介 1.1 简介 Google 最近提出的 BER…

BERT原理、代码、相关模型、精调技巧,看这个就够了

星标/置顶小屋,带你解锁最萌最前沿的NLP、搜索与推荐技术2018 年 10 月,由 Google 推出的 BERT 模型一鸣惊人,刷爆了各路榜单,甚至超越了人类基线分数,实现了 NLP 领域里程碑式的突破。 如今,对于 NLP 算法…

论文浅尝 | 利用 KG Embedding 进行问题回答

论文笔记整理:吴杨,浙江大学计算机学院,知识图谱、NLP方向。http://research.baidu.com/Public/uploads/5c1c9a58317b3.pdf动机本文主要针对基于知识库的问题回答中的简单问题,也就是问题的答案只涉及KG中的一跳,此类问…

想成为阿里160万年薪的P8架构师?你必须掌握如下6大技能体系!

程序设计和开发 数据结构和算法:常用数据结构,排序,检索等 面向对象编程、设计模式,掌握建模语言和建模工具:UML、MVC编程思想 高质量编码能力:重用性,低耦合,可扩展性&#xff0c…

技术动态 | 知识图谱的策展

作者:Jiaoyan Chen, Senior Researcher, Department of Computer Science, University of Oxford, Research interests: Knowledge Base, Knowledge-based Learning, Machine Learning Explanation.知识图谱在众多的领域中发挥了重要作用,比如聊天机器人…

21届校招薪资曝光:严重倒挂老员工!

源 | 量子位一开始,还以为是科技互联网公司招聘的新把式。因为就在最近,一张美团应届生薪资的截图,在各大社区和校招群里火了。仅仅算法岗、开发岗的薪资白菜价,就有27k15.5,算下来,年薪就有41万。虽然这两…

从Java程序员进阶到架构师,6大核心技能要领详解

“ java架构师技能将分为如下6大环节:数据结构和算法,Java高级特性,Java web核心,数据库,Java框架与必备工具,系统架构设计。 希望能真正帮助到从程序员进阶到架构师之路的朋友。 数据结构和算法 算法分…

领域应用 | ​英文抗生素药物医学知识图谱 IASO1.0 版发布 线上试用正式启动

本文转载自公众号:PKU自然语言处理前沿。近日,由北京大学互联网信息工程研发中心(CIRE)开发的英语医学知识图谱英文抗生素药物医学知识图谱IASO1.0发布,面向公众正式开放试用。IASO是利用自然语言处理与文本挖掘技术&a…

谷歌大改Transformer注意力,速度大涨,显存大降!

源 | 机器之心导读考虑到 Transformer 对于机器学习最近一段时间的影响,这样一个研究就显得异常引人注目了。Transformer 有着巨大的内存和算力需求,因为它构造了一个注意力矩阵,需求与输入呈平方关系。谷歌大脑 Krzysztof Choromanski 等人最…

阿里P7架构师要求:Web核心+开源框架+大型网站架构!含面试题目!

阿里P7技能(一):数据结构和算法: 常用数据结构:链表、堆与栈、哈希表等,常用的排序等。 掌握:精通 阿里P7技能(二):java高级 java相关的高级特性&#xff1…

LeetCode 986. 区间列表的交集

文章目录1. 题目信息2. 解题1. 题目信息 给定两个由一些闭区间组成的列表&#xff0c;每个区间列表都是成对不相交的&#xff0c;并且已经排序。 返回这两个区间列表的交集。 &#xff08;形式上&#xff0c;闭区间 [a, b]&#xff08;其中 a < b&#xff09;表示实数 x …

论文浅尝 | 学习开发知识图谱中的长期关系依赖 - ICML 2019 ​

本文转载自公众号&#xff1a;南大Websoft。 论文&#xff1a;https://arxiv.org/abs/1905.04914代码&#xff1a;https://github.com/nju-websoft/RSN背景知识图谱结构化地存储着大量现实世界中的事实。其中&#xff0c;每个事实都以三元组 (s, r, o) 的方式进行描述&#xf…

一张图看懂小米千亿美金生态链产品

小米上市近在眼前&#xff0c;最快5月初提交IPO申请&#xff0c;再到小米IPO股指不断攀升&#xff0c;估值直奔1000亿美金以上&#xff0c;小米用了7年时间&#xff0c;这在整个互联网的发展史上&#xff0c;也算是火箭般的发展速度。 今天我们一起复盘看看小米的千亿美金生态…

Pycharm使用远程服务器运行代码

pycharm下载专业版&#xff0c;然后用学生邮箱申请个激活码&#xff08;我这里申请了个账号&#xff0c;更方便&#xff09;。 连上厦大VPN&#xff0c;再用pycharm高级版可以直接连到学校的GPU服务器&#xff0c;这样平时不在学校也能调试服务器了。 厦大VPN设置 pycharm下载…

吐槽贴:用ELECTRA、ALBERT之前,你真的了解它们吗?

文 | 苏剑林单位 | 追一科技编 | 兔子酱在预训练语言模型中&#xff0c;ALBERT和ELECTRA算是继BERT之后的两个“后起之秀”。它们从不同的角度入手对BERT进行了改进&#xff0c;最终提升了效果&#xff08;至少在不少公开评测数据集上是这样&#xff09;&#xff0c;因此也赢得…

LeetCode 56. 合并区间(优先队列)

文章目录1. 题目信息2. 解题2.1 报错的答案2.2 优先队列解题1. 题目信息 给出一个区间的集合&#xff0c;请合并所有重叠的区间。 示例 1:输入: [[1,3],[2,6],[8,10],[15,18]] 输出: [[1,6],[8,10],[15,18]] 解释: 区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6]. 示例 2:输入…