原文链接
1 原理
对于生成反抗网络 GAN,一个简略的了解是能够将其看做博弈的过程,咱们能够将生成模型和判断模型看作博弈的单方,比方在犯罪分子造假币和警察辨认假币的过程中:
- 生成模型 G 相当于制作假币的一方,其目标是依据看到的钱币状况和警察的辨认技术,去尽量生成更加实在的、警察辨认不出的假币。
- 判断模型 D 相当于辨认假币的一方,其目标是尽可能的辨认出犯罪分子制作的假币。这样通过造假者和识假者单方的较量和朝目标的改良,使得最初能达到生成模型能尽可能真的钱币、识假者判断不出虚实的纳什平衡成果 (真假币概率都为 0.5)。
2 训练
生成器 G 的指标是坑骗鉴别器 D,其指标是可能辨别实在数据和生成数据。因而,在训练生成器时,咱们心愿误差最大化,同时咱们想要使鉴别器的误差最小化。
2.1 判断模型
指标函数是:
$$
max_D E_{x-p_r} [logD(x)]+E_{z-p_g} [log(1-D(x))]
$$
其中 D(x) 是判断模型的输入后果,是一个 0 - 1 范畴内的实数值,用来判断图片是实在图片的概率,其中 Pr 和 Pg 别离代表实在图像的散布与生成图像的数据分布状况,能够看出指标函数是找到使得前面两个式子之和最大的判断模型函数 D(z),前面两个式子是一个加和模式,其中:
$$
E_{x-p_r} [logD(x)]
$$
是支使得实在数据放入到判断模型 D(x) 输入的计算值和整个式子值尽可能大。
$$
E_{z-p_g} [log(1-D(x))]
$$
支使得造假数据放入到判断模型 D(x) 输入的计算值尽可能小和整个式子值尽可能大。
这样整合下来就是使得指标函数尽可能大,因而在训练时就能够依据指标函数进行梯度晋升。
2.2 生成模型
指标是让判断模型无奈辨别实在图片和生成图片,其指标函数是:
$$
min_g (max_D E_{x-p_r} [logD(x)]+E_{z-p_g} [log(1-D(x))])
$$
也就是找到生成函数 g(z) 使得生成模型的指标函数尽量小。
学习更多编程常识,请关注我的公众号:
代码的路