热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

美联储加持的小众语言

早在2009年,JeffBezanson、AlanEdelman、StefanKarpinski和ViralShah四个人聚到一起决心创造一种全新的编程语言。新语言要快速、有表达力

美联储加持的小众语言 Julia ,能否成为机器学习的明日之星?

早在 2009 年,Jeff Bezanson、Alan Edelman、Stefan Karpinski 和 Viral Shah 四个人聚到一起决心创造一种全新的编程语言。新语言要快速、有表达力,结合 C 语言、Matlab、Java、Ruby、Python、Perl 和 R 各自的优势,并能直接与 R、Matlab、Python 等最受欢迎的机器学习语言,以及其他动态工具展开竞争。听起来这思路很直接、很简单,是吧?这想法的背后有着几名创始人对开发者“痛点”的长期切身体会:工程师们为了在数据分析中获得速度和易用性,不得不首先用一种语言编码,然后用另一种语言重写——这实在很“坑爹”。而这就是很多人口中的“双语言问题”。

这背后的努力,促成了 Julia 的诞生。

创始人之一的 Viral Shah 解释道:

“为什么一个编程语言不能同时具有性能和生产力,这难道是一个物理定律吗?或者,现有的编译器-语言技术还没有发展到那个阶段?我们认为,在同个封装中获得易用性和性能是可能的。于是,我们开始投入到这个项目之中,并把它命名为 Julia。”

美联储加持的小众语言 Julia ,能否成为机器学习的明日之星?

Viral Shah 

随后,几名 Julia 创始人联合 Keno Fischer 创立了“Julia Computing” ——一家咨询公司,为使用 Juia 语言的企业客户提供帮助。

美联储加持的小众语言 Julia ,能否成为机器学习的明日之星?

Julia 是一门开源语言,允许开发者创建性能更为强大的数字算法——相对于采用 Just In Time (JIT) 解释的语言而言。它易于使用,大幅减少了需要写的代码行数;并且能够很容易地部署于云容器(cloud containers )

2012 年,Julia 的第一个公开版本 Julia 0.1 正式发布。2016 年九月发布了Julia 0.5,涵盖了 1100 个工具包,比一年前的 0.4 版本增加了 57%。Julia 开发者社区的规模还很小,目前在全世界范围内大约有 15 万用户。但随着计划于今年 6 月在加州大学伯克利分校举办的 JuliaCon 峰会,以及将在峰会上发布的 Julia 1.0;届时,它的用户群有望快速增长。Viral Shah 表示,他们的下一个目标是 150 万用户。另外,现有 Julia 版本的技术支持期限是一年,而 Julia 1.0 将会是五年。

Julia 已经引起了华尔街的注意。投资银行 Berkery Noyes 的 CTO Keith Lubell 评论道:

“真正让我们感到激动的是,你可以编写高层级的科学、数字计算,而不需要重新编译。通常来讲,当你用 R 或 Matlab 写了一些东西,想让它运行得更快。你需要把它重新翻译至 C++,或者其他更快的语言。而使用 Julia 就不需要这样——它的速度是拔尖的。”

Julia 仍是摇篮中的新生儿。因此,若要成为大数据、机器学习工程师们的普遍选择,它需要在多个领域成长起来。其中最重要的是开发者社区,它亟需壮大以提供更多的工具包和库。只有这样, Julia 才能吸引更多用户到它的平台,与基础设施完善的老牌数据分析语言直接竞争。

如果你跟任何使用 Julia 的开发者聊聊,他们会告诉你,选择“上车”、使用这个萌芽期编程语言的首要原因是速度。据 Julia Computing 的宣传,在七项基础算法的测试中,Julia 比 Python 快 20 倍,比 R 快 100 倍,比 Matlab 快 93 倍。

Julia 精简的代码行数,对其性能提升贡献巨大。迄今为止最引人注目的 Julia 应用案例是纽约联邦储备银行( Federal Reserve Bank of New York )

美联储对 Julia 的应用

美联储加持的小众语言 Julia ,能否成为机器学习的明日之星?

大约两年前,诺贝尔经济学奖得主、纽约大学经济学教授、咨询公司 QuantEcon 的创始人 Thomas Sargent,以及澳大利亚国立大学的经济学教授 John Stachurski,共同建议纽约联邦储备银行( Federal Reserve Bank of New York )把其用于市场走势预测和政策分析的“动态随机一般均衡模型(DSGE)”转到 Julia 语言平台。

美联储加持的小众语言 Julia ,能否成为机器学习的明日之星?

 Thomas Sargent

此前,纽联储的 DSGE 模型一直用 Matlab 运行。该项目背后的逻辑是,探索像 DSGE 这样的大型模型能否轻易转移至 Julia,以及其运行速度究竟会不会有大幅提升。纽联储采纳了建议,并利用该机会与 QuantEcon 合作。纽联储宏观经济与货币研究部门副主席 Marco Del Negro 表示:

