1. A method for training a neural network of a visual recognition computer system, the method comprising the steps of: first training the neural network by selecting training image labels of training images stored in a database; and supplementing the first training with a second training the neural network on the images by extracting features of each input training images stored in the database, including: predicting at least one class label of the image or video frame with the neural network; approximating at least one feature of the image or video frame with the neural network; determining feature recognition errors by measuring a label difference between the selected training image labels and the predicted at least one class label of the image or video frame, and measuring a feature difference between the extracted at least one feature of the image or video frame and the approximated at least one feature of the image or video frame; and jointly learning the selected training image labels and the feature recognition error values; and tuning parameters of the neural network to jointly minimize the training image labels and the feature recognition error values.