美文网首页
CNN可解释性从入门到放弃

CNN可解释性从入门到放弃

作者: jiandanjinxin | 来源:发表于2019-10-30 18:31 被阅读0次

    Kuo 是机器学习的前辈,看不惯几年来的调参浪潮,因此自己开疆拓土提出了一套不用反向传播(用传统方法 PCA)的 CNN。虽然我不敢苟同,但是一代人有一代人熟悉的方法,这个世界需要弄潮儿,也需要摆渡人。

    Kuo 对 CNN 的认识

    尽管 CNN 已经取得了 state-of-the-art 的地位,但是仍然存在一些问题:over-parameters:大量的参数进行反向传播,数学上难以解释;numerous tricks:复杂的网络结构、Dropout 等让网络变得难以理解;sensitivitity:受到攻击时鲁棒性差。

    针对这些问题 Kuo 搞了一个新的 CNN 模型 FF CNN,模型有三个优点:不需要反向传播,因此速度更快,资源占用少;每一个 layer 可解释,layer 也不多,没有深度学习的黑箱;是一个半监督(甚至可以是无监督)模型,不依赖于 label。

    Kuo 正在改进的缺点有:准确率目前略低于带有 BP CNN,但是仍有提升空间;虽然没有明确说明,但是模型应该是 problem special 的,需要根据数据集特点手动调整。

    此外,Kuo 设计了两个方面的实验对比 FF CNN 和 BP CNN:分类问题的准确率、受到攻击时的鲁棒性。

    FF CNN 的设计

    CNN 的含义

    image

    CNN 是一系列的特征映射。这些特征映射可以分为升维和降维两类。

    大多数时候都是在降维,少数时候是在升维。其中,升维是在扫描整个图像,得到尽可能多的有效特征。降维则是从当前特征中选择最有效的特征。升维的方法有卷积。降维的方法有PCA、pooling。保持维度,增强特征的方法有激活函数、全连接(也可以用于降维)。

    卷积的含义

    image

    对于卷积公式我们可以这样理解训练参数 [图片上传失败...(image-281cf0-1572431090839)]

    :对于传统的 BP CNN,它是过滤器的权重(需要优化的参数),求过滤器的权重与输入数据的内积即为匹配过滤器的过程。我们还可以这样考虑,将它当作一组线性空间的基,求基与输入数据的积即为特征在低维空间的近似。

    image image.png

    池化的含义

    卷积帮助我们得到猫的模式,池化帮助我们选择猫的模式。池化会帮助我们选择众多模式中共有的部分。

    image

    比如,所有的 9 张猫都有相似的脸,池化就会抹掉其他信息,提取公共的猫脸。我们可以用统计分析模拟这个过程。

    这里 Kuo 解释了为何 max pooling 比 average pooling 更有效。这是因为 max pooling 能够提取窗格内较远的信息,从而更好的表征位置不同而形状相同的信息。比如,图中的猫脸位置稍有不同,但是在 pooling 的作用下都回到了画面中心。

    多层感知器的含义

    多层感知器在 CNN 中充当的是分类器的角色,每一个隐藏层都是一次映射,将输入降维。我们可以这样理解,每一次映射是从 intra-class 到 class 的过程,多次映射后获得所需维度的 class。

    image

    比如,第一次映射区分了蟒蛇、眼镜蛇、加菲猫、波斯猫,第二次映射区分了蛇和猫。多次映射后得到了在我们所需维度上的分类。

    我们可以使用 K-Means 模拟这一过程,对于一个 40 -> 20 -> 10 的多层感知器,我们可以使用 K-Means 聚 40 类、20 类、10 类,模拟每一个隐藏层的输入和输出。

    image

    有了每一层的输入和输出,我们可以使用最小平方回归(如上图),求解 intra-class 到 class 的映射过程。从而,将反向传递计算 [图片上传失败...(image-401532-1572431249509)]

    变成了解方程计算 [图片上传失败...(image-f088c1-1572431249509)]

    集成与叠加

    我们都知道,多层的 PCA 效果较差,因此 FF CNN 无法像 BP CNN 一样通过叠加 layer 提高对特征的表征能力。但是 Kuo 认为,可以通过集成(ensemble)多种 FF CNN 来提高 FF CNN 的性能。FF CNN 就像一个简单的小机器人,BP CNN 则是一个复杂的大机器人。FF CNN 通过量取胜,BP CNN 通过复杂性取胜。

    image

    在上图中,Kuo 构建了 3 种 FF CNN,在受到攻击时,可以采用多数投票制进行集成。一个小机器人被打倒,其他的机器人仍能存活下来。此外,Kuo 还列举了根据 RGB 设计 FF CNN 集成的方法。

    虽然 Kuo 没有阐述 FF CNN 在并行等领域的应用,这个模型效率高、能耗低,比 BP CNN 具有更大的并行可能,未来或许会在嵌入式等领域大放光彩。

    FF CNN 与 BP CNN 的应用场景抽象

    Kuo 最后的总结很正经,前辈客观地阐述了 FF 和 BP 的应用场景,批评了一些人(也就是我们这届差生 233)不分 data collection 青红皂白就上 BP 的做法。他说:

    FF 是一种 data-independent 模型,因此它高效,适合解简单问题。BP 是一种 data-driven 模型,因此它耗时,适合解复杂问题。

    我们拿到一个 dataset 的时候,没有人会跟你说这个 dataset 是简单还是复杂的,你的 dataset 可能不是 pure 的。

    如果你用 data-driven 模型,复杂的 data 可能会覆盖简单的 data 造成过拟合。如果你用 data-independent 模型,可能会因为无法表征复杂的 data 而效果较差。

    一切设计都要因 dataset 制宜。

    结束

    Kuo 发表了一篇论文“ Interpretable Convolutional Neural Networks via Feedforward Design”,表述严谨清晰,感兴趣可以了解一下。

    我很佩服这位前辈,手动把消耗大量算力的训练参数自己 “解” 了出来。现在,我们不止能对结果求交叉熵,对比预测结果和实际 label 的差异,还能在每一步计算 FF CNN 求得的参数和 BP CNN 训练的参数的差异。

    image

    从上图我们可以看出,这个解和BP求得的解仍有一定距离。

    参考文献

    https://zhuanlan.zhihu.com/p/51673309

    相关文章

      网友评论

          本文标题:CNN可解释性从入门到放弃

          本文链接:https://www.haomeiwen.com/subject/yqravctx.html