AI,全称Artificial Intelligence。人工智能,是计算机科学的一个分支,从1956年被公认为一个学科之后,至今已经经历了60年的发展。
说起人工智能,一些人眼中泛起的是希望的曙光,另一些人眼中则流露出了忧虑和谨慎。
2014年,特斯拉和SpaceX的创始人伊隆·马斯克(Elon Musk)就曾公开表示:“我需要盯着人工智能的一举一动,因为我认为它有潜在的危险。”同年,英国著名物理学家史蒂芬·霍金(Stephen Hawking)用彷如机器的声音指出:“开发全面的人工智能可能会致使人类灭亡。
但在绝大多数人印象中,人工智能还停留在影视作品中。
人工智能对我们来说究竟意味着什么?作为谨慎的乐观派,猎豹全球智库希望通过这篇文章,深入浅出的和各位聊聊这个轻松又深刻的问题。
人工智能(AI)简单来讲就是对人的意识、思维的信息过程的模拟。人工智能不是人的智能,但能像人那样思考、也可能超过人的智能。人工即用机器代替人类的一些工作,而智能则是让机器模拟人类的思维。机器之所以变得智能,本质上还是人类对其进行了编程,也正是这些编码程序赋予了机器智慧。 那么用什么语言进行编程才比较适合做人工智能呢?首选语言有以下三种:
Python:Python由于简单易用,是人工智能领域中使用最广泛的编程语言之一,它可以无缝地与数据结构和其他常用的AI算法一起使用。Python之所以时候AI项目,其实也是基于Python的很多有用的库都可以在AI中使用,如Numpy提供科学的计算能力,Scypy的高级计算和Pybrain的机器学习。另外,Python有一些在线资源,所以学习曲线也不会特别陡峭。
Java:Java也是AI项目的一个很好的选择。它是一种面向对象的编程语言,专注于提供AI项目上所需的所有高级功能,它是可移植的,并且提供了内置的垃圾回收。另外Java社区也是一个加分项,完善丰富的社区生态可以帮助开发人员随时随地查询和解决遇到的问题。对于AI项目来说,算法几乎是灵魂,无论是搜索算法、自然语言处理算法还是神经网络,Java都可以提供一种简单的编码算法。另外,Java的扩展性也是AI项目必备的功能之一。
C++:C++是世界上速度最快的编程语言,其在硬件层面上的交流能力使开发人员能够改进程序执行时间。C++对于时间很敏感,这对于AI项目是非常有用的,例如,搜索引擎可以广泛使用C++。在AI项目中,C++可用于统计,如神经网络。另外算法也可以在C++被广泛地快速执行,游戏中的AI主要用C++编码,以便更快的执行和响应时间。
人工智能、机器学习、深度学习和强化学习
首先来看一下人工智能、机器学习和深度学习之间的关系。如图一所示,我们可以大致认为深度学习是机器学习中的一种学习方法,而机器学习则可以被认为是人工智能的一个分支
人工智能研究分支
人工智能:人工智能涵盖的领域很广,除了机器学习外,还包括专家系统、进化计算、模糊逻辑、粗糙集、多代理、规划问题等。最近几年,人工智能的发展主要得益于机器学习领域的推动,尤其是深度学习取得的突破,其他领域的进展相对较小。人工智能分为弱人工智能和强人工智能,前者让机器具备观察和感知的能力,可以做到一定程度的理解和推理。目前的科研都集中在弱人工智能这部分,并很有希望在近期取得重大突破。而强人工智能期待让机器获得自适应能力,解决一些之前没有遇到过的问题。电影里的人工智能多半都是在描绘强人工智能,而这部分在目前的现实世界里难以真正实现。
机器学习:从学习方法上来分,机器可以分为监督学习(如分类问题)、无监督学习(如聚类问题)、半监督学习、集成学习、深度学习和强化学习。深度学习本来并不是一种独立的学习方法,其本身也会用到有监督和无监督的学习方法来训练深度神经网络。但由于近几年该领域发展迅猛,一些特有的学习手段相继被提出(如残差网络),因此越来越多的人将其单独看作一种学习的方法。按照学习目的来分,机器学习涵盖了回归、分类、聚类、异常监测、量纲学习和因果分析等。
深度学习:最初的深度学习是利用深度神经网络来解决特征表达的一种学习过程。深度神经网络本身并不是一个全新的概念,可大致理解为隐含层很多的一个神经网络结构。为了提高深层神经网络的训练效果,人们对神经元的连接方法和激活函数等方面做出相应的调整。其实有不少想法早年间也曾有过,但由于当时训练数据量不足、计算单元落后,因此最终的效果不尽如人意。
强化学习:强化学习为一个代理(Agent)在一个环境里设计一系列动作(Actions)以获得最优的未来长期回报(Reward)。走迷宫常被用来作为解释强化学习的例子。因为学习方法复杂,早年间强化学习只能解决一些非常简单(状态空间小、动作选择少)的问题。直到深度学习的出现,使得我们可以用深度神经网络去逼近一个近似的价值和策略函数,强化学习才取得很大的进展(如在AlphaGo里的价值判断网络),人们称其为深度强化学习(Deep Reinforcement Learning)。与其说是强化学习的进展,不如说是在强化学习的框架里,深度学习贡献了巨大的力量。