VGG19 vs Resnet18. When does VGG win? I have always been under the impression that resnet is more technologically advanced than vgg and so you will always get better performance on resnet. I trained and tested my model on a sample data and got 93.7% accuracy on vgg19 and 93.3% accuracy on resnet18 (balanced classes). Given sufficiently large dataset, what could be the possible reasons to get better performance on pretrained vgg19 than pretrained resnet18 (both pretrained on imagenet)
 A: Being “more technologically advanced” does not make a machine learning model better. There are cases where much simpler models outperform complicated ones. There’s no free lunch theorem stating that there can’t be single best model that works for all problems. Moreover, most of deep learning models are based on a number of clever hacks that appear to work for particular classes of problems. There’s no theoretical arguments why one of those models should perform better. ResNet tried to solve some of the problems observed in earlier models (vanishing gradients), but this does not mean it will always outperform the earlier ones.
A: ResNet18 is quite a shallow network, while VGG19 is a deep network. It is better to compare ResNet50/ResNet101 with VGG19 or ResNet18 with VGG11 because otherwise your comparison makes no sense.
Based on your accuracy, deep networks work better for this dataset. A good choice would be EfficientNetB7 or DenseNet161.
I have never seen VGG19 being superior to more modern architectures, but there can be exceptions when you have special datasets (as was noted in the other answer). So I would estimate that in about 90% of cases, VGG will not defeat a modern architecture.
Looking beyond VGG, the situation is more difficult. For example, EfficientNet uses "mobile inverted bottlenecks" (see MobileNetV2) and not all datasets can deal with it (at least my impression). Then an older architecture like SEResNeXt101 that also uses squeeze-and-excitation blocks (SE) can work much better than EfficientNet.
Another thing you should consider is the receptive field of your CNN. When you have big objects, then you might not need deep networks like VGG19, ResNet50, etc.
