稿件来源:阿里云开发者社区(点击下面“了解更多”查看原文)
导读:深度网络对机器学习研究和应用领域产生了巨大的影响,与此同时却无法很清晰地解释神经网络的来龙去脉。迄今为止,深度学习不够透明,神经网络整体看来仍然是一个黑箱。因此,人们一直致力于更透彻地去理解其中复杂的过程,从而达到进一步优化的目的。由于人类对于世界的认知和感受主要来自于视觉,良好的可视化可以有效地帮助人们理解深度网络,并进行有效的优化和调节。
一. 背景
尽管业界对于图像和NLP领域,在可视化和可解释性等方向上已经取得了一些进展,但对于计算广告领域,目前还是空白,可以借鉴的平台或工具很少。而可视化的前提,是需要先对训练模型进行相关数据透出,从而进行可视化分析评估,最终使得神经网络从黑盒向白盒过渡,在一定程度上提高模型的可解释性。但现有深度学习框架对数据透出的支持力度不大,还不足以满足日常训练的所有需求,尤其是针对一些棘手问题,更加难以定位分析,乃至无从调试。
同时,随着网络复杂度的急剧提升,传统的机器学习评估指标,如欠拟合/过拟合/精准率(PR)/召回率(Recall),并不能够全面地评估一个深度学习网络模型的质量,而我们正在寻找一种途径或者说在摸索一种方式,尝试着去定义深度学习质量体系,从而帮助人们更好地理解并评估模型本身,即在一定条件下,通过提高深度学习的可解释性与可靠性,提升网络模型的可控性。
基于此,平台在完善训练任务生命周期管理的同时,致力于提供更加全面的数据透出方式(如本期新增的在线动态更新数据透出功能),并以深度学习特有的多维度可视化等方向作为核心功能演进。
二. DeepInsight系统架构
目前来看:数据科学负责见解;机器学习负责预测;人工智能负责行为。同时,这几个领域之间存在着很多重叠。数据科学与其他两个领域不同,因为它的目标跟人类的目标尤其接近:获得洞察力和理解力,这也是DeepInsight平台命名的由来。
DeepInsight是基于分布式微服务集群化部署的深度学习可视化评估平台,由前端WEB平台+后端微服务+深度学习组件等三个子系统构成,各个微服务实例之间是隔离的,互不影响;目前支持TensorflowRS及原生Tensorflow训练任务的生命周期管理。旨在通过数据透出及可视化等手段,解决模型调试及问题定位分析等系列问题,提高神经网络的可解释性;以生命周期管理的方式执行训练任务,从而提供一站式的可视化评测服务。平台在赋能业务的同时,业务也会将后期处理过的数据反馈给平台,从而构建以DeepInsight为基础数据核心的AI可视化生态圈。
三. 基于数据透出的多维度可视化分析
目前深度学习组件(TF-Tracer/TF-Profiler等)主要负责数据透出、实时监控和输出控制等,透出的数据主要是模型训练过程中的Raw Data(未经加工或计算统计);后端微服务(Tensorboard+/Notebook+)和前端WEB平台(高维可视化)负责相关数据的在线离线交互式等方面的可视化分析评估;以模型训练任务的生命周期管理(Lifecycle)贯穿始终,从而形成多维度可视化分析的生态循环。
3.1 深度学习组件
由于原生深度学习框架提供的功能有限,不能完全满足日常训练的调试分析需求。DeepInsight深度学习组件以透明的方式接入Tensorflow框架,支持本地和分布式模型训练,以第三方库方式的安装。
1)基于原生的深度学习框架Tensoflow API(tf.train.SessionRunHook)编写的即插即用组件,无需用户开发额外的代码,只需用户通过配置文件增加相应配置信息,即可使用对应的组件;
2)配置信息由组件开关和组件配置参数信息两部分组成:
打开相应组件开关后,组件功能不会对原有训练任务产生较大性能影响,从而保证线上训练效率;
关闭相应组件开关后,对原有训练任务无任何功能或性能上的影响;
3.1.1 TF-Tracer:基于计算图的全面数据透出
数据透出组件TF-Tracer是基于Tensorflow 计算图(tf.Graph)开发的,可以全面透出计算图中的所有变量(tf.Variable),基于图数据集(tf.GraphKeys),通过正则表达式对变量集合进行匹配过滤,透出相应变量数据集合,同时也支持直接指定变量列表进行数据透出,支持NumPy/Bin两种数据格式输出。
对于非计算图中的变量,用户也可以通过回填的方式,添加到官方预置图数据集或自定义图数据集中;
TF-Tracer配置文件示例,具体详见TF-Tracer User Guide:
"trace": "true