Gan网络损失函数理解

Gan网络的损失函数经常使用这条交叉熵损失函数,表示为:
L ( G , D ) = ∑ E ( l o g D d ) + ∑ E [ l o g ( 1 − D ( G ( p ) ) ) ] L(G, D) = \sum_{}^{}E(logD_d)+\sum_{}^{}E[log(1-D(G(p)))] L(G,D)=E(logDd)+E[log(1D(G(p)))].
公式中的含义:G生成器,D判别器,d表示真实的数据,Dd表示判别器对真实数据的判别结果,G§表示生成的假数据,D(G§)表示判别器对于假数据的判别结果。
log函数在区间【0,1】之间的取值是(-∞,0)是一个递增函数,这条公式体现了生成器和判别器博弈的过程,生成器希望这个损失约小越好,而判别器希望越大越好。
固定生成器G,训练判别器D,D越好,判断的可靠性就越高,判别器D希望对真实数据判别为1,假数据判别为0,其实是一个数值,真实数据越靠近1,若数据是真的,第一项越接近于1,G§是假数据,判别器希望判定为假,即D(G§)=0,那么1-D(G§)=1,所以判别器希望损失越大越好。
固定判别器D,训练生成器G,D被固定之后,第一项就是一个常数项,讨论第二项,对于生成器来说,它希望生成的数越真越好,能骗过判别器以为是真的,即D(G§)=1,那么第二项就接近于无穷小,所以生成器希望损失越小越好。

你可能感兴趣的:(深度学习)