【导读】你是否曾为选择TensorFlow或Keras而感到纠结?又是否认深度学习编程费时费力而感到苦恼?本文带大家领略一下DeepCognition.ai,其致力于克服深度学习向大众化应用中遇到的障碍,利用可视化的“拖拽”方式来构建深度学习应用。Deep Learning Studio是DeepCognition.ai开发的深度认知平台,你可以使用它在自己的机器上或在云端利用简单的可视化界面来部署深度学习模型。
▌深度认知
仅需拖拽无需编程的云端可视化深度学习平台,“深度认知”的官网是:http://deepcognition.ai/,有兴趣的朋友可以仔细了解一下。
视频:https://v.qq.com/x/page/p05241dpvbl.html
在过去一个月里,我有幸碰到了DeepCognition.ai的创始人。通过使用该公司提供的Deep Learning Studio)来快速的部署深度学习和人工智能产品,扫除了许多机构在应用深度学习上的技术障碍
▌什么是深度学习?
在描述DeepCognition如何简化深度学习和人工智能之前,先让我们先来介绍深度学习的主要概念。
深度学习是机器学习的一个特定的子领域,是一种从数据中学习表示的新方法,它强调用连续的“层”来学习“越来越有意义的数据表示”。深度学习允许模型包含多个层,来学习数据多层的抽象表示。这些表示是通过“神经网络”模型来学习的,神经网络将这些层的结构依次叠加在一起。
实际上,我们在深度学习中使用的是人工神经网络(ANN),该网络受生物神经网络的启发,用于估计或近似估计含有大量未知参数的函数。
虽然深度学习是机器学习中比较老的领域,但直到最近几年其强大的威力才慢慢显示出来。并且陆续在各个领域里取得了重大成就,Francois Collet列出了深度学习的相关成就:
接近人类水平的图像分类
接近人类水平的语音识别
接近人类水平的手写转录(handwriting transcription)
提高机器翻译效果
提高文本-语音转换效果
个人助手,如Google Now或Amazon Alexa
接近人类水平的自动驾驶
改进广告投放,如谷歌、百度和必应
改进了web上的搜索结果
自然语言问答
超过人类水平围棋游戏(Go)
▌为什么要用深度学习?
正如本世纪初François Collet在他的书中所说的那样,我们仍然没有可靠的方法训练非常深的神经网络。因此,神经网络的深度仍然很浅,只能利用一到两层的表示,所以不能超越当时比较成熟的浅层方法,如SVM或随机森林。但是,在近十年中,随着几个简单的但是十分重要的深度学习训练方法的改进提出,以及硬件(主要是GPU)的发展、数据的指数增长和积累,使我们可以在笔记本(或云端)运行小型的深度学习模型。
▌如何进行深度学习?
尽管深度学习已经不是一个全新的领域了,但是我们如何通过与计算机交互进行深度学习的方式是比较新的。而其中最重要的成就之一就是TensorFlow的出现。
TensorFlow是一个使用数据流图进行数值计算的开源库。图中的节点表示数学运算,而边表示在节点之间通信的多维数据阵列(tensors)。
▌什么是张量(tensors)?
Tensors在数学上定义为:简单的数字或函数数组,坐标变换时按照一定的规则进行变换。
张量是向量和矩阵,但可能有更高维度。在TensorFlow内部,TensorFlow将Tensors表示为n维基本数据类型的数组。之所以需要Tensors,是因为NumPy(Python的科学计算包)不能创建Tensors。我们可以将张量转换为NumPy,反之亦然。
TensorFlow融合了经过编译优化后的计算代数,使得很多难以计算的数学表达式变得简单。
▌Keras
我们不止介绍TensorFlow,还有很多其他的深度学习开源库,我们接下来介绍Keras。Keras是一种高级的神经网络API。它是用Python编写,能够在TensorFlow, CNTK或Theano上运行。 Keras的优势是快速构起网络结构,从最初的想法到获得实验结果应尽可能花费较小的时间。Keras是FrançoisCollet创建的,也是让深度学习走向大众的第一步。
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比较复杂有些可能和Keras类似比较简单。但是有没有更简单的方法,只通过点击按钮的方法就可以创建和部署深度学习的解决方案呢?
Deep Cognition就是为解决这个问题而生的。
正如人们所说,“深度认知”平台是为了“大众化AI”而创建的。
当前,人工智能已经为世界经济创造了很多价值,但是,人工智能有一个重大的缺陷,它要求人们具有专门的AI知识才能使用。如何解决这个缺陷,这就是“深度认知”要解决的问题。
“深度认知”平台称为Deep Learning Studio,可以作为云解决方案也可以作为桌面解决方案(http://deepcognition.ai/desktop/)在你的机器或企业解决方案(私有云或内部解决方案)上运行。桌面版本允许人们免费在自己的有GPU的电脑上使用。
我们将使用Deep Learning Studio的云版本。这是一个用于创建和部署人工智能的单用户解决方案。简单的拖拽界面就能帮助您轻松设计出深度学习模型。
通过使用预训练的模型或者使用内置辅助功能,可以大大简化和加快模型开发过程。您可以导入模型代码并使用可视化界面编辑模型。该平台能自动保存每次迭代的模型,并通过调整超参数提高模型的性能。你可以通过比较不同参数的模型来优化你的设计。
▌利用深度认知和AutoML做MNIST字符识别任务
基于提出的AutoML特征,深度学习平台可以自动的在你的数据集基础上设计出一个深度学习模型。只需要短短几分钟,你就能得到一个表现还不错的模型。
AutoML就是你梦寐以求的自动机器学习,它专门用于深度学习,将给你创建一个从原始数据到预测的完整流程。
作为这个深度学习平台的一个经典例子,我们来用MNIST演示一下。MNIST是一个简单的手写数字图像数据集:
它包括每个图像和其标签,标签告诉我们它是哪个数字.
让我们使用Deep Cognition Cloud Studio 和 AutoML来生成一个模型来训练这些图像数据,并预测它们是什么数字。
当你注册了一个deepcognition.ai账号后,只需进入http://deepcognition.ai这个网址然后点击“Launch Cloud App”.
然后,你将会进入用户界面,你会看到界面上有一些示例项目,你可以从中选择你感兴趣的:
或者也可以像我们这个教程里一样,创建一个新的项目:
新建项目将带你进入一个页面,这里你可以在选择训练-验证-测试数据的比例,加载数据集或使用已上传的数据集,指定数据的类型等等。
在“Model”这一栏,你可以使用之前的已经预训练好的深度学习特征和不同类型的层来创建自己的审计网络模型,但是这里我们使用AutoML功能,以便让Deep Cognition负责所有的建模:
我们选择“Image”,因为我们将要对图像进行预测。
在你点击“Design”之后,你将会得到你的第一个可定制和分析的深度学习模型:
模型的结构如下图:
可以看出,复杂的深度学习和编码技术,在这个平台上已经进行了很大的简化。
如果你想的话,也可以在平台内的Jupyter Notebook中进行编码,所有必要的依赖环境都已经安装完成了:
神经网络的配置非常困难,因为有很多参数需要设置。与其他机器学习算法相比,超参数调整在神经网络中是最难的。
但使用Deep Cognition,变得非常简单,并且非常灵活,在"HyperParameters"选项卡中,你可以从几个Loss函数和优化器中来调整参数:
现在你可以训练你的模型。在“Training”选项卡中,你可以从不同的实例(包括CPU和GPU)中进行选择。将帮助你监控你的训练过程,并为您创建一个损失(Loss)和准确度(Accuracy )可视化图:
上面是一个训练过程图。
训练的结果将会在“Results”选项卡中找到,这里包含了你所有的运行结果:
最终,你可以用这个模型来测试验证集(你也可以上传其他数据),看看该模型从图像中检测数字的性能。
▌黑匣子问题
有的时候你可能会想:我在做深度学习的时候,我不知道它到底是怎么运行的。
其实,经过上述步骤,你可以下载生成的预测模型的代码,你将会看到它是用Keras编写的。然后你可以上传代码并使用系统提供的notebook进行测试。
通过简单的点击,AutoML就能让你获得最先进的深度学习框架Keras或者其他框架的代码 。你可以选择最适合自己的深度学习框架,并且如果你对系统的选择不满意的话,你可以很轻松地在界面中进行修改或者在notebook中修改。
这个系统建立的目的是让所有人都能方便地使用AI,在创建复杂的AI模型时,不要求你是专家。但是我的建议是,你需要对自己要做什么有一个清楚的了解,阅读TensorFlow或Keras文档,或者观看一些视频教程并做好笔记。 如果你是AI领域的专家,那就更好了!这个系统将使让你更加轻松,并且你在构建模型时仍然可以运用你的专业知识。
请记住查看References,以获取更多关于Deep Learning和AI的信息。
▌关于Favio Vázquez
Favio Vázquez: 物理学家和计算机工程师。他拥有墨西哥国立自治大学物理学硕士学位。 研究兴趣包括大数据,数据科学,机器学习和计算宇宙学(Computational Cosmology)等领域。自2015年以来,他一直是Apache Spark在Core和MLlib库的合作伙伴。
他同时也是Iron的首席数据科学家,负责为公司执行分布式处理,数据分析,机器学习和指导数据项目。 此外,他在BBVA Data&Analytics担任数据科学家,负责机器学习,数据分析,使用Apache Spark维护项目和模型的生命周期。
参考链接:
http://deepcognition.ai/
https://medium.com/@favio.vazquezp/deep-learning-made-easy-with-deep-cognition-403fbe445351
请关注专知公众号(扫一扫最下面专知二维码,或者点击上方蓝色专知),
后台回复“DCAI” 就可以获取Deep Learning made easy with Deep Cognition 博文原文PDF下载~
-END-
专 · 知
人工智能领域主题知识资料查看获取:【专知荟萃】人工智能领域26个主题知识资料全集(入门/进阶/论文/综述/视频/专家等)
同时欢迎各位用户进行专知投稿,详情请点击:
【诚邀】专知诚挚邀请各位专业者加入AI创作者计划!了解使用专知!
请PC登录www.zhuanzhi.ai或者点击阅读原文,注册登录专知,获取更多AI知识资料!
请扫一扫如下二维码关注我们的公众号,获取人工智能的专业知识!
请加专知小助手微信(Rancho_Fang),加入专知主题人工智能群交流!
点击“阅读原文”,使用专知!