改进的GAN中的丢失实现

时间:2017-10-17 07:30:29

标签: deep-learning loss-function

最近我正在阅读论文培训GAN的改进技术,作者将损失定义如下: enter image description here 然后我查看文章的代码,相应的损失定义代码是:

web_1  | Started POST "/sessions" for 172.18.0.1 at 2017-10-17 07:02:19+0000
web_1  | Processing by SessionsController#create as HTML

我认识到output_before_softmax_lab = ll.get_output(disc_layers[-1], x_lab, deterministic=False) output_before_softmax_unl = ll.get_output(disc_layers[-1], x_unl, deterministic=False) output_before_softmax_gen = ll.get_output(disc_layers[-1], gen_dat, deterministic=False) l_lab = output_before_softmax_lab[T.arange(args.batch_size),labels] l_unl = nn.log_sum_exp(output_before_softmax_unl) l_gen = nn.log_sum_exp(output_before_softmax_gen) loss_lab = -T.mean(l_lab) + T.mean(T.mean(nn.log_sum_exp(output_before_softmax_lab))) loss_unl = -0.5*T.mean(l_unl) + 0.5*T.mean(T.nnet.softplus(l_unl)) + 0.5*T.mean(T.nnet.softplus(l_gen)) 用于标记数据的分类丢失,因此应将其最小化,l_lab是关于未标记数据的丢失,l_unl生成的图像丢失。 我的困惑是为什么鉴别器应该最小化l_genl_unl,这是代码l_gen告诉我们的。 提前谢谢。

1 个答案:

答案 0 :(得分:1)

你应该阅读这篇改进版的片段。 enter image description here

Loss_unlabel对应于L_ {无监督}。

见下文。 enter image description here

然后,通过函数 nn.softplus nn.logsum_exp 的代码,您将获得 loss_unl 的代码

希望能帮到你。