昨天, Google Brain 推了一篇十分有趣的 paper The building blocks of interpretability(中译: 画出黑盒子里的风景)本文在此简单介绍一下这篇有趣的 paper , 以及人们在开箱过程中做出的努力, 为什么我们迫切需要把深度学习的黑箱拆开, 这个工作有怎样的应用?
鬼畜的可视化万里长征第一步
被论文吓跑准备左上角的别动! 论文无非就是说了:
我终于知道我训练出来的神经元它是干啥的, 怎么干的
(。`Д´。)我擦, 干净利落!
大家知道机器学习是喂数据, 然后吐答案, 中间是我们的模型整个过程就是将我们需要的特征 (feature) 导入模型(比如我们用房子面积房子离市中心的距离等, 来得到一个房价)
然而在图像识别里, 比如说你要识别一只猫, 按照传统机器学习的思路就是把猫耳朵猫脑袋猫肚子猫毛毛猫的特征等一堆东西给全部做出来这特么不累死你? 机器学习的本意并非如此的机械化运动, 而卷积神经网络正好可以自动抓于是乎猫耳朵猫脑袋猫啥啥就全部的不用做了然后丢进模型中训练走起就好了然而问题就是,
我用卷积神经网络提出来的特征究竟是个什么鬼?
在大名鼎鼎的 CS231n 中, Justin Johnson 将模型得到的权重矩阵的行向量可视化, 得到了一串很鬼畜的图片这特么什么鬼? 在不远的过去, 就有大佬对每个神经元进行可视化, 希望得到究竟是哪些输入让这些神经元得到相对较高的响应(所谓的激活函数不就是这样的一个筛选响应的东西吗?)[2][3]
但是结果第一层是长这样的(这啥玩意?):
第一层神经网络
第二层是长这样的(这不是高中的时候观察的洋葱上表皮细胞的排列吗?):
感觉还是不大对劲, 我们看第四层好了, 哎呀挺好看的可是为什么长这样!!
神级的可视化:. 让你听懂神级网络做决定的原因
然而论文的工作就很厉害了, 它是怎么做的呢? 它们将神经元组合起来, 得到一个虽然这个图像狰狞, 但是我还是可以勉强看得懂你是个啥玩意的结果
论文给出了卷积神经网络提取出来的人能看得懂的特征(与之相对的是上面宛如洋葱表皮细胞的可视化), 就相当于我们在之前提到的手工提出花瓶是个啥特征(比如圆圆的, 肚子胖胖的等等), 哎呀这个你看, 我们通过得到的花瓶的几个特征里, 最像花瓶的可不是那一个吗? 而那一个特征, 还真的是置信概率最高的
更有意思的是你会发现其所甄别的特征对应的位置哎呀这下不就懂了吗?
两种解释
这种可解释性与丘成桐先生的工作不同 [4], 几何大佬丘成桐先生试图找到一个几何学观点下的对 GAN 的解释, 将成果以及凸几何类比[5] 认为 Discriminator 就是 WGAN 中判别器中计算 Wasserstein 距离, 而 Generator 用来计算 Brenier 势能认为 Brenier 势能可以用计算 Wasserstein 距离来得到[6]
而这个东西在低维下是根本不需要一个 GANs 的过程的(即 Generator VS Discriminator 得 Nash 均衡), 是有一个解析解的所以说丘成桐先生不一般, 他们的想法是通过最优传输理论及其各种降维近似, 直接取代神经网络, 从而使得黑箱透明
以上的解释是你别来了, 我用一堆东西来 Duang 的一下做的比你更好了, 整个过程严谨数学证明然而我们不能指望现阶段这样的工作一个个爆发然后疯狂运用, 这是不现实
丘成桐: 获得了数学界的诺贝尔奖 (菲尔茨奖) 的丘成桐先生是对近代拓扑学代数几何学等做出了巨大的贡献的人
算法权力
Google 的论文所提供的是一个权力解释权 [7] 即解释算法输出的权力, 这种权利主要是指个人权利可以解释为对个人有重大影响的决定, 尤其是法律上或财务上例如, 你说我想上清华, 然后清华拒绝了你你有权力知道为啥被拒了比如这个时候, 清华表示我们不要高考分没到咱们线上并且你又没自主招生加分 blahblahblah
在法律问题裁定上, 假如在以前, 我们用一个什么算法, 你说哇它老牛逼了但是有人不服咋办? 那么这个时候, 这个算法能够被认为是可接受作为判定凭证的吗? 俗话说的好, 骂人也要名正言顺的骂人
而问题更严重的是你能保证你的算法不偏不倚, 是个公正的算法吗? 算法就不能有偏见吗? OpenAI 和 DeepMind 提出一些质疑[8][9], 甚至有一些畅销书作家也提到类似的内容
例如我们的用来做法律裁定的算法中可能是输入一大堆个人信息, 例如有种族所住的街区等等, 输出是裁定的刑期假如某些群体他符合某些情况, 那么是不是因为算法的偏好而可能被判更长的刑期? 或者说, 你怎么能保证大量的输入数据中, 法官对其做出的判决是 100% 无偏见的呢?
这个时候 OpenAI 和 DeepMind 就认为, 搞不定数据输入是不是没问题? ok 啊, 我如果完全无监督, 用强化学习来做呢? 那就没有这个问题了对吧? 另一种做法是在我们在所有的人工智能模型中建立 不确定性 - 基本上可以让人类纠正未来的行为, 而不是完全理解然而即使如此, 机器学习 / 深度学习算法其实还是很难作为一个裁定
来源: https://juejin.im/post/5aa1f926f265da23a0492653