如何解决是否可以使用损失函数对看不见的数据与输入数据不同的数据训练神经网络?
通常,损失函数可以定义为 L(y_hat,y)或L(f(X),y),其中f是神经网络,X是输入数据,y是目标。 是否有可能实现(最好在PyTorch中)不仅依赖于输入数据X,还依赖于X'(X!= X)的损失函数?
例如,假设我有一个神经网络f,输入数据(X,y)和X'。我可以构造这样的损失函数吗?
- f(X)尽可能接近y,并且
- f(X')> f(X)?
第一部分易于实现(PyTorch:nn.MSELoss()),第二部分似乎更难。
P.S:这个问题是Multiple regression while avoiding line intersections using neural nets的重新表述,已被关闭。在原始数据中,提供了输入数据和带有理论示例的照片。
解决方法
是的,有可能。 例如,您可以使用ReLU添加损失项,如下所示:
loss = nn.MSELoss()(f(X),y) + lambd * nn.ReLU()(f(X)-f(X'))
其中lambd
是超参数。
请注意,这对应于f(X') >= f(X)
,但是可以通过在ReLU内添加一个f(X') > f(X)
(绝对值足够小)常量来轻松修改为epsilon<0
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。