人工智能,深度学习,机器学习和统计

 

说到人工智能,每一个人都不会陌生。广义的人工智能其实涵盖了数学,物理,计算机技术,机械,自动化等多方面理论和技术,是人类科技的综合应用和集大成者。

我们今天讨论侠义的人工智能,更多的是计算机算法应用层面的。在这一方面,相信很多人对许多类似的名字或多或少有比较混淆的地方。

 

那就是,人工智能,深度学习,机器学习,和统计之间有什么区别和联系?

总的来讲,他们之间的关系是应该这样的,至少在目前阶段笔者是这样理解的。

 

人工智能,深度学习,机器学习和统计

 

1.1

 

 

人工智能 (Artificial Intelligence 或者 AI)是各种先进算法的统称,是一个宽泛的概念。

提到人工智能,人们脑中想到的情景可能是一个机器人和人比赛下棋的场景。聪明的机器人居然打败人类世界冠军,充分体现人工智能的优越性,并且极大引起人们关于人工智能是否能够取代人类等多方面的讨论,思考或者恐慌。

 

 

人工智能,深度学习,机器学习和统计

 

 

 

1.2

 

统计作为一个历史悠久的学科,其实早已影响了我们生活的方方面面。统计包罗万象,一个基本的方向是概率论 (Probability Theory)。比如一个简单的例子,一个色子(6个点那种),如果连续仍六次,得到每一次都是6点(走大运)的概率是多少?这就是统计中的概率论要解决的问题。概率论研究自然和社会领域中事件发生的规律,以及如何量化这种规律和利用这种规律。

 

统计中的另一大类是统计推断 (Statistical Inference),简单来说它解决的是如何利用抽样数据来推断总体样本分布中的具体参数。上面我们提到扔色子,默认假设是色子每一面出现的概率是一致的(1/6)。但是假如你不知道这一个事实,同时有个人连续扔色子上百次,却一半时间得到6点。你就有必要利用已知的观察结果去推断色子每一面出现的真实概率(绝对不是1/6,大概率情况)。

 

为什么要用抽样数据去估计总体人群分布?比如美国总统选举民调中,如果每个人都能触及到,当然得到的结果最准确。但是这个过程是费时费力费钱,是绝对不可能实现的。那么统计推断理论告诉我们,只要我们用一步抽样数据,即随机打电话做问卷调查,只需要很少的人群数量,我们就能以一定的精度回答下一届美国总统是谁的问题。

 

