100笔趣阁

手机浏览器扫描二维码访问

第三章 神经网络萃取隐蔽相关性(第2页)

这个原理可以用于解决许多类似的问题。这类问题的特点是变量非常多,可能解是天文数字,例如经济和社会决策、军事行动策划等。

局部最优:没到山底怎么办

“雾里下山法”会遇到一个问题,就是会走进一个不是最低的谷底而且再也走不出来了。用一维函数能清楚地看到这个问题。图3.8是有两个“谷底”:A点和B点的一维函数。当下山走到A点时,只要每次的步伐不是特别大,不论往左还是往右再移动,总是会回到A点。这在数学上叫“局部最小值”,而B点才是“全局最小值”。

图3.8有两个谷底的一维函数

但是如果我们从一维扩展到二维,就有可能从一个“局部最小值”中逃逸。在图3.9中,假设函数1是一个沿X轴切下去的一维函数,A点就是函数1的一个“局部最小值”。如果一个小珠子只能沿着X轴滚动,就会陷在A点出不来。但在图中的二维曲面上,小珠子只要沿着Y轴方向挪动一点,就到了C点,而从这个C点出发就能到达整个曲面的“全局最小值”B点。当误差函数的维数增加时,这种从“局部最小值”逃逸的机会就会增大。我们无法画出三维以上的图像,但我们可以想象每个“局部最小值”附近都有许多“虫洞”可以方便逃逸。维数越高,这种虫洞就越密集,就越不容易陷在一个“局部最小值”里。

图3.9从一维空间扩展到二维空间,误差函数找到“全局最小值”的概率增大

如果图3.9不够直观,我们可以用一个数字阵列来表达。首先假设地形是一个一维函数,每个数字表示它的海拔高度。在图3.10中,有两个最小的海拔高度0和5,但是无论从哪一边开始下山,每走一步的话,都会被困在高度5这个“局部最小值”里出不来,无法走到“绝对最小值”0。

图3.10地形函数的数字阵列

但是,如果将这个地形叠加为二维函数,仍然用数字表示海拔高度,我们可以看到,无论从哪一边开始下山,每走一步,当在一维函数中走到“局部最小值”5以后,在另外一个维度的函数中,则可以继续走到更低的海拔,直到到达“全局最小值”0。同样地,维度越多,在某一个维度到达“局部最小值”后,可以选择的其他维度和路径就越多,因此被困在“局部最小值”的概率就越低。(见图3.11)

图3.11将地形叠加为二维函数

深度学习——化繁为简

为什么深度学习有许多层神经元?这是因为世界上许多信息和知识是可以通过分层表达的。例如人脸是很复杂的一幅图像,但人脸可以先分解成五官,五官的复杂程度就比人脸低了,五官又可以进一步分解为线条。深度学习就是用一层神经元去识别一个层级的信息。在图3.12中,左图是第一层网络来识别人脸上的线条,中间的图是第二层网络在识别出线条的基础上识别出器官,右图是第三层网络在识别出器官的基础上识别出长相。同样一个时间序列的信息,例如语音也可以分解为递进的层级:句子、单词、音节等。分层的最大好处是大大降低计算量,把原来的N次计算变为m×logN次计算,这里m是层数。

除了将要处理的信息表达为层级以外,另外一种降低计算量的方法是将“一大块”信息分解为许多小块来处理。例如想要在一张像素很大的图片中识别出一个小三角形,我们只需拿着这个小三角形的模板在大图中滑动比较即可。例如一张图的像素是1000×1000=1000000,如果拿一个1000×1000像素的模板去比较,计算量大约是1000000×1000000。如果这个三角形的大小是10×10,我们用10×10“模板滑动法”,计算量只要10×10×1000000,是原来的万分之一。

图3.12深度学习神经网络学习得到的不同层次的特征

图片来源:维基百科。

