为什么Python是AI最好的语言,以及如何使它更好(27PPT)

【新智元导读】Matthew Honnibal 是悉尼大学一名博士研究生,已经在自然语言处理领域发表数十篇论文。他最著名的是开发了spaCy,这是一个生产就绪的NLP Python包。这个ppt来自 Honnibal 在巴伊兰大学计算机科学系研讨会的演讲,主题是“为什么Python是AI最好的语言(以及如何使它更好)”。

在过去几年中,Python已经成为机器学习和AI的主要开发语言。由于对于数值计算来说,人工内存管理非常重要,CPython为低级别的扩展提供了一种高效、实用的API。对于Web编程而言,Python不需要使用JSON,XML解析,图像处理和数据库连接的快速库。 但是,大多数Python用户不喜欢这些本机扩展。本机扩展反而造成一些不便,更容易导致出错。

作者认为,Python社区应该接受必要的本机扩展。通过投入更好的工具来强化其优势,Python语言将变得更强大。个人开发人员将受益于Cython,并了解如何阅读和构建本机库。这尤其适用于机器学习和人工智能领——当前软件开发中发展最快的领域。

Python 对于AI来说是最好的语言——但它可以更好。

Python在数据科学和AI中占据主导地位

  • 比R更具有通用性和实用性
  • 比Java和C ++更有生产力和灵活性
  • 比Ruby和JavaScript拥有更好的生态系统
  • Python是一个很全面的语言,尤其对于数据科学,机器学习和AI

Python为何拥有最好的生态系统?

  • 某一语言获得“胜利”,不仅由于它足够好,而且天时地利
  • 2004年之前Java和C ++的生产力不足
  • C扩展对于Perl和Ruby来说相对较难

C扩展是Python的优势。 如果我们不理解它,就不能好好利用它。

Python vs. Cython

我们应该怎么做?

  • 个人开发人员应该习惯写Cython
  • 社区应该投入更多资源,使其更简单明了
  • 性能是Python代码的一个大问题

Python对于AI来说是最好的语言

Python 是最受欢迎的...

  • 在AI研究中,你最常使用的是什么编程语言?

Python 78%

  • 最受欢迎的语言(数学 & 数据)

Python 55%

Python 的生态系统使其成为AI的最佳选择

“真正使Python和Ruby两种语言区分开来的是它们的框架和库的环境”

“scikit学习:Python机器学习是用于此目的的最简单、最先进的库之一。”

“由于其软件包库的成熟度和广度”

“它受欢迎的另一个重要原因是对许多与ML(scikit-learn,scipy,numpy等)相关的开源项目的可用性。”

来源:为什么Python在机器学习中如此受欢迎?(Quora)

执行Python的一般方法

  1. 实现它。
  2. 使它更快。
  3. 我们可以在这里使用PyPy吗?
  4. 更多核心
  5. 糟糕,为什么不起作用?

渐进式改进并不总能得到最佳解决方案

你可以一点一点地使你的Python代码更快,但假如从解决方案空间的错误部分开始,不能得到最好的解决方案。

更好的Python执行方法

  1. 规划数据结构。
  2. 写出简单,易理解,以及近似最优的解决方案。
  3. 修复编译器错误。
  4. 思考为什么没有更多的文档。
  5. 思考人生。
  6. 终于,获得结果。
  • 使用Cython。
  • 在setuptools中提供默认支持
  • 在主文档中推荐Cython
  • 考虑更深入地集成到CPython中

进一步了解Cython

  • Cython-CUDA可以很好用
  • 库可以拥有很好的Cython API
  • 可以更容易地编译独立的库或应用

“但是为什么不使用JIT编译?”

  • 优势来自决策
  • 这是“感觉很难”的部分——但没有它你没法得到好的解决方案
  • 如果您对数据结构进行优化,那JIT也无法帮你

我能从慢的代码调用快速库吗?

  • 可以(大部分情况)。但需要更快时,你要怎么办?
  • 学习库API是一种低廉的技能
  • 更好的是学习基础

<完>

原文发布于微信公众号 - 新智元(AI_era)

原文发表时间:2017-08-07

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏智能计算时代

75个每个人都应该知道的大数据术语

在第一篇文章中介绍了以下术语:算法,分析,描述性分析,规定分析,预测分析,批处理,Cassandra,云计算,集群计算,黑暗数据,数据湖,数据挖掘,数据科学家,...

4864
来自专栏木东居士的专栏

数据仓库概念总结

3874
来自专栏跨界架构师

[译文]Domain Driven Design Reference(七)—— 大型战略设计结构

上周末电脑硬盘文件莫名丢失,狼狈了大半周才缓过来 T_T 。《Domain Driven Design Reference》的原版pdf也丢了,好在这篇文章提...

902
来自专栏平凡文摘

2018最吸金编程语言

4985
来自专栏Youngxj

什么是Go语言?

2772
来自专栏FreeBuf

开源软件安全现状分析报告

一、背景情况 开源软件具有开放、共享、自由等特性,在软件开发中扮演着越来越重要的角色,也是软件供应链的重要组成部分。据Gartner调查显示,99%的组织在其 ...

5165
来自专栏北京马哥教育

5个超高评价的机器学习Python 库

? 作者 | Serdar Yegulalp 来源 | 搜狐 糖豆贴心提醒,本文阅读时间6分钟,文末有秘密! 机器学习令人无比神往,但从事这个工作的人可能...

3975
来自专栏Albert陈凯

大数据人工智能词汇索引S大数据人工智能词汇索引S

大数据人工智能词汇索引S S ---- 流处理(Stream processing):流处理被设计来用于持续地进行流数据的处理。与流分析技术(指的是能够持续地计...

3797
来自专栏双十二技术哥

《重构:改善既有代码的设计》读书笔记(一)

各位程序老司机对重构肯定不会陌生,程序员的工作离不开重构。那么重构是已经“飞入寻常百姓家”的普通技术能力,还是看起来高大上的杀器?

2362
来自专栏数据科学与人工智能

【ETL技能】白话数据仓库 ETL 搭建全过程

经过多年来企业信息化建设,大部分都拥有了自己的财务,OA,CRM 等软件。这些系统都有自己的独立数据库,记录着企业运行情况某个方面的数据。但是单独看这些系统的报...

5579

扫码关注云+社区

领取腾讯云代金券