Convolutions are in a central part of image processing, which is why they're an especially important part to many GAN architectures. So to get started, I'll go over what convolutions are and how they work using a really simple example. Convolution allows you to detect key features in different areas of an image like the picture of this cute dog using filters. These filters scan across the image, defined various features. For example, an eye filter will tell you which parts of the image contains eyes, a nose filter will tell you which parts contain noses, and an ear filter will tell you which parts contain ears. Each of these filters is just a matrix of real values and these exact values are learned during training. These values are used to compute a convolution on the input image. So in reality, they're much more abstract than eye or nose filters, but they do pick up on fairly high level features such as eyes and noses. So the convolution operation is very straightforward. Take a look at this five-by-five grayscale image where each square here is a pixel with a value between zero and 255. Where zero represents entirely black pixels and 255 represents entirely white pixels. So gray values are in between such as the 50 you see here. So as an example, let's say you have a learned three-by-three filter with one's in the first column, zero's in the second column, and negative one in the last third column. The convolution operation using this filter on the grayscale image, I'll represent with an asterisk in between them. This means that you want to apply this filter across this grayscale image. What that would look like here is you start in the top left corner and you multiply all the elements from the filter on top of those pixels. You multiply that 50 with a one, that 50 with the zero, that 50 with a negative one and so on and so forth matching that filter. Then you take the sum of all of these products and you put them into a resulting matrix. So you put that in the first cell here. After that you move your filter one position to the right to get the element-wise product, sum the results again, and store that value in your matrix and so on and so forth. You go down a slot. Now that you've reached the end, you go down now you start from the left and you'd keep applying the filter until you cover your entire image with your filter. Then you get this three-by-three result at the end. What's interesting is that your filter is actually a vertical line detector. So there is a vertical line here in your image, and your filter see some really high values here and it's trying to say, "Hey, I really see this vertical edge here." These filters could be of many different values and composing multiple layers of these filters will get those more abstract, higher level concepts such as a nose or an eye. That's all there is to computing a convolution, but there are some tweets you can make to this simple operation that will be helpful for you moving forward, and I'll be talking about those next. To sum up, convolutions are really important operations used for image processing, and they recognize patterns by scanning each section of your image and detecting features. At the end of the day, a convolution is just a series of sums of those element-wise products across your entire image.