深度学习轻松学:如何用可视化界面来部署深度学习模型

翻译 | AI科技大本营

参与 | 王赫

上个月,我有幸结识了 DeepCognition.ai 的创始人。

Deep Cognition (深度认知) 建立的深度学习工作室,为很多准备部署深度学习框架和采用人工智能技术的机构打破了诸多难以逾越的障碍。

究竟什么是深度学习?

在我们说明Deep Cognition是如何简化深度学习和人工智能之前,先让我们定义一些深度学习的主要概念。

深度学习,它的核心是用连续"层状"结构来逐级递进的学习有意义的特征表示,其作为机器学习的一个特定的子研究领域,现已成为了一种新的从数据中抽取可学习特征表示的方法。

在深度学习中,由多个处理层构成的计算模块可以学习到具有多重抽象级别的数据特征。

这些层状的特征表示正是通过一个称为”神经网络”的模型来学习的,其结构依次层叠在一起。

实际上,我们在深度学习中使用的是一种称为人工神经网络(ANN)的东西。这个网络是受到生物神经网络的启发,用于估计或近似地趋近于一个依赖于海量未知输入变量的函数。

虽然,深度学习在机器学习中是一个相当古老的领域,但其在2010年初才开始渐渐显露锋芒。在此之后的几年里,深度学习取得了很大的成就。Francois Collet 在下面列出了其中的主要成就:

接近人类水平的图像分类技术。

接近人类水平的语音识别技术。

接近人类水平的手写笔迹转录技术。

经过改良的机器翻译技术。

经过改良的文本到语音转换技术。

数字助理,如Google Now或Amazon Alexa。

接近人类水平的自动驾驶技术。

经过改良的广告精准投放,如Google,百度和Bing所使用的。

经过改良的搜索引擎结果。

对自然语言问题解答。

远超人类能力的游戏,如Go。

为什么深度学习如此的牛逼?

正如 François Collet 在他的书中所说的那样,直到21世纪后期,我们仍然没有可以训练非常深的神经网络的可靠方法。因此,当时的神经网络仍然很浅,只能用一到两层来表示,所以它们还不能挖掘出像SVMs或随机森林那样更加精细的浅层特征。

但在近十年以来,随着几个简单但又重要的算法的改进与发展、硬件(主要是GPU)的进步以及大数据的指数级积累,在现今深度学习的帮助下,你也可以在自家的笔记本电脑(或云端)上运行一个小型深度学习模型。

究竟该如何深度学习呢?

来看看我们通常是如何做深度学习的。

尽管这不是一个新的领域,但我们可以通过一种全新的方式与计算机进行交互来深度学习。而这个领域最重要的一个事件就是TensorFlow的创建。

TensorFlow是一个使用数据流图进行数值计算的开源软件库。数据流图中的节点表示数学运算,而图中的边表示在它们之间交流的多维数据阵列(张量)。

什么是张量?

根据数学的定义,张量是由数字或函数构成的简单数组,它们按照一定的规则进行坐标变换。

但是从这个角度而言,张量可以是向量和矩阵向更高维度的泛化推广。 在TensorFlow的内部,张量被表示为基本数据类型的n维数组。

我们需要使用张量的原因是因为 NumPy(在Python里进行科学计算的基础软件包)缺乏创建张量的能力。 我们可以将张量与NumPy之间互相转换。 由于其构造早已明确的被定义为数组/矩阵,所以这是完全可能的。

通过结合了诸多优化编译技术的计算代数程序,TensorFlow使得运行许多难以计算的数学表达式变得非常简单。

Keras

虽然这不是一个关于TensorFlow的博客,何况网上有很多优质的TensorFlow资源帖子。但在本文中介绍一下Keras依然是很有必要的。

Keras是一个高级的神经网络API,它用Python编写,并且能够在TensorFlow,CNTK或Theano之上运行。 它的开发重点就是能够快速构建实验模型。 要知道,能够做好研究的关键就是能够尽可能快的从想法点子到最终实验结果。

这就是François Collet所构建该框架的初衷,也是为了让大众在深度学习面前能勇敢的迈出第一步。

