第15页 | 我们如何看见,又如何思考 | 阅读 ‧ 电子书库

同步阅读进度,多语言翻译,过滤屏幕蓝光,评论分享,更多完整功能,更好读书体验,试试 阅读 ‧ 电子书库

第10章 机器学习、大脑与视觉机器

如今的每项发明都会迎来一声胜利的欢呼,而这欢呼很快又转变为恐惧的哀号。

——贝托特·布莱希特

也许我之前过于小心了,现在让我勇敢地声明一下,我和大多数科学家都觉得大脑就是一台计算机。早些年,这只是一个比喻,20世纪80年代的计算机几乎无法为你记账,它的价格甚至会让你加速破产。但很快,一如摩尔定律的预测,计算机的能力以每18个月翻一番的速度增长。当今的计算机以其强大的功能和速度让你叹为观止。计算机不仅更好更快,也更便宜了。虽然美国国家安全局、谷歌和中央情报局的计算机肯定比你我所能买到的更大、更快,但是我们可以购买到足够快的计算机以节省脑力——或至少省下一小块大脑。由此,科学家可以开始复制大脑,或者至少可以制造出胜任大脑某些工作的计算机,而模拟的结果也能暗示那些“湿漉漉的”真正的大脑要遵循怎样的规则。

这是一项了不起的发展,也是有趣的倒置。早期那些运行缓慢的老式计算机,人类为了尽最大努力将其发展成为人工智能,肯定受到了大脑的启发。如今计算机变得越来越好,人类也学会了越来越多更好的方法来教它们,以至于在某些任务上,它们甚至已经超过了大脑。现如今,神经科学家能回过头来从计算机那里学习大量有关大脑的知识,反之亦然。这是一条很棒的双向道——研究者交叉协作来理解感知。在本书的最后,我们将看到大脑某种程度上仍在启发计算机的设计;实际上,大脑为AI(人工智能)的下一个大问题指明了道路,即无监督学习。现在,让我们回到基础部分,我将首先向你介绍一些智能计算机,然后我们将介绍从中学到的有关大脑的知识。

20年前,我在一场鸡尾酒聚会上遇到了一个为航天公司工作的计算机视觉工程师,他们公司设计的系统能为智能导弹导航。我问他:“你在设计中用过神经网络原理吗?”

他露出明显的轻蔑。“看,”他说,“我的工作是制造一个可以从树林中检测到坦克的系统。如果我的机器无法识别坦克,我就拿不到报酬。关于神经元的那些胡言乱语对我毫无用处,我必须说出机器的工作原理,就这样。”

这种思维方式持续至今。即使如今神经网已被用于操纵汽车等任务——设计师甚至无法说出自己的发明是如何做到的——还是有人会那么想。工程师具有卓越的实践能力,他们希望看到每一个步骤的细节。也许将来,能思考的计算机会帮助他们做到这一点。(毕竟,计算机只是一台由普通原子组成的机器,原则上你总是可以知道它处于什么状态。因此,我认为人们最终会弄清楚神经网络的工作原理。)但是现在,像大脑一样的智能计算机也可以完成一些任务,而我们却无法准确地说出它们是如何完成那些任务的。

会学习的计算机

我们已经看到,猴子脑中的脸部识别区只有通过经验才能发育出来:猴子必须看过面孔,才能产生选择性对脸部反应的神经元。这是怎么发生的?重复看到的脸如何转换成从视网膜到LGN、V1,再到颞叶的神经元的实际连接?我们只有断面的观察和猜想。我们确实在一个方面有牢固的生物学基础:长时程增强作用可以通过实践增强突触。不过在另一个角度,我们还有一个可以理解的实例,因为我们亲手创建了它——计算机视觉。

视觉计算机的始祖是感知器。因为感知器是许多机器学习的基本原理,所以我们有必要在这里介绍一下它们。

感知器是在20世纪50年代末发明的,其中,一组感知元件分别探测对象的一个单一、简单特征,然后提供给中枢做一个机械的决策。感知器早期版本的发明者奥利弗·塞尔弗里奇(Oliver Selfridge)给这些元件起了个诨名“恶魔”,整个感知器也被他称为“泛魔”架构。每个“恶魔”负责一个简单特征,并同时把各自获知的一小部分信息“呐喊”出来。这些信息分为三类:要么什么都没有,要么小声说“我看到了一点点”,要么大叫“我看到很多”,这就是这些“恶魔”能做的全部。

