我正在尝试实现自编写的损失函数。我的管道如下
x - > {常量计算} = x_feature - > 机器学习培训 - > y_feature - > {constant computation} = y_produced
这些“常数计算”对于显示所需o / p与产生的o / p之间的差异是必要的。
因此,如果我采用y_produced和y_original的L2范数,我应该如何将这种损失纳入原始损失中。
请注意,y_produced
的尺寸与y_feature
不同。
答案 0 :(得分:0)
只要您使用可区分操作,"常量转换"之间没有区别。和#34;可学习的"。没有这样的区别,甚至看看神经网络的线性层
f(x) = sigmoid( W * x + b )
它是不变的还是可学的? W和B都经过培训,但是" sigmoid"不是,但梯度以相同的方式流动,无论某事物是否是变量。特别是梯度wrt。对于
,x是相同的g(x) = sigmoid( A * x + c )
其中A和c是常数。
您将遇到的唯一问题是使用不可微分的操作,例如:argmax,排序,索引,采样等。这些操作没有明确定义的渐变,因此您无法直接使用它们的第一个订单优化器。只要您坚持使用可区分的问题 - 所描述的问题并不存在 - 并且"恒定的变换"和任何其他变换 - 无论大小的变化等。