I want to use ResNet50 model to perform binary classification on a dataset spectrogram dataset. In order to do that I had to make a couple of modifications to the model's architecture:
- Modified the first convolutional layer, since spectrogramas are grayscale images and ResNet50 was initally built to clasify RGB images.
- Changed last dense layer to a simple MLP of three layers, output features are 1024, 512 and 1, where the last is a single neuron along with sigmoid activation. The two former layers have PReLu activation.
I'm using SGD for learning with 0.95 momentum, and static learning rates: 0.08 for convolutional layers and 0.1 for fully connected layers. Also for the non-modified layers I used pre-trained weights on the ImageNet dataset.
My question is, since results are not looking good (those plots are a clear example of overfitting), how can I improve results on the validation set? I have tried many different learning rates, and the ones I comment here give the best results. I'm thinking on lowering learning rate as epochs progress, but will this allow accuracy to improve? Any advice would be really appreciated. Sorry if explanation took to long and thanks in advance :)
PS: Everything is implemented in PyTorch