【发布时间】:2017-12-21 02:04:50
【问题描述】:
我已经建立了一个实验性神经网络 - 其想法是它可以查看 JPEG 图像并识别图像的哪些部分是乐谱。
为了训练网络,我使用了各种页面图像,这些图像被切成 100 x 100 的盒子,它们的值可以是 1.0(即包含符号)或 0.0(不包含符号)。
不过,在训练网络时,它似乎已经修复了它自己 - 或多或少 - 每次提供 0.5 的结果(给出 0.25 的平方误差)。 sigmoid(逻辑)函数用于激活。
该网络有 10,000 个输入神经元(对于 100 x 100 图像的每个像素),2000 个隐藏神经元(每个输入都连接到“行”和“列”隐藏神经元)。
只有一个输出神经元。
使用两个输出神经元会得到更好的结果吗? (即一个激活“是音乐”,一个激活“不是音乐”)。
(您可以在此处查看 C++ 源代码:https://github.com/mcmenaminadrian/musonet - 尽管在任何给定时间,公共存储库中的内容可能与我在机器上使用的不完全相同。)
【问题讨论】:
-
aargh - 可能只是代码中缺少减号的问题 - 这意味着对隐藏层的更正正在通过对输出层的错误更正进行斗争。现在就检查一下。
-
我对这个话题了解不多,但我会选择一个输出神经元。如果它的输出低于某个阈值,则包含“音乐”,如果高于另一个阈值,则不是“音乐”。
标签: c++ image-processing neural-network