2006年,Hinton在顶级期刊《科学》提出深度学习的概念,深度学习的概念源于人工神经网络的研究,是一种多层深度学习结构,深度学习通过组合低层特征形成更加抽象的高层表示类别属性或特征,发现数据的分布特征。

Tempo大数据分析平台之深度学习

随着研究的深入,深度学习在图像处理、语音识别、自然语言处理等领域取得突破性进展,落实的具体行业上,多采取多个领域的多模融合实现具体应用,比如,机器人助手,首先,需要图像处理模块和语音识别模块把语音信息和图像信息转化为文字描述,实现助手洞察外部的视觉和语音,其次,需要专门的深度学习网络实现基于语言的语义理解,给出外部反馈信息。

 

Tempo大数据分析平台

随着科技研究的深入,深度学习技术在最近几年得到快速的发展,引起行业学者的极度关注。然而,深度学习对新入该领域的人来说门槛很高,基于此Tempo3.0为降低深度学习使用困惑集成了深度学习,平台深度学习建模提供两种方式:

²  面向无编程基础的业务人员,可以基于平台的深度学习模型集成节点(DNNRNN)等进行深度学习建模;

²  面向具备编程基础业务人员(具备Python编程基础),可以基于平台的深TensorFlow脚本节点进行深度学习建模;

 

TensorFlow脚本节点

1.1.     TensorFlow简介

随着深度学习在图像处理、语音识别、自然语言处理等领域取得突破性进展,深度学习编程框架也如火如荼的急速发展,其中,2015119日,Google发布人工智能系统TensorFlow并宣布开源,得到深度学习领域的推崇。

TensorFlow™ 是一个采用数据流图的方式用于数值计算的通用计算框架,能够快速实现递归神经网络(RNN)和卷积神经网络(CNN)等的深度学习工具, 能够灵活的架构在多种平台,很方便的实现在CPU\GPU间的无缝切换。其中,数据流图是用结点和线的有向图来描述数学计算,节点(Nodes)表示数学操作,线(edges)表示在节点间相互联系的多维数据数组,即张量(tensor)。

深度学习

TensorFlow作为深度学习的通用编程计算框架,具备丰富的深度学习建模工具API接口,能够方便快速的实现DNNCNNRNNLSTMDBN等深度学习模型,此外,也可用于其他线性或非线性组合建模应用,进而实现图像处理、语音识别、自然语言处理等相关领域场景化应用。

1.2.     TensorFlow on Spark

源生态TensorFlow存在诸多使用上不便的问题:资源利用和管理方面,资源利用不易管理,需手动配置资源,没有集群资源管理和调度,集群资源负载不均,作业缺乏统一管理,不便对作业运行状态跟踪;数据管理方面,数据管理困难,训练数据需手动分发,训练模型需手动保存本地,此外,日志查看不方便;进程管理方面,进程遗留,需手动处理进程关闭。

TensorFlow on Spark解决了以上存在的问题,实现数据基于Spark RDD进行分布式分发,模型保存到HDFS分布式文件系统中,详细功能如下表所示。

Item

TensorFlow

TensorFlow on Spark

资源监控

无资源监控

Yarn资源调度监控平台监控作业资源调度情况

资源隔离

单用户操作

作业进程的资源隔离,支持多用户

作业部署

手动部署集群配置

根据设置的workps数量自动生成CluserSpec配置信息

进程管理

需手动处理相关进程

作业训练结束自动回收workpsTensorboard进程

数据管理

模型落到本地,训练数据手动分发,训练模型手动保存

训练数据自动分发,训练模型自动保存HDFS上,训练数据和训练模型基于HDFS统一存储,

 

1.3.     TensorFlowTempo3.0集成应用

Tempo3.0数据挖掘分析平台将TensorFlow嵌入到挖掘流程中,实现TensorFlow节点和平台其他节点无缝融合,同时规避了源生态TensorFlow存在诸多使用上不便的问题。

TensorFlowTempo3.0数据挖掘流程中执行过程如下:

²  上游节点将数据处理完毕后,数据写入HDFS分布式文件系统中,将文件路径传入TensorFlow节点,TensorFlow脚本节点启动进程通过PySpark提交Spark作业,挖掘流程主进程驻留,并对TensorFlow脚本进程进行监听;

²  PySpark启动TensorFlow集群和相关服务(TensorBoard等),读取数据并分发到TensorFlow集群各节点进行作业处理,处理的数据输出到HDFS分布式文件系统中,结束TensorFlow进程;

²  挖掘流程主进程监听到TensorFlow进程结束后,从HDFS分布式文件系统中读取TensorFlow输出的数据,接着进入下面的作业流程。

TensorFlow脚本节点

1.4.     TensorFlow脚本应用

1)挖掘流程界面

TensorFlow脚本在数据挖掘分析过程中可以和平台其他数据挖掘分析节点无缝对接,其挖掘流程若下图所示:

Tempo数据挖掘

在流执行过程中,流程日志会输出“TF Spark作业流程ID”和“TensorBoard服务地址”,根据“TF Spark作业流程ID”可以查看集群的资源调度情况以及跟踪TF作业状态,查看TF集群作业日志信息。

Tempo数据分析

作业会基于HDFS模型路径自动启动TensorBoard服务,实现对TF作业过程进行时时建模洞察,虽则TF作业结束,TensorBoard服务也会终止以防服务驻留对集群资源的过度占用。

Tempo数据挖掘

 

2)脚本参数界面

TensorFlow脚本参数界面如下图所示,界面分三个功能Tab页:代码编辑、集群参数、路径配置。

代码编辑页是用户编码建模界面,左面为可引用建模变量详细说明,右边为代码编辑区。TensorFlow程序通常被组织成一个构建阶段和一个执行阶段. 在构建阶段,执行步骤被描述成一个图;在执行阶段,使用会话执行图中的操作。用户基于Tempo完成深度学习建模需实现以下两种函数接口build_graphprocess_stepbuild_graph为构建图函数接口,process_step为使用会话执行图中的操作函数接口。

数据挖掘

集群参数为深度学习建模过程中TensorFlow集群配置和模型训练配置界面,可以配置集群参数服务器、执行器个数即执行器内存,模型训练中的模型名称、数据批大小、迭代次数等;路径配置为TensorFlow集群部署环境配置界面。

 

模型集成节点

模型集成节点以参数界面配置的方式实现深度学习建模,模型集成节点帮助用户快速高效的进行深度学习建模,而不要求用户具备编码基础,仅需用户具备一定的深度学习基本原理知识。平台规划集成DNNRNNLSTMCNN等常用深度学习模型实现分类、回归、时间序列等业务场景。

模型集成节点

目前,平台集成了DNN分类、DNN回归、LSTM回归的深度学习模型集成,其中,DNN回归为例介绍深度学习模型集成节点的使用,其他节点使用模式相似。下图为DNN回归建模参数界面:

数据预处理:基于数据标准化方法实现数据预处理,提高建模的效率和精度;

网络机构:支持配置DNN网络结构如:隐层个数、隐层神经元个数、激活函数、输出层函数;

模型训练:支持配置DNN模型网络空间初始权重初始化方式、参数寻优方法、正则化参数、模型训练次数、学习速率、最小批样本个数;

 

关于Tempo大数据分析平台

Tempo大数据分析平台是一款集数据接入、数据处理、数据挖掘、数据可视化、数据应用于一体的软件产品。它秉持“智能、互动、增值”的设计理念,面向企业级用户提供自助式数据探索与分析能力,为企业提供从BIAI的一体化数据分析与应用解决方案。目前Tempo大数据分析平台已经广泛应用于电力、制造、金融等行业领域,为用户数据价值发现与应用提供强有力的支撑,帮助企业实现基于数据的运营监控、工艺优化、客户分析、精准营销等多种深入业务的智能数据应用,助力企业数字化运营。