Now you'll learn about the Noise Mapping Network, one of style games, unique components. And methods for adding the noise vector as input, which will help control styles later on. So first you take a look at the structure of the noise mapping network. Then the reasons why it exists, and finally where its output the intermediate vector actually goes. So first off, the noise mapping network actually takes your noise vector Z and maps it into an intermediate noise vector W. And this noise mapping network is composed of eight fully connected layers with activations in between, also known as a multilayer perceptron or MLP. So it's a pretty simple neural network that takes your Z noise vector, which is 512 in size. And maps it onto your W intermediate noise factor, which is still 512 in size, so it just changes the values. So you still do the same thing with Z where you sample Z from a normal distribution for all 512 values. And then you put it now through this network to get this intermediate W noise vector. And the motivation behind this is that mapping your noise vector will actually get you a more disentangled representation. So as a quick reminder, entanglement in your Z-Space is when youRe noise vector doesn't really map onto output features in a one-to-one way. Where when you change one of these Z vector values you can actually change a lot of different features in your output. And this is bad because this doesn't allow for a lot of fine grained control or feature level control that you would like in your resulting image. Because it wouldn't be great if you're trying to change the eyes of someone and you suddenly change their beard. Whether they have a beard at all in that image. And the reason why Z-Space where the noise vectors from is often entangled is because the real data that you know has a certain probability density. Meaning that there is a probability of the sample of certain image having glasses on, or not having glasses on. Having a beard, having a certain color of hair, eyes, or certain age associated with them. There's this probability density around the actual features. But because Z has is normal prior, where you draw all your values from this normal distribution. It can be hard for it to map this normal distribution to the correct density distribution of all your output features. And because you're expecting random noise vectors to basically be able to model this entire space of having glasses, having a beard, what color hair, eyes. Like all different types of images, all different types of features associated with those images. If you're expecting the noise vector the Z-Space to do that, that's actually quite challenging for it. And it will try to find some way to twist itself to try to map onto these desired features. And it often twists itself in a way that probably doesn't quite make sense to us. And so this is kind of unrealistic for it to just be completely disentangled, so be completely one-to-one mapping here. It's kind of an unrealistic thing for it to achieve, so it will probably and very necessarily learn a complex entangled set of mappings to achieve that. To be able to map on to all those output features we would like it to map onto and generate. However, having this intermediate mapping for the noise vector can give it a little bit of room. So it can allow for that space, and now this is called W-Space. To match the real data's density and this makes it easier to learn a one-to-one mapping, that's disentangled. So essentially the noise vector doesn't need to be as fixed to the statistics of the training data. But can instead learn these factors of variation that are now linear and easier to generate from. And this will reduce the chance of your styles being too closely correlated. And this ultimately helps to control a map features. And I wouldn't say W-Space is actually this perfect, as shown in this image here. This is just a graphic, it's just less entangled than Z-Space, is what it's been count. And as a quick note, these vectors you see here are just size seven, there are actually 512 here. So where does this noise mapping network fold into the context of this dialogue in architecture? So you have learned about progressive growing, where the output doubles in size every now and then. And this is what the generator architecture kind of looks like. And the noise mapping network actually comes in here as input into all of these blocks. And so you'd probably note that were Z normally would fit in here, this is no longer the case. And instead it's going through this mapping network and W actually is inputed at multiple different places along the network. And you'll see in the next video how exactly it's added into all these places. And how W's influence differs at different points that its inputed. Its influence differs where it's inputed earlier versus later. And know that W doesn't actually go in the beginning of the network unlike what Z did in the original gan set up. And this is because the authors are style, again, actually found no noticeable difference from adding it there. So we put in W there or not was basically the same thing. So instead of inputting W at the very beginning, what the model starts with is actually just a constant value. So with the network you actually starts with is just a constant value. So basically just a fixed value that doesn't change for any image you generate. And it's actually not just one fixed value, this is of size 4 x 4 x 512. As it goes in and then grows where it's 4 x 4 to start height width, and then a 512 channels. And again, this is the same value for every image being generated. So any changes to any image being generated will occur where the noise vector is being introduced. Which is everywhere, which is all of these blocks actually in every intermediate block here. And it actually goes in multiple times into each of these blocks, which is pretty cool. And you learn about exactly how the noise vector is added into these blocks in the next video. So you've just heard all about the noise mapping network, which is a multi-layer perceptron or feed forward neural network with fully connected layers and activations in between. That Maps your Z noise vector to an intermediate noise vector W. And this W is used as input into many places into your generator and allows for style control over the generated images.