机器要处理的信息有些是空间信息,例如图片,有些是时间信息,例如语音。针对不同的信息,神经网络的结构不同。最常见的有两种,第一种是处理空间信息的卷积神经网络(ConvolutionalNeuralNetwork,CNN),第二种是处理时间信息的循环神经网络(RecurrentNeuralNetwork,RNN)。下面我们一一介绍。

化整为零的卷积神经网络

“卷积”这个词什么意思待会咱们再讲,但现在可以告诉你的是,目前人工智能和机器学习制造的奇迹,从下围棋到自动驾驶再到人脸识别,背后全是卷积神经网络。能知道卷积神经网络的工作原理,你就和周围大部分读了几本人工智能的书的人不是一个档次了。虽然大部分人不会从事人工智能的专业工作,但卷积神经网络解决问题的思路会让我们拍案叫绝。第一个提出卷积神经网络的是前面说的神经网络教父杰弗里·辛顿教授的博士后学生,一位叫岩拉孔(YanLeCun)的法国人,现在任Facebook(脸书)人工智能研究所主任,和辛顿同为神经网络四大天王之一。

降低运算量就是降低成本

神经网络每一层的每一个神经元都和后面一层的每一个神经元相连接。如果第一层有1万个神经元,第二层也有1万个,这两层之间的连接就有1亿个。如果像微软那个一举超过人脸识别图像能力的ResNet(深度残差网络)有152层,这些连接就有151亿个。也就是说我们要调整的黑盒子上有151亿个旋钮。为了识别10种动物,要给训练机器看10万张动物图片,一张图片就要算151亿次乘法和加法,10万张至少是1500万亿次运算。这才是识别10种动物的训练运算量,如果要训练识别1万种动物呢?用今天的最快的CPU(电脑中央处理器)或GPU(图形处理器),也要算几个月甚至几年。对计算量要求更大的是识别,识别一张图片要算150亿次不难,但Facebook上每天上传的何止几亿张照片?降低运算量就意味着降低成本。

降低运算量的第一招就是把问题分类,如果只处理某一类问题,针对这些问题的共同特点,就有可能简化算法。我们知道,人从外界获得的信息90%以上是视觉信息,视觉信息主要是图像,视频也可以分解成快速闪过的图像。那图像有什么特点呢?一幅图像的信息量很大,但不管是风景还是人物,画面上总有大部分区域没有什么变化,像天空。引起你注意的东西往往都是一小块,例如人的眼睛、天空中的鸟、地上的花。这个叫作图像中信息的局域性。图像的第二个特点是可以分解为更简单的元素,例如风景分解为天空、大地、植物、动物,人物分解为五官。卷积神经网络就是利用图像的以上两个特点进行了大幅度的运算简化。

以人脸识别为例,要识别一个人,先要抓住他的特征,比如浓眉大眼高鼻梁。第一步就是把五官找出来。其实警察抓犯罪嫌疑人早就用了这一招。警察局的画师会问目击者犯罪嫌疑人的性别、年龄、身高、种族等,然后问目击者犯罪嫌疑人的五官长什么样,目击者能描述的五官种类非常有限,大眼睛、小眼睛,最多加个单眼皮、双眼皮、高鼻梁、塌鼻梁,根据目击者的描述画师画出一幅人脸,然后目击者再说眼角朝下,没这么大,画师再不断改,直到目击者觉得和记忆基本相符。人脸那么复杂根本无法用语言描绘,但如果变成五官的组合描绘起来就简单多了。假设每个五官都能分10种,就能组合出1万种脸来,再加上年龄、性别、种族就能组合出几十万张脸,这样把从70亿人中找一张脸的任务就分解成了从10种眼睛中找出一种眼睛,再从10种鼻子中找出一种鼻子这样简单得多的任务。

卷积神经网络是怎样工作的

