使用先进Kohonen网络实现快速学习型机器视觉
Fast Learning Computer Vision Using Advanced Kohonen Network
刘留
geo.cra[at]gmail[dot]com
摘要:在本文中,我们描述了一种Advanced Kohonen网络,并且使用该类型网络实现了能学习多个物件的快速学习型机器视觉(LCV)。
关键字:Kohonen、神经网络、机器视觉、机器学习
一、引言
众所周知,Kohonen网络作为无监督学习型网络的代表,在数据挖掘等领域已经取得了很大的成就。Kohonen网络的更大优势在于,与反向传播算法等没有仿生学佐证的数学算法不同,在生物学上,Kohonen网络机制已经获得了佐证,因此,Kohonen网络具有很强的仿生特性。但是,由于图像数据的复杂性和Kohonen网络自身学习上的一些缺陷,Kohonen网络目前在机器视觉领域并没有取得很大的成就。
二、Kohonen网络简介
Kohonen网络作为一种竞争机制的无监督学习模型,在很多书籍均有介绍,在此我们只简要地进行介绍,具体请参阅其他书籍
[3]。
Kohonen网络基于Winner-takes-all原则设计,共分两层:一层为输入神经元,另一层就是竞争神经元。
Kohonen网络的主要原理是通过计算误差e=∑(d[i]-w[i]),将误差最小的神经元作为获胜神经元,对其半径r内的神经元用w=w+a*(d-w)更新权值。所以Kohonen网络中的连接权值记录的不是连接强度,而是物体特征。
三、Advanced Kohonen设计
为了实现NS1的机器视觉(NS1的机器视觉的一个重要特点即是,能够自动学习辨认),我们经过反复考虑,Kohonen网络由于其不可比拟的无监督学习,每次学习不需要重构网络等特点受到了青睐。用Kohonen网络实现机器视觉,就不得不考虑Kohonen网络的缺陷。Kohonen网络在实践过程中一个重要缺陷即是,该网络是在没有监督的情况下实现的,虽然能够取得很好的聚类效果,但是作为一个分类器却是不成功的,因为网络中Winner的权值表现的是聚类的特征,而无法提供能和其他物体分离的足够信息。因此,若单纯使用Kohonen网络,是很难实现足够低的误判率的。
为了克服这一缺陷,我们建立了环境模型。建立环境模型的主要指导思想是利用尽量多的环境模型来进行惩罚学习,使得Kohonen网络提供足够的分离裕度。
目前,对于Kohonen的有教师学习
[5]采用的惩罚方法是将权值降低的方法,即将原公式w=w+a*(d-w)中的a取负值的方法。
但是,这种方法在提高分离裕度的同时,也降低了聚类效果,并不算是一种实用的方法。为此,我们在Advanced Kohonen网络中采用了所谓的诱导惩罚(attractive-correct)方法。该方法的思想是,将环境模型映射到其他的神经元上,而使得物件的获胜神经元与环境模型的获胜神经元相区别,大大降低了误判率。
我们的研究还表明,在人类学习的过程中,也常常有类似的方法。在我们对人类的实验中,往往告诉被实验者某物体是什么的记忆效果要比告诉其某物体不是什么的记忆效果好。
但是由于采用了诱导惩罚方法后,会将一部分神经元用于环境模型的映射,所以神经元数量并不能表示最大学习物件数量。在实践过程中,我们建立的20*20 Advanced Kohonen网络能够学习20~80个左右的物件(当然,这一结果的得出也和后面所讲的内容有关)如果学习物件继续增多,误判率会大大提高。因此,如果要达到实用效果,含有>400个神经元的网络是必要的,但是由于计算机运算速度的限制,每增加一倍的神经元,运算代价也要增加一倍,是很不划算的。
与普通神经网络(即采用反向传播算法训练的N层前馈型网络)不同,Advanced Kohonen网络实现LCV不需要每次使用所有训练数据进行重新训练,只需要使用需要学习的物件和环境数据进行混合训练即可,达到了所谓的增量学习(Add-Learn)的要求。这样,Kohonen网络在时间上能够达到快速的要求。
而普通神经网络一旦建立后,学习的时候,需要将所有训练数据一起训练,否则网络会出现奇怪的权值变异,使得对以前学习过的物件认知性能下降。所以,普通神经网络学习的物件数量越多,学习速度就越慢,网络收敛需要经历的学习纪元(学习重复次数)就越多。
对比下来,很容易就发现了Kohonen网络也存在权值变异现象,而且似乎更危险。一个极端的例子是,如果新加入物件的获胜神经元恰巧就是以前学习过的物件的获胜神经元,就会出现一种遗忘现象,学习结束后,网络将忘记以前学习过的物件。为了克服这一缺点,在Advanced Kohonen网络中,我们将学习过的物件的获胜神经元设置为不可用,即,学习的时候,这些神经元都不允许激活(神经元假死)保证了记忆不损失,这也是造成含有400个神经元的Advanced Kohonen网络学习物件数量如此少的原因。
但普通神经网络是不能用这一方法实现增量学习的。普通神经网络如果要采用使神经元假死法,就不能使输出神经元或者输入神经元假死,因为一旦这两类神经元假死后,就根本无法进行反向传播学习,因此,只能使得隐层神经元假死。但隐层神经元假死后,反向传播算法无法使用该神经元继续进行误差传播,间接减少了修正的连接数量,提高了误判率,而且由于隐层神经元和网络的泛化性能息息相关,由于对网络泛化性能了解有限,还无法预测隐层神经元数量的不断减少对降低泛化性能的具体影响。但是可以预见的是,一个隐层神经元的死亡会改变整个网络的结构,导致网络的活性受到影响。而且更重要的是,无法判断在增量学习中应该让哪些隐层神经元死亡,因为无法得知哪些隐层神经元对于辨认那些学习过的物件是有贡献的。
综上所述,普通神经网络是很难实现增量学习的。但是对于Advanced Kohonen网络来说,由于采用了神经元假死法,所以是很容易实现快速的增量学习功能,而且不影响网络的泛化性能。
三、实践
下面是使用Advanced Kohonen网络实现LCV的介绍。
对于网络结构的设计如下:
我们采用48*48的灰度图像输入作为网络的输入神经元。Kohonen神经元网络设计为二维网络,大小为20*20,共有400个神经元。
在环境模型方面,我们随机选取了30幅图像作为环境模型输入。
每次物件的训练我们都只选取16~32个输入样本进行训练,经过100次纪元的训练后,马上进行环境模型的训练,进行50个纪元后,一次增量学习就完毕了,大致耗时为40多s。
刚刚训练的Advanced Kohonen网络辨识效果并不见得很好,但是随着训练的次数增多Advanced Kohonen网络能够提供比较好的辨识结果。
如图是Advanced Kohonen网络学习后的一些演示结果:
![](http://www.aivisoft.net/documents/ak.files/image001.png)
![](http://www.aivisoft.net/documents/ak.files/image003.png)
![](http://www.aivisoft.net/documents/ak.files/image005.png)
对于区别不大的手和拳头,Advanced Kohonen网络依然提供了可以辨识的结果,这是相当令人满意的。更可喜的是,这仅仅是在训练了几分钟后得到的结果。
四、结论
通过实验,我们认为,Advanced Kohonen网络比通常使用误差传播算法学习的前馈网络具有更好的适应性和学习能力,作为一种多元分类学习网络,Advanced Kohonen网络具有广泛应用的能力。
参考文献:
[1] J.P.Marques de Sa 《模式识别——原理、方法及应用》
[2] Milan Sonka, Vaclav Hlavac and Roger Boyle 《图像处理、分析与机器视觉》
[3] George F. Luger 《人工智能——复杂问题求解的结构和策略(第四版)》
[4] Sergios Theodoridis and Konstantinos Koutroumbas《模式识别(第二版)》
[5] 史忠植 《知识发现》