第4章 神经网络
4.1 适合神经网络学习的问题
- 实例是用很多“属性-值”对表示的;
- 目标函数的输出可能是离散值、实数值或者由若干实数属性或离散属性组成的向量;
- 训练数据可能包含错误;
- 可容忍长时间的训练;
- 可能需要快速求出目标的函数值;
- 人类能否理解学到的目标函数是不重要的。
4.2 感知器(Perceptron)
4.2.1 感知器的数学表示
- 感知器函数为:
O(x)=sgn(ωTx)
其中:
ω=[ω0,ω1,⋯,ωn]T
,
x=[1,x1,⋯,xn]T
,
sgn(y)={1,0,ify>0otherwise
2. 感知器的假设空间:
H={ω|ω∈Rn+1}
,学习一个感知器意味着选择权值
ω0,…,ωn
的值。
3. 感知器的表征能力:感知器可看作一个
n
维实例空间中的超平面决策面。
4.2.2 感知器的训练法则
- 感知器训练法则
ωi←ωi+Δωi 其中, Δωi=η(t−o)xi ,参数 η 称为学习速率。
2. delta法则
delta法则的关键思想是使用梯度下降(gradient descent)来搜索可能的权向量的假设空间。
ω←ω+Δω其中, Δω=−η∇E(ω) 。
梯度下降法可应用于满足以下条件的任何情况:
* 假设空间包含连续参数化的假设
* 误差对这些假设参数可微4.3 多层网络
- 前馈网络的表征能力:
- 布尔函数:任何布尔函数可以被具有两层单元的网络准确表示,尽管在最坏的情况下所需的隐层单元数量随着网络输入数量的增加成指数级增长;
- 连续函数:在隐层单元使用sigmoid单元、输出层使用线性单元时,每个有界的连续函数可由这个两层网络以任意小的误差(在有限的范数下)逼近;
- 任意函数:在隐层单元使用sigmoid单元、输出层使用线性单元时,任意函数可以被一个有三层单元的网络以任意精度逼近。
这些结论表明,有限深度的前馈网络为反向传播算法提供了非常有表征力的假设空间。
- 隐层表示
多层网络在隐层自动发现有用表示的能力是神经网络学习的一个关键特性,它提供了一种相当重要的灵活性——允许学习器创造出设计者没有明确引入的特征。网络中使用的单元层越多,就可以创造出越复杂的特征。
4.4 反向传播算法
4.4.1 推导
4.4.1.1 可微阈值单元
sigmoid单元:
σ(y)=11−e−yσ′(y)=σ(y)[1−σ(y)]4.4.1.2 误差函数
E(ω)=12∑d∈D∑k∈outputs(tkd−okd)2其中, outputs 是网络输出单元的集合, tkd 和 okd 分别是与训练样例 d 和第
k 个输出单元相关的目标值和输出值。对于每个训练样例 d 有
Ed(ω)=12∑k∈outputs(tk−ok)2 4.4.1.3 推导过程
符号定义:
- σ :sigmoid函数
-
xji
:单元
j
的第
i 个输入 -
ωji
:与单元
j
的第
i 个输入相关联的权值 - netj=∑iωjixji :单元 j 的所有输入的加权和
oj=σ(netj) : 单元 j 的实际输出tj : 单元 j 的目标输出outputs :网络输出层的单元的集合- Downsream(j) :单元的直接输入中包含单元 j 的输出的单元和集合
δk=−∂Ed∂netk :与单元 k 相关联的误差项
首先推导
∂Ed∂ωji :
∂Ed∂ωji=∂Ed∂netj∂netj∂ωji=∂Ed∂netjxji
1. 情况1:输出单元的权值训练法则
∂Ed∂netj=∂Ed∂oj∂,oj∂netj(4-1)- 考虑(4-1)式第一项
∂Ed∂oj=∂∂oj[12∑k∈outputs(tk−ok)2]
当 k≠j 时, ∂(tk−ok)2∂oj=0 ,所以有
∂Ed∂oj=∂∂oj[12(tj−oj)2]=−(tj−oj)- 考虑(4-1)式第二项
∂oj∂netj=∂σ(netj)∂netj=σ(netj)[1−σ(netj)]=oj(1−oj)
代入(4-1)式得到
∂Ed∂netj=−(tj−oj)oj(1−oj)δj=−∂Ed∂netj=(tj−oj)oj(1−oj)故,输出单元的随机梯度下降法则为
Δωji=−η∂Ed∂ωji=η(tj−oj)oj(1−oj)xji=ηδjxji
2. 情况2:隐层单元的权值训练法则
∂Ed∂netj=∑k∈Downstream(j)∂Ed∂netk∂netk∂netj=∑k∈Downstream(j)−δk∂netk∂netj=∑k∈Downstream(j)−δk∂netk∂oj∂oj∂netj=∑k∈Downstream(j)−δkωkj∂oj∂netj=∑k∈Downstream(j)−δkωkjoj(1−oj)故有
δj=−∂Ed∂netj=oj(1−oj)∑k∈Downstream(j)δkωkj且
Δwji=ηδjxji4.4.2 反向传播算法的假设空间搜索和归纳偏置
- 对于反向传播算法,网络权值的每一种可能赋值都表示了一个句法不同的假设,即这个假设空间是n个网络权值的n维欧式空间,且这个空间是连续的。
- 假设空间的连续性以及误差关于假设的连续参数可微这两个事实,导致了一个定义良好的误差梯度,为最佳假设的搜索提供了一个非常有用的结构。
- 反向传播学习的归纳偏置依赖于梯度下降搜索和权空间覆盖可表征函数的方式的相互作用,难以精确刻画。但可以粗略地刻画为在数据点之间平滑插值。
4.4.3 泛化精度和停止判据
在验证集上测到的误差反映了网络的泛化精度(Generalization Accuracy)。
为什么过拟合总是发生在训练迭代的后期?
网络的权值是被初始化为小随机值的,使用这些几乎一样的权值仅能描述非常平滑的决策面。随着训练的进行,一些权值开始增长,以降低在训练数据上的误差,同时学习到的决策面的复杂度也在提高,于是,随着权值调整迭代次数的增加,反向传播算法获得的假设的有效复杂度也在增加。如果权值调整迭代次数足够多,反向传播算法经常会产生过度复杂的决策面,拟合了训练数据中的噪声和训练样例中没有代表性的特征。
解决小训练集上过度拟合的一种方法—— k-fold 交叉验证。4.4.4 其他可选的误差函数
- 加入正则项
- 交叉熵: 最小化交叉熵的网络可以给出最好的概率估计(也就是极大似然估计)。
- 前馈网络的表征能力: