噪声的作用是引入一些随机性,使模型更具挑战性和泛化能力。具体来说,生成噪声的步骤如下:
y_ = [[x1 + x2 + (rdm.rand() / 10.0 - 0.05)] for (x1, x2) in x]
这里 rdm.rand()
生成在 [0, 1) 范围内的随机数,然后除以 10.0 并减去 0.05,从而得到一个均匀分布在 [-0.05, 0.05) 范围内的噪声。这个噪声被加到模型的目标值 y_
中。
在损失函数的计算中,使用了 tf.where
函数,根据模型预测的结果和真实值之间的关系,对损失进行不同的计算。具体来说,如果模型预测的值大于真实值,则采用 (y - y_) * COST
的损失计算,其中 COST
是成本;如果模型预测的值小于真实值,则采用 (y_ - y) * PROFIT
的损失计算,其中 PROFIT
是利润。
这样设计的目的是在训练模型时,让模型更倾向于使预测值偏大,因为利润更高。通过引入噪声和自定义损失函数,模型被要求在考虑成本和利润的情况下做出预测,从而更贴近实际业务场景。