1700540480
(13.19)
1700540481
1700540482
进行的也是一场MiniMax游戏:
1700540483
1700540484
1700540485
,
1700540486
1700540487
(13.20)
1700540488
1700540489
1700540490
其中分别为生成网络、推断网络和判别网络的参数,判别网络试图最大化V函数,生成和推断网络则试图最小化V函数。第一个等号右边的式子,反映了在重参数化技巧(Re-parameterization Trick)下将三个网络组装成一个大网络;第二个等号右边的式子,从判别器的角度看产生(x,z)的两个不同数据源。
1700540491
1700540492
1700540493
1700540494
1700540495
图13.16 ALI模型
1700540496
1700540497
1700540498
1700540499
实际中,为克服训练初期生成和推断网络从判别网络获取梯度不足的问题,我们采用一个梯度增强版的优化目标,将原目标函数中的改成。原GANs论文指出,这个小变换不改变前后优化目标的解,但是前者会出现梯度饱和问题,后者能产生更明显的梯度。修改前生成和推断网络的优化目标为:
1700540500
1700540501
1700540502
.
1700540503
1700540504
(13.21)
1700540505
1700540506
修改后的优化目标为:
1700540507
1700540508
1700540509
.
1700540510
1700540511
(13.22)
1700540512
1700540513
有了上面的分析,就好设计出一个同时训练生成和推断网络及判别网络的GANs算法。
1700540514
1700540515
1700540516
1700540517
1700540519
百面机器学习:算法工程师带你去面试 05 IRGAN: 生成离散样本
1700540520
1700540521
1700540522
1700540523
场景描述
1700540524
1700540525
Reddit论坛上有一篇Goodfellow发表的帖子:“GANs have not been applied to NLP because GANs are only defined for real-valued data… The gradient of the output of the discriminator network with respect to the synthetic data tells you how to slightly change the synthetic data to make it more realistic. You can make slight changes to the synthetic data if it is based on continuous numbers. If it is based on discrete numbers,there is no way to make a slight change.”
1700540526
1700540527
大意是说,最初设计GANs是用来生成实值数据的,生成器输出一个实数向量。这样,判别器对实数向量每维都产生一个梯度,用作对模型参数的微小更新,持续的微小更新使得量变引起质变,最终达到一个非常好的解。可是,如果生成器输出离散数据,诸如:搜索引擎返回的链接,电商网站推荐的手机,那么梯度产生的微小更新就被打破了,因为离散样本的变化不是连续而是跳跃的。举个例子,灯光亮度是一种连续型数据,可以说把灯光调亮一些,也可以说把灯光调亮一点,还可以说把灯光调亮一点点,这都可操作;但是,从买苹果转到买橙子,你不能说买橙子一些,一点或者一点点(见图13.17)。将GANs用来生成离散数据,不是一件简单的事情,但是生活中很多时候,我们遇到的就是各型各色的离散型数据。
1700540528
1700540529
[
上一页 ]
[ :1.70054048e+09 ]
[
下一页 ]