我打算使用通过反向传播训练的多层感知器网络(一个隐藏层,输入用作包含来自图像的B/W像素的8×8位矩阵).出现以下问题:
我应该使用哪种学习方式:批量还是在线?
我怎样才能估计隐藏层中正确的节点数?我打算处理26个英文字母.
我怎么能停止训练过程,以避免过度拟合?
(不太相关)还有另一个更好的NN被认为比MLP表现更好吗?我知道MLP卡在局部最小值,过度拟合等等,所以有更好的(基于软计算的)方法吗?
谢谢
大多数这些问题都是您需要尝试不同选项以查看效果最佳的问题.这就是人工神经网络的问题.没有"最佳"方式可以做任何事情.您需要找出适合您特定问题的方法.不过,我会就你的问题提出建议.
1)我更喜欢增量学习.我认为在每个模式之后更新网络权重非常重要.
2)这是一个棘手的问题.这实际上取决于您的网络的复杂性.有多少输入节点,输出节点和训练模式.对于你的问题,我可以从100开始,尝试从100上下调整范围,看看是否有改进.
3)我通常在每个纪元后应用于测试集(不是训练集)时计算网络的总误差.如果该错误增加了大约5个时期,我将停止训练,然后使用在增加发生之前创建的网络.在决定停止训练时,不要使用训练集的错误.这将导致过度拟合.
4)如果您将输出表示为26个节点,每个节点代表一个字母表,您也可以尝试使用概率神经网络.这种网络架构有利于分类问题.同样,尝试一些不同的架构来查看最适合您的问题的方案可能是一个好主意.