人工神经网络(Artificial Neural Netwroks)笔记-基本的非确定性统计训练算法
在上一篇文章 《人工神经网络(Artificial Neural Netwroks)笔记-消除样本顺序的BP算法 》中 修改权重的方法被称为"最速下降法"。每一次权重的修改都是确定的,权重都会被修改。甚至到最简单的单层感知器也是如此。
但是我们有一个疑问,是否每一次的权重修改都是好的呢?
虽然"最速下降法"能在数学上被证明是每一次都比前一次越来越逼近最优解,但是这个逼近可是一个无休止的过程。而且面对局部最小点的问题,"最速下降法"不一定有足够的能量跳出局部最小点,甚至可能越陷越深。
因此有人提出了非确定性的统计方法。
其基本思想是: 从所给的网络中随机地选取一个联接权重,对该联接权提出一个伪随机的调整量,当用此调整量对所选权重进行了修改后,如果被认为修改了之后改进了网络的性能,则保留此次调整,否则放弃调整。
具体算法流程如下:
1 从样本集S中取一个样本(X,Y)
2 将X输入到网络中,计算出实际的输出O
3 求出网络关于Y,O的误差测度E
4 随机地从 W(1),W(2),....W(L)中选择一个联接权重Wij(P),
5 生成一个小随机数△Wij(P)
6 用△Wij(P)修改Wij(P),
7 用修改后的 W(1),W(2),....W(L)重新计算网络的实际输出 O'
8 求出网络关于Y,O'的误差测度E'
9 如果E'>E,则保留本次对W(1),W(2),....W(L)的修改,否则,根据概率判断本次修改是否有用,如果有用,则保留本次对W(1),W(2),....W(L)的修改,如果认为本次修改无用,则放弃它
10 重复上述过程,直到网络满足要求。
联接权重的修改量到底多大比较好呢?
太小:落到某一个局部最小点的时候很难逃离。
太大:导致在某两个局部最小点之间回来抖动。
解决方法:控制修改量的大小,修改量由大变小(解决太大的问题)
允许网络暂时变坏(解决太小的问题)
上面提到了网络的能量,这是引用了 模拟退火算法里面的描述。
下一文章 将 讲述 如何利用模拟退火算法来确定修改量的去留。
但是我们有一个疑问,是否每一次的权重修改都是好的呢?
虽然"最速下降法"能在数学上被证明是每一次都比前一次越来越逼近最优解,但是这个逼近可是一个无休止的过程。而且面对局部最小点的问题,"最速下降法"不一定有足够的能量跳出局部最小点,甚至可能越陷越深。
因此有人提出了非确定性的统计方法。
其基本思想是: 从所给的网络中随机地选取一个联接权重,对该联接权提出一个伪随机的调整量,当用此调整量对所选权重进行了修改后,如果被认为修改了之后改进了网络的性能,则保留此次调整,否则放弃调整。
具体算法流程如下:
1 从样本集S中取一个样本(X,Y)
2 将X输入到网络中,计算出实际的输出O
3 求出网络关于Y,O的误差测度E
4 随机地从 W(1),W(2),....W(L)中选择一个联接权重Wij(P),
5 生成一个小随机数△Wij(P)
6 用△Wij(P)修改Wij(P),
7 用修改后的 W(1),W(2),....W(L)重新计算网络的实际输出 O'
8 求出网络关于Y,O'的误差测度E'
9 如果E'>E,则保留本次对W(1),W(2),....W(L)的修改,否则,根据概率判断本次修改是否有用,如果有用,则保留本次对W(1),W(2),....W(L)的修改,如果认为本次修改无用,则放弃它
10 重复上述过程,直到网络满足要求。
联接权重的修改量到底多大比较好呢?
太小:落到某一个局部最小点的时候很难逃离。
太大:导致在某两个局部最小点之间回来抖动。
解决方法:控制修改量的大小,修改量由大变小(解决太大的问题)
允许网络暂时变坏(解决太小的问题)
上面提到了网络的能量,这是引用了 模拟退火算法里面的描述。
下一文章 将 讲述 如何利用模拟退火算法来确定修改量的去留。