深度学习在近年的进展又一次点燃了各界对人工 神经网络 的热情。这一技术在图像识别、 语音识别 、棋类游戏等领域的成效出人意料,而且更多应用领域也正在被开拓出来。“深度学习是否有效”已经不是问题,现在的问题是在哪些问题上有效,尤其是这条研究路线是否是达到通用智能的最佳途径。我在前面几篇短文中涉及到了这个话题,但均未展开谈。关于人工 神经网络 的工作原理和这项研究的历史沉浮,有关介绍已有很多,这里不再重复。我主要想讨论几个被普遍忽视或误解的概念问题。
此网络非彼网络
在实现“像人一样的智能”的诸多可能途径中(见《当你谈论 人工智能 时,到底在谈论什么?》),人工 神经网络 似乎具有天然的合理性和说服力。我们都知道人的智能来自人脑,而人脑是个 神经网络 ,不是吗?
当然没这么简单。所谓“人工 神经网络 ”和人脑中的“ 神经网络 ”只有非常有限的共同点,而不同点则要多得多。我们不能仅仅因为它们名称上的相似性就断定它们会有相同的功能。
下图是参考资料[1]中的深度 神经网络 :
这类网络由若干层组成,每层中的人工神经元与相邻层中的神经元相连接。网络中的底层接受输入信号,顶层生成输出信号,中间层将下层的输出值做加权求和后经一个“激活函数”产生成本层输出值,以供上层之用。这样,每层将一个“向量”(即一串数值)变成另一个向量,而整个网络则代表了一个从输入层到输出层的“向量函数”。这里的输入可以是各种感知信号,中间层代表信号的概括和抽象,而输出则代表系统的认知结果或应对行为。
说这种系统能“学习”,是指在构建网络时,设计者只需选定神经元模型(如激活函数的公式)和网络结构(如一共几层,每层多少神经元)等,而将各个连接上的权值作为待定“参数”。在网络的“训练”过程中,一个“学习 算法 ”根据已知数据对这些参数反复进行调整,直到整个网络达到某种预定的标准为止。这时我们就说这个网络“学会了”如何识别、区分或应对这种输入信号。如我在《机器是如何被骗并骗人的?》中所解释的,这种网络就是个通用函数拟合器。