I have a small data set of videos of approximately 100 videos for each class for a binary classification problem. This results in a total of 200 videos. I am applying two types of augmentations on the videos.
- Transformative augmentations which rotate and flip the videos. These are of 5 types so the resultant data set increases 5 times in size.
- Increasing and decreasing brightness, saturation, contrast, blur, shake, noise etc.
All the videos have captured the same phenomenon of drop of some liquids spreading on paper. I have attached two frame of a video below, one near the start and another when the drop has expanded. On a 3D CNN i am getting a decent accuracy of around 85%.
My concern is:
- As i have a small data set is it fine to apply transformative augmentations first and then do a train-test split so that my data set expands to 1000 videos and the split results in 800:200 videos? Or should i do split before augmentation which results in 80x5=400 train videos and 20 test videos?
- Also, i have my CNN with three pretty standard convolutional layers and two batch normalization layers. On every run where i get a good accuracy, the test accuracy is 1-2% more than train accuracy. Should it be concerning?
- Also, when i include second type of augmentation of brightness etc. i see the difference in train and test accuracy of 10-15%. I think this can be caused by training set becoming very hard in comparison to test set. Am i thinking right?