0
$\begingroup$

I am currently going through Conditional Adversarial Nets (CGANs) and the modified objective function of the two-player minimax game is stated as follows: $$\min_G \max_D V(D, G)=\mathbb E_{x\sim p_{data}(x)}[\log D(\textbf x|\textbf y)] + \mathbb E_{z\sim p_z(\textbf z)}[\log(1-D(G(\textbf z | \textbf y)))].$$

I really don't understand what the conditioning does. G and D are not really probability functions, but rather real functions on samples from a distribution (which are real vectors). So what does the conditioning actually do? If the idea is just to include $y$ as an additional input to the generator neural net, then why not just $D(x, y)$ instead of $D(x|y)$?

$\endgroup$

1 Answer 1

1
$\begingroup$

Yes, they might be abusing a bit the notation, however the meaning is close to what that notation would like to say.

$x|y$ and $z|y$ just mean that $x,z$ might be the same for multiple samples, only differing by conditioning $z$... it's easier to see this on the generator: you can feed the network the same noise, but you expect that depending on what $y$ is, it generates different images.

And yes, ideally you are modeling the joint distribution, thus it would be $G(z,y)$ and $D(x,y)$, but since you have no "generative model for $y$", you are just learning the marginal

For categorical variables it's easy to create such generative model for $p(y)$, but for example consider the height of the person in the picture as conditioning, then you should know the distribution of heights if you really want to model the joint ditribution $p(z,y)$

$\endgroup$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .