人工智能的商业应用
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.4 人工神经网络

人工神经网络只是一组数学模型,因为这一组数学模型被用于模拟人类神经系统的架构与功能,所以才被仿生地命名为人工神经网络。早在1943年,神经科学家沃伦·麦卡洛克和沃尔特·彼茨就提出了一种假说,构建了人类神经节沿着网状结构传递和处理信息的模型。该假说一方面被用于研究人类的感知原理,另一方面则被计算机科学家们借鉴,将该模型称为人工神经网络。

1958年,弗兰克·罗森布拉特提出了用于简单模式识别的“感知机”模型,它是一个基于人工神经网络的两层结构模型。但是在1969年,人工神经网络的早期奠基人之一马文·闵斯基在《感知机》一书中讨论了人工神经网络难以解决的“异或难题”,这一讨论打消了大多数研究者继续坚持研究人工神经网络的念头。直到1975年,“异或难题”才被理论界彻底解决,人工神经网络的发展又回到正轨。但是由于当时的数据规模、硬件设施和服务无法支撑研究者们将网络层数加深后的计算量,所以人工神经网络的进一步研究经历了漫长的等待。

从数学的角度来看,人工神经网络是由一层或多层节点组成的有向图,每一层的节点都通过有向弧指向上一层的节点,每一条有向弧都用一个权值来描述,同一层的节点之间并无连接。输入层的节点按照有向弧的权值进行函数变换,变换后的输出传递给第二层的节点作为输入;第二层的节点如此这般执行同样的操作,其输出再作为第三层的输入。最后在输出层,哪个节点的数值最大,其输入的信号就被划分在哪一类。

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

网络结构和激活函数的协调性、训练数据的质量和完备性、训练方法的合理性决定了人工神经网络预测结果的准确性。其中,网络结构的类型和激活函数是预先设计的,而训练数据是由外部导入的,训练方法是作为超参数输入的。决定模型好坏的首要因素是网络结构和激活函数,其协调性决定了人工神经网络的输入数据在应用场景中的合理性。此外,训练数据的质量和数据预处理的方法对人工神经网络的输出也有很大的影响。我们将在后面的章节中逐一介绍人工神经网络衍生的几种算法模型。