296 Chapter 9. 人工神经网络和神经语言建模 肖桐 朱靖波
很快又有了一场音乐会,距你 1000 公里,票价 3000 元,当然女友是一直喜欢
音乐会的。根据新的决策模型,你义无反顾地选择去看音乐会。然而,女友又不高
兴了,喜欢浪漫的女友觉得去看这场音乐会太奢侈了。在这几次看音乐会的经历中,
你发现每个因素的权重需要准确地设置才能达到最好的决策效果。
那么如何确定最好的权重的?方法其实很简单,不断地尝试,根据结果不断地
调整权重。在经过成百上千次的尝试之后,终于找到了一组合适的权重,使每次决
策的正确率都很高。上面这个过程就类似于参数训练的过程,利用大量的数据来模
拟成百上千次的尝试,根据输出的结果来不断地调整权重。
可以看到,在“是否参加音乐会”这个实际问题中,主要涉及到三方面的问题:
• 对问题建模,即定义输入 {x
i
} 的形式;
• 设计有效的决策模型,即定义 y;
• 得到模型参数(如权重 {w
i
})的最优值。
上面的例子对这三个问题都简要地做出了回答。下面的内容将继续对它们进行
详细阐述。
9.2.3 多层神经网络
感知机是一种最简单的单层神经网络。一个很自然的问题是:能否把多个这样
的网络叠加在一起,获得建模更复杂问题的能力?如果可以,那么在多层神经网络
的每一层,神经元之间是怎么组织、工作的呢?单层网络又是通过什么方式构造成
多层的呢?
1. 线性变换和激活函数
为了建立多层神经网络,首先需要把前面提到的简单的神经元进行扩展,把多
个神经元组成一“层”神经元。比如,很多实际问题需要同时有多个输出,这时可
以把多个相同的神经元并列起来,每个神经元都会有一个单独的输出,这就构成一
“层”,形成了单层神经网络。单层神经网络中的每一个神经元都对应着一组权重和
一个输出,可以把单层神经网络中的不同输出看作一个事物不同角度的描述。
举个简单的例子,预报天气时,往往需要预测温度、湿度和风力,这就意味着如
果使用单层神经网络进行预测,需要设置 3 个神经元。如图9.9所示,此时权重矩阵
如下:
W =
w
11
w
12
w
13
w
21
w
22
w
23
!
(9.29)
它的第一列元素
w
11
w
21
!
是输入相对第一个输出 y
1
的权重,参数向量 b = (b
1
,b
2
,b
3
)
的第一个元素 b
1
是对应于第一个输出 y
1
的偏置量;类似的,可以得到 y
2
和 y
3
。预