如果你教它的话,感知器的决策就可以变得更聪明。假设它正在学习识别房屋,我们给它展示一所房子的图片,此时所有的“恶魔”都喊着它们看到的信息。当感知器被告知“那是一座房子”时,它会审查每个“恶魔”给出的输入。如果一个“恶魔”(我们假设它识别的是线条)提供了“很多”的输出(因为它看到了很多线条,房子的图片里包含很多线条),那么感知器将给那个“恶魔”的意见更多权重。识别线条的“恶魔”本身无法识别房屋,但是它可以检测到的东西(直线)与房屋图像相关。还有些“恶魔”关注与房屋无关的特征,感知器会调低它们的意见权重,更少地关注它们的意见。

下图展示了感知器的基本结构。在机器学习术语中,感知器是一种用于二元分类的有监督学习算法。

决策模块是否这意味着感知器可以做出决策“这是贝斯”或“这不是贝斯”之类的判断。尽管这听起来很有限,但你可以想象,并行运行许多感知器会是什么样,这让我们在对象识别的道路上更进了一步。

我们把数字格式的图像呈现给这列“恶魔”,每个“恶魔”都对某一个特征敏感,它们探测这个特征的有无,再汇报给决策判断模块。决策模块收集所有“恶魔”的输出。然后,一个监督器(老师)告诉感知器那张图片到底是不是贝斯。随后,感知器通过反向传播(backpropagation)过程来调整各个“恶魔”向决策模块发出的连接权重:提供了有利于识别贝斯的信息的“恶魔”的可信度得到了提高。上页图中箭头的粗细代表“恶魔”的可信度。(这类似于大脑中突触的强度。)下次“贝斯”感知器看到图像时,该特定恶魔给决策者的输出将被加权:它对决策者的影响力将变大。你会重复很多次,使用许多不同的贝斯图像。经过一轮又一轮,迭代使得感知器变得更加准确。事实证明,即使是这种简单的单层感知器,也可以学习一些简单的东西……当你堆叠起一层又一层的感知器后,就可以识别人脸、驾驶汽车,或者为我们制造下一个惊喜。

现在来看一个具体的例子。下一页图显示的感知器多了两个“恶魔”(特征探测器)。我们输入一个字母A,所有特征检测器同时看到了它。

每个探测器都探测一个单一特征。例如本例中线条的角度。当我们把字母A呈现在感知器面前时,探测器会对图上演示的特征做出响应:一个对从右向左偏斜线条敏感的“恶魔”会响应,另一个“恶魔”则对从左向右偏斜的线条敏感,它们各自表征了A的两条斜线,另外,对水平线敏感的探测器也对字母的横线做出反应。监督器告诉决策器“这就是A”,相应地,探测A的感知器会增强这些探测器的权重。

注意,在示意图中,三条对应这些探测器的线条被加粗了——W2、W4和W5,这意味着它们的权重更大。下一次感知器看到字母时,它会更注意这些探测斜线和横线的“恶魔”。

现在,让我们假设我们给这个探测A的感知器看字母B。这时,对竖线和横线敏感的“恶魔”都会响应,但感知器只会倾听来自探测横线的“恶魔”的意见,所以决策器收到了较少的输入,它于是判断“这不是A”。

有个例子可以说明大脑的感知原理(以及机器的感知原理),想象一下如果我们改变输入字母的字号大小时会发生什么。我们再次向感知器显示字母A,但这一次字号较小。你应该记得,基于模板的分类器无法通过该测试,因为小A与原始模板不匹配。不过我们的感知器就可不会被愚弄,因为它有一个基本假设:无论字母有多大,它在视野中的哪个位置,检测器都能分辨出输入图像中一根线条的倾斜度。在那种情况下,对角斜线将仍旧是对角斜线,因此特征检测器仍会找到定义字母A的三个特征(两条对角线和一条水平线)。

我之所以举这个例子,是因为刚才提到的关键假设是视觉皮质“复杂”细胞的功能。像感知器一样,无论在感受野内的何处出现,视觉皮质的复杂细胞也都对拥有某个倾斜度的线条敏感。这表明V1的复杂细胞(它们是相当简单的预处理特征检测器,还出现在视觉处理的相对早期)如何开始建立感知能力。人工智能领域的巨擘之一杨立昆(Yann LeCun)明确提到,复杂细胞启发了他的思考。

更大更好的神经网络

感知器很有意思,但不巧的是,随后这种类型的人工智能栽了个跟头,直到四分之一世纪后才爬出来。这个空白阶段被称为“AI寒冬”,大约从1965年持续到1985年。在AI寒冬期,人们几乎放弃了像感知器那样会学习的机器。我们现在知道这是一个错误,因为类似原理的AI几乎可以和人类比肩。为什么它那时被束之高阁了呢?

第一,AI基本上是一个基于经验的提议,没有太多理论基础(也就是说它的基础不能用纯数学表述)。这不是一件好事,因为那时候大多数计算机科学家都是数学家出身,他们认为不能用数学描述的东西不太好。事实上,当时一位计算机科学的领军人物[1]写了一份数学证明,论证说那种简单的神经网络不能学到任何更重要的东西。

他错了。不过,我们没有用数学理论证明他错了,而是通过蛮力尝试来的经验,通过制造出确实有效的神经网络进行计算来证明他错了。

机器学习受到轻视的第二个原因来自实际困难:按照当今标准,当时的计算机速度非常慢,而且对于大多数科学家而言,他们很难付出那么多时间。这意味着数学理论必须发挥重要作用,因为其他工具很少。随着计算机科学的发展,高速计算机由此普及,经验主义的黑客精神悄然兴起。用于证明的工具不再仅限于数学,我们也可以用实际结果来验证。如果神经网络有用,它就是有用。理论尽管依旧重要,但如今只能跟着实际走。

如今,大型、高速的计算机和庞大的培训数据库已在感知器的基本原理上得到了极大的扩展。下图是现代神经网络的典型模样。图片的输入层流向一列7个感知器。这7个感知器连接到第二列感知器,依此类推。实际上,我们今天所理解的神经网络就是一堆串联的感知器。

把这些人工智能称为神经网络是对大脑的致意。科学家有时说里面的连接是“随机”的,但我们知道无论是在机器中还是在实际的大脑中,连接都不是完全随机的。我们只是还不知道主导它们的规律。但我们确实知道,计算机化的神经网络通过在学习过程中增强其连接(突触)而获得智能,我们也知道,动物的神经连接也可以因在一起重复出现的输入而逐渐增强。而且我们知道大脑包含许多层神经元。

反向传播赋予了机器学习强大的功能。我们在感知器上看到过简单的例子。在现代的神经网络中,教师的输入(“这是A”)必须向后传播,穿过每个隐藏层,并不断修改连接权重,从输出层开始,到输入层为止。一个神经网络可能有数十到数百个隐藏层。(它们被称为隐藏层是因为它们不像输入和输出层那样与外界直接通信。)神经生物学家当前的任务是找出大脑是如何做反向传播的——假设它确实能做到的话。

我希望我在机器学习行业的朋友们能原谅我,因为现代AI的功能远比我在这里展示的要多得多。举一个非常简单的例子,你不能无限制地加强突触权重:系统迟早会碰到一个边界,在该边界之上,突触权重不能再增强。(一种解决方案是对连接进行负面调整,即抑制性的“反赫布”突触。)

但是,神经网络可以接受任何计算机能理解的输入。它们可以接受图片(二维像素矩阵)、立体图(三维像素构成的矩阵,这些三维像素被称为体素)或压力波(声音)串(如果它们已正确数字化)。你可以给它们输入社交媒体上的脑残聊天,甚至用这些数据来检测新发流感——在这个令人惊讶的案例里,给神经网络输入的内容是各个城镇的脸书主页上的那些不合语法的闲聊,“老师”则是美国疾病控制中心(CDC)发布的流行病实例报告。事实证明,经过训练的神经网络可以在CDC报告之前就识别出一个城镇爆发了流感疫情。我猜想这是因为从脸书聊天的数以百万计的字母中,它看到和健康相关的帖子越来越多,其中包括使用“生病”、“休假”和“讨厌”等特定词语的帖子。这些相关性没有什么神奇之处。原则上,如果一个人类成员时刻监视这些无聊对话的话,他也可以发现。但是感谢上帝,有计算机可以帮助我们,否则对于人类来说,有太多太多的对话要监视了。

就像大脑一样,神经网络可以容忍神经元的丢失。如果你的计算机神经网络连接数不胜数,那么损失一小部分连接对性能的影响可能很小。每个连接仅包含该神经网络拥有的总“知识”的一小部分。可以肯定的是,某处功能会有所损失,但是机器肯定会继续工作。这正是彭菲尔德医生在人脑上观察到的结果:即使大脑大部分遭受实质性损害,其功能也只会略为减弱。

