神经网络学习的梯度算法 从感如器的学习算法可知,学习的目的是在于修改网络中的权系数,使到网络对于所输入的模式样本能正确分类。当学习结束时,也即神经网络能正确分类时,显然 权系数就反映了同类输人模式样本的共同特征。换句话讲,权系数就是存储了的输人模式。由于权系数是分散存在的,故神经网络自然而然就有分布存储的特点。 前面的感知器的传递函数是阶跃函数,所以,它可以用作分类器。前面一节所讲的感知器学习算法因其传递函数的简单而存在局限性。 感知器学习算法相当简单,并且当函数线性可分时保证收敛。但它也存在问题:即函数不是线性可分时,则求不出结果;另外,不能推广到一般前馈网络中。 为了克服存在的问题,所以人们提出另一种算法——梯度算法(也即是LMS法)。 为了能实现梯度算法,故把神经元的激发函数改为可微分函数,例如Sigmoid函数,非对称Sigmoid函数为f(X)=1/(1+e-x ),对称Sigmoid函数f(X)=(1-e-x )/(1+e-x );而不采用阶跃函数。 对于给定的样本集Xi (i=1,2,,n),梯度法的目的是寻找权系数W* ,使得f[W*. Xi ]与期望输出Yi尽可能接近。 设误差e采用下式表示:
|
|||
其中,Yi =f〔W* ·Xi ]是对应第i个样本Xi 的实时输出 Yi 是对应第i个样本Xi 的期望输出。 要使误差e最小,可先求取e的梯度:
|
|||
|
|||
令 Uk =W. Xk ,则有:
|
|||
即有:
|
|||
最后有按负梯度方向修改权系数W的修改规则:
|
|||
也可写成:
|
|||
在上式(1—30),式(1—31)中,μ 是权重变化率,它视情况不同而取值不同,一般取0-1之间的小数。 1.神经元的传递函数采用连续的s型函数,而不是阶跃函数; 2.对权系数的修改采用误差的梯度去控制,而不是采用误差去控制。故而有更好的动态特能,即加强了收敛进程。 但是梯度法对于实际学习来说,仍然是感觉太慢;所以,这种算法仍然是不理想的。 |