如何使用多层感知器并根据偏斜分布的特征进行预测

2024-09-27 00:22:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我对深度学习和Keras还比较陌生,这个问题困扰了我好几个星期。希望我能从这里得到一些提示。在

特点

我模拟了两个变量,每个变量有10k个样本,并且遵循标准正态分布:A ~ Norm(0, 1)B ~ Norm(0, 1)。在

标签

我从模拟变量中派生出两个标签:y1 = A * By2 = A / B。在

型号

输入尺寸:2

隐层:4个致密层,均为32个神经元宽

输出层:由1个神经元组成的致密层

激活函数:ReLU用于所有激活函数

编译器:'MSE'作为损失函数,'Adam'作为优化器,学习速率为1e-05

任务

最后,我设置了三个任务供MLP学习:
(1) 使用A,B预测y1;
(2) 使用A、B预测y2;
(3) 用A,1/B预测y2

验证

使用'validation_split = 0.2'验证模型

结果和推断

在任务1中,经过10~15个周期的训练和验证集,可以很容易地达到MSE以下。但是,我在其他两个任务中的训练损失总是很高的,比如30k+。在

[更新]我还使用Pearson相关系数对结果进行了评估,对于任务1,返回~0.7,对于任务2和3,返回<;0.01。在

这对我来说很奇怪,因为乘法(y1)和除法(y2)在数学上是相同的。所以我试着研究1/B的分布,我发现它每边都有非常长的尾巴。我很惊讶这可能是困难的根源,但却找不到任何应对策略。我也试着在训练前使1/B正常化,但没有成功。在

欢迎任何建议或意见。在网上或书籍上都找不到关于这方面的讨论,真的想在这方面取得一些进展。非常感谢。在


Tags: 函数norm标准尺寸标签keras样本损失
1条回答
网友
1楼 · 发布于 2024-09-27 00:22:08

y2值的分布与y1值有很大的不同,特别是,它的绝对值要大得多。这意味着直接比较损失是不公平的。在

这有点像估算一个人的质量和估算一个星球的质量,然后为自己减掉了数百万磅而心烦意乱。在

为了举例说明,请尝试计算这三个问题的损失,但使用的估计量永远只能猜测0.0。我怀疑问题1的损失比另外两个要低得多。在

相关问题 更多 >

    热门问题