如何防止 CNN 中回归问题的收敛到均值解决方案?

Posted

技术标签:

【中文标题】如何防止 CNN 中回归问题的收敛到均值解决方案?【英文标题】:How to prevent converge to mean solution for regression problems in CNN? 【发布时间】:2017-09-06 06:46:55 【问题描述】:

我正在训练一个用于预测手部关节的 CNN。问题是我的网络总是收敛到训练集的平均值,我只能对不同的测试图像得到相同的结果。你知道如何预防吗?

【问题讨论】:

你有没有想过这个问题?我正在处理类似的问题 【参考方案1】:

我想你一定是在使用MSECriterion()?这是标准的l2(最小平方误差)损失。虽然 CNN 试图预测结果,但有多种模式可以使结果正确。 l2 loss 所做的是它收敛到所有这些模式的平均值,因为这是它可以直观地获得更少惩罚结果的最可行的方法。

基于 MSE 的解决方案 由于像素级平均值,显得过于平滑 像素空间中的可能解决方案

要选择最佳答案模式,您可以查看adversarial loss LINK。这种损失会根据它所看到的数据认为是现实的来选择最佳模式。

如需进一步说明,请看本文中的图 3:SRGAN

【讨论】:

【参考方案2】:

我使用的是tensorflow。正在尝试使用简单的 CNN 做一些regression,输出层中有一个神经元。正在优化均方误差:

cost = tf.reduce_mean(tf.abs(y_prediction - y_output_placeholder))
optimizer = tf.train.AdamOptimizer(learning_rate=LEARNING_RATE).minimize(cost)

我的问题是我制作了与网络的输出预测形状不同的真值的输出占位符。

占位符的形状为 [无] 预测的形状是 [None, 1]。

当我改变占位符的形状以匹配预测输出问题之一时解决了。

【讨论】:

以上是关于如何防止 CNN 中回归问题的收敛到均值解决方案?的主要内容,如果未能解决你的问题,请参考以下文章

线性回归上的梯度下降不收敛

如何在线性回归方程中找到结果的平均值

从线性回归到CNN

给定 CNN 的回归激活映射

分类数据和连续数据在逻辑回归中如何设值

CNN计算原理