“对我而言,这是一个绝妙的注意。我们当时正在考虑脱离 Matlab ——既出于成本,也有速度方面的原因。我们希望进一步提升我们的模型,并探索新事物。”

在项目第一阶段后,他们发现,Julia 把模型运行时间缩短至原先 Matlab 代码的十分之一到四分之三。模型中,Metropolis-Hastings 采样(从概率分布获取一系列随机样本的马尔可夫链蒙特·卡罗方法)是最耗费时间的环节。而在该环节,Julia 的运行速度是 Matlab 代码的 10 倍。相对于原先的 Matlab 版本,基于 Julia 的全新 DSGE 模型把代码行数减少了将近一半。

雷锋网获知这些性能提升不能全归功于 Julia。纽联储表示,Matlab 版本的 DSGE 模型开发周期相当长,是一个累积式的过程。另外,它还支持了过多的模型和特征。这些原因导致其有很多不完美之处,运行效率本身就有不足。新项目下,这些专家们用 Julia 把该模型从头设计了一遍,针对此前发现的一系列问题做了改进。因此,新模型可被看做是经历了两重升级:架构优化以及 Julia。当然,两者是结合在一起实现的。不过,一些“经历了较小优化以及重设计”的算法,比如测量算法以及 kalman_filter 函数,新版本仍然比旧的、基于 Matlab 的模型提升了大约五分之一至四分之三的运算速度,见下图。

雷锋网获知,目前纽联储已经开启了项目的第二阶段:改进 DSEG 模型的预测能力。由于他们需要不断为模型添加数据和层级,纽联储认为 Julia 能更好应付提升的复杂性——他们估算基于 Julia 的模型运行时间大约只需要一至两天,而 Matlab 可能需要一个月才能等到输出结果。但这仍需第二阶段完成后进行证实。

开发者社区

美联储加持的小众语言 Julia ,能否成为机器学习的明日之星?

Julia 最大的短板在于社区。雷锋网(公众号:雷锋网)获知,Python 已经 25 岁了, R 语言快 25 岁了,Matlab 超过 30 岁了。它们有非常扎实的社区群众基础——不断加入新工具包以及库的支持。有观点认为这些主流语言会不断改进,并在未来的某个时间点,在原本的短板上一举超越这些新兴、但强大的小众语言。Keith Lubell 就表达了类似的观点,但他补充道:投资银行业正受到来自金融科技公司越来越大的竞争压力,迫使他们考虑利用 Julia 这些新兴语言实现创新。

为了对开发者社区提供支持,AOT 的 Duve 说他有信心 Julia Computing 会成为 RStudio 那样的机构。后者为 R 语言开发开源的免费工具及商用级的专业产品。Duve 认为,Julia 采取的开发、发布方式会鼓励更多的企业级用户采用它。尤其 Julia 的用户体验友好,它的架构使得金融和经济学领域的专家们很容易使用,因而已受到金融圈部分人士的欢迎。纽联储就是一个例子。

Duve 说道:“Julia 开发者社区推动、改进该语言的方式,比 R 语言历史上的任何时候都有条理地多。”

另外,BestX 的 Thind 表示,虽然 Julia 能被轻易部署于云端容器,但与云交互存在着风险:

“在云端服务上,用 Julia 在整个簇(cluster)部署多个处理进程,就像 MapReduce 那样,是非常简便、高效的。但如果你需要与 DynamoDB 或 RedShift 这样的特定服务交互,Python 的 API 要比 Julia 的原生库成熟、强大得多。”

想要拿 Julia 试手的开发者,需要仔细考虑他们使用该语言的用途,以及拿什么与之配合。

“所有想要加入 Julia 阵营的公司都需要弄清楚,你想要用它来实现哪些不一样的功能?它能不能为其中至少一半的功能提供原生支持?你可以用 C 语言或者 Python 来完成剩下的那些,并且这会是完全无缝的体验。但是,如果你的大部分应用都需要其他语言来弥补,你应该暂时缓一缓转向 Julia,或者联系 Julia Computing 看看能否得到缺失的功能支持。”

最后,我们来看看 Julia 创始人之一的 Viral Shah 的愿景:

“某一天,开发者社区会传来一个信号—— Julia 已经做好准备,将进入指数级增长轨道。”

via waterstechnology

相关文章:

机器学习新星:Scala 优于 Java 的五大理由!

入门必读 机器学习六大开发语言

Python、R、Java、 C++ 等:从业界反馈看机器学习语言趋势

Lisp 家族迎来新成员,函数式语言 Lux 是什么?

雷锋网版权文章,未经授权禁止转载。详情见。


美联储加持的小众语言 Julia ,能否成为机器学习的明日之星?


