Nlp 用于OCR的多层感知器

Nlp 用于OCR的多层感知器,nlp,ocr,backpropagation,neural-network,Nlp,Ocr,Backpropagation,Neural Network,我打算使用经过反向传播训练的多层感知器网络(一个隐藏层,输入作为8x8位矩阵,包含图像中的黑白像素)。出现以下问题: 我应该使用哪种学习方式:批量学习还是在线学习 如何估计隐藏层中正确的节点数?我打算处理英文字母表中的26个字母 我如何停止培训过程,以避免过度装配 (不太相关)是否还有比MLP更好的NN prved?我知道MLP在局部极小值、过度拟合等方面有问题,所以有更好的(基于软计算的)方法吗 谢谢这些问题中的大多数都是您需要尝试不同选项以了解哪些方法最有效的问题。这就是人工神经网络的问题所

我打算使用经过反向传播训练的多层感知器网络(一个隐藏层,输入作为8x8位矩阵,包含图像中的黑白像素)。出现以下问题:

  • 我应该使用哪种学习方式:批量学习还是在线学习
  • 如何估计隐藏层中正确的节点数?我打算处理英文字母表中的26个字母
  • 我如何停止培训过程,以避免过度装配
  • (不太相关)是否还有比MLP更好的NN prved?我知道MLP在局部极小值、过度拟合等方面有问题,所以有更好的(基于软计算的)方法吗

  • 谢谢

    这些问题中的大多数都是您需要尝试不同选项以了解哪些方法最有效的问题。这就是人工神经网络的问题所在。几乎任何事情都没有“最佳”方法。你需要找出什么能解决你的具体问题。不过,我会就你的问题提出我的建议

    1) 我更喜欢渐进式学习。我认为在每个模式之后更新网络权重是很重要的

    2) 这是一个棘手的问题。这实际上取决于网络的复杂性。有多少个输入节点、输出节点和训练模式。对于您的问题,我可能从100开始,尝试从100开始上下移动,看看是否有改进

    3) 我通常在每个历元之后计算网络应用于测试集(而不是训练集)时的总误差。如果错误增加了大约5个时代,我将停止训练,然后使用增加之前创建的网络。在决定停止训练时,不要使用训练集的错误,这一点很重要。这将导致过度装配


    4) 如果将输出表示为26个节点,每个节点表示字母表中的一个字母,则也可以尝试使用概率神经网络。这种网络结构适用于分类问题。同样,尝试几种不同的体系结构,看看哪种体系结构最适合您的问题,这可能是一个好主意。

    关于第3个问题,找出ANN何时开始过度拟合的一种方法是通过绘制训练数据和测试数据的网络精度与执行的历次次数的关系图。在某个时刻,随着训练精度的不断提高(趋于100%),您的测试精度可能会开始实际降低,因为ANN与训练数据过度拟合。看看什么时代开始发生,确保不要训练超过那个时代

    如果你的数据是非常规则和一致的,那么它可能不会过度拟合,直到游戏很晚,或者根本不会。如果你的数据是高度不规则的,那么你的ANN将很早就开始过度拟合

    此外,测试数据的规律性的一种方法是执行以下操作