我正在尝试使用神经网络来学习以下功能。


我总共有25个特点和19个产出。上面的图像显示了两个特征相对于其中一个输出的分布情况。该神经网络包含7个层,256个神经元具有漏神经网络的激活。最后一层是线性层。问题是输出太陡,而神经网络在峰值上有很大的误差。如何修改目标变量或神经网络,使其在峰值上产生一个较小的平均绝对误差(基本上使下面的误差图变平)?下面是错误图

我试过但没用的东西-
发布于 2022-09-28 14:56:49
问题不在于损失函数是陡峭的,而是它不是凸/可微/存在局部极小。读这个回答。
发布于 2022-09-26 02:32:35
我对你的问题的理解是,你有一个多元回归问题(例如,19个不同的目标变量)。如果这是一个多元回归问题,并且您有特定的模型性能接受标准,那么定义自定义丢失函数可能是有用的。自定义损失函数应该比“非峰值”错误预测更多地惩罚“峰值”错误预测。继续调整自定义损失函数中“峰值”错误预测的权重,直到模型符合您所希望的那样为止。
发布于 2022-10-01 14:39:43
你的问题就像解决证券交易所的一些给定价值的问题一样。把它当作一个时间序列问题,当你的图的曲线根据某个低峰值和高峰值变化时,取“平均绝对误差或均方误差”。同时,将ReLU作为一个非线性函数,增加一个惩罚项(L1-正则化项).这里要注意的一点是,你的函数是一个非凸函数,用于解决这类问题,增加了你的神经网络的宽度,但是深度应该很低,我的意思是,采取8到12层的神经网络,在每层中有16到32个神经元,并且在每3层之后给出一个剩余的连接,除了最后一层。尝试所有这些步骤,我希望模型将学习这个小数据点的行为。
https://datascience.stackexchange.com/questions/114620
复制相似问题