神经网络和图像分类

Neural network and image classification

本文关键字:图像分类 神经网络      更新时间:2023-10-16

我建立了一个实验性神经网络 - 它的想法是它可以查看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 - 尽管在任何给定时间,公共存储库中的内容可能与我在机器上使用的内容不完全一样。

FWIW - 实际问题是因为注释中所述代码中的符号错误 - 所以两层相互争斗,正如你所料,向中间收敛。

但。。。我的代码基于1990年代的一本书 - 经常被引用的"C++实用神经网络食谱"。这本书本身并没有错(尽管C++反映了当时的编码风格,并且没有使用STL类等),但它也确实来自一个神经网络不像今天那样被很好地理解/设计的时代,因此基本设计存在很大缺陷。

我现在正在考虑如何最好地实现多层卷积网络 - 书中根本没有讨论过(事实上,它驳斥了许多分层网络依赖于单个隐藏层 NN 是一般逼近器的事实)。

我用单隐藏层 NN 得到了一些有趣的结果,但它对图像处理并不是那么有用。