AI智能
改变未来

从Google DeepMind成果看人工智能发展

从Google DeepMind成果看人工智能发展
(四川大学 电子信息学院)

摘要:近几年,人工智能非常火热,几乎渗透到了社会的方方面面,但是人们只是看到了它光鲜的外表,殊不知它也曾经历了漫长的寒冬,未来之路任重而道远,生死存亡未可知。本文从谷歌公司旗下的DeepMind公司成果出发,简要探讨它们背后的原理以及人工智能的发展历程。

关键词:人工智能,机器学习,深度学习,强化学习

引言:
从未有过如此复杂的情绪,起初信心满满,然后如临深渊,再而震惊,再而怀疑,直至绝望。这是人类与机器的智慧比拼,这一次人类被自己创造的智慧之物击败。
2016年谷歌公司DeepMind开发的AlphaGo以4:1成功击败了世界冠军围棋九段李世石,人工智能取得突破性的进展。
AlphaGo的模型是深度神经网络,它分为四个主要的步骤:
(1)策略网络
CNN模型。输入当前局面,输出1919个概率值(棋盘是1919的方格),对应下一步落子位置的概率。
(2)快速走子
线性模型。目标和策略网络一致。相比策略网络,速度快1000倍但精度低。
(3)价值网络
CNN模型。输入当前局面,输出获胜的概率。
(4)蒙特卡罗树搜索(Monte Carlo Tree Search, MCTS)
把以上三个部分连起来,形成一个完整的系统。
之后有了AlphaGo Zero,它不需要任何数据,它自己与自己下棋,从这个过程中学习围棋规律,经过短短三天的训练过后,它以100:0击败了围棋界如同神一般的AlphaGo!它的算法是强化学习和深度学习的结合,而且它更加注重强化学习的使用。
之后有了Alpha Zero,它是个全才,自己学习了三种棋类,并且从未有过败绩,并且与之前机器不同的是它可以真正理解棋类的规则,它极具进攻性,常常采用‘自杀式攻击’,走法飘逸浪漫,一点也不像机器人,它甚至在大局已定的情况下还会玩弄对手,故意摆出一些奇形怪状的形状折磨对方。
DeepMind还在继续发展,它在医疗领域还打造了一个名为AlphaFold的AI系统,它能够应对当今生物学中最大的挑战之一:模拟蛋白质的形状。

2、人工智能算法介绍
2.1机器学习(machine learning)
机器学习可以分为监督学习,无监督学习,半监督学习和强化学习。比如垃圾邮件识别,人脸识别是监督学习,因为它们都有一个对应的标签,经验完全是人搜集起来输入计算机的,我们告诉它什么是垃圾邮件什么不是,哪张脸是哪个人,需要大量的数据,近年来,处理数据,生成数据成为了一份非常重要的工作,这是一个数据的时代。只有特征,没有标签的是无监督学习,比如高考前的一些模拟试卷,是没有标准答案的,也就是没有参照是对还是错,但是我们还是可以根据这些问题之间的联系将语文、数学、英语分开,这个过程就叫做聚类。在只有特征,没有标签的训练数据集中,通过数据之间的内在联系和相似性将他们分成若干类。又比如计算机下棋和无人驾驶是强化学习,它们也没有标签,取而代之的是收益函数,下棋下赢了获得收益,下输了就惩罚,驾驶顺利获得收益,出现事故就惩罚,我们需要设计算法让计算机改变自己的行为模式使得收益函数取得最大值。
监督学习的算法包括支持向量机,BP神经网络,卷积神经网络,循环神经网络,深度残差网络等,如果标签连续又细分为回归问题,标签不连续是分类问题,分类又有多分类和二分类,多分类可以转化为二分类,比如有一篇SVM的论文中提到了转换方法。非监督学习算法包括KNN,聚类算法,EM算法,主成分分析等。半监督学习比较灵活,一般会结合监督学习非监督学习的多种算法,实际场景中半监督学习或许是最高效的。
AlphaGo的初始程序是监督学习,输入了大量的棋谱训练了一个还不错的模型,然后通过对局学习,这是一个强化学习的过程,因此一个实际项目往往需要多种算法结合。

