In my practice for lesson 1 and 2 I try to tweak the input to the learning function. All to improve the accuracy for image classification.
The practice dataset (histopathology) contains about 200.000 images. The validation set contains 25-30% and the remainder is for training. It didn’t seem to make a big difference whether I used 75% or 100% of the data (about 0.003% on auc).
Besides tweaking the training sample size I tried to change:
- the number of epochs
- number of epochs before unfreezing()
- the learning rates with
- using a very small learning rate AFTER unfreezing:
- data augmentation (playing with
The difficulty is that the decrease in loss comes to a standstill or fluctuate around the same level after about 3 epochs anyway. The ‘tweaks’ seem nuances not relevant to the outcome. So I’m not sure about my influence on the validation loss after ‘playing’ with the input.
The experiments brought a couple of ‘thoughts’:
- augmentation is of little use, because the size of the training set offers sufficiently diverse input?
- what is the best moment to unfreeze the more basic layers?
- how do sample size and number of epochs relate?
- should I consider learning rate smaller than 1e-06?
- why is the learning rate ‘flattening out’ on the graph towards the left (1e-06) all the time after 2 epochs? Does it suggest that only small improvement are to be expected?
- is there some sort of a pipeline procedure to try different augmentations on a subset of the data? I’ve recognized that extreme augmentations don’t work, but the remainder I’m not sure.
The metrics over the first two epochs:
The learning rate after two epochs:
Last questions, how do I interpret the following picture on the third epoch? It seems like the learning process takes a detour into a useless area, wasting many batches of input?
Anyway, I try to optimize use of these parameters and understand it.
Currently I’m at the top 7% of the Kaggle competition, but I feel like I’m not improving despite using more data, different learning rates and data augmentation. I ran into the the pics above a couple of times now. The approach to my best score felt kinda generic (or maybe just the result of an simple/efficient and underappreciated FastAI library )