在matlab中使用神经网络进行分类
Posted
技术标签:
【中文标题】在matlab中使用神经网络进行分类【英文标题】:Using neural network for classification in matlab 【发布时间】:2014-07-16 16:40:26 【问题描述】:我正在研究光学字符识别问题。我已经成功提取了一个 [1X32] 矩阵的特征(我从每个分段字符中提取了 32 个特征)。我有完整的训练数据集(每个字符的图像),但我在创建输入和目标数据集矩阵时打破了我的头脑。所以请告诉我这些矩阵、测试数据以及我将从神经网络获得输出的格式。
1)有258个不同的模式(字符),那么,应该有258个类标签吗?
我的输入矩阵大小是行数 = 32(特征)列数 = 258*4=1032(字符数*每个字符的实例数)
2) 我的目标矩阵的大小应该是多少?只需为我的案例绘制一个虚拟目标矩阵。
【问题讨论】:
如果提供的答案有帮助,请在左侧接受。 【参考方案1】:您是否已经检查过 MATLAB 的神经网络工具箱 (http://www.mathworks.co.uk/help/nnet/examples/crab-classification.html?prodcode=NN&language=en) ?在那里您可以找到一些如何使用神经网络的示例。
关于您的两个具体问题:
1) 通常,如果您想区分 N 个不同的字符,您将需要该数量的类标签。因此,在您的情况下,是的,您应该有 258 个类别标签。使用神经网络的分类问题的输出通常是二进制输出,其中一个用于识别的类,0 用于剩余的类。但是,如果您使用 sigmoid 函数作为最后一个激活函数,而输出节点都不是 0 或 1,则可能会发生这种情况,在这种情况下,您可以例如取所有输出节点的最大值,以获得最高或更可能的类对于某个输入。
2) 目标矩阵应该是一个二进制矩阵,其中 1 代表正确的类别,0 代表每个输入的所有其他类别。所以在你的情况下它应该是 258*1032 矩阵。我再次建议您检查上面给出的链接。
祝你好运。
【讨论】:
谢谢....它解决了我的问题,但是我的神经网络的效率很低,它预测错误的输出。您认为提高效率应该集中在哪里? 您的样本似乎太少(每个类 4 个)并且特征可能太多。尝试具有不同特征组合的网络,或任何其他类型的特征选择。如果可能,提供更多样本进行训练 谢谢你,我会尝试你的建议。以上是关于在matlab中使用神经网络进行分类的主要内容,如果未能解决你的问题,请参考以下文章