最近我一直在使用反向传播算法进行字符识别。我拍摄了图像并缩小到5x7尺寸,因此我得到了35个像素并使用具有35个输入神经元,35个隐藏节点和10个输出节点的像素训练网络。我成功地完成了训练,并且得到了我需要的重量。而且我被困在这里。我有我的测试集,我知道我应该推进网络。但我不知道该怎么做。我的测试集将是1个1x35的样本。我的输出层有10个神经元。如何将字符与我将获得的输出完全区分开来?我想知道这个测试是如何工作的。请指导我完成这个阶段。提前谢谢。
答案 0 :(得分:1)
测试这些类型的神经网络的常用方法是“一对一”"做法。我们将每个输出节点视为自己的分类器,它给出了样本是该类而不是该类的概率。
例如,如果您将网络输出[1,0,...,0]网络化,那么第1类很可能是第1类而不是第1类。第2类与第2类的概率较低而不是第2类等等。
在平局的情况下,通常(在研究中)有一个随机函数打破平局。如果你得到[1,1,1,...,1]那么函数会从1-10中选择一个数字,这是你的预测。在实践中,有时使用专家系统来打破关系。也许1级比2级更贵,所以我们优先选择2级。
所以步骤是:
在您的特定情况下,我认为实施此策略将导致网络几乎不会超过随机性能(10%)的准确性。 我建议重新考虑网络架构。
如果您查看5x7图像,可以告诉图像最初的编号是多少?似乎将图像缩小到这个大小会丢失过多的信息,而网络无法区分这些信息。
根据您的描述,我会在调试您的网络时查看以下内容。