PRML5.2--网络训练

本文深入探讨了神经网络的训练过程,包括回归、分类问题的处理,以及如何选择合适的误差函数来提高计算效率和泛化能力。此外,还详细讲解了参数优化方法,如梯度下降、批量梯度下降和随机梯度下降,以及如何利用梯度信息加速优化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

网络训练

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

回归问题

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

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

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

然后再取负对数,就得到误差函数:
β2[y(x,w)tn]2N2lnβ+N2ln2πβ2∑[y(x,w)−tn]2−N2ln⁡β+N2ln⁡2π

首先考虑w。把最大似然函数等价于最小平方和误差函数:
E(w)=12[y(xn,w)tn]2E(w)=12∑[y(xn,w)−tn]2

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

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

这种情况下噪声的精度为:
1βML=1NK(y(xn,wML)tn)21βML=1NK∑(y(xn,wML)−tn)2

二分类

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

y=σ(a)=11+exp(a)y=σ(a)=11+exp(−a)

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

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

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

就可以推出误差函数:
E(w)=[tnklnynk+(1tnk)ln(1ynk)]E(w)=−∑∑[tnkln⁡ynk+(1−tnk)ln⁡(1−ynk)]

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

参数最优化

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

E(w)=0∇E(w)=0

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

局部二次近似

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

E(w)=E(w)+(ww)Tb+12(ww)TH(ww)E(w)=E(w′)+(w−w′)Tb+12(w−w′)TH(w−w′)

其中b的定义:
bEw=wb≡∇Ew=w′

海森矩阵H为:
(H)ij=Ewiwj|w=w(H)ij=∂E∂wi∂wj|w=w′

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

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

其中H的特征值方程:
Hui=λiuiHui=λiui

uTiuj=δijuiTuj=δij

ww=αiμiw−w∗=∑αiμi

这样误差公式可以得到:
E(w)=E(w)+12λiα2iE(w)=E(w∗)+12∑λiαi2

其中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τ+Δwτ

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值