机器学习和 stackoverflow 新手。
最近,我一直在尝试创建一种机器学习算法,根据物体的反射来估计光源的方向。 我知道这可能是一个复杂的主题,这就是为什么作为第一步,我尝试尽可能简化它。
我首先将问题从回归问题更改为分类问题,仅将以下输出作为输出:光源位于对象的左侧或光源位于对象的右侧。 我也只为我的数据集改变一个角度。
我的问题的简短版本:
- 您认为机器学习可以做到这样的事情吗? (我的经验太有限,无法真正确定)
- 如果是,哪种神经网络更适合您?美国有线电视新闻网? R-CNN?长短期内存网络?支持向量机?
- 完成此任务的流程是什么?
我目前正在使用带有定向光的 Unity 引擎,它采用 [10,60]/[120,170] 之间的随机 X 角度和具有金属反射的球体来创建和标记数据集。这是一个例子:
https://imgur.com/a/FxNew Label : 0 (Left side)
https://imgur.com/a/9KFhi Label : 1 (Right side)
对于预处理:
- 图像大小已调整为 64x64 图像
- 从 RGB 格式转换为灰度格式。
对于机器学习,我目前正在使用 tensorflow 和卷积神经网络:
10000 个 64x64 灰度图片的平衡、标记数据作为输入,0/1 作为标签
3 个卷积层,带有过滤器 [16,32,64],大小为 [5,5] RELU
3 个池化层,大小为 [2,2],步长为 [2,2]
1 个密集层,包含 1024 个隐藏神经元和 dropout(Rate = 0.4)RELU
1 个密集层,带有 2 个输出神经元(每个类别 1 个)Softmax
至于问题:我的网络根本没有学习,损失几乎没有下降,并且准确性表明好的结果是随机的,无论数据、层数、优化器、学习率......我的输出只是平均两个类:[0.5,0.5]。
我的猜测是,问题比我最初想象的更复杂,我的数据没有很好地提示我的预测应该是什么,我应该训练一个网络来检测物体上的反射点,然后使用对象中心和点之间的方向。我说得对吗?
另一个猜测是,卷积层没有考虑位置,因此对于卷积部分,所有图像都是相同的,因为球体以及照明图案始终相同。它始终会检测到相同的事物,并且不会考虑光区域已移动。您对我可以使用哪个网络来解决此问题有什么建议吗?
我真的在寻找一些建议,警告如何解决此类任务。 请记住,我对机器学习仍然很陌生,而且仍然比我的机器学到更多,呵呵......
谢谢。
最佳答案
Do you think that it is possible to do such thing with machine learning ?
绝对是的。您已经正确选择了 CNN 模型 - 它最适合此任务。
My guess is that the problem is more complicated than i first thought, that my data doesn't give a good hint of what my prediction should be and that I should rather train a network that detects the reflection dot on an object and then use the orientation between the center of object and the dot. Am I right ?
不,CNN 已被证明可以很好地根据原始像素进行分类。它应该弄清楚自己要注意什么。
Do you have any advice on which network I could use to resolve this issue ?
如果您提供完整的代码,我将非常高兴。不学习的原因有很多:图像预处理错误、数据错误标记、超参数选择不当(学习率、初始化等)、错误的损失函数等。可能只是错误>.
根据所描述的 CNN 架构,我立即建议:
5x5
过滤器尺寸可能太大,因为您没有那么多过滤器。尝试3x3
并稍微增加过滤器的数量,例如32 - 64 - 64
。- 我假设您使用
CONV - POLL - CONV - POLL - CONV - POOL
,而不是CONV - CONV - CONV - POOL - POOL - POLL
。只是为了确定一下。 - 您的 FC 层中可能不需要那么多神经元。您只有两个类和非常相似的图像!将
1024
减少为256
。 - 目前您没有遇到任何过度拟合,因此请暂时禁用 dropout:
keep_probability=1.0
。 - 注意初始化和学习率。尝试对数刻度的不同值,例如
learning_rate = 0.1, 0.01, 0.001
并检查学习模式是否发生变化。
关于machine-learning - 机器学习从图片中估计照明方向?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46679514/