最后,与直觉相反,你不必知道多层神经网络的每个隐藏层中的内容。据我所知,没有人确切知道苹果的软件Siri如何使我口中说出的单词与iPhone手机屏幕上出现的字符联系起来。原则上,你可以去探索并理解它:知识肯定体现在神经网络突触的权重集合中。但是,一个网络有无数的连接,而仅仅追踪一个单独的连接(计算机对口语“狗”的音素的表征)并不太有意义。如果机器在正常运行,那就让它正常运行好了。

特里·塞伊诺夫斯基和会说话的神经网络

在AI寒冬时期,有一小撮倔强的科学家,以多伦多大学的杰弗里·欣顿(Geoffrey Hinton)为首,他们始终坚持不懈地探索着神经网络。其中有一位名叫特仑斯·塞伊诺夫斯基(Terrence Sejnowski,昵称特里),当时他在约翰斯·霍普金斯大学任教。据特里说,他很幸运,没有读过那本证明神经网络一无是处的书。他只是踏踏实实地造出了一个神经网络。[2]

特里是一个与众不同的杰出人物。他在著名的普林斯顿大学物理系开始了自己的职业生涯。在那里,他发表了一系列探讨大脑神经元行为的数学理论。然后,他跟着哈佛大学的斯蒂芬·库夫勒进行了博士后研究。

对于特里来说,这是一个职业上的转变。库夫勒是一位硬核实验家,对神经系统的细节了如指掌,但是对理论的建树并不多。于是,他敏锐地从一大批博士后申请者中选出了塞伊诺夫斯基。

也许库夫勒从特里身上看到了自己也有的简约感。如果你不太了解塞伊诺夫斯基,你也许会简单地把他归类为一个极客。他对科学充满热爱,似乎从早到晚都在工作。他对一切事物都感兴趣,总是在思考,寻找新的方向、隐藏的漏洞和潜在的创新点。他的思想从不随波逐流。

作为一个人,他也不会随大溜。最引人注目的例子是他偏爱白衬衫、深色西服和黑色鞋子。大多数科学家认为这种风格是个人主义的——科学家大多穿勃肯(Birkenstock)凉鞋、牛仔裤、毛衣和T恤,驾驶小型汽车,男性科学家往往留着胡须。各个地方的科学家有自己的“风俗”习惯。而在哈佛大学神经生物学系,一个身穿深蓝色西服的博士后显然不是一个入乡随俗的人。有一次,我喊他去玩帆船,他居然穿着羊毛休闲裤和黑色皮鞋出现。

特里在社交互动中表现出了惊人的不拘一格:他似乎会把脑海中蹦出的任何东西说出来,这偶尔会显得有些失礼,但他一点儿都不会感到尴尬。他还会发出那种很远都能听到的大笑。哈佛大学神经生物学系的小圈子不知道该如何评价特里。他和库夫勒发表了一篇有趣的论文,探讨简单神经系统模型中的突触传递,不过现在这篇文章已经被人们遗忘了。哈佛神经生物学系的文化是经验主义的,这里不是特里这位理论学家的家,他只能被看作这里的一个有趣特例。

后来,特里去了约翰斯·霍普金斯大学任教,在那他遇到了杰弗里·欣顿,后者与戴维·鲁梅尔哈特(David Rumelhart)等人一起发明了反向传播方法——每个隐藏层“向后”传播突触权重的调整,让神经网络得以学习。我们刚刚已经看到了,反向传播的发明对神经网络技术的发展至关重要。特里抓住了这个工具并付诸了实践。

从我作为细胞神经生物学家的角度来看,特里在20世纪80年代初期一直默默无闻,约1985年我访问他的实验室时,忽然就被震惊了。他向我展示了一个自己学会说话的神经网络。

他把字母一个一个输入神经网络。例如,研究人员问神经网络,“cat”的c怎么发音。

为什么这个任务值得书写呢?由于英语发音异常没规律(任何英语的非母语学习者都会痛苦地证明这一点)。例如,我们假设有一个规则,即单词的末尾有e时,元音发长音,如“gave”和“brave”。然而,看起来很相似的a在“have”中听起来很不一样。这违反了规则。为什么不像在“cow”一词中那样在“mow”中发“o”的音呢?以英语为母语的人不会注意到它,因为这些人已经长大了,但是计算机却注意到了。语言学家为这种违规行为绞尽脑汁。他们编译了很长的规则,还得增补例外清单和例外的例外的清单。