卷积神经网络就是用的警察局这一招。假如我们现在要从分布在北京大街小巷的摄像头的视频中发现100个重要的犯罪嫌疑人,第一步是用这些犯罪嫌疑人的已有照片来训练机器。训练的第一步就是要从这些照片中提取五官的特征。因为五官在一张照片中只占一小块,那我们就做个找五官的小模板,专业术语叫滤波器,用这个小模板在要处理的图像上从左扫到右,从上扫到下,看看能否发现眼睛,另外一个小模板负责发现鼻子等。什么叫“发现鼻子”?就是负责发现鼻子的小模板是一张像鼻子的图案,这个图案扫到鼻子处时重合度最大。什么叫提取特征?就是一开始这个鼻子图案是个随机图案,像是随手那么一画,扫一遍下来发现没有什么重合度,那就变一变这个图案,最后变得和犯罪嫌疑人的鼻子很像时,重合度就会最大。等负责找出鼻子、眼睛、嘴巴等的模板图案都和犯罪嫌疑人的吻合后就算训练成功了。以后你输入一张照片,机器就可以飞速地告诉你这个是不是犯罪嫌疑人。

在机器学习中,是机器自己寻找特征。一开始机器并不知道要找哪些特征。所以这些小模板并不知道它们要找鼻子或眼睛。这些小模板从开始的一个随机图形到最后一定会演变成五官吗?答案是如果五官是人脸上最重要的特征,这些小模板到最后一定会演变成五官。但神奇的是机器还能发现我们人类都没注意到的人脸上的重要特征。假如我们多加一个小模板变成六个,这六个中会有五个各自对应一个器官,还有一个就会找到一个新的特征,如两眼之间的距离,或者口鼻之间的距离,等等。所以小模板越多,抓到的特征就越多,识别就越准确。

现在你要问,这个小模板发现鼻子和前面讲的神经网络黑盒子的调旋钮是什么关系?其实这个小模板就是一组旋钮,一个有5×5=25个像素的小模板就相当于25个旋钮,每个像素的颜色浓度对应着一个旋钮的某个位置,调旋钮就是让小模板里的图案越来越像犯罪嫌疑人的鼻子。我们之前讲过,这个“调旋钮”不是人工调的,是算出来的。

现在我们可以看看到底省了多少计算量,如果一张图片是1024×1024≈100万像素,每个像素对应一个接收神经元,每层有100万个神经元,这样一个全连接的神经网络每一层要有100万×100万=1万亿次计算。现在只要五个小模板,每个负责找到五官中的一个。每个小模板把图片上下左右扫一遍的计算量是5×5×100万=2500万次,5个模板就是1.25亿次。计算量变成了原来的万分之一!

我现在可以告诉你什么叫“卷积”,上面说的小模板把图片上下左右横扫一遍发现重合度的过程就叫卷积。你看这个唬人的黑科技名词其实就是这么简单的一回事。

上面是对卷积神经网络的基本原理的一个通俗解释。对于想更深入了解的读者可以看附录1中一个典型卷积网络的精确描述。从附录1中可以看出卷积神经网络不仅是一个高阶的非线性网络,也是一个无法用方程式表达的函数。给定一个训练数据集,最后这些数据之间的相关性都会凝结在网络参数里。或者说神经网络是数据相关性的“萃取器”。但萃取了哪些相关性?为什么萃取这些相关性则是人们未必能理解的。比如人脸识别,机器抓取的用于识别的人脸特征可能是人类不熟悉的那些特征,甚至完全没有意识到的特征。对于那些人类感官无法感受的复杂数据集,比如一个核电厂成千上万个子系统产生的数据以及它们之间的相关性,那更是人类完全无法理解的。

卷积神经网络能做哪些事

