深度学习黑盒可视化指南,从隐藏层开始
原标题:深度学习黑盒可视化指南,从隐藏层开始
深度学习的黑盒问题一直以来都是机器学习领域的一大难题,而直接导致这一难题的便是神经网络中除输入层和输出层以外的隐藏层。
隐藏层不直接接受外界的信号,也不直接向外界发送信号,因而如何认识隐藏层内部的工作原理和运行机制,也成为深度学习研究中的一大挑战。
可视化隐藏层是其中的一个解决方法,那如何做到呢?
对此,来自西蒙弗雷泽大学的几位学生Pallavi Bharadwaj、Inderpartap Cheema、Najeeb Qazi 以及 Mrinal Gosain 合作写作了一篇文章,不仅指出了了解神经网络隐藏层的重要性,还详尽地介绍了如何可视化神经网络以及隐藏层的过程。
一:神经网络仅仅变得更智能
大脑皮层中神经元之间的连接,启发了模仿这些复杂连接的算法的开发。简而言之,可以将神经网络的学习方法理解为类似于新生儿通过一段时间的观察和聆听来学习辨认父母的方式。一旦神经网络接收到相当大的所需数据集后,该网络就会使用其精确的知识“权重”来证明或识别未知数据样本上的模式。
让我们来思考一下关于面部识别的任务,网络开始分析来自输入层图像的各个像素。在输入层之后,“隐藏层”反复学习识别几何形状和特征,这些几何形状和特征由眼睛、嘴唇、疤痕等特定的特征构成。在最终的输出层中,它根据计算出的概率信息对人脸进行了充分的猜测,并识别该面孔到底是谁。
显然,这些隐藏层在最终将输入分解为有价值的信息方面,起着至关重要的作用。从输入到输出的过程中每一层处理的信息越来越复杂,而且通常而言,隐藏层,顾名思义,这个名词笼罩着神秘的色彩,但是它们是这样吗?
二:神经网络坦克城市传奇
AI 领域流传了一个关于神经网络的故事,以检测坦克为目标来训练神经网络,结果神经网络却学会了检测一天的时间。
这个故事的来源是这样的:
美国陆军希望使用神经网络来自动检测伪装的敌方坦克。 研究人员用两组数据来训练神经网络,一组是50张坦克伪装在树林中的照片,另一组是50张没有坦克的树林照片。 然后,研究人员又拍摄了另外一组100张的照片,并进行了测试。
神经网络将剩余的所有照片都进行了正确的分类。并且分类结果得到成功确认! 研究人员将他们的检测方式移交给了五角大楼,五角大楼很快将其退还了,他们抱怨在该神经网络上的测试完全失败。
事实证明,在用于训练的数据集中,伪装坦克的照片是在阴天拍摄的,而平原森林的图像是在晴天拍摄的。 神经网络只不过是学会了区分多云和晴天,而不是学会识别伪装的坦克。
无论故事是否真实,它都突出了深度学习中的“数据偏向”这一重要问题,但同时也让一些人认识到,他们只有在得到最终输出的结果后才能知道神经网络正在学习什么。即使结果对于给定的数据而言是正确的,但是更重要的是知道网络是如何给出这些结果的,这就是为什么我们必须要了解隐藏层的工作原理。
三:隐藏层内层到底是怎样的?
我们回到网络的基本构建模块——神经元。 神经元的各层构成了复杂、性能最佳的神经网络。 但问题是,每个神经元学到了什么?是否可以捕获在任意特定的时间上的网络图像并查看每个神经元的行为? 俗话说“一图胜千言”,现阶段所需要的就是可视化。
在最近的项目中,Tensorflow.js的合著者之一Daniel Smilkov和谷歌大脑团队的Shan Carter共同创建了一个神经网络训练场( Playground),旨在通过让用户与其进行交互和实验来可视化隐藏层。