当然同其他很多事情一样,太容易得到的结果都需要质疑。统计推断中,如何进行数据的随机抽样是个大问题。如果只在50几个州中的一个州做问群调查显然不行,只选老的,少的,男的,女的也不行。因此需要注意的是,统计推断的结果是否准确,完全取决于你的输入数据是否满足理论要求的假设情况。很多时候, 抽样数据的独立同分布(iid, 或者 independently identically distribution都是先决条件。

 

 

统计中的这些技术和应用都是人工智能的一种体现形式,虽然看起来比较简单,其实只是我们已经非常熟悉和了解的原因。

 

1.3

 

 

机器学习(Machine Learning)发源和衍生于统计学科,但又在计算机技术的帮助下又更进了一步。

 

常用的机器学习算法和统计算法,早在各行各业中得到普及应用。他们的最主要业绩是把任命从许多日常的工作和决策流程中解放出来,达到事半功倍的效果。或者根据历史的数据能够较为准确的预测未来的数据和走势。

 

举个最近的热点事件,这几天的淘宝双十一数据销量“造假”风波(事件本身有没有造假超出我们讨论范畴),我们这里只讨论预测性。根据前几年的历史数据,有人利用二次方程就能以较好精度的预测出今年的销售量。这就是一个最简单的应用例子。这至少说明淘宝年销售数据有比较好的趋势,因此我们能够基于历史数据预测短期的未来。 当然这里又涉及了统计算法中常见的误差估计,过拟合等多个基本问题,因此真正严谨的读者是不会轻易得出结论的。

 

人工智能,深度学习,机器学习和统计

 

 

对于统计专家和机器学习专家来说,统计和机器学习理论有着千丝万缕的关系。很多时候难以分开二者的界限。估计很多原因也是因为早期的统计学家利用计算机技术做出了交叉性的研究成果。

 

说个题外话,美国卡耐基梅隆大学计算机学院下面的机器学习系(世界上第一个独立开设的Machine Learning专业系)的理论课中绝大部分都是统计和计算机专业课。要研究好机器学习理论,统计和计算机技术都是不可获取的工具。

 

 

熟悉统计和机器学习的人都知道,很多流行的算法,比如逻辑回归和决策树,不论说是统计算法还是机器学习算法都无可厚非。但是统计和机器学习的目的性不大一样。如果说统计更多的是研究如何从抽样数据中进行总体分布的参数估计,那么机器学习更多关注如何从已知数据进行学习,从而预测新的数据。 统计中要做出参数估计,需要研究数据的假设是否满足,参数误差范围如何给定等问题。因为统计是要帮助人获取自然社会规律中的真实东西。比如中国人到底平均身高多少,如何相信这个结果是准确的? 而机器学习某种程度上不太关心已知数据具体的参数甚至是分布真实信,更加强调如何没有偏差的预测新来的数据。比如,我们可以利用已知人群的身高和其父母身高数据做出预测,那么对于一个新生儿童,我们便可以利用其父母身高预测其成人以后的身高。

 

 

机器学习和统计的另一个不同之处在于,机器学习方法利用了优化理论和计算机数值分析技术来大大强化了预测问题的实际效果提升。机器学习大多数的算法都可以归结为以各种优化算法,即用数值方法找到一个复杂方程的极值点(最大值或者最小值)。这个问题有时候比较好解决,比如在珠穆朗玛地区找最高点。 但有时候又比较复杂,比如在四姑娘山地区要找到一个最高的山,这个时候有太多的局部优化地方,让我们的计算方法非常难以收敛和容易被欺骗。

 

人工智能,深度学习,机器学习和统计

 

 

 

 

1.4

 

深度学习(Deep Learning)是近年来随着人工智能兴起而出镜率最高的一个名词,但本质上是深度学习是众多机器写学习算法中的一个大类。 深度学习尤其在利用计算机技术解决计算问题方面取得的巨大进展。

 

深度学习的另一个早期名词-神经元网络算法(Neural Network)已经被发明了几十年。因为试图模拟人脑工作的原理,一出生就备受瞩目。 当然这也是极大简化了人脑神经元的工作原理(人脑工作原理至今也是超级研究热点)。

 

一个简单的神经元网络算法图示如下:

人工智能,深度学习,机器学习和统计

 

上图中的每一个圆圈代表了一个输入数据点或者处理的中间数据和结果数据。数据点之间的连线代表了数据之间的相互作用(类似神经元生理过程?),而这种相互作用关系是要用许多参数来表征的。上面这样3到4层的关系就需要33个参数来表征。如同许多机器学习算法一样,神经元网络算法训练数据的过程就是,把输入数据(比如个人的身高,体重,腰围三个维度数据)和输出(人的血压3个范围)数据都拿过来,利用优化算法不断迭代计算出33个参数的具体值,从而使得33个参数值以最好的能力去解释输入和输出的关系。一旦参数值固定,就可以那训练好的算法去预测新的个人数据了。

 

 

上面的神经元网络是不是有点过于简单?那如果这个网络结构同时在宽度和深度扩展会发什么情况?计算复杂度增加多少?预测效果提升多少?比如每一层的节点数码上1000, 网络层级达到上100。 这样一个复杂的结构,参数数量轻而易举达到上千万。这个时候,计算难度就成指数型爆炸增长了。

 

神经元网络算法这几十年起起伏伏好几次,大致原因就在计算难度和实际效果上难以两全。 如果结构太简单,效果还不如其他算法好,如果太复杂,早期的计算机能力根本跟不上。这个情况终于在近10年,随着计算能力(主要是GPU并行计算能力)普及和更好的参数优化理论,终于迎来了曙光。神经元网络也摇身一变改名为深度学习(的确层级大大的增加了)。而效果也是有目共睹的。在图像音频处理领域上效果非常出色,图片识别能力比人都厉害。自然语言方面,机器翻译效果也是非常出众。

 

 

但是这个性能的提升也是建立在计算能力开销基础上的。一个好的深度学习模型,如果用普通CPU机器去训练参数可能要花费几百天时间(更不用说电费了)。由于GPU/TPU等先进计算芯片的应用这个时间缩短到一天以内,但是开销仍然是普通人无法承受的。

 

另一方面,为什么深度学习效果能这么好,让人佩服的五体投地,基本上成了人工智能的代名词? 这个原因其实很好解释,恐怕也没有一般人想的那么高深晦涩。关键在于由于其庞大的参数库,算法可以涵盖许许多多逻辑关系。想象一下,如果时间和空间允许,这个问题你就能用许许多多的if/else 句子来解决。 深度学习就是把许许多多的If/else关系封装在复杂的多层结构中。 就像CPU芯片是有上亿功能简单的0/1开关构成一样,每个开关功能简单,但是合在一起,却能处理许多千变万化的问题。 但是这个也不是深度学习最自豪的事情。深度学习最大贡献在于能够利用巧妙的结构设计和先进的计算能力把这些庞大的参数群近似估计出来,从而获得宝贵经验来处理新的问题。

 

 

 

 

1.5

 

要提到开篇那个会下围棋的阿尔法狗,还得提到机器学习中另一个明星算法: 强化学习。

 

所谓强化学习,可以先想象这样的画面:一个摇摇晃晃的机器人需要穿越障碍物到达某一个目的地。如何使机器人能够自动规划出合理路线,主动沿着最佳路线前进,就是强化学习要解决的问题。

 

人工智能,深度学习,机器学习和统计

 

从简单的场景来说,这个问题其实好解决。因为机器人的行走路线涉及的路径和具体步子在有限空间就是那么多。利用动态规划(Dynamic Programing)等方法很容易根据不同的条件穷举出最佳路线。

 

但是跟一般的机器学习算法不一样,强化学习不需要事先搜集带有结果标签的训练数据,因此显得非常智能,更像人们心目中的人工智能。强化学习的难点在于一旦场景扩大,计算机便不能暴力解决最优问题,从而需要新的方法来找到近似最佳答案。

 

阿尔法狗正式把深度学习和强化学习结合起来,用深度学习估计参数的方法来解决强化学习的难点,但是又保留了强化学习中自我学习的能力。因为不需要训练数据, 阿尔法狗只需要边看边学。错了就打一巴掌,对了就给块糖吃。并且它不需要真的人跟它下棋。只需要自己跟自己玩。对错完全没有关系,反正它有的是时间,算的又快(土豪就是任性)。 也许一百次随机和错误的下棋步骤中,偶尔只出现一个极具灵感的招数,它就记住了,并且用来增强和调节决策系统的参数。 就这样在计算机时间的时间坐标中,它很快就变得超级无敌。

 

这个是不是有点像爱因斯坦的思想实验 (Thought Experiment)?

 

强化学习虽然强大,但是仍然有一个前提,就是奖励和惩罚机制得事先说了算,并且需要比较好定义。因此打游戏和下棋这种有固定模式的,自洽能力强的环境中,强化学习如鱼得水。但是脱离人们事先设定的目标,强化学习就没有用武之地了。 从这个方面来说,人类也许仍然能够领先机器人一段时间。大家今天可以先睡个好觉了。

 

 

持续更新的微信订阅号,更多的内容请微信扫描下面二维码,关注订阅

 

人工智能,深度学习,机器学习和统计