Reading Note「2」 Deep Residual Learning for Image Recognition

很久之前看的ResNet,现在对它粗略的整理一下。

Link: ResNet


首先在训练层数很深的神经网络的时候会存在两个问题。

  • Q_1: 梯度爆炸 / 梯度消失 「Gradient Exploding / Gradient Vanishing」
    在back propagation中链式法则求导的公式如下所示
back propagation

\sigma^{'}表示的是对激活函数的求导,激活函数可以是sigmoid以及更常用的ReLU,其中对于sigmoid求导的最大值是1/4,而对于relu求导的最大值是1,同时权重w是通常是通过正态分布的方式产生的,所以w的值大多数分布在0附近,从而导致\prod{w}的值很小,从而出现了梯度消失的现象。而如果恰好w的值比较大(相比于1),那么就会导致\prod{w}出现爆炸的现象。

但是这个问题已经被「Batch Normalization」解决了。通过对每一层的参数进行Normalize,利用标准差\sigma来scale对应的权重,使得小的权重变大,大的权重变小,从而缓解了梯度消失或者是梯度爆炸的现象。

More details: https://www.zhihu.com/question/38102762/answer/391649040

  • Q_2: 随着网络层数的增加,网络的效果急速下降 「Degradation」

这是一位违反直觉「Counterintuitive」的现象:
经过大量的实验证明,对于普通的网络「Plain Network」,如果存在一个已经训练好的最优网络(结构和参数都已经确定),若再继续堆叠网络神经元,那么会导致整个网络的表现变得更差,但是子网络的Output Space应该是父网络的Output Space的子集,因为只需要将剩下的层改为恒等变化「即输入等于输出」,也就是说继续堆叠后的网络的Output Space中应该至少存在与先前最优网络相同的解,只是无法训练得到。

观察Fig.1的左边的网络,如果由浅层网络输出的结果x已经达到了最优解,那么只需要将接下来的两层神经层训练为Identity Map,即恒等变换就可以保证输出的结果不会变差,但是实际上出现的现象就是,堆叠更多的网络层会导致Degradation。「作者在论文中一开始是认为,更深的网络由于其梯度下降的比较慢所以使得效果变差,因此尝试利用3倍的迭代次数进行训练,但是效果仍然没有变好,因此他认为不能将这个问题简单地归咎于梯度下降速度慢。」

面对这个Degradation的现象,作者认为两层网络拟合一个Identity Map的难度比较大,因此作者放弃了拟合恒等变换而拟合残差「Residual」F(x)=H(x)-x,如果浅层的输出x真的已经达到了最优,那么只需要让新堆叠的网络层拟合全0的输出(F(x)=0)即可,而拟合全0相比于拟合一个恒等变换的难度大大减小。在真实的情况中,往往并不会真正只要求一个恒等变换,但是由于在深层网络中前面几层的网络已经拟合了大部分内容,而后面叠加的新网络只需要对前面的输出学习一些比较小的扰动「Perturbations」即可,因此这个学习也是比较容易的。

所以作者建立了一个如图Fig.1 右边所示的block,将浅层网络的输出直接通过skip connection直接送到后面。

Fig.1

整个Residual Block的优点如下所示

    1. 使整个网络训练更敏感,对细节更敏感
      在plain network中,学习的目标是函数H,例如需要学习的是H(5) = 5.1,但是在Residual Network中,需要学习的是函数F(也就是残差 Residual,因为目标是H(x),已拥有x,那么残差就是F(x) = H(x) - x),所以需要学习F(5) = H(5) - 5 = 0.1。现在考虑如果学习目标变化为H(5) = 5.2,那么在Plain Network中造成的变化是2%,而在Residual Network中学习F(5) = 0.2,变化了100%,所以Residual Network对变化更敏感。
    1. 更容易学习
      从数学上来说,论文作者简单地比较了残差结构和常规结构在求解本征映射(identity map)时的优化难度,显然求解F(x)=0比求解H(x) = x容易得多。也就是说,假设已有的浅层网络结构已经最优化,我们的目标只要使堆叠的深层网络是个identity network即可,所以在Plain Network中是需要H(x) = x,而Residual Network则只需F(x)=0。
    1. 解决了梯度消失/爆炸
      我们可以知道ResNet的可以简单的表示为如下所示
      x_{l+1}=x_l+F(x_l, W_l)
      其中x_{l+1}/x_l分别表示的是第l层的输出以及输入,那么对于并不相连的第L层以及l层,对应学习的特征可以表示为
      x_L = x_{L-1}+F(x_{L-1}, W_{L-1})=x_{L-1} + x_{L-2}+F(x_{L-2}, W_{L-2})=x_l+\sum_{i=l}^{L-1}F(x_i, W_i)
      接下来在反向梯度求导的过程中,当最后的loss在x_l处求导,可得
      \frac{\partial loss}{\partial x_l}=\frac{\partial loss}{\partial x_L}·\frac{\partial x_L}{\partial x_l}=\frac{\partial loss}{\partial x_L}·\frac{\partial (x_l+\sum_{i=l}^{L-1}F(x_i, W_i))}{\partial x_l}=\frac{\partial loss}{\partial x_L}·(1+\ ...)
      上面这个式子没有写全,但是我们可以看到求出的导数是在L层的导数乘上括号内的数,存在一个1,就表示L层的梯度可以直接无损地向后传播。
Bottleneck

当我们更加细致的观察ResNet的细节的时候,我们能够发现ResNet中还使用了一个「Bottleneck」模块,如上图所示,充分地利用了单位卷积核,输入数据的维数(如原先是256维)先被减少(变为64维),然后使得一个size比较大的卷积核能够在比较小的维度上进行操作,然后再利用一个单位卷积核将减小的维度(64维)重新放大到原来的样子(256维)。从而能够在处理更加大的维度的特征的同时,保持一个比较小的计算时间。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,951评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,606评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,601评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,478评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,565评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,587评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,590评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,337评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,785评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,096评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,273评论 1 344
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,935评论 5 339
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,578评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,199评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,440评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,163评论 2 366
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,133评论 2 352