之前许多媒体在热烈讨论神经网络的“黑盒子”(black box)问题。复杂的模型处理预测性工作负载时表现良好,但是说到回溯系统是如何得出最终结果的,根本没有一种清晰的方法来了解什么做对了、什么做错了,或者了解模型如何打开自己、得出结论。
对于老式机器学习模型而言,这问题不大;但是如今对于非线性隐匿式数据结构和无数参数而言,这却是个问题。对于为科学应用部署神经网络的研究人员而言,黑盒子缺乏再现性(reproducibility)这个问题带来了验证方面的障碍,不过对于深度学习框架的生产级用户来说,因缺乏可见性而无法深入了解网络行为还存在其他问题,尤其是在优化模型,以获得更好的性能、效率和准确性方面。
要解决这个问题,一个办法就是对神经网络模型实行可视化――这正是社交媒体巨头Facebook与佐治亚理工学院(Georgia Tech)的研究人员共同致力于攻克的课题。Facebook的深度学习使用场合不仅仅局限于图像分析,这意味着不同类型的数据被馈送到模型。遗憾的是,用于神经网络可视化的工具大多数专注于图像数据集,这激发了Facebook研究用于Facebook生产环境中的一种名为ActiVis的工具,这是一种交互式可视化系统,可用于解释大规模神经网络模型和结果。
佐治亚理工学院的研究团队就在一年多前开始与Facebook的工程师合作,了解他们的分析平台、什么可视化工具适用。除了开发这种一样工具面临的重大技术挑战外,这种工具除了能够融入到Facebook的现有机器学习平台,还要“具有灵活性,可推广到Facebook等公司用于其许多产品和服务的众多模型和数据集”。
该平台由几个不同的机器学习元素组成。核心元素是Facebook的统一机器学习平台,名为FBLearner Flow,它负责协调不同的机器学习工作流程。Flow的目标是,让开发人员不用编写代码就可以训练模型,并查看结果。
ActiVis支持两种解释策略来用于可视化和比较多个实例和子集。它统一了基于实例的检查和基于子集的检查;它紧密地整合了复杂模型的概述和局部检查,可灵活扩展,支持一系列广泛的行业规模的数据集和模型――对于想针对其数据使用现有模型,但是又不想深入实施细节的那些人来说,Facebook里面的这个工具非常宝贵。ActiVis特别专注于FBLearner Flow用于可视化,一方面是由于其用户群。
“ActiVis直观地显示用户指定的实例或实例子集如何激活神经元,从而帮助用户了解模型是如何导出预测的。用户可以使用原始数据属性、变换的特征和输出结果,随意定义子集,可以从多个角度来检查模型。”
佐治亚理工学院的团队表示,对于大规模设计这类可视化系统的任何人来说,为神经网络构建一个稳固的平台涉及几个元素。他们提到了输入源和数据格式的多样性、庞大数据量、复杂的模型架构,不一而足。
“虽然许多现有的深度学习可视化工具支持基于实例的探索,ActiVis却是***款同时支持对深度神经网络模型进行基于实例的探索和基于子集的探索的工具。此外,为了帮助用户了解模型的大致情况,它使用图形显示了模型架构,用户可以在此基础上深入分析,在每个模型层或节点这一层面,对神经元激活执行局部检查。”
该团队表示,想要使用这种可视化工具的Facebook开发人员添加了几行代码,这些代码告诉模型在FBLearner Flow界面中的训练过程:它需要生成可视化所需的数据。训练结束后,界面提供了这个基于Web的工具的链接,以便可视化和探索模型。
该团队称:“ActiVis旨在处理Facebook的许多不同的模型和数据集。由于经常使用复杂模型和大型数据集,ActiV具有可扩展性和灵活性很重要,那样工程师可以为其模型轻松采用ActiVis,用户可以可视化和探索模型,用于处理分析任务。”
***,对神经网络进行可视化以解决黑盒子问题不是什么新鲜事,但是由于模型变得更复杂――这归因于硬件和更多的数据,今后会更加需要诸如此类的工具。我们预计,在今后几年,接入到关键平台(包括TensorFlow、Caffe及其他)的类似的可视化工具会开源,甚至可能实现商业化,对生产环境和科学计算这两种使用场景来说都是如此。