摘要:最近在总结完成语义分割任务的轻量级神经网络时,看到了中对于层的思考,于是我也回过头重新审视之所以的本质原因。本质上就干了一件事降低数据中信息的冗余度。从本文的观点来看,因为从数据中拿掉了非冗余信息的部分,会导致余下部分的信息冗余度变高。
最近在总结完成语义分割任务的轻量级神经网络时,看到了 MobileNet V2 中对于 ReLU 层的思考,于是我也回过头重新审视 ResNet 之所以 work 的本质原因。以下是一些个人的见解,如有错误,还望及时指正。
在谈及 ResNet 之前,我们先聊聊故事的背景。
我们知道,在神经网络中,非线性激活层可以为模型引入了非线性,让模型具有更强的拟合能力。如果只是单纯的线性操作层的叠加,则完全可以等价为一个线性层,这就浪费了深度神经网络的一身好本领。
所谓针无两头尖,那么非线性激活层会带来一些什么问题呢?我们以 ReLU 为例来进行说明,其他非线性激活层亦同理。
首先,最直观的,从实验中我们可以注意到一个事实:ReLU 会造成的低维数据的坍塌(collapse)。顾名思义,即是说,低维度的 feature 在通过 ReLU 的时候,这个 feature 会像塌方了一样,有一部分被毁掉了,或者说失去了。能恢复吗?能,但是基本无法百分百还原了。
具体表现出来就是:若是我们对一个 feature,先通过一个给定的变换规则 T,将它映射到它的 embedding space 中,再在该 embedding space 中,利用一个 ReLU 去处理该 feature,最后再把这个 feature 以同样的变换规则(逆方向)给映射回原始空间,我们会发现,这时,这个 feature 已经变得连亲妈都不认得了。如图↓
图片来自《MobileNetV2: Inverted Residuals and Linear Bottlenecks》
ReLU 这个东西,其实就是一个滤波器,只不过这个滤波器的作用域不是信号处理中的频域,而是特征域。那么滤波器又有什么作用呢?维度压缩,俗话说就是降维啦:如果我们有 m 个 feature 被送入 ReLU 层,过滤剩下 n 个(n 那么,为什么低维数据流经非线性激活层会发生坍塌(信息丢失),而高维数据就不会呢? 打个简单但不严谨的比方:大家都有过年抢高铁票的经验吧?几个人(维度低)帮你抢一张票,肯定没有一群人(维度高)帮你抢一张票,成功的概率高啊。几个人里面,大概率全军覆没,没一个能帮上你忙的。而一群人里面,大概率总有那么一个手速惊人的单身青年,帮你抢到你心心念念的回家票。 在数据上也是一个道理,维度低的 feature,分布到 ReLU 的激活带上的概率小,因此经过后信息丢失严重,甚至可能完全丢失。而维度高的 feature,分布到 ReLU 的激活带上的概率大,虽然可能也会有信息的部分丢失,但是无伤大雅,大部分的信息仍然得以保留。所谓留得青山在,不愁没柴烧嘛。更何况被 ReLU 截杀的信息,可能只是一些无用游民(冗余信息)。 那么数据的坍塌,是个很严重的事吗? 那事儿可大了。如果把神经网络比作一个人的话,你这就是给它的某个部位的血管里,丢了个血栓。 当信息无法流过 ReLU 时,该神经元的输出就会变为 0。而在反向传播的过程中,ReLU 对 0 值的梯度为 0,即发生了梯度消失,这将导致神经元的权重无法再通过梯度下降法进行更新,这种现象被称为特征退化。所以这个神经元相当于死掉了,丧失了学习能力。我们说,一旦神经元的输出陷入 0 值,就无法恢复了。 那么,我们应该怎么去规避数据的坍塌呢?非线性激活层到底是个什么样的东西? 其实,对于一个数据,利用非线性激活层对其进行激活,其实是从该数据的信息中提取出其潜在的稀疏性,但是这种提取的结果是否正确,就要分情况讨论了。 对于一个 M 维的数据,我们可以将其看成是在 M 维空间中的一个 M 维流形(manifold)。而其中的有用信息,就是在该 M 维空间中的一个子空间(子空间的维度记为 N 维,N<=M)中的一个 N 维流形。非线性激活层相当于压缩了这个 M 维空间的维度(还记得前面提过的维度压缩吗?)。若是该 M 维空间中的 M 维流形本来就不含有冗余信息(M=N),那么再对其进行维度压缩,必然导致信息的丢失。 而维度低的数据其实就是这么一种情况:其信息的冗余度高的可能性本来就低,如果强行对其进行非线性激活(维度压缩),则很有可能丢失掉有用信息,甚至丢失掉全部信息(输出为全 0)。 与非线性激活层不同的是,线性激活层并不压缩特征空间的维度。于是,我们得到了一条使用激活层的原则: 对含有冗余信息的数据使用非线性激活(如 ReLU),对不含冗余信息的数据使用线性激活(如一些线性变换)。 两种类型的激活交替灵活使用,以同时兼顾非线性和信息的完整性。 由于冗余信息和非冗余信息所携带的有用信息是一样多的,因此在设计网络时,对内存消耗大的结构较好是用在非冗余信息上。 根据以上的原则设计出来的结构,聪明的你想到了什么?ResNet。不得不赞叹 Kaiming He 的天才,ResNet 这东西,描述起来固然简单,但是对它的理解每深一层,就会愈发发现它的精妙及优雅,从数学上解释起来非常简洁,非常令人信服,而且直切传统痛点。 ResNet 本质上就干了一件事:降低数据中信息的冗余度。 具体说来,就是对非冗余信息采用了线性激活(通过 skip connection 获得无冗余的 identity 部分),然后对冗余信息采用了非线性激活(通过 ReLU 对 identity 之外的其余部分进行信息提取 / 过滤,提取出的有用信息即是残差)。 其中,提取 identity 这一步,就是 ResNet 思想的核心。 从本文的观点来看,因为从数据中拿掉了非冗余信息的 identity 部分,会导致余下部分的信息冗余度变高。这就像从接近饱和的溶液中移走了一部分溶质,会使得剩下的溶液的饱和度降低,一个道理。 在这里也引用一下其他的一些观点,方便大家可以从一个更全面的角度去看这个问题: 从特征复用的观点来看,提取 identity 部分,可以让网络不用再去学习一个 identity mapping(虽然是一样的东西,但是毕竟又要从头学起,讲真,换你来试试,这其实真的不容易学到),而是直接学习 residual。这就轻松愉快多了:站在巨人的肩膀上,做一点微小的工作什么的... 既然说了 ResNet 解决的痛点,也顺便多说几句它带来的好处: 由于 identity 之外的其余部分的信息冗余度较高,因此在对其使用 ReLU 进行非线性激活时,丢失的有用信息也会较少,ReLU 层输出为 0 的可能性也会较低。这就降低了在反向传播时 ReLU 的梯度消失的概率,从而便于网络的加深,以大大地发挥深度网络的潜能。 特征复用能加快模型的学习速度,因为参数的优化收敛得快(从 identity 的基础上直接学习残差,总比从头学习全部来得快)。 最后是两个小 tips: 如果一个信息可以完整地流过一个非线性激活层,则这个非线性激活层对于这个信息而言,相当于仅仅作了一个线性激活。 解决由非线性激活导致的反向传播梯度消失的窍门,就是要提高进行非线性激活的信息的冗余度。 如果您觉得本文对您有所帮助,请高抬贵手点个赞~ 接下来会填之前语义软分割的坑和图神经网络的坑,还有一些杂七杂八的:如姿态估计网络啦、deepSLAM 啦、视觉跟踪网络啦、VQA 啦... 最近光忙着看 paper 和写笔记了,有空再整理后发上来。 以上。
商业智能与数据分析群
兴趣范围包括各种让数据产生价值的办法,实际应用案例分享与讨论,分析工具,ETL工具,数据仓库,数据挖掘工具,报表系统等全方位知识
QQ群:81035754
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/4865.html
摘要:大神何恺明受到了质疑。今天,上一位用户对何恺明的提出质疑,他认为何恺明年的原始残差网络的结果没有被复现,甚至何恺明本人也没有。我认为,的可复现性经受住了时间的考验。 大神何恺明受到了质疑。今天,Reddit 上一位用户对何恺明的ResNet提出质疑,他认为:何恺明 2015 年的原始残差网络的结果没有被复现,甚至何恺明本人也没有。网友称,他没有发现任何一篇论文复现了原始 ResNet 网络的...
摘要:前面我们通过几个数值展示了几个比较经典的网络的一些特性,下面我们就花一点时间来仔细观察网络的变化,首先是在网络结构上的一些思考,其次是对于单层网络内部的扩展,最后我们再来看看对于网络计算的改变。和这类结构主要看中的是模型在局部的拟合能力。 前面我们通过几个数值展示了几个比较经典的网络的一些特性,下面我们就花一点时间来仔细观察CNN网络的变化,首先是VGG在网络结构上的一些思考,其次是Ince...
摘要:在当前的背景下,卷积神经网络提出之后,深度成为人们要追求的目标。同时,残差网络也很好的解决了梯度下降中的梯度弥散的问题。经典网络目前最主经典的残差网络莫过于。 注:整理自各个博客,并且添加个人理解 随着卷积神经网络的发展和普及,网络深度和架构研究早已经成为人们常见的问题,所以,现在卷积神经网络的趋势发展趋势就是:足够深、足够广。足够深就是网络层数足够深,足够广就意味着不能从传统尺度...
摘要:然而,幸运的是,目前更为成功的目标检测方法是图像分类模型的扩展。几个月前,发布了一个用于的新的目标检测。 随着自动驾驶汽车、智能视频监控、人脸检测和各种人员计数应用的兴起,快速和准确的目标检测系统也应运而生。这些系统不仅能够对图像中的每个目标进行识别和分类,而且通过在其周围画出适当的边界来对其进行局部化(localizing)。这使得目标检测相较于传统的计算机视觉前身——图像分类来说更加困难...
摘要:分组卷积的思想影响比较深远,当前一些轻量级的网络,都用到了分组卷积的操作,以节省计算量。得到新的通道之后,这时再对这批新的通道进行标准的跨通道卷积操作。 CNN从2012年的AlexNet发展至今,科学家们发明出各种各样的CNN模型,一个比一个深,一个比一个准确,一个比一个轻量。作者对近几年一些具有变革性的工作进行简单盘点,从这些充满革新性的工作中探讨日后的CNN变革方向。本文只介绍其中具有...
阅读 3208·2021-11-12 10:36
阅读 1258·2019-08-30 15:56
阅读 2442·2019-08-30 11:26
阅读 550·2019-08-29 13:00
阅读 3608·2019-08-28 18:08
阅读 2748·2019-08-26 17:18
阅读 1892·2019-08-26 13:26
阅读 2431·2019-08-26 11:39