幸运的是,他们还创建了发音词典。它包含两万个英语单词及其标准发音。特里·塞伊诺夫斯基和查尔斯·罗森伯格(Charles Rosenberg)将这本词典用作他们神经网络的“老师”。老师从词典中提取了所有英语音素的发音。如果神经网络正确地猜出了“cat”中字母c的发音,那词典会告诉网络它是正确的。在神经网络中,该特定语音输出与“cat”中的c之间的联系得到了加强。

为了让旁观者体会它的效果,他们(巧妙地)将计算机输出的音标输入到一个“发声器”程序,将音标转换为语音。最后一步并没有为科学增加任何东西,但是它可以让人听到神经网络的学习成果,令人信服地证明其功能。

正如你所期望的,在训练之前,神经网络甚至没法输出一个字眼——输出的只是无关音素的混合。但是,经过几轮教学,它开始以非常类似于婴儿学语的方式发出“ga、ba、ta”的声音。再经过几轮教学,神经网络开始发出一些真实的单词,并混有各种发音错误的单词。最后,它几乎能说出任何英语文本,不仅是学过的文本,还包括没见过的文本。它能做到这一点,却无须学习任何英语发音规则。它只是学习了很多例子。

有趣的是,对隐藏层的解构表明,网络知道给某些单词分组。即使在网络的结构内找不到数百种语音规则,好像网络也已经学会了以英语为母语的人说英语的方式。虽然只有专家才能说出英语发音规则(我当然不能),但大部分以英语为母语的人可以轻松、连贯地大声朗读英语。在学习说英语的过程中,塞伊诺夫斯基的神经网络表现出了人类大脑的行为。

所有这些都是使用20世纪80年代初的计算机完成的——按照如今的标准,这是一件令人沮丧和缓慢的事情。如今,计算机的速度提高了数万倍,现在可以构建的神经网络具有数百甚至数千层。网络有很多改进,但是其根本原理与罗森伯格、塞伊诺夫斯基、欣顿和赫布使用的原理相同。

会说话的神经网对我和其他人一样具有吸引力。塞伊诺夫斯基迅速成为众人瞩目的焦点,此后一直保持至今。他在美国国家电视台接受了采访。反向传播成为完善神经网络连接的默认方法。不久后,特里从约翰斯·霍普金斯大学搬到了南加州海岸美丽的索尔克研究所,此后就一直待在那里。

塞伊诺夫斯基仍然穿着深色西服。他的车是一辆大型的黑色德国豪华轿车。在他71岁那年,他仍保留着他那独特的大笑风格。尽管他拥有了许多荣誉,也适应了各种形式的礼节,但他仍然流露出一种超级天才的活力和率性。他不怕谈论自己工作取得的成功,虽然有些人对此表示嫉妒,但他本质上是一个谦虚而不装腔作势的人,一个对科学本身充满兴趣的人。虽然他在职业上有那么多值得被人嫉妒的地方,但我不认识任何一个不喜欢特里·塞伊诺夫斯基的人。

可视计算机

你可能听说过可视计算机。它们可以驾驶自动驾驶汽车,它们可以识别人脸,危言耸听的科幻爱好者甚至会说,当你进入梅西百货商店时,照相机会拍摄你的脸,然后计算机会识别你的身份,并迅速查找你的购买偏好,然后,梅西百货会以某种方式引导你购买你不想要的商品。

我在这里告诉你,不用担心……暂时不用。再怎么说,要搜索你的购买偏好,计算机得先搞定CAPTCHA验证码系统[3]。事实上,CAPTCHA验证码涉及的视觉问题一类普通计算机还难以攻克。(美国国家安全局的计算机肯定能解决大多数验证码问题,但普通的业余机器人程序还是没法随随便便爬进任何网站。)

可视计算机功能非凡,并且以闪电般的速度不断地更新着功能。为了说明这一点,我将向你介绍几种面部识别的不同方法,这是我在本书开始时引入的问题,是视觉神经科学家的“珠穆朗玛峰”。

