社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

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

新智元 • 7 年前 • 973 次点击  

1新智元编译 

 来源:github.com

作者:Matthew Honnibal

编译:刘小芹


【新智元导读】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是一种低廉的技能

  • 更好的是学习基础





【号外】新智元正在进行新一轮招聘,飞往智能宇宙的最美飞船,还有N个座位

点击阅读原文可查看职位详情,期待你的加入~




今天看啥 - 高品质阅读平台
本文地址:http://www.jintiankansha.me/t/BQV1q79GZx
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/2953
 
973 次点击