首先,几乎所有的图像类的处理,如图像分类、人脸识别、X光读片,都适合用卷积神经网络。图像分类最著名的大赛就是斯坦福大学李飞飞教授创办的ImageNet(计算机视觉系统识别项目,是目前世界上图像识别最大的数据库)大赛。这个大赛提供1000种不同物体的几百万张图片让参赛者训练自己的模型,参赛时给大家一些新的图片让参赛者识别,看谁的识别准确率最高。2012年辛顿的学生亚历克斯·克里捷夫斯基(AlexKrizhevsky)第一次用一个5层的卷积神经网络就把多年徘徊在74%的准确率一举提高到84%,震惊了业界。到2015年微软的152层ResNet把准确率提高到了96%,超过了人类的准确率95%。从那以后进展就越来越小。有些公司组织大量的人力,采集更多的训练图片,尝试更多的小模板,更精心地微调那些旋钮,最后能达到比现有结果好0.1%,然后就可以宣称自己是世界第一了。但这个世界第一意义不大,因为没有在网络结构上和算法上有任何创新,当时人家一个研究生Alex一举提高10个百分点,你扑上去几十上百人提高0.1个百分点,不算本事。对不懂卷积神经网络的投资人、股民、政府官员来说,这块“世界第一”的牌子还挺唬人的。但读到这里你以后就不会被忽悠了。

更有用的是通过识别一张图片中所有的物体,甚至发现物体之间的关系来“理解”这张图片。譬如机器看完一张图片后会说出来“蓝天白云下,一位戴草帽的年轻妈妈在草地上教孩子学走路,她们的小狮子狗在旁边卧着”。

X光读片也是卷积神经网络一个很好的应用。假如要在胸片中发现早期肺癌,就需要拿大量已经确诊的早期肺癌片子来训练机器,这样训练好的机器就可以快速地发现肺癌。随着X光仪、CT机等医疗成像设备的普及,有经验的读片医生非常稀缺。特别是在小城市、县城、乡村更缺乏这样的好医生。如果机器读片能够达到甚至超过北京、上海大医院有经验的医生,将是普惠医疗的一个巨大进展。我们在第六章会专门讲AI在医疗健康领域的应用,包括X光读片的现状和挑战。

卷积神经网络虽然应用很广,但它解决不了一些重要的问题,如股票预测和自然语言理解。下面我们就介绍可以解决这类问题的另一个很牛的网络。

热门小说推荐
网游之龙王苍傲

网游之龙王苍傲

一个重生的天才,一段关于网游的传奇。他强大,装备技术和奇遇一个不缺。他仁慈,百花齐放比一枝独秀更能渲染这个精彩的世界。他残忍,龙之逆鳞绝不能触动。他聪明,智慧是一种力量。他虚拟的世界可以成为每个人的梦想舞台,打宝练级PK竞技等等组成了这个世界的节奏。正如足球运动是足球运动员不可缺少的部分一样,游戏,也是我们玩家的第二生命!你喜欢玩游戏吗?...

都市小世界

都市小世界

天降小世界,幸运的李青云不但得到了小世界,还得到了神尊传承,从此李青云走上了如果发展小世界的道路。...

龙行天下

龙行天下

少年富则国富!少年智则国智!少年强则国强!少年称王则国称王!...

修仙奶爸的妖孽人生

修仙奶爸的妖孽人生

小朋友,千万别惹我,我老爸超凶的!小娜扎。九天之下大境,皆为我界!孟浪淡淡道想要嫁给我,那得看我女儿喜不喜欢你!...

这个NPC太凶猛了

这个NPC太凶猛了

穿越到游戏中的魏晋,赫然发现自己竟然成了一名,只能沦为玩家经验值的底层NPC。想象到自己未来的处境,魏晋怒上心头,当即心一横,举起斧头就砍了玩家。爷不伺候了!只是,当他破罐子破摔,占山为王,准备自此逍遥自在时,却听到一则令他张目结舌的消息。我都落草为寇了,你告诉我这里是三国?PS前期发展势力,后期争霸,凭借横...

我在末日当领主

我在末日当领主

末日来临,丧尸横行,昔日的同伴变成恐怖的怪物,物资匮乏同类相残。林昊觉醒了异能,旁人避之不及的,在他眼里通通成了宝贝。叮,发现异变丧尸猫耳娘,是否契约?叮,发现进化期异变怪兽雷电蝠龙,是否契约?叮,发现觉醒异能人,是否契约?别问,问就是全都要!当别人还在争夺物资女人的时候,林昊已经左拥右抱,打下一片江山了。...

每日热搜小说推荐