神经网络和图像分类
Neural network and image classification
我建立了一个实验性神经网络 - 它的想法是它可以查看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 得到了一些有趣的结果,但它对图像处理并不是那么有用。
- 我的神经网络不起作用 [XOR 问题]
- 神经网络不学习.卡在50%
- OpenCV 3 中的神经网络权重
- 用 Python 训练神经网络并在 C++ 中部署
- 部署在张量流中训练的神经网络来火炬C++的最佳方法是什么?
- 我不确定如何引用此神经网络训练方法中的权重
- 如何在不同的平台/技术中使用经过训练的神经网络?
- 为什么我的神经网络停滞在一定的成本附近?
- 具有静态 std::array 的神经网络比使用动态 C 数组的神经网络慢
- 为什么小型和大型加载的神经网络占用相同数量的 RAM?
- 一维阵列的运动检测(神经网络或其他选项?
- 神经网络和图像分类
- 使用在R中训练的神经网络来预测C 中的新数据
- 神经网络高估了手写数字的输出
- 如何将可重读的神经网络导出到C 中的文件
- 使用OpenCV在Android上使用神经网络进行灰度图像分类
- 我的分类神经网络有逻辑问题
- 从XOR神经网络到图像识别
- 神经网络图像分类,最有效的解决方案/建议
- 我如何更新这个神经网络来使用图像像素数据