Lesson 6 In-Class Discussion ✅

I think max might have a lot of noise. If you’re looking at a tensor that’s 512 deep for each spot in the 11x11 grid, you can probably find one location at each point that has a large value.

To elaborate, you can think of sliding a convolution along the input image. For images of different sizes, you slide the convolution for a different number of steps (that is, more times for a larger image), but the convolution itself remains the same size.

2 Likes

The convolutions work any size, and at the very end, the adaptive max pooling/average pooling converts the size you got a the end (here 11 by 11 but could be antyhing) to 1. That’s as simple as this.

2 Likes

I understand how the convolution slides across and it doesn’t matter what the size of the image is. but depending on the input image size will affect the size of the output of the convolution layer. is that correct?

I can’t think of any reason why applying dropout to the inputs would have any effect on the speed of the model.

so the adaptive max pooling/average pooling takes the output of the convolution layers of any size and puts it into the needed size?

1 Like

Yes, but the next layer does not care about the input feature map size either since it is a convolutional layer as well

1 Like

If you are using max pooling or average pooling, that produces an output of a fixed size (even though the dimension that you are maxing/averaging across may vary).

2 Likes

What do you mean by needed size? The models ends up with a certain number of channels (let’s say 512 like the usual ImageNet model), your average/max pool will change your bsx512x11x11 activations to bsx512, then the others layers rely on that 512, but it’s a part of your model, not the input.

1 Like

Sorry, probably I’ve missed this moment, could you tell what function is applied here, in Lambda? I mean, by default when create_cnn is invoked?

I guess i was referring to the 512 as the needed size. whatever the first layer after the pool is expecting

The one you pass in your Lambda layer.

Didn’t IBM released a faces dataset to train models to prevent this bias? I thought I saw something back in the summer.

1 Like

Thank you. I’ve been stuck on this concept for a while.

This might get answered… but since its not clear what latent features actually represent, how can we be sure that our models are not optimizing for ethically problematic hidden latent features?

You can’t. Even if you think you have curated your data perfectly. You need to analyze your predictions, with as much as a diverse team as you kind muster (because what you can think of is going to be limited).

The predictions of your model are going to reveal to you bias in your data you wouldn’t have suspected.

7 Likes

This great review is a great read. It came out two days ago from Google, by Margaret Mitchell and Ben Hutchinson, titled 50 Years of Test (Un)fairness: Lessons for Machine Learning

5 Likes

Does using contrast/brightness help make models less race biased? or using grayscale would help?

Can we use hooks to grab the FC layer before passing to the softmax in case of multiclass classification for CNNs? Are there any other ways?

Joy Buolamwini and Timnit Gebru released a data set as part of their work (see gendershades.org for more).

IBM did respond to the release of their results.

2 Likes