TensorFlow本来有一个不复杂的Python API,但Keras可以更容易让很多人进入到深度学习领域中。 还应该提及的是,Keras现在已经正式成为Tensorflow的一部分:https://www.tensorflow.org/api_docs/python/tf/contrib/keras

深度学习框架

我对深度学习框架进行了比较。

Keras现在在流行度上优胜于其他框架,显而易见的可以看到人们更喜欢其简单的界面和可用性。

如果你想了解更多关于keras的信息,请访问我在LinkedIn上发布的帖子:https://www.linkedin.com/feed/update/urn:li:activity:6344255087057211393

Deep Cognition

因此,通常我们会进行深度学习编程,然后学习新的API。其中有些API要更复杂一些,也有一些是非常容易的,比如Keras。但是如何通过点击几个按钮就可以轻松创建和部署深度学习框架呢?

这就是Deep Cognition所许诺要达到的目标。

正如他们所说,Deep Cognition平台是为了“民主化AI”而建立的。

人工智能为世界的经济已经创造了巨大的价值。然而,AI企业在准备部署人工智能技术时所面临的巨大障碍也正是他们的(巨大)短板。 这就是Deep Cognition所正在解决的问题。

Deep Cognition的深度学习工作室平台可以采用云解决方案,也可以是在你的机器中运行的桌面解决方案(http://deepcognition.ai/desktop/)或者是企业解决方案(私有云或内部解决方案)。

桌面版本允许人们使用他们自己的电脑,并且无需为GPU付费。

为此,我们将使用Deep Learning Studio的云端版本,并使用单用户解决方案来创建和部署AI。简单的界面拖放就可以帮助您轻松设计深度学习模型。

预训练的模型以及使用内置的辅助功能可以简化和加速模型开发。 您可以导入模型代码并使用可视化界面来编辑模型。 当您迭代和调整超参数以提高性能时,平台会自动的保存每个模型版本。 您还可以通过比较不同版本的性能以找到最佳模型设计。

在 MNIST 数据集上使用 Deep Cognition 和 AutoML

Deep Learning Studio可以自动地为您自定义的数据集设计深度学习模型,这要归功于我们先进的AutoML功能。 您只需在几分钟内就可以启动并运行得到一个良好的模型结果。

没错!AutoML就是能随时实现你所想的,专门为深度学习而设计的自动化机器学习系统。它可以为你创建一个从原始数据到预测结果完整的流水线。

作为深度学习工作室的一个小教程,我们来研究一下经典的MNIST数据集。

MNIST是一个简单的计算机视觉数据集。 它由这样的手写数字图像组成:

它还包括每个图像的标签,这样就可以告诉我们它对应的是哪个数字。

运用Deep Cognition的云端工作室和AutoML功能,我们来训练一个可以查看图像并预测图像数字的模型。

如果你已经有一个帐户,你就只需要进入http://deepcognition.ai网页,然后点击启动云应用程序。

然后,你进入到用户界面,以及可以选择一些示例项目:

现在要做的是创建一个新的项目:

接下来的页面,您可以选择训练集-验证集-测试集的比率,加载数据集或使用已上传的数据集,指定数据的类型等等。

"模型"选项卡可以让您使用很多先进的深度学习功能以及不同类型的神经网络层来创建自己的模型,但是为了让Deep Cognition能处理所有的建模,我们将使用AutoML功能:

我们选择了Image,因为这是我们正要试图预测的数据类型。

在您点击"设计"之后,您就拥有了您的第一个深度学习模型,在此基础上可以进一步来自定义和分析:

模型看起来像这样:

所以,你可以看到在这个非常棒的平台下,深度学习所有复杂的建模过程和编程代码得到了显著的简化。

你也可以在平台内的Jupyter Notevook中进行编程,其中已经预安装了所有必要的程序软件:

配置神经网络非常困难的主要原因在于神经网络中有很多超参数需要设置。与任何其他机器学习算法相比,超参数的调参过程是神经网络中是最难的一部分。

但是在Deep Cognition中,调参可以非常简单且非常灵活的实现。在”超参数“选项卡中,您可以在几个Loss函数和优化器中进行选择来调整参数。

接下来是很有趣的一部分:训练模型。 在“训练”选项卡中,您可以从不同类型的实例(包括CPU和GPU)中进行选择。 它也将帮助您监控您的整个训练过程,并为您创建一个损失和准确率的图:

上面的gif小图就是训练过程

您可以在"结果"选项卡中查看到您所有的训练结果

最后,您得到了一个训练好的神经网络模型,它参考了测试集和验证集(或其他您已上传的)来训练的。您可以立刻使用这个模型并预测图像中的数字以查看它的表现如何。

黑盒问题

有时候在你会这样想:好吧,我正在深入学习,但我不知道它是如何做到的。

由于您实际上可以下载能够预测结果的模型代码,您将会看到它是用Keras编写的。然后您可以上传该代码并使用系统提供的notebook进行测试。

AutoML功能具有Keras和其他深度学习框架中的优秀功能,而且它的好处在于:只需轻轻一点,它就为您自动选择了最佳的深度学习框架实例,如果您对选择不满意,您还可以很轻松在图像界面下修改或者在notebook中交互式的更改。

这个系统平台建立的初衷是人人都可以轻松使用AI。为了构造一个复杂的模型,你并不需要一定是一个AI专家。但我的建议是,你需要对自己在做什么有了一个清晰的认识。你可以通过阅读TensorFlow或Keras文档,观看一些视频和关注相关资讯。如果你是这相关领域的专家,那就太棒了!这将使您的生活更加简单轻松,并且在构建模型时仍然可以运用您的专业知识。

本文来自企鹅号 - AI科技大本营媒体

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏ATYUN订阅号

OpenAI开发的分级强化学习算法旨在解决高级操作

我们已经开发了一种分层强化学习算法,它学习用于解决一组任务的高级操作,可以快速解决需要数千个时间步长的任务。我们的算法应用于一组导航问题时,会发现一组用于在不同...

2906
来自专栏机器之心

前沿 | MIT开发神经网络专用芯片:能耗降低95%,适合移动端设备

2147
来自专栏程序你好

什么是TensorFlow,TensorFlow教程

1252
来自专栏AI科技评论

动态 | 谷歌发布机器学习规则 关于机器学习工程的最佳实践(下)

文章介绍了一种机器学习样式,类似于 Google C++ 样式指南和其他常用的实用编程指南。

752
来自专栏PaddlePaddle

AI不思议|说说那些偶尔混淆的概念

但是产品和运营两队小伙伴一不小心就遇到概念混淆的场景,有些时候是自己记模糊了、有些时候自己没记错、却被别人“拐到沟里“了…

1081
来自专栏技术翻译

机器学习如何改变软件开发

让我们把几件事弄清楚。虽然神经网络、深度学习、机器学习和人工智能似乎都是一样的,但它们都有各自的历史、起源和等级制度。

2551
来自专栏ATYUN订阅号

干货分享:成为机器学习工程师要知道的多种学习路径(附图)

如果你决心成为一名机器学习工程师的话,在这篇文章中,我们将从简单的线性回归到最新的神经网络,让你了解机器学习的所有方面,你不仅可以学习如何使用它们,还将学习如何...

42310
来自专栏AI科技评论

深度 | 为了让iPhone实时运行人脸检测算法,苹果原来做了这么多努力

AI 科技评论按:苹果从iOS11开始正式在系统中带有机器学习API,同步提供了许多基于机器学习/深度学习的手机功能。其实这之前苹果就已经做了很多研究和开发,但...

36910
来自专栏PPV课数据科学社区

【学习】推荐算法实践

前言 推荐系统并不是新鲜的事物,在很久之前就存在,但是推荐系统真正进入人们的视野,并且作为一个重要的模块存在于各个互联网公司,还是近几年的事情。 随着互联网的深...

2943
来自专栏新智元

谷歌开源最大手动注释视频数据集和 TensorFlow 模型性能调优工具

【新智元导读】谷歌再度开放Youtube视频数据集——Youtube边界框(YouTube-BoundingBoxes),含23类共500万手动注释的、紧密贴合...

4388

扫码关注云+社区

领取腾讯云代金券