Julia 对决Python:谁能在2019年称霸机器学习编程?



来源:新智元
Julia成为2018年发展最快的编程语言之一,因为它结合了几种主要语言的优势而备受推崇。

同时,Python依然在使用范围方面占据着巨大优势,并且热度一直保持着上升趋势。

那么,哪种编程语言将在2019年统治机器学习?来看下分析吧。

## Julia风头正劲,适合制作可微分算法 ##

首先来看看风头正劲的Julia。

Julia于2012年发布,由麻省理工学院(MIT)的计算机科学和人工智能实验室(CSAIL)开发和孵化,是一种免费的开源语言。

1.jpg


目前,Julia已经推出1.0版本,Julia现在有希望成为机器学习(ML)领域的首选语言。麻省理工学院教授Alan Edelman说:“Julia 1.0的发布标志着Julia现在已经准备好通过将Python和R语言的高效率和易用性与C ++的闪电般速度相结合来改变技术世界。”

能帮助Julia实现这一目标的是Flux,这是一款面向Julia的机器学习软件库,旨在使ML代码更易于编写,同时简化训练流程,并且与竞争框架相比,能提供在GPU和Google TPU等硬件加速器上的某些性能优势。

Julia背后的团队表示,他们的语言非常适合制作可微分算法——这是一种程序性的、数据驱动的代码,可用于构建机器学习中使用的神经网络。

Julia团队在博客文章中写道:


我们需要一种语言来编写可区分的算法,而Flux将帮助Julia成为满足这类需求的语言。


Julia非常适合用于数学和数值计算,并且非常适合表达ML算法。同时,它融合了现代设计和编译器中的新思想,可以更容易满足前沿的高性能需求。
根据Julia团队的博客文章,Flux库使用各种专注ML工具扩展了Julia的编译器,从而支持一流梯度,在性能和开发人员控制之间取得更好的平衡;为GPU及时进行CUDA内核编译,在训练期间进行自动批量处理,以减少开销;在Google TPU上进行优化运行。

该团队表示,Flux支撑下的Julia,以及即将推出的可分辨编程语言Myia和最近的Swift for Tensorflow,可能很快就会挑战既定的机器学习框架和方法。

在Julia今年早些时候发布1.0版后,该语言的用户对于它的进展情况总体上是持乐观态度的,尽管有些人仍然担心它会发生错误的处理状态,或者产生无用文档。

## 好上手的Python仍是王者,使用范围上占据绝对优势 ##

但Julia任重而道远。

如今,Python和R语言通常在机器学习中占主导地位,在开发人员普及方面,Python仍然是增长最快的编程语言,这在很大程度上取决于其机器学习框架和库的优势。相比之下,只有相对较小比例的开发人员使用刚刚起步的Julia。

Python在使用范围方面的确占据着绝对优势。

当前的机器学习热潮推动了学习Python的开发人员数量急剧增加。除了在大数据分析中使用该语言外,Python的多功能性在其使用范围内的优势也很明显,从Web和桌面应用程序到编排系统操作。

软件质量评估公司TIOBE的数据显示,2018年12月,Python超越C++成为TIOBE索引排行的第三名,这对于Guido van Rossum的脚本语言来说是历史最高水平。

2.jpg


TIOBE还强调了Python在教学中日益增长的用途:2014年,Python成为70%美国大学的入门编程课程。

Python的确有很多优势:Python代码相对易于阅读和理解,支持多种编程范例,具有可以放入代码的各类软件库,并且能扩展到大型应用程序。网上还有很多高质量的免费教程、课程和视频,这很有利于传播。

Python一直被认为是最容易学习的编程语言之一,并且以其高可靠性和简单的语法而闻名,特别是新编码器。

“我认为,Python是最接近'即时满足语言'的语言,意思是代码非常少,即使你是一名新手程序员也能学会,”IEEE研究员兼研究生工程院院长Karen Panetta说“这是因为Python读起来像英语,这使得它更有利于广大用户受众学习。”

## 新语言层出不穷,支撑机器学习发展 ##

Julia团队表示编程语言的发展绝对不会止步于此,并且语言的发展会对机器学习起着重要的作用。

我们相信机器学习的未来取决于语言和编译器技术,特别是在扩展新的或现有的语言以满足机器学习研究的高要求时。

支持差异化、矢量化、不同硬件和文化差异的语言将推动科学的大幅进步。

Julia团队说:“比起那些新一代的工具 Myia、Swift/TF和Flux,TensorFlow、PyTorch和KNET是为现有框架所准备的。”

不过,将来那些新一代的工具很有可能派上用场。“如果你在ML中取得新的突破,他们可能是你最好的选择。给他们一个机会,看看机器学习的未来是什么样的。”

据LinkedIn称,机器学习工程师是从2017年起的五年内发展最快的工作类别,并且有越来越多的免费课程可供想要专攻该领域的开发人员使用。

身为开发者的你,更看好哪种语言呢?

参考链接:

https://www.techrepublic.com/a ... 2019/

https://www.tiobe.com/tiobe-index/

今日学习推荐

【机器学习】
【机器学习集训营·第7期】的目标是从零开始,将学员培养成中高级机器学习工程师,6位专家级机器学习讲师,带领学员完成10个极富价值的ML实战项目,三个月实现薪资翻倍。全国12城已同步开营,仅剩7个特惠价名额,可组团。课程链接:http://www.julyedu.com/weekend/train7
已邀请:

要回复问题请先登录注册

返回顶部