Select Language

AI社区

数据要素产业

苹果华人研究员实现无代码深度学习!全自动AI训练平台,只需上传数据集

新智元报道

来源:arXiv

编辑:好困

【新智元导读】这两年,低代码和无代码平台在被近乎疯狂地炒作,近日,苹果的研究人员似乎也要来掺和一脚,推出了一个可以自动训练模型的无代码机器学习平台。

2021年,低代码和无代码的概念都被炒得热火朝天,各路产品就像下饺子一样蜂拥而至。

前段时间GitHub推出的AI全自动代码「复制粘贴」利器Copilot,凭借着GPT-3强大的学习能力,做到了对代码「注释级」的复刻。

和低代码略有不同,无代码平台完全不需要用户掌握任何相关的知识,如Tensorflow、Python、神经网络架构等。

也不用再担心「开发人员看不上,业务人员学不会」。

近日,苹果的研究人员似乎也要来凑这个热闹,推出了一个基于卷积神经网络(CNN)的无代码深度学习平台,称其能够深入解决地理空间领域的复杂问题。

论文地址:https://arxiv.org/pdf/2106.11756.pdf

研究人员将项目命名为Trinity(三位一体),估计也是因为他们表示该项目有三个主要贡献:

可以利用数据转换将不同数据集的信息转换成标准格式;

可以将空间任务转化为语义分割问题,使其得到了标准化的解决方式;

可以提供一个易于使用的无代码环境降低准入门槛。

Trinity模型

用户界面

项目视图为用户提供了搜索、监控和比较实验的便利方式。

实验视图使用户能够从特征目录中选择特征,监测数据准备和模型训练,样本预测和可视化,验证训练和预测数据的分布,并查看实验的整体状态。

Trinity实验视图

在Trinity中,用户除了可以复现他人的实验,还可以为实验添加注释,以便将来参考。

除此之外Trinity还能帮助用户了解模型的泛化程度,并根据需要进行适当修改。

深度学习内核

研究人员在Trinity的深度学习内核中打包了一些基于CNN的标准分割结构。

用户可以从中挑选合适的架构来训练模型,或者也可以让Trinity自动选择最佳的网络架构。

其中,深度学习内核涵盖了用于语义分割的神经网络架构,并提供了模型训练、评估、指标处理和推理。

虽然是基于TensorFlow实现的,但研究人员表示,可以很容易地转换到其他的框架。

模型的架构

Trinity提供了多种用于分割的编码器-解码器架构,如FCN、SegNet和UNet等。

其中,Trinity的内核是独立于平台的其他部分的,并支持多种类型的任务。

也就是说,在后续的使用中发现有性能更好的分割模型,那么就可以单独对内核进行扩展。

多种任务类型的支持

二元分割将前景与背景像素分开,从而检测目标类是否存在。

基于运动的的道路中心线预测

多类分割可以检测多个类别的目标,例如道路类型检测提取小巷、高速公路和坡道等不同类型的道路。

基于运动的住宅区检测

多任务分割可以在同一个神经网络上同时训练多个任务,促进模型学习其中的相关性。

这样不仅可以让标签数量较少的任务可以从其他任务中受益,而且可以提升训练速度,因为单一的推理就可以同时产生多个不同的特征。

此外,Trinity还支持多模态学习。例如,用户可以将卫星图像与道路网络数据混合,从而更准确地预测建筑物、人行横道和道路标志。

模型的训练

Trinity是一个有监督的学习平台,因此训练阶段包括基于输入数据和标签的模型拟合。

在学习阶段,使用Docker对内核进行容器化,负责训练的GPU集群由Kubernetes进行协调。

根据大小,训练数据被缓存在本地GPU节点上,或者被存储在分布式文件系统(HDFS)上。

在训练阶段,训练和验证数据集的不同指标,如每个任务的准确性、精确性、召回率、损失和fIoUs被记录下来,并经过可视化之后展示给用户。

此外,Trinity还支持迁移学习的模型的热启动。

当模型被迁移到具有明显不同行为或景观的场景时,热启动就尤为重要。

依据Tensorflow标准的SavedModel格式,模型每隔几个epoch就被保存一次。

内核有几个超参数,默认配置使用adam优化器和交叉熵损失,并有30%的保留验证集,但改变优化器和损失函数或添加新函数是非常直接的。

AutoML:自动超参数优化

