近年来,机器学习和深度学习不断被炒热,tensorflow 作为谷歌发布的数值计算和神经网络的新框架也获得了诸多关注,spark和tensorflow深度学习框架的结合,使得tensorflow在现有的spark集群上就可以进行深度学习,而不需要为深度学习设置单独的集群,为了深入了解spark遇上tensorflow分布式深度学习框架的原理和实践,飞马网于4月10日晚,邀请到先后就职于百度、腾讯,负责过多个大数据研发工作的李曙鹏老师进行线上直播,主要向我们介绍spark和深度学习的基本原理、spark与深度学习领域相结合的最新的发展方向,以及如何结合tensorflowonspark开源框架,构建一个分布式图像分类模型训练。
以下是本次分享实录:
上面这张图片显示的是本次直播所针对的受众和可能的收益,大家可以了解一下。
一.大数据的价值
什么是大数据的价值呢?李老师根据自身以往的项目经验和互联网主流的大数据应用场景,大致总结了以下三种价值。
二.计算的核心问题
结合上面所说的大数据的价值和应用场景,我们把它归纳为一条计算流:首先从数据存储当中经过数据加工、抽取,得到提炼后的数据、特征,然后进行进一步的模型训练,得到模型。
这条计算流的核心问题可以归纳为y=f(x)这个函数。对于第一阶段的数据ETL和查询来讲,主要解决的是数据源对接、实时数据整合、数据归一化、特征生成等应用场景,它的计算框架代表是spark,输入是f()\x,输出是y,非常适合做分布式数据计算。第二阶段的模型训练,主要有模型建模、反向计算、梯度更新、超参数调优、效果评估等流程,它的计算框架代表是tensorflow,输入是x\y,输出是f(),更多关注的是模型建模和分布式参数更新。
接下来,我们就针对以上两个框架做一些基本原理的介绍和概述。
三.spark概述
1.spark的核心抽象:RDD
为什么要做RDD这样的抽象呢?主要是因为它的一致性、高效并行、容错机制,RDD屏蔽了分布式的复杂性,使开发程序时简单如写单机程序。
RDD也提供了一些操作,如transform和action,通过对RDD操作业务的封装以及计算逻辑,我们就会形成一个大的DAG计算图(参考下图右)。
2.spark的大数据生态: