Following are the train/validation errors for a change in kernel size (3 to 5), channel size (18 to 40), and learning rate (to .01) respectively:
Reasons for failed detection: It may have had trouble detecting the keypoint due to the rotation of the face (i.e. not facing directly at the camera), and possibly the lack of hair on the first image.
Hyperparameters: It was trained for 10 epochs with learning rate = 1e-2 and batch size of 4.
Reasons for failed detection: It seems here the model struggled to account for turned faces. It is possible as turned faces are the minority of the dataset, the model learned to "ignore" them.
Learned kernels for first convolutional layer:
Learned kernels for final convolutional layer:
From Kaggle: Team Name: Rushil Kapadiaconv2
I used ResNet18, the pytorch model suggested by the project. I changed the first layer to have 1 input channel instead of 3 input channels because we are loading in grayscale images. I also changed the final output channel number to be 136, because the output is 68 facial keypoints (2*68 = 136).
Hyperparameters: I trained for 5 epochs with a learning rate of 1e-2 and batch size of 1.