输入 | 学习率α=0.1;权重裁剪参数c=0.01; 批量值m=64;n=5;w为判别器参数; θ为生成器参数 | 1 | while θ do | 2 | for t=0,1,…,n do | 3 | 样本$\left\{x^{(i)}\right\}_{i=1}^{m} \sim P_{r}$为真实数据 | 4 | 样本$\left\{g\left(z^{(i)}\right)\right\}_{i=1}^{m} \sim P_{g}$为生成数据 | 5 | $\mathrm{d} w \leftarrow \nabla w\left[\frac{1}{m} \sum_{i=1}^{m} f_{w}\left(x^{(i)}\right)-\frac{1}{m} \sum_{i=1}^{m} f_{w}\left(g\left(z^{(i)}\right)\right)\right]$ 计算判别器梯度 | 6 | w←w+a·dw判别器参数梯度更新 | 7 | w←clip(w,-c,c) 将判别器参数梯度更新的数值控制在(-c, c)之间 | 8 | end for | 9 | $\mathrm{d} \theta \leftarrow-\nabla \theta\left[\frac{1}{m} \sum_{i=1}^{m} f_{w}\left(g\left(z^{(i)}\right)\right)\right]$计算生成器梯度 | 10 | θ←θ-dθ生成器参数梯度更新 | 11 | end while |
|