通俗地讲,人工智能是负责拉客的,Python是负责服务客户的,人工智能和Python是两个不同的概念,不过彼此又拥有非常亲密的合作关系。学习人工智能的往往都需要学习Python,不过学习Python的人却不一定都是学习人工智能的。
为什么选择python作为人工智能研究的主要编程语言这个说法其实也不是非常准确,真正在应用领域,人工智能领域不止是python语言而已,自动驾驶领域需要涉及到视觉识别和硬件编程,会用到很多C/C++等编程语言,推荐引擎要基于大数据分析,而做大数据分析,又可能用到很多Java的技术。字节跳动作为拥有今日头条和抖音两个旗舰推荐引擎产品的公司,他们的核心技术栈是从python转到了Go语言。
全球最著名的人工智能学习框架TensorFlow的后端是C/C++来做的运算模块,前端工具用的是Python,大规模的工业使用和实验室研究还是两码事,不过即使是这样,大家依然将python作为人工智能领域的主要编程语言。
Python有着天然的优势,Python相对于C/C++来说,学习成本和学习门槛要低很多,Python的语法非常接近自然语言,也比C/C++更适合写上层逻辑,这样Python就可以专注于做自己的事情,把其他的交给底层的C/C++就好了。Python还是个典型的胶水语言,跟C/C++都能非常好的进行合作开发,要开发一个C/C++的跨语言接口,你找不出来比Python更方便的编程语言。
Python历一直都是科学计算和数据分析的重要工具之一,有numpy这样的基础在,复用numpy基础库既减少了开发工作量,用Python水到渠成。Python作为语法最为简洁、随意的编程语言,能够帮助开发者更好的聚焦解决问题本身,而不是去纠结各种各样的繁琐的底层细节,而目前人工智能领域最重要的工作是研究算法和模型,不是花时间去研究编程语言、和被Java这种啰嗦的语言搞得死去活来。
人工智能是什么?包括哪些领域字面上人工智能很好理解,就是试图让计算机像人的思维方式那样去工作,不过人工智能真的非常难有一个准确的书面定义,即使是大家的祖师爷John McCarthy、Geoffrey Hinton,两位人工智能领域最重要的祖师爷,也没有给出太多定义,大家现在只能给出人工智能研究的一些主要方向。
人工智能的主要应用领域有自然语言处理、自动驾驶、机器学习(包括深度学习)、机器感知(计算机视觉、语音识别、人脸识别、物体识别)、推荐系统、计算广告等等众多领域。
Google旗下的AlphaGo上演的人机对战震惊了所有人,阿尔法狗先后战胜了李世石、接着又战胜了柯洁,这是人工智能技术第一次在公众面前大显身手。在人工智能领域,Google、百度是全球技术实力最强的两家企业,还有微软、阿里巴巴、腾讯、Facebook等众多科技公司都在不断投入。百度已经在长沙试运行无人驾驶出租车,阿里巴巴从城市大脑也已经在杭州逐渐应用,似乎时代就要来到。
从YouTube诞生开始,机器推荐就已经成为行业的一个趋势。后来在国内诞生了快手、字节跳动,快手是“推荐引擎+视频社区”,字节跳动旗下今日头条和抖音,一个是综合推荐引擎,一个是短视频媒体平台,本质上背后的技术都是推荐引擎的技术。机器根据用户的喜好,给用户推荐各自专属的内容。今日头条、快手、知乎、手机百度、微信公众号、淘宝电商,几乎每个领域都在用机器推荐,推荐引擎技术已经成了行业的标配,也是目前为止应用最广泛、也是技术最成熟的人工智能技术。
总的来说,人工智能和Python是两个完全不同,又息息相关的概念,目前的人工智能主要还是在算法层面的研究,而且非常多的领域都要在理论研究层面,没有到真正大规模地应用,目前真正应用比较广的还是推荐引擎,其他比如自然语言处理、无人驾驶、视觉识别,依然没有拥有数亿用户的工业级应用诞生。Python语言有着诸多优点和天然优势,让计算机科学家、和研究者可以把更多的精力放在算法研究上,而不是去跟编程语言做纠缠,等到大规模应用的时候,会有专门工程师将这些用其他语言重写就好。