有可能在看不见的数据(与输入数据不同的数据)上使用损失函数来训练神经网络吗



通常,损失函数可以定义为L(y_hat,y(或L(f(X(,y(,其中f是神经网络,X是输入数据,y是目标。是否可以实现(最好在PyTorch中(一个损失函数,该函数不仅取决于输入数据X,还取决于X'(X!=X(?

例如,假设我有一个神经网络f,输入数据(X,y(和X'。我可以构造一个损失函数,使

  1. f(X(尽可能接近y,并且
  2. f(X'(>f(X(

第一部分可以很容易地实现(PyTorch:nn.MSELoss(((,第二部分似乎更难实现。

p.S:这个问题是多元回归的一个重新表述,同时使用神经网络避免线交叉,这是封闭的。在原始数据中,可以获得输入数据和带有理论示例的照片。

是的,这是可能的。例如,您可以使用ReLU添加损失项,如下所示:

loss = nn.MSELoss()(f(X),y) + lambd * nn.ReLU()(f(X)-f(X'))

其中CCD_ 1是超参数。注意,这对应于f(X') >= f(X),但通过在ReLU内添加epsilon<0(绝对值足够小(常数,可以很容易地将其修改为f(X') > f(X)

最新更新