Understanding intermediate layers using linear classifier probes (2016)摘要

G. Alain & Y. Bengio
原文地址
https://arxiv.org/abs/1610.01644

众所周知,大多数时候神经网络模型的内部运算不可测,这篇论文提出了“linear classifier probe”来分析神经网络中间层在整个网络中的作用。由于很多神经网络用于线性分类(或者说各个神经层最终都会导入一个线性分类器中,使用一个线性函数来分析各层的作用是合理的。

论文主要研究三个问题:

  1. 当我们增加层数时,会发生什么?
  2. 如果神经网络有多个分支,信息会如何传递?
  3. 辅助损失(auxiliary losses)有用吗? 如果神经网络有多个分支,信息会如何传递? 辅助损失(auxiliary losses)有用吗?

论文从香农熵开始,提出第一个问题:给出一个含有数据(X,Y)的多层感知机,关于目标Y,中间层是否比X有更多的信息量?
答案是否。

假设上图,Y和A代表各随机变量,根据条件熵,可得:

可推论,在多层感知机中,越深入,信息损失就越大。

“Probe”线性函数:


其中,h∈H是一些隐藏层的特征, [0,1]^d即目标分类的独热码空间,W和b即probe的权值。
Probe插入感知机的结构如下:

Yk为各项线性函数,Hk为各层。每层到Probe中间连接的二极管符号仅指代梯度参数不会反向传递,所以probe不会对模型的参数产生影响。

将这个模型用于检测auxiliary loss的作用

作者使用了128各全连接层,每个连接层有128个隐藏神经元作用于MNIST数据集,使用Glorot initialization和leaky ReLU。在这个过深的模型的基础上,作者在各层都添加了probe


由结果图可见,随着深度提高,模型的准确率越低。在添加auxiliary loss前,通常的gradient descent的方法不能成功训练这个模型。但当添加了这些losses,模型依然达到了一定的效果。

将这个模型用于检测skip connection的作用

在原有的模型中加入一个从第0层到第64层的跳跃连接。
从结果图中可见,被skip connection跳过的部分(左半部分)在训练中被完全忽视了。在这个分支结构中,为了达成预期的结果,一条分支被基本忽视了。

(所有图片摘自原文)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值