大悟读书网 > 经济管理 > 人工智能革命:历史、当下与未来 > 大脑的人工模拟 ——神经网络

大脑的人工模拟 ——神经网络

汉字的笔划有横有竖还有弧,所以万牌从牌面上讲,不是简单的单一纹路,而是横纹、竖纹和弧形纹的有机组合。这样的纹路扩展从数学上讲,实质上是将模式的特征复杂化,模式之间的区别精细化,一条直线就没有办法将不同模式精确地区分开来。一个直观的改进方法是将线性的神经元改造为非线性的神经元,非线性的曲线或者曲面显然比直线或平面具有更高的区分度。但不同地域的麻将规则不同,北方的麻将里会有红中发财白板,四川的麻将里有东西南北风,江浙的麻将里有梅兰竹菊。要进一步区分出这些复杂的牌面,在平面上只画一条线就不够了,只有把平面划分成更多的区域才能实现精确的判定,这对应的就是多层神经网络。

这条线起到的就是模式识别中分类器的作用,在人工神经网络中则对应神经元的概念。神经元的实质就是分类器,它把由所有输入信号构成的空间一分为二,两边的元素分别属于不同的类。最简单的分类器就是二维空间上的直线,这一直线扩展到三维空间上就是一个平面,扩展到四维空间上就是一个超平面……依此类推。这样一个线性函数虽然实现简单,但其功能也有限——只能用来区分九条与一饼,用来区分八条和二饼、七条和三饼的话,就可能会出现判断错误的情况。要是再把纹路结构更加复杂的一万到九万引入判定的话,这样的线性模型就不再适用了。

通常的审牌过程正是多层神经网络的处理方式:审牌时我们会先摸出大致的纹路,判定这张牌到底是简单的条牌或饼牌,还是更加复杂的万牌或花牌。经过这一步的分类后,再来具体判定是四条还是五饼,是三万还是南风。多层神经网络的工作原理也是这样:下层神经元的输出是上层神经元的输入,不同层次的神经网络使用不同的神经元来分辨输入信号的不同特征,经过多层神经网络处理后得到的不同区域还可以进一步进行交、并、异或等逻辑运算。这样一来,多层神经网络就可以表示出更复杂的空间划分,得到更精确的判定效果,其代价则是更高的计算复杂度。

要解释人工神经网络的原理,不妨把审牌的问题做个简化:分辨出一张牌到底是九条还是一饼。这两张牌的区别明显:九条的牌面只包含竖纹,而一饼的牌面只包含圆圈纹,每一种牌面的特征都是一种独特的模式。作为人类的我们可以通过手指的触觉识别不同的纹理,但计算机显然没有这么聪明——它只认识数学模型。既然如此,我们就可以把不同的纹理抽象化成一个平面直角坐标系,它的横轴代表竖纹的强度,纵轴代表圆圈纹的强度。这样一来,九条和一饼就分别落在两个坐标轴上。沿着这个坐标系的对角线画一条线,就可以轻松地把九条和一饼区分开来。再来一张牌,经过量化后落在这条线上面的就是一饼,下面的就是九条。

人的大脑是自然界中最强大的神经网络。打过麻将的读者可能会知道“审牌”的说法:久筑长城的牌坛老手不用看牌,单凭触摸麻将牌上的纹路就能知道这张牌到底是五条还是八万。当然,从没接触过麻将牌的小孩子无论如何也摸不出到底是哪一张,打牌较少的新手要达到较高的审牌成功率也并非易事,只有长期摸牌打牌的人才具备这种牌桌上的高级技能。在这个现象中,我们可以一窥人工神经网络的工作原理。

图3-5 神经网络识别图像示意图

根据规则来判断芒果的好坏这个问题,属于模式识别的范畴,而人工神经网络正是解决模式识别问题的主流方法。

如前文所示,通过与打麻将中审牌的对比,我们意在说明人工神经网络的作用是分类。实际的人工智能当然不能用于判断麻将牌,但在垃圾邮件识别,循证医学的临床路径、自然语言处理、图像识别等领域中都有广泛的应用。在这些应用中,人工神经网络都需要使用海量的分类器。审牌的能力可以通过长期的试错与反馈习得,但人工神经网络中的大量参数又如何来确定呢?

关于神经网络的作用,在国外的问答网站Quora上有非常通俗的描述:如果你去买芒果,但又不知道什么样的芒果最好吃,最简单的方法就是每一个都亲口尝一尝,吃完就知道个头大、颜色深的比较好吃,再买的时候选这种就行了。要是把这个方法套用到计算机上,让计算机“尝”一遍所有芒果,它就能够总结出关于芒果好吃判断标准的一套规律。有了这套规律后,一旦把新芒果的特征输入计算机,计算机就能够根据已有规则判断出芒果的好坏,岂不美哉!

说到这里就不得不涉及数学知识了。人工神经网络的数学本质是一种特殊的有向图,这个有向图可以由一层或多层节点组成,每一层的节点都通过有向弧指向上一层的节点,每一条有向弧都用一个权值来描述,同一层的节点之间则并无连接。输入层的节点按照有向弧的权值进行函数变换,变换后的输出传递给第二层的节点作为输入;第二层的节点如此这般执行同样的操作,其输出再作为第三层的输出。最后在输出层,哪个节点的数值最大,输入的信号就被划分在哪一类。

人工神经网络听起来玄之又玄,既然神经网络属于生理学和认知科学的范畴,那人工神经网络岂不是要人为合成一套神经系统?其实不然,人工神经网络只是一组数学模型,只不过这一数学模型被用于模拟人类神经系统的架构与功能,所以才被仿生地命名为人工神经网络。

在此过程中,如何保证对输入信号的分类符合我们的要求呢?这就需要人为地对人工神经网络进行训练。所谓训练,就是通过负反馈的方式动态调整人工神经网络中权值的过程,目的就是使网络参数尽可能的与真实的模型逼近。既然我们希望网络的分类结果尽可能地接近真正情形,就可以通过比较网络当前的输出和真实值,再根据两者的差异情况来更新每一层的权重值来降低偏差。如果人工神经网络的预测值偏高,就调整权值使输出变低,反之则调整权值使输出变高。就这样不断调整,直到偏差小于某个特定的阈值为止,这时我们就认为人工神经网络达到了精确的分类。具体的训练方法则是反向传播算法:最开始输入层输入特征向量,网络层层计算获得输出,输出层发现输出和正确的类号不一样,这时它就让最后一层神经元进行参数调整,最后一层神经元不仅自己调整参数,还会勒令连接它的倒数第二层神经元调整,层层往回退着调整。经过调整的网络会在样本上继续测试,如果输出还是老分错,那就继续来一轮回退调整,直到网络输出满意为止。

前文介绍了人工智能发展过程中产生的三大学术流派,眼下风头正劲的正是其中的连接主义学派,阿尔法狗的横空出世也正是拜连接主义学派的神经网络所赐。

人工神经网络的质量由三个要素决定:网络结构和节点函数,训练数据的质量和完备性、训练方法的合理性。其中网络结构类型和节点函数是预先设计的,训练数据和训练方法则是由外部导入的。网络结构和节点函数是决定人工神经网络质量的首要因素,运行机制符合实际事物的内在机理的网络才是高质量的人工神经网络。另一方面,如果训练数据不典型、不充分、不完备,训练方法不适当,也会影响人工神经网络的输出精度。