我对深度学习和Keras还比较陌生,这个问题困扰了我好几个星期。希望我能从这里得到一些提示。在
特点:
我模拟了两个变量,每个变量有10k个样本,并且遵循标准正态分布:A ~ Norm(0, 1)
;B ~ Norm(0, 1)
。在
标签
我从模拟变量中派生出两个标签:y1 = A * B
;y2 = 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正常化,但没有成功。在
欢迎任何建议或意见。在网上或书籍上都找不到关于这方面的讨论,真的想在这方面取得一些进展。非常感谢。在
y2值的分布与y1值有很大的不同,特别是,它的绝对值要大得多。这意味着直接比较损失是不公平的。在
这有点像估算一个人的质量和估算一个星球的质量,然后为自己减掉了数百万磅而心烦意乱。在
为了举例说明,请尝试计算这三个问题的损失,但使用的估计量永远只能猜测0.0。我怀疑问题1的损失比另外两个要低得多。在
相关问题 更多 >
编程相关推荐