推荐阅读
  • Hired网站最新发布的开发者调查显示,Python 语言继续受到开发者的广泛欢迎,而 PHP 则被评为最不受欢迎的语言。该报告基于 Hired 数据科学团队对 13 个城市中 9800 名开发者的调查数据,深入分析了当前编程语言的使用趋势和开发者偏好。此外,报告还探讨了其他热门语言如 JavaScript 和 Java 的表现,并提供了对技术招聘市场的洞见。 ... [详细]
  • 掌握PHP编程必备知识与技巧——全面教程在当今的PHP开发中,了解并运用最新的技术和最佳实践至关重要。本教程将详细介绍PHP编程的核心知识与实用技巧。首先,确保你正在使用PHP 5.3或更高版本,最好是最新版本,以充分利用其性能优化和新特性。此外,我们还将探讨代码结构、安全性和性能优化等方面的内容,帮助你成为一名更高效的PHP开发者。 ... [详细]
  • Python与R语言在功能和应用场景上各有优势。尽管R语言在统计分析和数据可视化方面具有更强的专业性,但Python作为一种通用编程语言,适用于更广泛的领域,包括Web开发、自动化脚本和机器学习等。对于初学者而言,Python的学习曲线更为平缓,上手更加容易。此外,Python拥有庞大的社区支持和丰富的第三方库,使其在实际应用中更具灵活性和扩展性。 ... [详细]
  • Python错误重试让多少开发者头疼?高效解决方案出炉
    ### 优化后的摘要在处理 Python 开发中的错误重试问题时,许多开发者常常感到困扰。为了应对这一挑战,`tenacity` 库提供了一种高效的解决方案。首先,通过 `pip install tenacity` 安装该库。使用时,可以通过简单的规则配置重试策略。例如,可以设置多个重试条件,使用 `|`(或)和 `&`(与)操作符组合不同的参数,从而实现灵活的错误重试机制。此外,`tenacity` 还支持自定义等待时间、重试次数和异常处理,为开发者提供了强大的工具来提高代码的健壮性和可靠性。 ... [详细]
  • 在机器学习领域,深入探讨了概率论与数理统计的基础知识,特别是这些理论在数据挖掘中的应用。文章重点分析了偏差(Bias)与方差(Variance)之间的平衡问题,强调了方差反映了不同训练模型之间的差异,例如在K折交叉验证中,不同模型之间的性能差异显著。此外,还讨论了如何通过优化模型选择和参数调整来有效控制这一平衡,以提高模型的泛化能力。 ... [详细]
  • 如何精通编程语言:全面指南与实用技巧
    如何精通编程语言:全面指南与实用技巧 ... [详细]
  • 利用Python进行学生学业表现评估与成绩预测分析
    利用Python进行学生学业表现评估与成绩预测分析 ... [详细]
  • 如何高效启动大数据应用之旅?
    在前一篇文章中,我探讨了大数据的定义及其与数据挖掘的区别。本文将重点介绍如何高效启动大数据应用项目,涵盖关键步骤和最佳实践,帮助读者快速踏上大数据之旅。 ... [详细]
  • 字节跳动深圳研发中心安全业务团队正在火热招募人才! ... [详细]
  • SQLSharper 2014 是一款专为 SQL Server Management Studio (SSMS) 设计的功能增强插件,旨在提升 T-SQL 开发者的效率。该插件提供了多种实用工具,包括快速查询数据库对象、详细查看表结构、优化查询结果导出以及自动生成代码等。适用于需要高效管理和开发 SQL 数据库的专业人士。 ... [详细]
  • 在《Cocos2d-x学习笔记:基础概念解析与内存管理机制深入探讨》中,详细介绍了Cocos2d-x的基础概念,并深入分析了其内存管理机制。特别是针对Boost库引入的智能指针管理方法进行了详细的讲解,例如在处理鱼的运动过程中,可以通过编写自定义函数来动态计算角度变化,利用CallFunc回调机制实现高效的游戏逻辑控制。此外,文章还探讨了如何通过智能指针优化资源管理和避免内存泄漏,为开发者提供了实用的编程技巧和最佳实践。 ... [详细]
  • 深入解析CAS机制:全面替代传统锁的底层原理与应用
    本文深入探讨了CAS(Compare-and-Swap)机制,分析了其作为传统锁的替代方案在并发控制中的优势与原理。CAS通过原子操作确保数据的一致性,避免了传统锁带来的性能瓶颈和死锁问题。文章详细解析了CAS的工作机制,并结合实际应用场景,展示了其在高并发环境下的高效性和可靠性。 ... [详细]
  • 通过使用CIFAR-10数据集,本文详细介绍了如何快速掌握Mixup数据增强技术,并展示了该方法在图像分类任务中的显著效果。实验结果表明,Mixup能够有效提高模型的泛化能力和分类精度,为图像识别领域的研究提供了有价值的参考。 ... [详细]
  • 投融资周报 | Circle 达成 4 亿美元融资协议,唯一艺术平台 A 轮融资超千万美元 ... [详细]
  • 从2019年AI顶级会议最佳论文,探索深度学习的理论根基与前沿进展 ... [详细]
author-avatar
小永远佳瞳_186
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有