【发布时间】:2020-07-26 20:24:16
【问题描述】:
是否可以在深度网络的不同“段”上定义不同的损失函数(在以下意义上):
假设我有一些输入-输出对 (x_n,y_n) 和 (x_n,z_n),我想训练一个来自 f_k∘...∘f_1 的深度网络(每个 f_i 都是一个前馈层) 这样
- MSE(f_k∘...∘f_1(x_n) - y_n) 被最小化
- MSE(f_k∘f_k-1(x_n) - z_n) 也被最小化。
类比/例子/直觉/动机:
假设我希望我的网络输出大约像 x^2 然后 f_k∘f_k-1(x_n)~~ x_n^2 和 z_n:= x_n^2。然后 f_k∘...∘f_1(x_n) 一个前馈网络,其输出层近似为函数 x^2。
如何在 TensorFlow/Keras 中做到这一点?
【问题讨论】:
-
with f_n∘f_n-1(x_n) 是指网络的输出/最终预测吗?
-
@MarcoCerliani 没错。我添加了一个示例来帮助阐明我的最终目标
-
_nforx_n, y_n, z_n是否代表样本索引?还有_nforf_n代表层号?如果是这样使用相同的字母有点混乱。 -
@KotaMori 好点,我修改了符号以使其更清晰,但是你是对的。
-
如果你对两个输出使用相同的损失函数 (MSE),你不需要做任何事情。如果您有兴趣,您只能定义 2 输出的 loss_weight
标签: tensorflow optimization keras neural-network generative-adversarial-network