Spark 技术分析与展望

2017-11-20

在大数据飞速发展的时代,通过对数据进行分析,可以发现许多隐藏信息,比如客户喜好、未知相关性,市场趋势以及其他有用的商业信息。大数据分析对企业降低成本,准确掌握市场趋势,更快完成产品迭代十分有用。对于企业而言,往往希望数据积累的越多,获取的智能也就越多。但是怎样才能做到这一点呢?其实需要依靠三大支撑:数据、分析以及人。面对参差不齐并且传播速度非常快的大量数据,多种多样,越来越复杂的分析手段以及需要涉及更多的人、更多的职责以及人与人之间工作交接低效的挑战,从最初的数据仓库、到第二代的Hadoop + Data Lake,再到如今,经过了三代技术栈的更新,目前Databricks + Apache Spark成为了较好的解决方案。 


Spark引擎的数据处理能力不断提升,基于spark的机器学习的能力也更高更快更强。同时,Spark机器学习库也在蓬勃发展。东方金信海盒大数据平台,完美的融合spark组件,海盒大数据监控管理系统能够对spark进行统一键安装部署,实时监控、报警,界面化服务启停、配置管理,实现与海盒大数据平台完美融合,大大提升大数据平台的处理能力,提高处理效率,大大提高了开发者的使用方便性。

在Spark最新的技术中,机器学习是备受大家瞩目的一块,机器学习 / 深度学习成为了今年的主流议题,其中神经网络机制技术也在不断进步,下面就最近神经网络技术做一个分析:

1.密集连接的神经网络(Densely Connected Convolutional Networks)介绍了一种个新的网络DenseNet ——一种在网络越深度时网络架构变得越密集的全新网络。相对于 vanilla CNN,它有以下优势:能保持更强的梯度流、显著提升了计算效率等等。一位研究者评论说:“他们部分回答了有关神经网络工作方式的问题,而且他们通过探索未知进行了他们的研究,而不是仅仅调整一下神经网络架构”。

2.神经网络训练中的全局最优性(Global Optimality in Neural Network Training)。新的技术表明:只要网络输出是网络参数的正齐次函数,就可以实现全局最优。简单来说,ReLU 函数可以被看作是齐次函数,因为 max ( 0, ax ) = a * max ( 0, x ) ;而 softmax 则不能被看作是齐次函数。此外,这篇论文还将该理论扩展到了多个并行连接的 AlexNet 上。这篇论文可以指导神经网络模型的设计和训练。

尽管深度学习已经变得相当流行,但只是实现单个深度学习模型还远远不够。在所有与深度学习相关技术中,机器学习的概念和方法都不能被忽视:在机器学习概念的帮助下,深度学习的能力已经得到了扩展,而且也更易于解释;此外,机器学习指标和深度网络的融合也已经变得非常流行,因为这样可以得到更好的模型。

除了机器学习备受大家瞩目以外,几何深度学习 ( Geometric Deep Learning ) ,也将是新的趋势:

1. 3D 视觉

3D 视觉包含的主题有重建、分割等。与 2D 图像处理相比,额外的维度带来了更多不确定性,例如遮挡和不同的相机角度。spark研究者在处理这些不同的情况上投入了大量精力:


1)根据单一深度图像的语义场景完成(Semantic Scene Completion from a Single Depth Image)。这项研究的主要目标是根据单一图像重建目标。但是,3D 场景中固有的模糊性与不确定性会降低重建的准确度。为了解决这一问题,研究团队提出了一种数据驱动的方法:使用作为知识库的大型数据集学习来构建神经网络。这个新模型可以通过识别周围的其它物体来推断一个物体;而先验知识可以极大地提升准确度。

2)3DMatch:根据 RGB-D 重建学习局部几何描述(Learning Local Geometric Descriptors From RGB-D Reconstructions)。该技术引入了用于先验知识的数据驱动的模型。为了应对训练数据不足的问题,他们使用了自监督学习(self-supervised learning)来生成数据,即从不同的角度,获取长程的对应关系 ( correspondence ) 。

