Grunderna i AI

Vad ÃĪr Transfer Learning?

mm
LÃĪgg till Unite.AI bland dina fÃķredragna kÃĪllor pÃĨ Google

Vad ÃĪr Transfer Learning?

NÃĪr man praktiserar maskinlÃĪrning kan utbildning av en modell ta lÃĨng tid. Att skapa en modellarkitektur frÃĨn scratch, utbilda modellen och sedan justera modellen ÃĪr en enorm mÃĪngd tid och anstrÃĪngning. Ett mycket mer effektivt sÃĪtt att utbilda en maskinlÃĪrningsmodell ÃĪr att anvÃĪnda en arkitektur som redan har definierats, potentiellt med vikter som redan har berÃĪknats. Detta ÃĪr den huvudsakliga idÃĐn bakom transfer learning, att ta en modell som redan har anvÃĪnts och omÃĪndra den fÃķr en ny uppgift.

Innan vi dyker in i de olika sÃĪtten som transfer learning kan anvÃĪndas pÃĨ, lÃĨt oss ta en stund att fÃķrstÃĨ varfÃķr transfer learning ÃĪr en sÃĨ kraftfull och anvÃĪndbar teknik.

Att lÃķsa ett djupinlÃĪrningsproblem

NÃĪr du fÃķrsÃķker lÃķsa ett djupinlÃĪrningsproblem, som att bygga en bildklassificerare, mÃĨste du skapa en modellarkitektur och sedan utbilda modellen pÃĨ dina data. Utbildning av modellklassificeraren innebÃĪr att justera vikterna i nÃĪtverket, en process som kan ta timmar eller till och med dagar beroende pÃĨ komplexiteten i bÃĨde modellen och datamÃĪngden. Utbildningstiden kommer att skala i enlighet med datamÃĪngdens storlek och modellarkitekturens komplexitet.

Om modellen inte uppnÃĨr den typ av noggrannhet som behÃķvs fÃķr uppgiften, kommer justering av modellen sannolikt att behÃķva gÃķras och sedan mÃĨste modellen utbildas om. Detta innebÃĪr fler timmar av utbildning tills en optimal arkitektur, utbildningstid och datadelning kan hittas. NÃĪr man ÃķvervÃĪger hur mÃĨnga variabler som mÃĨste justeras i fÃķrhÃĨllande till varandra fÃķr att en klassificerare ska vara anvÃĪndbar, ÃĪr det logiskt att maskinlÃĪringsingenjÃķrer alltid letar efter enklare och mer effektiva sÃĪtt att utbilda och implementera modeller. Av denna anledning skapades transfer learning-tekniken.

Efter att ha designat och testat en modell, om modellen visade sig vara anvÃĪndbar, kan den sparas och ÃĨteranvÃĪndas senare fÃķr liknande problem.

Typer av Transfer Learning

I allmÃĪnhet finns det tvÃĨ olika typer av transfer learning: att utveckla en modell frÃĨn scratch och att anvÃĪnda en fÃķrutbildad modell.

NÃĪr du utvecklar en modell frÃĨn scratch mÃĨste du skapa en modellarkitektur som kan tolka dina utbildningsdata och extrahera mÃķnster frÃĨn dem. Efter att modellen har utbildats fÃķr fÃķrsta gÃĨngen kommer du fÃķrmodligen att behÃķva gÃķra ÃĪndringar i den fÃķr att fÃĨ den optimala prestandan frÃĨn modellen. Du kan sedan spara modellarkitekturen och anvÃĪnda den som en utgÃĨngspunkt fÃķr en modell som kommer att anvÃĪndas fÃķr en liknande uppgift.

I den andra situationen – anvÃĪndning av en fÃķrutbildad modell – behÃķver du bara vÃĪlja en fÃķrutbildad modell att anvÃĪnda. MÃĨnga universitet och forskningsteam kommer att gÃķra specifikationerna fÃķr sin modell tillgÃĪngliga fÃķr allmÃĪn anvÃĪndning. Modellens arkitektur kan laddas ner tillsammans med vikterna.

