跳转到主要内容
Chinese, Simplified

作者:Timon Ruban, Luminovo的联合创始人

每一个值得解决的问题都需要强大的工具来支持。深度学习也不例外。如果说有什么不同的话,那就是在这个领域中,好的工具将在未来几年变得越来越重要。我们仍处于深度学习超新星的相对早期阶段,许多深度学习工程师和狂热者以自己的方式进入高效的过程。然而,我们也注意到越来越多的优秀工具有助于促进复杂的深度学习过程,使其更容易获得和更有效。深入学习是不断传播工作的研究人员和学者到更广泛的领域的DL爱好者想要进入这个领域(可访问性),和越来越多的工程团队希望简化他们的流程和降低复杂性(效率),我们有最好的DL工具的概述。

深入了解深度学习的生命周期

为了更好地评估能够促进深度学习的可访问性和效率的工具,让我们首先看看这个过程到底是什么样的。

一个典型的(有监督的)深度学习应用程序的生命周期由不同的步骤组成,从原始数据开始,到最终的预测。

 

A typical deep learning lifecycle © 2018 Luminovo

数据寻源

任何深度学习应用的第一步都是寻找正确的数据。有时你很幸运,有现成的历史数据。有时您需要搜索开源数据集、在web上搜索、购买原始数据或使用模拟数据集。由于此步骤通常是非常特定于手头的应用程序的,所以我们没有将其包含在我们的工具环境中。请注意,然而,有网站像谷歌的数据集搜索或Fast。ai数据集,可以缓解寻找正确数据的问题。

数据标签

大多数受监督的深度学习应用程序处理图像、视频、文本或音频,在训练模型之前,您需要用ground-truth标签注释这些原始数据。这可能是一个成本密集和耗时的任务。在理想的设置中,这个过程与模型培训和部署交织在一起,并尽可能利用训练过的深度学习模型(即使它们的性能还不完美)。

数据版本控制

随着时间的推移,数据发展得越多(假设你建立了一个智能标记过程,并随着数据集的增长不断对模型进行再训练),更新数据集的版本就变得越重要(就像你应该总是更新你的代码和训练过的模型一样)。

扩展硬件

这个步骤与模型培训和部署都相关:访问正确的硬件。当在模型训练期间从本地开发转移到大规模实验时,您的硬件需要适当地扩展。在部署模型时,根据用户需求进行扩展也是如此。

模型架构

要开始训练你的模型,你需要选择你的神经网络的模型架构。

注意:如果你有一个标准的问题(如识别猫在互联网文化基因),这通常意味着不超过复制粘贴最新最先进的模型从一个开源GitHub库,但是偶尔你会想弄脏你的手和调整模型的体系结构来提高性能。随着神经体系结构搜索(NAS)等新方法的出现,选择正确的模型体系结构越来越多地包含在模型训练阶段,但截至2018年,对于大多数应用程序来说,NAS性能的边际增长并不值得增加计算成本。

这一步是人们在编写深度学习应用程序时经常想到的,但正如你所看到的,它只是众多步骤之一,通常不是最重要的。

模型训练

在模型训练你喂带安全标签的数据时神经网络模型和迭代更新重量最小化训练集上的损失。一旦你选择一个指标(见模型评价)你可以训练你的模型与许多不同的hyperparameters(如组合学习速率的模型结构和设置预处理步骤的选择)的过程称为hyperparameter调优。

模型评价

如果你不能区分好模型和坏模型,那么训练神经网络就没有意义了。在模型评估期间,您通常会选择一个要优化的指标(同时可能会观察到许多其他指标)。对于这个指标,您要尝试找到从训练数据到验证数据的最佳性能模型。这包括跟踪不同的实验(可能有不同的超参数、架构和数据集)及其性能指标,可视化训练模型的输出,并将实验相互比较。如果没有正确的工具,这可能很快变得令人费解和困惑,特别是当与多个工程师在同一深度学习管道合作时。

模型版本控制

在最终的模型评估和模型部署之间的一小步(但仍然值得一提):用不同的版本标记您的模型。当您发现最新的模型版本没有达到您的期望时,这允许您轻松地回滚到工作良好的模型版本。

模型部署

如果您有一个乐意投入生产的模型版本,那么您需要以一种用户(可以是人或其他应用程序)可以与您的模型对话的方式来部署它:发送带有数据的请求并返回模型的预测。理想情况下,您用于模型部署的工具支持在不同模型版本之间逐步切换,这样您就可以预测在生产环境中使用新模型的影响。

监测预测

一旦您的模型部署好了,您就需要密切关注它在现实世界中做出的预测,并在用户上门投诉您的服务之前警惕数据分布的变化和性能下降。

注意:流程图已经暗示了典型的深度学习工作流的循环性质。事实上,在您的深度学习工作流中,将已部署模型和新标签(通常称为human-in-the-loop)之间的反馈回路视为头等公民,可能是许多应用程序最重要的成功因素之一。在现实生活中的深度学习工作中,事情往往比流程图显示的要复杂得多。你会发现自己跳过步骤(例如,当你正在与一个pre-labeled数据集),回到几个步骤(模型性能不够准确,需要更多的数据来源)或在疯狂来回循环(架构= >培训= >评价= > = = > >评估架构)。

yall-wild

我们最喜欢的深度学习工具

在Luminovo,我们努力创造工具,让我们的工程师更有效率,同时也利用了那些优秀的深度学习人员创造的强大工具。优秀的代码应该是共享的,所以下图展示了目前市场上最有前途的深度学习工具的概述。DL工程师为DL工程师和所有渴望了解更多关于创建令人敬畏的深度学习应用程序的人。

 

PDF版本的请私信。

原文:https://www.kdnuggets.com/2019/03/deep-learning-toolset-overview.html

本文:http://jiagoushi.pro/node/1407

讨论:请加入知识星球【首席架构师智库】或者小号【jiagoushi_pro】或者QQ群【11107777】

Tags
 
Article
知识星球
 
微信公众号
 
视频号