Neural network 试图在图像中找到目标坐标(x,y),我的神经网络似乎在无需学习的情况下优化了误差

Neural network 试图在图像中找到目标坐标(x,y),我的神经网络似乎在无需学习的情况下优化了误差,neural-network,coordinates,detection,lasagne,Neural Network,Coordinates,Detection,Lasagne,我生成一枚硬币的图像,粘贴在大小为200x200的白色背景上。硬币从8张欧元硬币图像中随机选择(每枚硬币一张),并具有: 随机旋转 随机大小(固定边界之间) 随机位置(以便硬币不会被裁剪) 以下是两个示例(添加了中心标记): 我正在使用Python+千层面。我将彩色图像输入到神经网络中,神经网络的输出层由两个完全连接的线性神经元组成,一个用于x,一个用于y。 与生成的硬币图像相关联的目标是硬币中心的坐标(x,y) 我试过(从): 具有不同层数和单元数的密集层结构(最大500) 卷积结构(输

我生成一枚硬币的图像,粘贴在大小为200x200的白色背景上。硬币从8张欧元硬币图像中随机选择(每枚硬币一张),并具有:

  • 随机旋转
  • 随机大小(固定边界之间)
  • 随机位置(以便硬币不会被裁剪)
以下是两个示例(添加了中心标记):

我正在使用Python+千层面。我将彩色图像输入到神经网络中,神经网络的输出层由两个完全连接的线性神经元组成,一个用于x,一个用于y。 与生成的硬币图像相关联的目标是硬币中心的坐标(x,y)

我试过(从):

  • 具有不同层数和单元数的密集层结构(最大500)
  • 卷积结构(输出前有2个密集层)
  • 作为损失函数的平方差之和或平均值(MSE)
  • 原始范围内的目标坐标[0199]或标准化的[0,1]
  • 层之间的退出层,退出概率为0.2
我总是使用简单的SGD,调整学习率,试图有一个很好的减少误差曲线

我发现,当我训练网络时,误差会减小,直到输出总是图像的中心。看起来输出与输入无关网络输出似乎是我给出的目标的平均值。由于硬币的位置均匀分布在图像上,因此这种行为看起来像是误差的简单最小化。这不是被通缉的行为

我感觉网络不是在学习,而是在尝试优化输出坐标,以最小化对目标的平均误差。我说得对吗?如何防止这种情况发生?我试图消除输出神经元的偏差,因为我认为可能我只是在修改偏差,而所有其他参数都设置为零,但这不起作用

单靠神经网络是否可以很好地完成这项任务? 我曾读到,人们还可以训练一个网络进行当前/不当前的二元分类,然后扫描图像以找到物体的可能位置。但我只是想知道,仅仅使用神经网络的正向计算是否可行。

问题:如何防止这种[在不提高考试分数的情况下过度拟合]? 需要做的是重新构建你的神经网络。神经网络不能很好地预测X和Y坐标。它可以通过创建一个热图来显示它在哪里检测到一枚硬币,或者换一种方式,你可以让它把你的彩色图片变成一个“硬币在这里”的概率图

为什么??神经元有很好的能力用来测量概率,而不是坐标。神经网络并不是他们销售的神奇机器,而是真正遵循他们的架构所制定的程序。你必须设计一个非常奇特的架构,让神经网络首先创建硬币所在位置的内部空间表示,然后是其重心的另一个内部表示,然后是另一个使用重心和原始图像大小以某种方式学习缩放X坐标,然后对Y重复整个过程

更简单、更容易的是,创建一个硬币检测器卷积,将彩色图像转换为概率-硬币-此处矩阵的黑白图像。然后将该输出用于自定义手写代码,将概率矩阵转换为X/Y坐标

问题:单靠神经网络是否可以很好地完成这项任务?
一个响亮的是的,只要你设置了正确的神经网络架构(如上所述),但是如果你将任务分成几个步骤,只将神经网络应用于硬币检测步骤,可能会更容易实施,训练速度更快。

你解决过这个问题吗?我停止了神经网络实验,但没有解决它。然而,我仍然对一个答案感兴趣。你们如何训练你们的“一个卷积,将你们的彩色图像转换成硬币概率矩阵的黑白图像”?您是否将其作为原始输入提交,并提交一个相同尺寸的黑白图像,其中除原始图像中硬币的位置外,所有东西都是黑色的?如果我们可以使用您的(更简单的实现)方法实现硬币的检测/定位,那么使用RCNN/FRCNN/YLO有什么好处?@Jivan回答您的第一个问题,把彩色图像训练成概率图像,看一下分割。这是一个我制作的用于广义分割的示例视频,但是你可以制作一个专门用于硬币的视频来代替广义分割。对于第二个问题,不幸的是,我不知道所有这些技术的任何研究,也没有做过任何研究。我最好的猜测是,一个专门用于特定任务的模型可能会比一个更通用的模型表现得更好。YOLO是一个解决一般问题的方法,它不利用硬币位置检测的特定属性。毫无疑问,尤罗可能会做得很好。我不是说我的解决方案会比YOLO更好,而是说它只是众多解决方案中的一个。