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

2020 年 10 月 25 日 极市平台
↑ 点击 蓝字  关注极市平台

来源丨知乎问答
编辑丨极市平台
本文部分授权自知乎问答,仅用于学术分享,著作权归作者所有。

极市导读

 

梯度消失和梯度爆炸一直是深度学习的难点,而人脑有接近900亿个神经元,可以说是一个非常规模庞大的网络。那么人脑是如何防止梯度消失和梯度爆炸的?极市小编在知乎上发现了这个有意思的问题,分享给大家思考。>>加入极市CV技术交流群,走在计算机视觉的最前沿


观点一

作者丨冒蓝火的加特林

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

(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

----

你对这个问题有什么看法?可以在留言去发表你的见解~


推荐阅读


【极市1024开发者节】
京东卡、算力棒、双肩包、20本CV电子书籍(人人有份),扫码查看

添加极市小助手微信(ID : cvmart2),备注:姓名-学校/公司-研究方向-城市(如:小极-北大-目标检测-深圳),即可申请加入极市目标检测/图像分割/工业检测/人脸/医学影像/3D/SLAM/自动驾驶/超分辨率/姿态估计/ReID/GAN/图像增强/OCR/视频理解等技术交流群:月大咖直播分享、真实项目需求对接、求职内推、算法竞赛、干货资讯汇总、与 10000+来自港科大、北大、清华、中科院、CMU、腾讯、百度等名校名企视觉开发者互动交流~

△长按添加极市小助手

△长按关注极市平台,获取 最新CV干货

觉得有用麻烦给个在看啦~   
登录查看更多
2

相关内容

误差梯度是神经网络训练过程中计算的方向和数量,用于以正确的方向和合适的量更新网络权重。 在深层网络或循环神经网络中,误差梯度可在更新中累积,变成非常大的梯度,然后导致网络权重的大幅更新,并因此使网络变得不稳定。在极端情况下,权重的值变得非常大,以至于溢出,导致NaN值。网络层之间的梯度(值大于 1.0)重复相乘导致的指数级增长会产生梯度爆炸。
专知会员服务
19+阅读 · 2020年12月9日
【Google】梯度下降,48页ppt
专知会员服务
79+阅读 · 2020年12月5日
【Cell 2020】神经网络中的持续学习
专知会员服务
59+阅读 · 2020年11月7日
最新《多任务学习》综述,39页pdf
专知会员服务
259+阅读 · 2020年7月10日
【KDD2020】自适应多通道图卷积神经网络
专知会员服务
119+阅读 · 2020年7月9日
【CVPR2020】用多样性最大化克服单样本NAS中的多模型遗忘
模型压缩究竟在做什么?我们真的需要模型压缩么?
专知会员服务
27+阅读 · 2020年1月16日
神经网络原来是这样和数学挂钩的
遇见数学
8+阅读 · 2019年5月21日
脉冲神经网络与小样本学习【附PPT】
人工智能前沿讲习班
46+阅读 · 2019年2月1日
干货 | 深入理解深度学习中的激活函数
计算机视觉life
16+阅读 · 2019年1月29日
人工神经网络真的像神经元一样工作吗?
论智
9+阅读 · 2018年11月15日
SNN,像你的大脑一样工作
中国科学院自动化研究所
80+阅读 · 2018年11月7日
一文读懂LSTM和循环神经网络
七月在线实验室
8+阅读 · 2018年4月18日
入门 | 一文了解神经网络中的梯度爆炸
机器之心
8+阅读 · 2017年12月22日
人工神经网络是否模拟了人类大脑?
数说工作室
9+阅读 · 2017年7月19日
Arxiv
0+阅读 · 2021年1月27日
Arxiv
3+阅读 · 2019年3月15日
LARNN: Linear Attention Recurrent Neural Network
Arxiv
5+阅读 · 2018年8月16日
Arxiv
8+阅读 · 2018年1月19日
Arxiv
5+阅读 · 2016年10月24日
VIP会员
相关VIP内容
专知会员服务
19+阅读 · 2020年12月9日
【Google】梯度下降,48页ppt
专知会员服务
79+阅读 · 2020年12月5日
【Cell 2020】神经网络中的持续学习
专知会员服务
59+阅读 · 2020年11月7日
最新《多任务学习》综述,39页pdf
专知会员服务
259+阅读 · 2020年7月10日
【KDD2020】自适应多通道图卷积神经网络
专知会员服务
119+阅读 · 2020年7月9日
【CVPR2020】用多样性最大化克服单样本NAS中的多模型遗忘
模型压缩究竟在做什么?我们真的需要模型压缩么?
专知会员服务
27+阅读 · 2020年1月16日
相关资讯
神经网络原来是这样和数学挂钩的
遇见数学
8+阅读 · 2019年5月21日
脉冲神经网络与小样本学习【附PPT】
人工智能前沿讲习班
46+阅读 · 2019年2月1日
干货 | 深入理解深度学习中的激活函数
计算机视觉life
16+阅读 · 2019年1月29日
人工神经网络真的像神经元一样工作吗?
论智
9+阅读 · 2018年11月15日
SNN,像你的大脑一样工作
中国科学院自动化研究所
80+阅读 · 2018年11月7日
一文读懂LSTM和循环神经网络
七月在线实验室
8+阅读 · 2018年4月18日
入门 | 一文了解神经网络中的梯度爆炸
机器之心
8+阅读 · 2017年12月22日
人工神经网络是否模拟了人类大脑?
数说工作室
9+阅读 · 2017年7月19日
相关论文
Top
微信扫码咨询专知VIP会员