Best approach for image recognition/classification with few training data After research, I've decided to take advice on the approach to use for our machine learning problem as I'm still not sure which to take.
Our problem:
We have our labels as a set of website names (Google, Twitter and Facebook for example). We need to train our model on a set of images that belong to each website, and later be able to give the model any image and predict which website it might be. Also note that the image could belong to none of the websites trained so I need some sort of None output.
One of the problems we're facing is the small number of data for each set (around 40 images for Facebook login forms that could be pushed to 200 with color transformations if that makes a difference while training.)
What we need:
Some sort of image classifier/predictor/recognizer (still not sure which) that will detect the class of the input image (Facebook, Google or Twitter for example) or tell us that it's none.
Problems we might face:

I'm not sure if our model is subject to over-fitting since our set of input images are limited and we should already have trained the model on. Take the facebook login page for example, they all look the same with small variety in the location of the fields. So our training and out-of-sample data are almost the same.

What I've done so far:

I've already started working on a Convolutional Deep Network using keras, but I'm worried that deep networks would be too complex for our data, or our data is too simple(alike) for the model to be trained correctly.
One Shot Learning and Siamese Networks, but this needs to have an output that must belong to the data we've trained on (which disregards the None possibility)
Sklearn's different classifiers, but a classifier must have an either or output for one of the labels, which again disregards the None possibility.
Finally, and what sounds most logical personally, is to use sklearn's OneClassSVM on each label (so if I have Google, Facebook and Twitter then I would have 3 models, one that corresponds to each label) and then pass my input image to each model to determine to which it belongs. The problem with this is if I have a lot of classes (which could be the case) then I'd have to run each one.

One final approach could be generating probabilities for each class after inputting an image to our model, assuming that these probabilities should not sum to 1 as to keep the None possibility.
Any suggestions or advice would be helpful. Thank you!
Your data seem to be very small to be used for training a CNN. I do not fully understand what does it mean that an image "belongs" to "Twitter" and not to "Google". 

Nevertheless, my best advice to you is to use simple sklearn classifiers and gather some data that does not belong to any of your options to be used as the None class. The None class should include a similar amount of data as the other classes and then you can train any classier and check the scores.

Regarding the over-fitting situation, you should consider doing cross-validation (because your data is too small for hold out set). Try doing a 5-fold cross-validation and assess how good your model performs on average. 

Good Luck!