2.2 深度学习
深度学习其实是机器学习的一部分,但是因为它的影响力太大,所以现在把它单独分成一个领域,上个世纪80年代,多层神经网络的提出解决了许多实际的问题,这是深度学习的开端,但是在90年代却进入了寒冬期,这是因为以支持向量机为代表的算法完全盖过了它的风头,相比支持向量机,神经网络数学上不够完美,在我写的上一篇SVM原理中,SVM巧妙的将线性不可分问题映射到多维空间,从而获得一个可以正确分类的超平面,不仅如此,SVM引入核函数,绕过了可能没有显式表达式的φ函数,直接通过核函数计算数据集的映射,这种核函数戏法有条有理逻辑环环相扣,数学上完美支持了该结论,而最初的神经网络只能取得局部极值,算法性能与初始值相关,比如MSE作为损失函数的时候极值有很多个,后来可能某人运用了积分逆向思考的办法弄出了交叉熵函数优化了算法。其次,神经网络有不可解释性,获得的一堆参数与实际任务的关联性非常模糊,这个黑匣子让人有点摸不着头脑,当然有数学家用类似于傅里叶级数的思想证明了神经网络可以模拟近似任何复杂的函数,并且层数越深表达力越强,但这个理论就像人类无法想象什么是四维空间一样,很神秘。还有一点就是神经网络的超参数太多,这些参数的设定很像一门艺术,尽管也不是没有规律,但是比起支持向量机极少的超参数,神经网络显得难以捉摸。再者,神经网络需要大量的样本和计算力,在那个年代显得格格不入,而支持向量机在处理小样本上有绝对优势。
因为这些原因,神经网络陷入了很多年的冰河期,直到本世纪前十年都是这样,科研工作者大多放弃了这个‘天坑’,只有少数人还在坚持,深度学习鼻祖级的人物是Hinton,1986年提出了后向传播算法,LeCun是Hinton的第一个博士,Bengio是Hinton的同事,这三个人未来将彻底改变神经网络的生态环境,他们坚信神经网络的潜力没有被开发出来,人脑的神经元个数是1000亿左右,而当时计算机构建的神经元个数最多才一万个,你总不能指望大脑的冰山一角就可以解决很多问题吧?Hinton坚信只有更深的网络,更多的神经元才能发挥神经网络的优势,深度学习这个词语横空出世。经过多年的发展,计算机的存储容量和计算速度进一步增加,这让深度学习拥有了一片肥沃的土壤,神经元个数增加到了百万级,待估计的参数达到了亿级,随之而来的是损失函数陷入了局部极值的困境,使得训练模型的表现不能让人满意,2006年,Hinton发明了一种自编码器的方法,对数据进行降维处理,使得初始化参数落在一个好的位置,损失函数可以落在一个理想的极值处,从这个时候开始,深度学习变得越来越热门。
2007年,李菲菲等人创建了一个超大的图像数据库IMAGENET,为深度学习在图像处理领域奠定了坚实的基础,现在这个数据库已经突破了千万的数量级,并且都有标签。
2009年,深度神经网络和自编码器被引入语音识别,识别率提高了10个百分点,彻底击败了隐含马尔科夫模型和高斯混合模型,如今,语音识别在手机,电视,电脑等设备获得广泛应用。
2013年,HinTon的学生Alex创建了一个65万多个神经元的神经网络,在IMAGENET数据集上获得了极高的正确率,击败了Google和Facebook团队创立的模型,以一人之力击败了两个大公司。
2016年,Alphago击败围棋九段棋手李世石,这在引言中已经讲过了。
2019年,Hinton,LeCun,Bengio共同获得计算机图灵奖。

2.3 自编码器

