Överföra utbildning

Slutförd

I livet är det ofta lättare att lära sig en ny färdighet om du redan har expertis inom en liknande, överförbar färdighet. Till exempel är det förmodligen lättare att lära någon hur man kör en buss om de redan har lärt sig att köra bil. Föraren kan bygga vidare på de körfärdigheter som de redan har lärt sig i en bil och tillämpa dem på att köra buss.

Samma princip kan tillämpas på att träna djupinlärningsmodeller genom en teknik som kallas överföringsinlärning.

Så här fungerar överföringsinlärning

Ett convolutional Neural Network (CNN) för bildklassificering består vanligtvis av flera lager som extraherar funktioner och använder sedan ett slutligt helt anslutet lager för att klassificera bilder baserat på dessa funktioner.

A CNN consisting of a set of feature extraction layers and a fully-connected prediction layer

Konceptuellt består det här neurala nätverket av två distinkta uppsättningar lager:

  1. En uppsättning lager från basmodellen som utför extrahering av funktioner.
  2. Ett helt anslutet lager som tar de extraherade funktionerna och använder dem för klassförutsägelse.

Funktionsextraheringsskikten använder konvolutionala filter och pooler för att framhäva kanter, hörn och andra mönster i bilderna som kan användas för att särskilja dem, och i teorin bör fungera för alla uppsättningar bilder med samma dimensioner som nätverkets indataskikt. Förutsägelselagret mappar funktionerna till en uppsättning utdata som representerar sannolikheter för varje klassetikett som du vill använda för att klassificera bilderna.

Genom att separera nätverket i dessa typer av lager kan vi ta extraheringsskikten för funktioner från en modell som redan har tränats och lägga till ett eller flera lager för att använda de extraherade funktionerna för förutsägelse av lämpliga klassetiketter för dina bilder. Med den här metoden kan du behålla de förtränade vikterna för funktionsextraheringsskikten, vilket innebär att du bara behöver träna de förutsägelseskikt som du har lagt till.

Det finns många etablerade konvolutional neurala nätverksarkitekturer för bildklassificering som du kan använda som basmodell för överföringsinlärning, så att du kan bygga vidare på det arbete som någon annan redan har gjort för att enkelt skapa en effektiv bildklassificeringsmodell.