朱海鹏
【嵌牛导读】这是一个雷军所说“猪在风口也能飞”的时代,移动互联网的变革方兴未艾,而人工智能推动的新风口又汹涌来袭。以人工智能公司自居的百度因为押注AI(比如开发前端的对话式人工智能系统DuerOS和自动驾驶Apollo开放平台,以及后端的百度大脑和智能云)近期市值大涨;人工智能技术应用于各大领域,包括从智能家居到自动驾驶;西安电子科技大学成立人工智能学院。这些变化无不说明人工智能的战略价值和重大意义。在以人工智能为核心的新AI生态中有大把的机遇,开发者们需要考虑哪种编程语言适合人工智能的开发。
【嵌牛鼻子】人工智能、Python、编程语言
【嵌牛提问】哪一种编程语言适合做人工智能的开发语言?Python语言的优势在哪里?
【嵌牛正文】
事实上人工智能程序可以使用几乎所有的编程语言实现,最常见的有:Lisp、C/C++,近来又有Java,最近还有Python。比如高级语言Lisp,垃圾收集、动态类型、数据函数、交互式环境和可扩展性等特性使得Lisp非常适合人工智能编程。C/C++的高效性使其在需要高执行速度的人工智能项目中有用武之地。Java没有Lisp和Prolog高级,又没有C那样快,但可移植性好,能适用于任何程序。这些编程语言各有特点,各具优势,但是最受青睐的语言当属Python,甚至有言论如是说:"对于希望加入到 AI 和大数据行业的开发人员来说,把鸡蛋放在 Python 这个篮子里不但是安全的,而且是必须的。"Python将是人工智能的最佳编程语言和第一开发语言。
那Python语言的优势又在何处?首先,Python是公认简单易学的开源动态脚本语言,在世界上不少地方已作为编程入门课程的首选教学语言,有着极大的受众和开发潜力,“非常有机会在不久的将来成为第一种真正意义上的编程世界语。"Python 已经是数据分析和 AI的第一语言,网络攻防的第一黑客语言,正在成为编程入门教学的第一语言,云计算系统管理第一语言。Python也早就成为Web 开发、游戏脚本、计算机视觉、物联网管理和机器人开发的主流语言之一,随着 Python 用户可以预期的增长,它还有机会在多个领域里登顶。"它被昵称为“胶水语言”,更被热爱它的程序员誉为“最美丽的”编程语言。从云端、客户端,到物联网终端,Python应用无处不在,无所不包,与人工智能开发非常契合。
其次,Python相比其他编程语言有几大明显优势。
1.Python开源,有强大的社区开发支持,开发生态成熟。AI的Python库较完备全面,很多库很方便做人工智能,比如numpy, scipy做数值计算的,sklearn做机器学习的,pybrain做神经网络的,matplotlib将数据可视化,非常好用。下面引用一篇知乎中列举的一些AI库:
AIMA:Python实现了从Russell到Norvigs的“人工智能:一种现代的方法”的算法
pyDatalog:Python中的逻辑编程引擎baqist.cn
SimpleAI:Python实现在“人工智能:一种现代的方法”这本书中描述过的人工智能的算法。它专注于提供一个易于使用,有良好文档和测试的库。
EasyAI:一个双人AI游戏的python引擎(负极大值,置换表、游戏解决)
机器学习库
PyBrain 一个灵活,简单而有效的针对机器学习任务的算法,它是模块化的Python机器学习库。它也提供了多种预定义好的环境来测试和比较你的算法。
PyML 一个用Python写的双边框架,重点研究SVM和其他内核方法。它支持Linux和Mac OS X。
scikit-learn 旨在提供简单而强大的解决方案,可以在不同的上下文中重用:机器学习作为科学和工程的一个多功能工具。它是python的一个模块,集成了经典的机器学习的算法,这些算法是和python科学包(numpy,scipy.matplotlib)紧密联系在一起的。gbpcci.cn
MDP-Toolkit 这是一个Python数据处理的框架,可以很容易的进行扩展。它海收集了有监管和没有监管的学习算法和其他数据处理单元,可以组合成数据处理序列或者更复杂的前馈网络结构。新算法的实现是简单和直观的。可用的算法是在不断的稳定增加的,包括信号处理方法(主成分分析、独立成分分析、慢特征分析),流型学习方法(局部线性嵌入),集中分类,概率方法(因子分析,RBM),数据预处理方法等等。
自然语言和文本处理库
NLTK 开源的Python模块,语言学数据和文档,用来研究和开发自然语言处理和文本分析。有windows,Mac OSX和Linux版本。
2.Python包装能力、可组合性、可嵌入性都很好,可以把各种复杂性包装在 Python 模块里,作接口应用。python 包装库清爽整洁,快速漂亮,在AI领域中使用有巨大优势。
3.Python写和用非常方便,谁用谁知道。Python灵活的语法还使得包括文本操作、list/dict comprehension等非常实用的功能非常容易高效实现(编写和运行效率都高),配合lambda等使用更是方便。
总结:Python虽然是脚本语言,但是易学简单,在各大领域都有大量使用者,从而积累了大量附加的工具库,用Python处理涉及大量数据计算的人工智能简单高效,是理所当然的选择。Python有非常多优秀的深度学习库可用,像TensorLayer、theano 等深度学习库都是Python 编程、底层c++。在大部分深度学习框架都偏向Python的情况下,还有比Python更好的选择吗?人生苦短,就用Python。
,