如图所示,自编码器的思想是将输入神经元用更少的神经元代替,经过自编码器的向量不会改变,即X到自身的编码,用后向传播算法即可训练好中间层,然后将训练好的中间层不变,再增加一个中间层,再用后向传播算法算出新增加的中间层,以此类推算出整个神经网络的中间层,这就是初始化参数,之后就跟之前的步骤相同了,开始训练神经网络。自编码器使初始参数不再是随机值,而是包含了训练特征信息,最终可以使找到的局部极值获得更好的效果,至少不会像之前随机初始化参数有可能找到一个比较离谱的极值。
人工智能/ 卷积神经网络
1998年,LeCun开发了一套识别手写数字识别的系统,取名Le-Net,卷积神经网络由此诞生,包含了自动学习卷积核,多层结构,降采样(现在叫做池化)和全连接技术(这个之前就有),CNN的具体过程这里就不赘述了,2013年,Alex创建了Alex-Net,这是在此之前未有过的大型卷积神经网络。Alex-Net的数据集是彩色图片,因此卷积核是三通道,Alex采用Relu函数代替sigmiod函数和tanh函数(博客中有具体分析),sigmiod和tanh更容易有梯度消失和梯度爆炸的问题(虽然Relu在深层次网络中也无法避免,针对这个问题这才有了后面大名鼎鼎的resnet),Relu函数每次不会更新所有的参数,因此它比较稳定,Alex采用最大池化的方法代替平均池化,最大值是非线性操作,平均值是线性操作,这大大增强了系统的表达力,而且这样收敛速度更快,且进一步减少了更新的参数,系统更稳定,与此同时,这个模型采用随机丢弃的方法,随机是关键,避免了参数更新过快导致过拟合,采用增加样本的方法,在人工智能中,数据量就是王道,因此这种办法很优秀,具体来说有图片翻转,比如我有一张猫的图片,我把图片旋转一下,毋庸置疑这还是一只猫的图片,从图片像素考虑,可以随机抽取一些像素,比如从900900的图片中随机抽取800800的像素,抽出来还是这个东西,只是分辨率降低了一点,仅仅这两种方法就可以使数据增加两千倍,对与数据较少的领域是一个福音,还可以增加噪声,比如猫的图片里面加入一些高斯噪声,图片虽然有瑕疵,但它还是一只猫,Alex采用2片GTX580 GPU进行加速,由于GPU强大的并行计算能力,使得训练时间缩短了很多倍,这个改进意外使英伟达公司获得了巨额的收益,几十年间股票狂涨不跌,不知道Alex自己有没有买股票,如果从他那个时候开始买现在肯定赚翻了。现在的GPU已经非常强大,TPU,FPGA也试图获得更快的计算速度,曹老师讲过光子计算机可以拥有超乎想象的速度,虽然我不知道具体是怎么回事,但我想硬件这方面的发展应该很有前景吧。
2.5 深度学习框架介绍
目前三大开发工具是Facebook开发的caffe和pytorch,Google公司开发的tensorflow。其它的有百度公司开发的paddle paddle,微软开发的CNTK,亚马孙开发的MXNET。他们各有优劣,比如tensorflow和pytorch灵活性高,难度大,适用范围广,caffe简洁高效但不够灵活。百度公司在国内人工智能领域算是领头羊,5G技术与人工智能的协同共进可能是未来国家的重要战略。
2.6 比较前沿的深度学习模型
2012年AlexNet将IMAGENET错误率降低到了16.4%,2014年,VGG Net和Google Net分别将错误率降低到了7.3%,6.7%,2015年resnet将错误率降到了3.57%,达到了人类博士水平。VGGNet相较于Alex Net用多个小的卷积核代替更大的卷积核用以增加局部感受野,用更小的卷积核代替大的卷积核可以大大减小参数,比如两个33的卷积核与55的卷积核的局部感受野等价,但是前者待求参数是18个,后者是25个,当然这需要计算机更多的存储容量,有学者证明,神经网络层数越深,可以达到的理论识别率越高,但是如何让更深的神经网络收敛却是一个棘手的问题,实验表明,浅层次的神经网络在数据集上的表现超过深层次的神经网络,这个表现指模型的各种性能,resnet首先将渐层次的网络移植到深层次的网络,使识别精度,计算量,存储量等性能达到了很高的要求,并且达到了152层神经网络,运用这种方法可以训练成百上千层网络。Shuffle net,Mobile net,Inceptionr,Rcnn相继出现,Rcnn用于目标的识别和提取,但是速度太慢无法满足实时要求,后来在rcnn基础上出现了fast rcnn,faster rcnn。之后出现了yolo,fcn网络用于多目标识别,这是神经网络用于目标检测识别的进一步发展,除了在CV方面的应用,NLP也是一个重要的领域,RNN循环神经网络,LSTM在NLP方面取得了很好的效果。生成对抗网络gan使深度学习更加智能更富有创造力,实现了ai换脸等复杂的工作。
2.7 强化学习
无人驾驶和下棋程序都会用到强化学习,它没有标签,取而代之的是收益函数,下棋下赢了获得收益,下输了就惩罚,驾驶顺利获得收益,出现事故就惩罚,我们需要设计算法让计算机改变自己的行为模式使得收益函数取得最大值。强化学习是一个非常复杂的领域,它与深度学习,机器学习共同协作可以完成很多任务。
3 小结
这片文章简要介绍了机器学习,深度学习,强化学习的历史发展与算法,大部分是在讲深度学习,也算是对上一篇国际象棋的一个补充,把知识梳理了一下,我从中也收获了很多,思路更加清晰了,不得不说这个领域十分有趣,十分富有挑战性,接下来还有更多的工作要做。
4 参考文献
Michael Nielsen Neural Networks and Deep Learning
(LeNet5)Gradient-based-learning-applied-to-document-recognition
(AlexNet)ImageNet Classification with Deep Convolutional Neural Networks
(YOLO)You Only Look Once Unified, Real-Time Object Detection
(ResNet)Deep Residual Learning for Image Recognition
Faster R-CNN Towards Real-Time Object Detection with Region Prop

赞(0) 打赏
未经允许不得转载:爱站程序员基地 » 从Google DeepMind成果看人工智能发展