NÃĪr du utfÃķr transfer learning kan hela modellarkitekturen och vikterna anvÃĪndas fÃķr uppgiften, eller sÃĨ kan bara vissa delar/lager av modellen anvÃĪndas. Att anvÃĪnda bara en del av den fÃķrutbildade modellen och utbilda resten av modellen kallas finjustering.

Finjustering av ett nÃĪtverk

Finjustering av ett nÃĪtverk beskriver processen att utbilda bara vissa lager i ett nÃĪtverk. Om en ny utbildningsdatamÃĪngd ÃĪr mycket lik den datamÃĪngd som anvÃĪndes fÃķr att utbilda den ursprungliga modellen, kan mÃĨnga av de samma vikterna anvÃĪndas.

Antalet lager i nÃĪtverket som bÃķr avfrostras och utbildas om bÃķr skala i enlighet med den nya datamÃĪngdens storlek. Om datamÃĪngden som utbildas ÃĪr liten, ÃĪr det en bÃĪttre praxis att hÃĨlla de flesta lagren som de ÃĪr och utbilda bara de sista fÃĨ lagren. Detta ÃĪr fÃķr att fÃķrhindra att nÃĪtverket Ãķveranpassar sig. Alternativt kan de sista lagren i den fÃķrutbildade modellen tas bort och nya lager lÃĪggas till, som sedan utbildas. Om datamÃĪngden dÃĪremot ÃĪr en stor datamÃĪngd, potentiellt stÃķrre ÃĪn den ursprungliga datamÃĪngden, bÃķr hela nÃĪtverket utbildas om. FÃķr att anvÃĪnda nÃĪtverket som en fast funktionsextraherare kan de flesta delarna av nÃĪtverket anvÃĪndas fÃķr att extrahera funktioner medan bara den sista lagern i nÃĪtverket kan avfrostras och utbildas.

NÃĪr du finjusterar ett nÃĪtverk, kom ihÃĨg att de tidigare lagren i ConvNet ÃĪr de som innehÃĨller informationen som representerar de mer generiska funktionerna i bilderna. Dessa ÃĪr funktioner som kanter och fÃĪrger. I kontrast innehÃĨller ConvNets senare lager detaljer som ÃĪr mer specifika fÃķr de enskilda klasserna i datamÃĪngden som modellen ursprungligen utbildades pÃĨ. Om du utbildar en modell pÃĨ en datamÃĪngd som ÃĪr ganska annorlunda ÃĪn den ursprungliga datamÃĪngden, kommer du fÃķrmodligen att vilja anvÃĪnda de tidigare lagren i modellen fÃķr att extrahera funktioner och bara utbilda resten av modellen.

Exempel pÃĨ Transfer Learning

De vanligaste tillÃĪmpningarna av transfer learning ÃĪr fÃķrmodligen de som anvÃĪnder bilddata som indata. Dessa ÃĪr ofta fÃķrutsÃĪgelse/klassificeringsuppgifter. SÃĪttet som Convolutional Neural Networks tolkar bilddata lÃĪmpar sig fÃķr att ÃĨteranvÃĪnda delar av modeller, eftersom de convolutionella lagren ofta kÃĪnner igen mycket liknande funktioner. Ett exempel pÃĨ ett vanligt transfer learning-problem ÃĪr ImageNet 1000-uppgiften, en enorm datamÃĪngd full av 1000 olika klasser av objekt. FÃķretag som utvecklar modeller som uppnÃĨr hÃķg prestanda pÃĨ denna datamÃĪngd slÃĪpper ofta ut sina modeller under licenser som tillÃĨter andra att ÃĨteranvÃĪnda dem. NÃĨgra av de modeller som har resulterat frÃĨn denna process inkluderar Microsoft ResNet-modellen (MSFT ), Google (GOOGL ) Inception-modellen och Oxford VGG-modellgruppen.

Blogger och programmerare med specialomrÃĨden inom Machine Learning och Deep Learning ÃĪmnen. Daniel hoppas pÃĨ att hjÃĪlpa andra att anvÃĪnda kraften frÃĨn AI fÃķr socialt vÃĪl.