1700540136
1700540137
在实际训练中,早期阶段生成器G很差,生成的模拟样本很容易被判别器D识别,使得D回传给G的梯度极其小,达不到训练目的,这个现象称为优化饱和[33]。为什么会这样呢?我们将D的Sigmoid输出层的前一层记为o,那么D(x)可表示成D(x)=Sigmoid(o(x)),此时有
1700540138
1700540139
1700540140
1700540141
1700540142
(13.7)
1700540143
1700540144
因此训练G的梯度为
1700540145
1700540146
1700540147
1700540148
1700540149
(13.8)
1700540150
1700540151
1700540152
1700540153
当D很容易认出模拟样本时,意味着认错模拟样本的概率几乎为零,即。假定,C为一个常量,则可推出
1700540154
1700540155
1700540156
1700540157
1700540158
1700540159
1700540160
1700540161
(13.9)
1700540162
1700540163
故G获得的梯度基本为零,这说明D强大后对G的帮助反而微乎其微。
1700540164
1700540165
1700540166
1700540167
怎么办呢?解决方案是将变为,形式上有一个负号的差别,故让后者最大等效于让前者最小,二者在最优时解相同。我们看看更改后的目标函数有什么样的梯度:
1700540168
1700540169
1700540170
1700540171
1700540172
(13.10)
1700540173
1700540174
1700540175
1700540176
1700540177
(13.11)
1700540178
1700540179
1700540180
1700540181
即使趋于零,也不会消失,仍能给生成器提供有效的梯度。
1700540182
1700540183
1700540184
1700540185
[
上一页 ]
[ :1.700540136e+09 ]
[
下一页 ]