A Vector for a Picture

Two photographs of the same object may look very different pixel by pixel. A trained network can provide a compact vector of features that gives us a more useful way to compare them.

15 sections · 15 questions · 4 coding challenges

1 / 15

Could Features Learned for One Image Task Help with Another?

BOTIE

Two pictures can show similar objects while differing at nearly every pixel. Position, lighting, and background all change the raw array. We would like a representation that retains features useful for recognition rather than comparing only corresponding brightness values.

Donahue and colleagues' DeCAF work, released in 2013 and published in 2014, investigated reusing the internal activations of a trained convolutional network for other recognition tasks. It helped demonstrate that an intermediate representation could be valuable beyond the original classifier's output categories.

We pass an image through the network and take a selected internal representation as its vector. Training has shaped what that vector retains, so images sharing useful features may be close despite pixel differences. Which layer we choose and how the network was trained both matter. A vector from a classifier is a useful candidate for comparison, not an automatic guarantee of the similarity our application needs.

Sources for this history