42

Swift会成为深度学习领域下一个Superman!

 4 years ago
source link: https://www.tuicool.com/articles/JFNBfyn
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Vj6R3qb.jpg!web

标星★公众号      爱你们

作者:Max Pechyonkin

编译:公众号海外部

近期原创文章:

♥  基于无监督学习的期权定价异常检测(代码+数据)

♥  5种机器学习算法在预测股价的应用(代码+数据)

♥  深入研读:利用Twitter情绪去预测股市

♥  Two Sigma用新闻来预测股价走势,带你吊打Kaggle

  利用深度学习最新前沿预测股价走势

♥  一位数据科学PhD眼中的算法交易

♥  基于RNN和LSTM的股市预测方法

♥  人工智能『AI』应用算法交易,7个必踩的坑!

♥  神经网络在算法交易上的应用系列(一)

♥  预测股市 | 如何避免p-Hacking,为什么你要看涨?

♥  如何鉴别那些用深度学习预测股价的花哨模型?

♥  优化强化学习Q-learning算法进行股市

如果你正在学习深度徐恩秀,那么Swift是一门你应该开始学习的语言!

如果你喜欢编程,当你听到Swift时,你可能会想到iOS或MacOS的应用程序开发。如果你正在学习深度学习,那么你一定听说过Swens for Tensorflow(缩写为S4TF)。你可以问自己:“为什么Google会为Swift创建TensorFlow版本? 已有Python和C ++版本;为什么还要再添加一种语言?“。本文,我们将试着回答这个问题,并概述为什么你应该认真遵循S4TF以及Swift语言本身的原因。这篇文章的目的不是给出非常详细的解释,而是提供一个概括性的论述,如果你很感兴趣。便可以深入挖掘。

https://www.tensorflow.org/swift/

Z7bYzaI.jpg!web

Swift背后强大的支持

Swift是由Chris Lattner在Apple工作时创建的。现在,Chris Lattner在Google Brain工作,这是世界上最好的人工智能研究团队之一。Swift语言的创造者现在在实验室从事深度学习的研究,这一事实应该告诉你,这是一个十分高大上的项目。

https://ai.google/research/teams/brain

aM7fmqI.jpg!web

一段时间以前,谷歌意识到,尽管Python是一门优秀的语言,但是它有许多难以克服的局限性。TensorFlow需要一种新的语言,经过长时间的考虑,Swift被选为候选人。这里有一个文档介绍了Python的缺点以及考虑了哪些其他语言,以及最终如何将其缩小到Swift。

https://github.com/tensorflow/swift/blob/master/docs/WhySwiftForTensorFlow.md

R3emIv6.jpg!web

对于TensorFlow来说,Swift不仅仅是一个库

Swift对于TensorFlow不仅仅是另一种语言的TF。它本质上是Swift语言本身的另一个分支。这意味着S4TF不是一个库;它本身是一种语言,内置了支持TensorFlow所需的所有功能。例如,S4TF中有一个非常强大的自动微分系统:

https://github.com/tensorflow/swift/blob/master/docs/AutomaticDifferentiation.md

eANriaR.jpg!web

这是计算梯度所需要的深度学习的基础之一。 与Python相比,自动区分不是语言的核心部分。 最初作为S4TF的一部分开发中的一些功能,后来被集成到Swift语言本身中。

Swift很快

当我第一次知道Swift的运行速度和C代码一样快时,我很惊讶。我们知道C是高度优化的,可以达到非常快的速度,但这需要以微内存管理为代价,这会导致C不能保证内存的安全。此外,C语言不是一门很容易学的语言。

现在,Swift在数值计算中运行得和C一样快:

https://www.fast.ai/2019/01/10/swift-numerics/

r2MFru3.jpg!web

而且它没有内存安全问题,而且它更容易学习。Swift背后的LLVM编译器非常强大,并且具有非常高效的优化功能,可确保你的代码运行速度非常快。

可在Swift中使用Python、C、 C++

由于Swift应用机器学习还处于非常早期的阶段,这意味着适合Swift的机器学习库并不多。你不应该太担心,因为 Swift具有惊人的Python互操作性 。你只需导入Swift中的任何Python库,它就能正常工作。类似地,你可以将C和C++库导入到Swift中(对于C++,你需要确保头文件是用纯C编写的,没有C++特征)。

https://oleb.net/blog/2017/12/importing-c-library-into-swift/

3iaUziR.jpg!web

总之,如果你需要特定的功能,但它还没有在Swift中实现,你可以导入相应的Python、C或C++包。十分不错!

Swift Low-Level

如果你曾经使用过TensorFlow,那么很可能是通过Python包来实现的。在底层,Python版本的TensorFlow库底层有C代码。所以当你调用TensorFlow中的任何函数时,在某种程度上你会碰到一些C。这意味着检查源代码的速度是有限制的。例如,如果你想了解卷积是如何实现的,你将无法看到Python代码,因为它是在C语言中实现的。

在Swift中,情况就不同了。 Chris Lattner称Swift是“LLVM(汇编语言)的语法糖” 。这意味着从本质上说,Swift非常接近硬件,并且没有其他层用C去编写。这也意味着Swift代码非常快,如上所述。这一切都使你作为开发人员能够从一个非常高的级别检查代码到一个非常低的级别, 而无需进入C。

接下来是什么

Swift只是谷歌深度学习创新的一部分。还有一个非常相关的组件:MLIR( Multi-Level Intermediate Representation )。

mqUBRnj.jpg!web

MLIR将是谷歌统一编译器的基础,允许用Swift(或任何其他受支持的语言)编写代码,并将其编译到任何受支持的硬件中。目前,针对不同的目标硬件有大量的编译器,但是MLIR将改变这一点,不仅允许代码重用,还允许编写定制的编译器底层组件。它还将允许研究人员应用机器学习来优化底层算法:

虽然MLIR充当机器学习的编译器,但我们也看到它支持在编译器中使用机器学习!这一点尤其重要,因为开发数值库的工程师的扩展速度赶不上机器学习模型或硬件的多样化。

如果你正在深入学习,那么Swift是一门你应该开始学习的语言。与Python相比,它有许多优势。谷歌正在加大投入,使Swift成为其TensorFlow 机器学习基础设施的一个关键组件,而且很有可能Swift将成为深度学习的语言。所以,

尽早开始和Swift接触会给你一个先发优势。

—End—

量化投资与机器学习微信公众号,是业内垂直于 Quant MFE CST 等专业的主流量化自媒体。公众号拥有来自 公募、私募、券商、银行、海外 等众多圈内 10W+ 关注者。每日发布行业前沿研究成果和最新资讯。

URb6b2z.jpg!web


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK