首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何利用神经网络学习陡峭函数?

如何利用神经网络学习陡峭函数?
EN

Data Science用户
提问于 2022-09-22 17:12:06
回答 3查看 110关注 0票数 1

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

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

我试过但没用的东西-

  1. 使用日志转换目标变量。
  2. 增加神经网络的规模,希望一个足够大的神经网络能够适应任何情况,但训练损失仍然很大。
  3. 使用平均绝对,均方和百分比损失,我在这里问了同样的问题,https://stats.stackexchange.com/questions/589724/how-to-learn-steep-functions-using-neural-network,但也希望得到这个社区的意见。
EN

回答 3

Data Science用户

发布于 2022-09-28 14:56:49

问题不在于损失函数是陡峭的,而是它不是凸/可微/存在局部极小。读这个回答

票数 1
EN

Data Science用户

发布于 2022-09-26 02:32:35

我对你的问题的理解是,你有一个多元回归问题(例如,19个不同的目标变量)。如果这是一个多元回归问题,并且您有特定的模型性能接受标准,那么定义自定义丢失函数可能是有用的。自定义损失函数应该比“非峰值”错误预测更多地惩罚“峰值”错误预测。继续调整自定义损失函数中“峰值”错误预测的权重,直到模型符合您所希望的那样为止。

票数 0
EN

Data Science用户

发布于 2022-10-01 14:39:43

你的问题就像解决证券交易所的一些给定价值的问题一样。把它当作一个时间序列问题,当你的图的曲线根据某个低峰值和高峰值变化时,取“平均绝对误差或均方误差”。同时,将ReLU作为一个非线性函数,增加一个惩罚项(L1-正则化项).这里要注意的一点是,你的函数是一个非凸函数,用于解决这类问题,增加了你的神经网络的宽度,但是深度应该很低,我的意思是,采取8到12层的神经网络,在每层中有16到32个神经元,并且在每3层之后给出一个剩余的连接,除了最后一层。尝试所有这些步骤,我希望模型将学习这个小数据点的行为。

票数 0
EN
页面原文内容由Data Science提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://datascience.stackexchange.com/questions/114620

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档