2012-03-15 78 views
1

我工作的一个assignement:我在Matlab单字识别竞争神经网络

建立一个字母识别脚本

我提取44个功能从我在输入已经字母(26个不同的字母),我希望使用竞争神经网络

我有一个44x26功能矩阵每一个字母一行,我试图建立一个网络,可以分类在26个不同类的字母,没有成功:(

每个字母的功能都不同于其他功能,所以我认为te的训练参数有些问题

这里的网络训练代码:

epochs = 1500; 
kohonen_weights_learning_rate = 0.02; 
conscience_bias_learning_rate = 0.001; 

net = competlayer(26, kohonen_weights_learning_rate, conscience_bias_learning_rate); 
net.trainParam.epochs = epochs; 
net = train(net, Features); 
outputs = net(Features); 
classes = vec2ind(outputs); 

的问题是,“类”不包含26个不同的类别,但通常是一个或两个重复的类

我怎么可能把我的为了使它符合26个班级的网络?

回答

1

会发生什么情况是,训练后的网络对于给定数据集(特征)区分的类比指定数量的类少。它只是说你训练不成功。

该代码是正确的。

您应该尝试玩参数和时代,直到网络根据您的喜好进行训练。

最后,如果您无法实现培训正确识别类的网络,则应考虑查看如何提取功能。

+0

也许我使用错误的方式来提取字符特征。提取它的常用方法是什么? – ZioBafio 2012-03-16 18:45:01

+0

这是一个不同的问题。通常,在NN中,字符图像作为数组馈送到神经网络中。我会建议看看级联神经网络,但我认为这对于您的应用程序了解此事有点矫枉过正。 – 2012-03-16 22:38:56