1. A method performed by one or more computers, the method comprising: obtaining data that associates each term in a vocabulary of terms with a respective high-dimensional representation of the term, wherein the high-dimensional representation of the term is a numeric representation of the term in a high-dimensional space, and wherein the vocabulary of terms comprises a plurality of object category labels; and training a modified visual recognition system on a plurality of training images, wherein the modified visual recognition system includes a neural network having multiple layers, wherein each of the plurality of training images is associated with a respective known category label from the plurality of object category labels, wherein the modified visual recognition system is configured to, for each of the training images, receive the training image and to output a high-dimensional representation in the high-dimensional space for the training image, and wherein the training comprises: performing multiple iterations of a training procedure to minimize a loss function to determine trained values of parameters of the neural network, wherein the loss function satisfies, for each of the training images: 
 loss(image,label)=Σ j≠label max[0,margin− t label ·representation+ t j ·representation], wherein: image is the training image label is a known category label for the training image, representation is a current iteration high-dimensional representation for the training image in a current iteration of the training procedure, t label is a high-dimensional representation of the known label, t j is a high-dimensional representation of an object category label j in the vocabulary of terms other than the known label, and margin is a constant value.