事实证明,现在最好的面部识别计算机确实非常出色。它们几乎和人类一样好,尽管它比人类的大脑大、能源效率更低。我将阐释两种完全不一样的方法。第一种方法是基于规则的,这意味着计算机将严格遵循一系列指定的步骤分析,这种方法是大多数人能最先想到的,例如我在本章开头提到的那位意见很强的航空工程师一定更喜欢这种方法。简而言之,我们将基于规则的方法称为“笨方法”,尽管这类方法的各种变种看上去一点儿都不笨。

第二种方法使用机器学习,它更类似于大脑。目前看来,这才是属于未来的方法,也是让珍惜隐私者感到恐惧的方法。我们将AI版本称为“聪明”方法,我将重点介绍它们,主要是因为它们类似于神经元所做的事情,而且我认为神经元很聪明。目前,AI版本主导了人脸识别领域。

人脸识别算法的任务包括以下几个步骤:首先要识别人脸的存在,然后说出这张脸属于谁。第一项任务仅仅是面部检测,而不是面部识别。智能方法和笨方法都要解决同一个起始问题:给定一个包含各种物品的视觉场景(例如梅西百货的男装部门),它们需要查看是否存在任何面孔并将其分割出来以便进一步分析。

但是即使在寻找面孔之前,我们的计算机也需要使测试图像(对自己)尽可能清晰。这些步骤在算法开始尝试识别任何面孔之前发生,统称为预处理。[4]熟悉Adobe Photoshop软件的人可以说出许多种把图像变清晰的方法。我举两个例子。首先,大多数自然场景的照明不是均匀的:户外的阳光会产生阴影,梅西百货会用聚光灯打光突出新推出的运动夹克。由于我们已经谈到的原因,我们不会注意到这些亮度的变化,但是数码相机(例如我们的手机或计算机)可以看到这些不均匀。这是一个问题,因为对于刻板的字面意思的计算机来说,用两种不同的方式照亮的同一物体看起来像是两种不同的东西。因此,图像的第一个预处理转换就是“拉平”其亮度。计算机将整个图像的亮度取平均值(有时会使用类似平均的度量),并调整亮度以使整个图像保持一致,就好像图像是由完全均匀的光源照亮的一样。其次,大多数算法都采用某种边缘增强。我们也反复提到了这一点;边缘是动作所在的位置,而算法会或多或少地将边缘锐化。

现在我们的计算机已经清理了图像,第二个任务是在图像中查找人脸。有几种方法可以做到这一点。一种有趣的方法是制作HOG图像,因为它与视觉皮质的某些神经硬件有些类似。

HOG代表“梯度直方图”(Histogram of Gradients)。梯度是指从明亮到黑暗变化的区域,即一侧的边缘较亮而另一侧的边缘较暗。换句话说,梯度不仅显示了边缘的存在,而且还显示出边缘是面向内还是面向外。计算机将测量图像中所有可能的梯度及其方向,然后将其全部映射。

这张变化后的图像如下所示。为了制作这张图片,程序将一张图片分成16×16像素的小方块。在每个方块中,程序计算每个方向(向上、向下、对角线等)上有多少梯度,然后把每个小方块上梯度最强的那个方向用一根线条来表示。

实际上,此图像是许多HOG图像的平均值,因此它是由许多面孔合成而成的一张平均脸。你可以使用此模板在人群中定位面孔。要做到这点,你先得在图片上为每一块合适大小的区域创建一个HOG图像,然后你把平均脸的HOG与这些HOG进行比较。大多数区域只会散布无意义的边缘,但有一些会与合成出的HOG吻合。当然,这不会告诉你这张脸是谁,只告诉你这里有一张脸,而且把这张脸置于一个标准坐标下,以便后续分类处理。你的算法从一堆杂乱的像素——人群中的一堆像素云——中精选出了一组可能是脸的像素阵列。

现在,我们已经清理了图像并在其中定位了面孔。一些其他的调整会将人脸转换成标准格式(例如,适当裁剪以排除周围的所有东西,就像你在某些科幻电影中看到的人脸周围的细盒子),我们准备尝试识别这张人脸是谁。

如果我去时代广场随机询问路人,面部识别计算机是如何识别的,大多数人可能会说:“它应该有区分面部特征的规则。例如,它测量两眼之间的距离或额头的高度。它将未知面孔的测量结果与已知面孔的测量结果进行比较。”

这种基于固定规则的人脸识别机确实是存在的,例如由马修·图尔克(Matthew Turk)和亚历克斯·潘特兰(Alex Pentland)开发的所谓特征向量算法。但是如今,绝大多数面部识别软件都使用机器学习来代替固定规则算法。情况也许不会永远如此——10年之后再来读这本书的人可能会目睹基于规则的算法卷土重来。不过现在,我们将暂时专注于基于神经网络的人脸识别。

