为啥神经网络倾向于输出“平均值”?

Posted

技术标签:

【中文标题】为啥神经网络倾向于输出“平均值”?【英文标题】:Why neural network tends to output 'mean value'?为什么神经网络倾向于输出“平均值”? 【发布时间】:2017-02-13 06:53:18 【问题描述】:

我正在使用 keras 为回归任务构建一个简单的神经网络。 但输出总是倾向于地面实况 y 数据的“平均值”。 见第一张图,蓝色是ground truth,红色是预测值(非常接近ground truth的常数均值)。

即使我设置了一个学习时期=100,模型也很早就停止了学习。

有人知道神经网络在什么情况下会提前停止学习,以及为什么回归输出趋向于基本事实的“均值”?

谢谢!

【问题讨论】:

该图是否显示了您的全部数据,意味着您只有一个特征?看起来很难从中学到任何东西。 数据有7个特征,1个输出y。该图显示了预测值与基本事实。谢谢。 【参考方案1】:

可能是因为数据不可预测......?您确定数据集具有某种 N 阶可预测性吗?

只是观察你的数据集,它缺乏周期性,缺乏同方差性,它没有任何斜率或偏斜或趋势或模式......我真的无法判断你的“网络”是否有任何问题。在没有任何模式的情况下,均值始终是最好的预测……而且完全有可能(尽管不确定)神经网络正在发挥作用。

我建议你找一个更简单的数据集,看看你能不能先解决这个问题。

【讨论】:

你是对的。数据集确实有一些问题,之后我测试了一个不同的数据集并将迭代次数增加到 5000。然后预测更有意义。谢谢大家!【参考方案2】:

模型没有从数据中学习。想想一个基本的线性回归——“空”预测,如果你根本没有任何预测变量的预测,只是预期值;即平均值。它可能是由许多不同的问题引起的,但我想到了初始化——糟糕的初始化导致无法学习。 This 博客文章有很好的实用建议,可能会有所帮助。

【讨论】:

是的。平均值是你能做出的最懒惰的猜测,出于某种原因,这就是网络所做的...... 对不起,在这里试试:yyue.blogspot.com/2015/01/…

以上是关于为啥神经网络倾向于输出“平均值”?的主要内容,如果未能解决你的问题,请参考以下文章

关于实体店和互联网创业,你更倾向于那种?

为啥网站倾向于在数据库表上使用随机 id:s?

为啥神经网络输出浮点数而不是整数?

tcpdump

为啥NNtool box中神经网络输出激活函数的建议是纯的?

为啥我的 MLP 神经网络的输出在 0 和 1 之间?