【发布时间】:2015-01-29 19:18:49
【问题描述】:
我正在用 C# 实现 Ng 的 OCR 神经网络示例。 我认为我已经正确实现了所有公式 [矢量化版本],并且我的应用正在训练网络。
关于如何查看我的网络在识别方面的改进 - 无需在训练完成后手动绘制示例来测试示例,有什么建议吗?我想在训练期间查看我的训练进展情况。
我已经在绘制的数字上测试了我训练的权重,所有神经元的输出都非常相似(大约 0.077,或类似的东西......在所有神经元上),并且最大值出现在错误的神经元上。所以结果与绘制的图像不匹配。
这是我目前所做的唯一测试:成本函数随时期变化
所以,这就是成本函数(有人称之为目标函数?)在 50 个 epoch 中发生的情况。 我的 Lambda 值设置为 3.0,学习率为 0.01,5000 个示例,我在每个 epoch 之后进行批处理,即在这 5000 个示例之后。激活函数:sigmoid。
输入:400 隐藏:25 输出:10
我不知道 lambda 和学习率的正确值是什么,以便我的网络可以在不过度拟合或欠拟合的情况下进行学习。
有什么建议可以让我的网络学习良好吗?
另外,经过所有这些训练,J 成本函数应该有什么价值? 它应该接近零吗?
我应该有更多的 epoch 吗?
我的例子都是按数字排序的吗?
感谢任何帮助。
【问题讨论】:
标签: c# visual-studio-2013 machine-learning neural-network ocr