让我们玩一玩,看看如何使用机器学习进行人脸识别。这里我们用到的是计算机工具箱MATLAB提供的一种简单算法。这值得一看,因为很多感知器都以相同的方式运行。MATLAB人脸识别的第一步,即那些将人脸置入标准坐标的步骤,与上述基于规则的步骤相同。然后:

•它会把预处理过的人像(变得正面朝你且均匀照亮)输入进一个多层神经网络。这些脸有很多很多,它们都被标记上了名字(如“迪克”“简”“比尔”等)。这是神经网络的训练步骤,对于你输进去的每张人像,你会告诉神经网络“这是比尔”或“这不是比尔”。

•这张神经网络和我们的小小感知器一样用反向传播来调整每个连接。那些在训练器说“这就是比尔”时强烈活动的突触得到了增强。这个强大的系统与感知器的区别在于它使用了许多层层堆叠的感知器,也就是AI的隐藏层。反向传播的反馈会影响所有层,直到输入层为止。

•现在,我们已经训练好了我们的神经网络,可以进行测试了:我们找一张比尔的照片放进去。如果这张照片和训练集中的照片足够相似,那判断器就会获得一个强有力的输入,因为这张照片到判断器之间的突触强度都被比尔的各种人像增强过了。

因为这个神经网很大,并且已经看到很多面孔,所以它已经非常聪明:它可以认出各种角度下拍摄的比尔,无论背景是明是暗,无论他穿白色衬衫还是红色T恤。在现实生活中,用于训练面部识别神经网的数据库非常庞大。过去人们有时会使用驾照照片来训练,其中包含数百万张有标记的人像。

令人着迷的是,我们并没有完全了解这个神经网是如何区分比尔的。肤色?脸高与脸宽之比?鼻子直还是歪?有无酒窝?痤疮疤痕?上述所有?这些东西与成千上万的连接都深藏在隐藏层中。

在第11章中,我们将探讨生物视觉系统与计算机的相似之处。我会说,从视网膜到面部识别的高级脑区,可塑的突触对于由神经元组成的视觉系统至关重要。但是,我现在要说的,以及将在第13章(剧透预警)中详细告诉你的是,MATLAB的神经网络并不是人脑进行物体识别的原理。简而言之,与真正的大脑相比,它太愚蠢了。感知器必须有一位老师告诉它“这是比尔”或“这不是比尔”,这叫作有监督学习。我们之后会看到,大脑可以在没有老师指导的情况下学习。但是,堆叠的感知器体现了一个原理——由可修改的赫布连接组成的神经网络对两种学习都至关重要。

[1] 马文·明斯基(Marvin Minsky)与另一位人工智能先驱西莫·佩帕特(Seymour Papert)在1969年出版了《感知器》一书,证明了感知器的一些局限,例如不能进行异或(XOR)运算等。然而,他们对于感知器的定义过于狭隘,事实证明更广义的神经网络能突破这些局限。——译者注

[2] 资料来自作者的个人回忆和塞伊诺夫斯基撰写的人工智能简史:Sejnowski,T.(2018).The deep learning revolution:Artificial intelligence meets human intelligence.Cambridge,MA:MIT Press.

[3] CAPTCHA的全称是“全自动的区分人和计算机的公开图灵测试(completely automated public Turing test to tell computers and humans apart)”。这个验证码系统会设计一张变形的图片,人容易理解它,但机器很难。传统上,这些变形的图片会包含一些字母,不过最近的系统也会使用图片——例如给出一张图片,图片有几辆巴士和很多其他物体,你得数出有几辆巴士。这是验证码系统和黑客之间的较量。

[4] 在计算机视觉世界中,这里检测到的功能有时被称为“先验”。它们是先前对重要环境事件类别的经验的偏见。你可以直接把先验知识给机器,或者可以让机器自己学习并发现它们。有趣的是,曾经有人认为,提前提供基本功能来减少计算机工作量总是更好的——我们知道很多基础功能,那么为什么不打包提供给算法呢?但反直觉的是,现有证据表明,机器自己学习早期特征会更有效。

请支持我们,让我们可以支付服务器费用。
使用微信支付打赏


上一页 · 目录下一页


下载 · 书页 · 阅读 ‧ 电子书库