Trinity为用户提供了十分全面的智能超参数选项。

用户只需给出大致的范围或者几个候选设置,模型会自动开启多个平行试验,并选择最佳的超参数设置用于生成模型。

是的,这是全自动的。

推理

为利用大量的CPU进行计算,推理过程在Spark集群上运行,其中内核与所有的依赖关系都被集成在一个虚拟环境中。

标签管理

Trinity中使用的标签是几何对象,如点、线或多边形。

如果对各种地理特征检测任务使用了合适的标签,就可以用语义分割来解决这些问题。

有些标签如道路中心线或行人过街的多边形很容易表示,而其他标签如转弯限制和单行道的标签则需要定制的标签表示。

Trinity提供了内部开发的工具和框架,使用户能够将他们的任务带到语义分割的领域,并且支持多类分割。

使用基于运动的通道的多类道路检测类型

不同类型标签的支持

用户可以在Trinity界面上直接上传已经标注好的文件,也可以在Trinity的界面进行手工注释。

在Trinity的用户界面对图像进行标注

主动学习

主动学习使用户能够根据预测中涉及的不确定性选择标签,为实现更快的迭代铺平了道路。

当模型开始推理时,主动学习模块就会对不确定的数据示例进行标注,并创建一个标签任务提交给用户。

在用户给这些数据打上标签之后,主动学习模块就会用这些额外的标签,更新当前的实验并创建一个新的副本。

随着时间的推移,标签在模型和用户的交互中被不断更新,而模型质量也因此得到提升。

实验管理

可扩展的分布式推理

这种模式可以让训练好的模型有能力去预测新的和未见过的数据集。

Trinity利用分布式文件系统的自然分区和数据定位来打包推理代码,并将其运送到Spark执行器进行推理。

基于Tensorflow的预测代码在每个执行器内创建的python虚拟环境中运行。推理以可扩展的数据并行方式进行,结果存储在分布式文件系统中。

可视化

当推理完成之后,Trinity会自动生成热图,从而实现预测的可视化。

热图可以帮助用户在为下游的输出进行后处理之前或为以后的调试中检查质量。

二进制分割,用图像和基于运动的通道检测人行横道

上图所示,是一个每个像素为基础的置信度热图,置信度低于预先确定的合适的阈值就被过滤掉。

利用基于运动的通道进行单向检测

对于多类分割,每个像素的主导类被显示在可视化中,而对于多任务预测,每个任务的热图集被生成。

后处理

除了预测之外,Trinity还提供了标准的结果后处理的工作流程。

后处理可使预测结果用于下游处理,如识别缺失的地理特征,纠正现有问题等,可以手动或自动进行修复。

最常用的策略包括矢量化,即把预测结果归纳为矢量几何图形。

这种方法包括加权DBSCAN,一种基于密度的聚类算法,根据像素生成停车场多边形;地图匹配,涉及将预测与网络上已有的地理特征相匹配,以获得基于实例的预测;以及基于自定义预测的过滤。

一旦完成后处理,预测工件就会以不同的方式用于特征检测、异常检测、优先排序等。

使用流程

1. 对项目和实验进行设置

2. 准备所需的数据

3. 训练

4. 推理与评估

5. 产品化

除了直接训练一个可以用作生产的模型以外,用户还可以通过调整将Trinity应用在其他方向。

变体1:参考层

用模型输出一个参考热图,帮助研究人员进行决策。

例如,利用Trinity作为参考,在一个全新的区域对人行横道进行编码。

变体2:异常检测器

Trinity可以帮助检测现有地图中异常的情况。

例如,模型在经过预测之后将地图中的潜在错误标记出来。

然后由研究人员对这些错误进行评估,从而修复和改进地图。

作者表示,这对在快速变化的世界中保持地图的准确性的长期维护是非常有用的。

变体3:优先化过滤器

模型输出被用来优先化或过滤其他信号。

例如,某些工作负载可以在商业区或复杂的交叉口被优先化。

变体4:评估器

模型的预测被用来判断不同数据源的质量,从而帮助用户选择最佳的数据以及确定其来源。

网友评价

我看到他们只提到了CNN。,可能模型只能用于物体检测或分类的的任务。

似乎很模糊。

遗憾的是,这个平台似乎还没有对公众开放,不知道实际应用效果如何。

参考资料:

https://arxiv.org/pdf/2106.11756.pdf