在过去的2016年里,人工智能时代已然开启。这一年,AlphaGo围棋胜了人类;微软报告ASR语音识别结果好过专业速记员;日本NHK电视报道,IBM机器Watson只花10分钟完成41名病人的诊断,这通常是医生两周的工作;它读取大量资料和病人DNA后,救了一位医者束手无策的白血病人……机器人正慢慢进入我们的生活。
不过,这些机器人在上岗工作前,也要接受一番培训学习的!
样本数据是机器人的智商
首先我们得明白,人类之所以生下来就具有学习的能力是因为人有智商,事实上,任何一个有学习能力的动物也都是具有智商的。这一点对于机器人来说也不例外,想要学习,就得有智商。那么,机器人的智商从何而来呢?答案是:样本数据。
在机器人的“大脑”中,通常有这样一个数学模型,其中包括了大量的数值规律和类别模式。这些规律和模式通常都是由线性函数来组成的,这些线性函数的参数数量巨大,少的有几万,多的则有可能上百亿。
如此看来,这样的数学模型其实并不复杂困难,不过,由于参数数量的巨大,看似简单的模型却足以涵盖各种预测和辨别情况。而在数学上,这种调整模型参数及应用模型的计算机制,都是精确有效的。
这个时候我们就可以回答什么是机器学习了。简单地说,机器学习就是计算机利用输入的大量样本数据,调整表示规律和分类通用数学模型的参数,然后以调好的模型作答。样本的数据里潜藏着大量的信息,通过训练给予了机器知识,让机器表现出判断和预测的智能。
机器学习基本分成无监督学习和监督学习两类。无监督学习是从样本数据分布中,按它们的聚集来分类,例如用大量的人民币硬币尺寸和重量作为样本的数据,它们在二维空间的分布聚集在几个地方。人们看后,知道它们是分成几类,依此知识判断新给的硬币类别。机器可以通过数据点间距离的计算(K-means),自动将聚类分成几组。得到各组的中心和分布范围后,再以此判别新输入硬币所对应的组别。
许多事物看来杂乱无章,其实分属不同类别,例如学生潜力,绘画风格,只要用足够多的特征属性来描述就可以把它们区分。但对于许多的特征属性,人类需要研究归纳抽取出能理解其含义的少量特征,很难利用非常多的特征属性来分类,机器却很容易做到。在你现在的工作中,也可能应用现成的N维自动分类程序,在已经拥有数据中发现潜藏的分类。
无监督学习就像无师自通的领悟,效率较差,有老师教学就会快得多。监督学习是最广泛,最成功应用的机器学习,用我们的知识来标记样本,去“教”机器学会回答问题。这个问答在数学上,是从问题的属性空间映射到答案空间的一个函数。机器学习的基本算法是从一组候选函数中,比如说线性函数,通过计算选取出与预测样本标记误差最小的函数。这个选取多是通过迭代法,沿着减小误差的梯度方向,不断修正候选函数的参数来实现,这个过程称为训练。
深度学习才是亮点
大量的样本数据能够让简单的模型覆盖各种预测和辨别情况,但有一个缺点,那就是因为变量个数的巨大,使得这样的工作方式难以分析归纳成像物理规律那样简单明晰的因果性机制,无法从人脑逻辑推演的角度来理解。这就导致了机器人的学习很难提升到更高的深度。
所谓深度学习,就是用多层神经元构成的神经网络,以达到机器学习的功能。这些多层的电脑网络像人类大脑一样,可以收集信息,并基于收集到的信息产生相应的行为。简单地讲,深度学习技术是对人脑的一种模拟,因而可以完成很多人脑所具有的功能。
深度学习最为人所熟知的是视觉功能。我们的相机可以像眼睛一样看到这个世界,却不能像大脑一样看懂这个世界,深度学习恰恰补上了这个短板。有了深度学习,百度识图可以准确识别照片中的物体类别,并对照片进行自动归类或搜索。有了深度学习,我们可以很方便地刷脸付款。有了深度学习,特制机器可以检测一定空间内所有人员、车辆的行踪,并对可疑和危险事件及时报警。
传统的机器学习方法一般只能挖掘简单的线性关系,如1+1=2。然而,大千世界并不是这种简单关系所能描述的,如收入与年龄、性别、职业、学历的关系。深度学习的出现改变了这种现状,它的灵感来源于模仿人类大脑神经网络。
科学家发现,人类大脑皮质不是直接对视网膜传递过来的数据进行特征提取处理,而是让接收到的刺激信号通过一个复杂的网络模型进行筛选。这种层级结构大大降低了视觉系统处理的数据量,并最终保留了有用的信息。
如果要想让机器人像人一样学习,那么就要让机器人拥有一个类似“人脑”的神经网络。创造这样一个神经网络需要强大的硬件支撑,早期的人工智能只能创造出2到3个神经层。不过由于近年来GPU(图形处理器)、超级计算机和云计算的迅猛发展,让深度学习有了很大的发展。
2011年,谷歌大脑采用1000台机器、16000个CPU处理的深度学习模型大概有10亿个神经元。而现在,我们只需几个GPU便可以完成同样的计算了。
专家预计,再过几年,我们口袋里的手机也可以运行像人脑一样复杂的神经网络了。
AlphaGo的学习过程
去年3月,AlphaGo4:1战胜李世石,名声大噪。今年1月初,AlphaGo升级版Master在网上对阵全球各大围棋高手,再次以60连胜的傲人成绩叫人类目瞪口呆。AlphaGo成了当下人工智能界里最“红”的大明星。
AlphaGo的学习总体上包含了离线学习和在线对弈两个过程。
离线学习过程分为三个训练阶段。第一阶段:利用3万多幅专业棋手对局的棋谱来训练两个网络;第二阶段:利用第t轮的策略网络与先前训练好的策略网络互相对弈,利用增强式学习来修正第t轮的策略网络的参数,最终得到增强的策略网络;第三阶段:先利用普通的策略网络来生成棋局的前U-1步(U是一个属于[1,450]的随机变量),然后利用随机采样来决定第U步的位置(这是为了增加棋的多样性,防止过拟合)。
这样,通过大量的自我对弈,AlphaGo产生了3000万盘棋局,用作训练学习价值网络。不过,由于围棋的搜索空间太大,3000万盘棋局也不能帮AlphaGo完全攻克围棋问题。
而在线对弈则分为5个步骤:根据当前盘面已经落子的情况提取相应特征;利用策略网络估计出棋盘其他空地的落子概率;根据落子概率来计算此处往下发展的权重,初始值为落子概率本身(如0.18)。利用价值网络和快速走棋网络分别判断局势,两个局势得分相加为此处最后走棋获胜的得分;利用第四步计算的得分来更新之前那个走棋位置的权重(如从0.18变成了0.12);此后,从权重最大的0.15那条边开始继续搜索和更新。
不过,AlphaGo仍有很多缺点。首先,如果对手(人类)建立比较复杂的棋局,每步棋都牵连很多个不同的局部棋变化,那么这时候AlphaGo的搜索空间急剧增大,精度就会大打折扣。
其次,AlphaGo能够战胜这么多高手,跟它的价值网络有很大的关系,有专家甚至称如果没有了价值网络,AlphaGo的真实水平就只有3段左右。但AlphaGo的价值网络有时候还不能完全避免一些怪异甚至错误的判断。这样的不稳定因素也是AlphaGo的一大缺点。