正如前面提到的,3D 维度的本质给研究者带来了噪声、低分辨率和扫描数据不完整的难题。当前的研究工作已经开始在获取全局语义含义并将它们与局部几何模式进行匹配。但是,当前数据集的规模大小可能已经无法支持前沿研究。因此下一步研究目标可能会转向为 3D 视觉开发设计合理的数据集。

2. 目标识别与场景理解

目标识别是今年的又一主要主题。过去,研究者在识别单个物体和理解整体场景上投入了大量工作。但现在研究目标已经转向了识别单张图像中多个物体之间的关系。以论文《使用深度关系网络检测视觉关系(Detecting Visual Relationships with Deep Relational Networks》为例,这项研究提出了一种集成框架——不仅可用于分类单个物体,而且还能探索不同物体之间的视觉关系。

1)走近看可以看得更好:用于细粒度图像识别的循环注意卷积神经网络。该技术探讨了细粒度图像识别的两个难题:判别区域定位(discriminative region localization)和细粒度特征学习(fine-grained feature learning)。为了解决这些问题,研究团队引入了循环注意卷积神经网络以利用注意机制(这样网络就可以迭代式地越来越近地观察目标物体)来判别细微的差异。

2)使用 Polygon-RNN 标注目标实例(Annotating Object Instances with a Polygon-RNN)。这项工作创造性地将物体标注问题形式化为了多边形预测问题,而不是传统的像素标注问题。当数据规模变成了深度学习的瓶颈时,快速获取数据就变得非常重要了。 

3. 人物肖像分析

因为公共安全受到的威胁日益增大,对人员识别和行人检测的需求也正快速增长。幸运的是,与这一领域相关的大量应用和扩展理论正在持续涌现。

1)自然环境中的人物再识别(Person Re-Identification in the Wild)。之前的研究都只是重在人物 re-ID 本身,而这项研究则将人物检测和人物 re-ID 结合了起来。他们提出了 ID 判别嵌入(IDE:ID-discriminative Embedding),因为这易于训练和测试。关于检测如何有助于人物 re-ID 的见解包括:

在 re-ID 应用下评估检测器的表现;

一种级联 IDE 微调策略:首先微调检测模型,然后微调 re-ID 模型。

2)循环 3D 姿态序列机(Recurrent 3D Pose Sequence Machines)。由于人类外观变化多端,而且还有各种各样的相机角度和视线阻挡,再加上固有的模糊性,3D 姿态估计是比 2D 问题远远更有挑战性的问题。该技术提出了一种全新的循环 3D 姿态序列机(RPSM)模型,可以使用多个阶段的序列优化来循环式地集成丰富的空间和时间长程依赖。


通过对Spark技术的分析和研究,我们能大概的了解到目前Spark成熟的技术和未来发展的趋势:

1. 计算机视觉领域的机器学习和深度学习:虽然目前计算机视觉和深度学习的结合并不是非常好,但正在稳健的向前发展。

2. 数据驱动的模型:模型不再由人工设计模式设计,而是重在数据驱动的模型,这意味着特征是从馈送给模型的成千上万张图像中学习到的。一些图像可能是高度对应的,所以该模型可以通过测量这种对应关系来自己学习相似度。简而言之,大规模数据可以得到更好的结果。但一个带有大量数据的简单算法不会是未来最好的方法。成功的模型源自足够的强大的算法以及高质量和足够大的训练数据集。

3. 数据与模型的结合:这会是未来的一大趋势。当前研究中本质的问题是:在特定应用上再也无法为先进的算法或模型提供足够的数据。所以很多研究者的研究结果不仅有算法或架构,还包含了数据集或积累数据的方法。

以上就是对Spark最新技术的一些分析与展望。