PRML5.2--网络训练

网络训练

这一节主要是训练网络来获得网络中的权重。把神经网络当作输入变量x到输出变量y的参数化非线性函数。使用与1.1节的方法对多项式拟合的问题,所以需要最小化平方和误差。现在给定一个由输入向量{xn}组成的训练集,和对应的目标tn,最小化误差函数:
这里写图片描述

回归问题

假定t服从高斯分布,均值与x相关,神经网络的输出为:

p ( t | x , w ) = N ( t | y ( x , w ) , β 1 )

将输出单元激活函数取成恒等函数,这样的话可以近似任何从想到y的连续函数。给定N个独立同分布的观测数据集X={x1,x2,,,}以及对应的目标变量t={t1,t2,,,tn},构成似然函数:
p ( t | X , w , β ) = p ( t n | x n , w , β )

然后再取负对数,就得到误差函数:
β 2 [ y ( x , w ) t n ] 2 N 2 ln β + N 2 ln 2 π

首先考虑w。把最大似然函数等价于最小平方和误差函数:
E ( w ) = 1 2 [ y ( x n , w ) t n ] 2

通过最小化得到的w被记作wML。
注意一点的是,在实际中神经网络函数y(xn,w)的非线性性质导致误差函数E(w)不是凸函数,在应用中寻找的是似然函数的局部最大值,对英语的误差的局部最小值。
现在使用已经找到的wML来寻找β:
1 β = 1 N [ y ( x n , w M L ) t n ] 2

现在考虑多个目标变量,假定w和x条件下,目标变量是相互独立的,那么目标变量的条件分布:
p ( t | x , w ) = N ( t | y ( x , w ) , β β 1 I )

这种情况下噪声的精度为:
1 β M L = 1 N K ( y ( x n , w M L ) t n ) 2

二分类

一个单一目标变量t,且t=1为C1、t=0为C2。现在只考虑单一输出,激活函数:

y = σ ( a ) = 1 1 + e x p ( a )

现在给定输入,目标变量的条件概率分布是一个伯努利分布:
p ( t | x , w ) = y ( x , w ) t [ 1 y ( x , w ) ] 1 t

如果是考虑一个由独立的观测组成的训练集,由负对数似然函数就是由一个交叉熵误差函数:
E ( w ) = [ t n ln y n + ( 1 t n ) ln ( 1 y n ) ]

有人提出在分类问题上,使用交叉熵误差函数会使训练速度更快,同时提高泛化能力。
现在有k个二元分类问题,则目标向量的条件概率:
p ( t | x , w ) = ( y k ( x , w ) t k [ 1 y k ( x , w ) ] 1 t k )

就可以推出误差函数:
E ( w ) = [ t n k ln y n k + ( 1 t n k ) ln ( 1 y n k ) ]

假设使用标准的两层神经网络,第一层的权向量由各个输出共享,而在线性模型中每个分类问题都是独立解决。第一层被看成进行非线性的特征提取,不同的输出之间共享特征可以节省计算量。
前面这些都是说明了对于不同问题,要选取不同的误差函数,可以有效地进行计算提高计算能力和泛化能力。

参数最优化

我们把E(w)看作位于权空间的一个曲面。咋权空间中走一小步,从w到w+δw,误差函数变为:δE=δw.T▽E(w)。由于E(w)是w光滑连续函数,则最小值位于权空间中误差函数梯度等于零的位置上:

E ( w ) = 0

如果最小值不在这个位置上,就沿着
E ( w )
方向走,进一步减小误差。
但是在误差函数上可能存在很多个驻点,梯度为零的那个驻点就是最小值,所以又提出了通过迭代的数值方法来计算最小值:
w τ + 1 = w τ + Δ w τ

局部二次近似

这个是为了判断所找的驻点就是最小值。
现在把误差函数E(w’)在w出泰勒展开:

E ( w ) = E ( w ) + ( w w ) T b + 1 2 ( w w ) T H ( w w )

其中b的定义:
b E w = w

海森矩阵H为:
( H ) i j = E w i w j | w = w

则梯度的局部近似为:
E = b + H ( w w )

考虑一个特殊情况,在误差函数最小值点w‘附近的二次近似。因为误差函数在那点处为零,所示公式变成了:
E ( w ) = E ( w ) + 1 2 ( w w ) T H ( w w )

其中H的特征值方程:
H u i = λ i u i

u i T u j = δ i j

w w = α i μ i

这样误差公式可以得到:
E ( w ) = E ( w ) + 1 2 λ i α i 2

其中H是正定矩阵。
这样得到一个验证方法:当求出一个驻点,可以通过海森矩阵是否是正定矩阵来判断是否是最小值点。

使用梯度信息

文中提到使用梯度信息可以大幅度加快找到极小值点的速度。
在上面给出的误差函数的二次近似中,误差函数由w和b确定,包含w(w+3)/2个元素,W是w的维度。这个二次近似的极小值点的位置因此依赖于O(W2)个参数。如果不使用梯度信息,必须进行O(w2)次函数求值,每次求值都需要O(w)个步骤。因此需要O(W3)的计算复杂度。
而使用梯度信息,由于每次计算E的梯度都有W条信息,预计找到极小值需要O(w)次梯度。通过反向误差传播,这样的计算需要O(W)步骤,可以在O(W2)步骤内找到极小值。

梯度下降最优化

这一节讲的是梯度下降的优化,主要介绍了梯度下降,批梯度下降、随机梯度下降。
最开始提出使用迭代数值的方式求得w的值,公式为:

w τ + 1 = w τ + Δ w τ

现在更改更新的方式,每一次权值更新都是在负梯度方向上进行移动:
w τ + 1 = w τ η E ( w τ )

这种方法被称为梯度下降,权值向量沿着误差函数下降速度最快的方向移动。
也还有批量梯度法和共轭梯度法、拟牛顿法,这些算法都有:误差函数在每次迭代时总是减小,除非权向量达到了局部或者全局的最小值。
现在讲解在线梯度下降。
基于一组独立观测的最大似然函数的误差函数由一个求和式构成,求和式每一项对应着一个数据点:
E ( w ) = E n ( w )
,在线梯度也被称作顺序梯度下降或者随机梯度下降,使得权向量的更新每次只依赖于一个数据点:
w τ + 1 = w τ η E ( w τ )

猜你喜欢

转载自blog.csdn.net/jeak2015/article/details/82500237
5.2