Grunderna i AI
Vad ÃĪr en Autoencoder?
Om du har lÃĪst om tekniker fÃķr ostrukturerad inlÃĪrning tidigare, kan du ha stÃķtt pÃĨ begreppet âautoencoderâ. Autoencoders ÃĪr ett av de primÃĪra sÃĪtten som ostrukturerade inlÃĪrningsmodeller utvecklas. Men vad ÃĪr en autoencoder exakt?
Kortfattat fungerar autoencoders genom att ta in data, komprimera och koda data, och sedan ÃĨterskapa data frÃĨn kodningsrepresentationen. Modellen trÃĪnas tills fÃķrlusten minimeras och data ÃĨterges sÃĨ nÃĪra som mÃķjligt. Genom denna process kan en autoencoder lÃĪra sig de viktigaste funktionerna i data. Medan det ÃĪr en snabb definition av en autoencoder, skulle det vara fÃķrdelaktigt att ta en nÃĪrmare titt pÃĨ autoencoders och fÃĨ en bÃĪttre fÃķrstÃĨelse fÃķr hur de fungerar. Den hÃĪr artikeln kommer att fÃķrsÃķka avmystifiera autoencoders, fÃķrklara arkitekturen fÃķr autoencoders och deras tillÃĪmpningar.
Vad ÃĪr en Autoencoder?
Autoencoders ÃĪr neuronnÃĪtverk. NeuronnÃĪtverk bestÃĨr av flera lager, och det som kÃĪnnetecknar en autoencoder ÃĪr att inmatningslagren innehÃĨller exakt lika mycket information som utmatningslagret. Anledningen till att inmatningslagret och utmatningslagret har exakt samma antal enheter ÃĪr att en autoencoder syftar till att replikera inmatningsdata. Den genererar en kopia av data efter att ha analyserat och ÃĨterskapat dem pÃĨ ett ostrukturerat sÃĪtt.
Data som flyter genom en autoencoder mappas inte rakt frÃĨn inmatning till utmatning, vilket betyder att nÃĪtverket inte bara kopierar inmatningsdata. Det finns tre komponenter i en autoencoder: en kodningsdel (inmatning) som komprimerar data, en komponent som hanterar den komprimerade data (eller flaskhals), och en dekodningsdel (utmatning). NÃĪr data matas in i en autoencoder, kodas och komprimeras den ner till en mindre storlek. NÃĪtverket trÃĪnas sedan pÃĨ den kodade/komprimerade data och genererar en ÃĨterskapning av den.
VarfÃķr vill man trÃĪna ett nÃĪtverk fÃķr att bara ÃĨterskapa data som ges till det? Anledningen ÃĪr att nÃĪtverket lÃĪr sig âessensenâ eller de viktigaste funktionerna i inmatningsdata. Efter att nÃĪtverket har trÃĪnats, kan en modell skapas som kan syntetisera liknande data, med tillÃĪgg eller subtraktion av vissa mÃĨlfunktioner. Till exempel kan man trÃĪna en autoencoder pÃĨ suddiga bilder och sedan anvÃĪnda den trÃĪnade modellen fÃķr att ta bort sudd eller brus frÃĨn bilden.
Autoencoder-Arkitektur
LÃĨt oss ta en titt pÃĨ arkitekturen fÃķr en autoencoder. Vi kommer att diskutera den primÃĪra arkitekturen fÃķr en autoencoder hÃĪr. Det finns variationer pÃĨ denna allmÃĪnna arkitektur som vi kommer att diskutera i avsnittet nedan.

Foto: Michela Massi via Wikimedia Commons, (https://commons.wikimedia.org/wiki/File:Autoencoder_schema.png)
Som tidigare nÃĪmnts kan en autoencoder i princip delas upp i tre olika komponenter: kodaren, en flaskhals och dekodaren.
Kodningsdelen i autoencodern ÃĪr vanligtvis ett feedforward-nÃĪtverk med tÃĪta anslutningar. Syftet med kodningslagren ÃĪr att ta inmatningsdata och komprimera dem till en latent representationsrymd, vilket genererar en ny representation av data med reducerad dimension.
Kodlagren, eller flaskhalsen, hanterar den komprimerade representationen av data. Flaskhalskoden ÃĪr noggrant utformad fÃķr att bestÃĪmma de mest relevanta delarna av de observerade data, eller med andra ord de funktioner i data som ÃĪr viktigast fÃķr dataÃĨterstÃĪllning. MÃĨlet ÃĪr att bestÃĪmma vilka aspekter av data som behÃķver bevaras och vilka som kan kasseras. Flaskhalskoden mÃĨste balansera tvÃĨ olika ÃķvervÃĪganden: representationsstorlek (hur kompakt representationen ÃĪr) och variabel/funktionens relevans. Flaskhalsen utfÃķr elementvis aktivering pÃĨ nÃĪtverkets vikter och bias. Flaskhalslagret kallas ibland ocksÃĨ latent representation eller latent variabler.
Dekodningslagret ÃĪr ansvarigt fÃķr att ta den komprimerade data och omvandla den tillbaka till en representation med samma dimensioner som den ursprungliga, ofÃķrÃĪndrade data. Omvandlingen gÃķrs med den latenta representationsrymden som skapades av kodaren.
Den mest grundlÃĪggande arkitekturen fÃķr en autoencoder ÃĪr en feed-forward-arkitektur, med en struktur som liknar en enkel lagerperceptron som anvÃĪnds i multilagerperceptron. Liksom vanliga feed-forward-neuronnÃĪtverk trÃĪnas autoencodern med hjÃĪlp av backpropagation.
Egenskaper fÃķr en Autoencoder
Det finns olika typer av autoencoders, men de har alla vissa egenskaper som fÃķrenar dem.
Autoencoders lÃĪr sig automatiskt. De krÃĪver inte etiketter, och om de fÃĨr tillrÃĪckligt med data ÃĪr det lÃĪtt att fÃĨ en autoencoder att nÃĨ hÃķg prestanda pÃĨ en specifik typ av inmatningsdata.
Autoencoders ÃĪr dataspecifika. Det betyder att de bara kan komprimera data som ÃĪr mycket lika data som autoencodern redan har trÃĪnats pÃĨ. Autoencoders ÃĪr ocksÃĨ fÃķrlorade, vilket betyder att utmatningarna frÃĨn modellen kommer att vara fÃķrsÃĪmrade i jÃĪmfÃķrelse med inmatningsdata.
NÃĪr man utformar en autoencoder mÃĨste maskinlÃĪringsingenjÃķrer uppmÃĪrksamma fyra olika modellhyperparametrar: kodstorlek, antal lager, noder per lager och fÃķrlustfunktion.
Kodstorleken bestÃĪmmer hur mÃĨnga noder som bÃķrjar i mitten av nÃĪtverket, och fÃĪrre noder komprimerar data mer. I en djup autoencoder kan antalet lager vara vilket tal som helst som ingenjÃķren anser lÃĪmpligt, men antalet noder i ett lager bÃķr minska allteftersom kodaren fortskrider. Samtidigt gÃĪller det motsatta i dekodaren, vilket betyder att antalet noder per lager bÃķr Ãķka allteftersom dekodarlager nÃĪrmar sig det sista lagret. Slutligen ÃĪr fÃķrlustfunktionen fÃķr en autoencoder vanligtvis antingen binÃĪr korsentropi eller medelkvadratfel. BinÃĪr korsentropi ÃĪr lÃĪmplig fÃķr fall dÃĪr inmatningsvÃĪrdena fÃķr data ÃĪr i ett intervall 0-1.
Autoencoder-Typer
Som nÃĪmnts ovan finns det variationer pÃĨ den klassiska autoencoder-arkitekturen. LÃĨt oss undersÃķka de olika autoencoder-arkitekturerna.
Sparse

Foto: Michela Massi via Wikimedia Commons, CC BY SA 4.0 (https://commons.wikimedia.org/wiki/File:Autoencoder_sparso.png)
Medan autoencoders vanligtvis har en flaskhals som komprimerar data genom en minskning av noder, ÃĪr sparse autoencoders ett alternativ till den typiska driftsformen. I ett sparse-nÃĪtverk behÃĨller de dolda lagren samma storlek som kodnings- och dekodningslagren. IstÃĪllet straffas aktiveringarna inom ett visst lager, vilket gÃķr att fÃķrlustfunktionen bÃĪttre fÃĨngar de statistiska funktionerna i inmatningsdata. FÃķr att uttrycka det pÃĨ ett annat sÃĪtt, medan de dolda lagren i en sparse autoencoder har fler enheter ÃĪn en traditionell autoencoder, ÃĪr bara en viss procent av dem aktiva vid en given tidpunkt. De mest betydelsefulla aktiveringsfunktionerna bevaras och andra ignoreras, och denna begrÃĪnsning hjÃĪlper nÃĪtverket att faststÃĪlla bara de mest framtrÃĪdande funktionerna i inmatningsdata.
Kontraktiv
Kontraktiva autoencoders ÃĪr utformade fÃķr att vara motstÃĨndskraftiga mot smÃĨ variationer i data, och upprÃĪtthÃĨller en konsekvent representation av data. Detta uppnÃĨs genom att tillÃĪmpa en straff pÃĨ fÃķrlustfunktionen. Denna regleringsteknik baseras pÃĨ Frobenius-normen fÃķr Jacobian-matrisen fÃķr inmatningskodningsaktiveringar. Effekten av denna regleringsteknik ÃĪr att modellen tvingas konstruera en kodning dÃĪr liknande inmatningar kommer att ha liknande kodningar.
Convolutional
Convolutional autoencoders kodar inmatningsdata genom att dela upp data i underavsnitt och sedan omvandla dessa underavsnitt till enkla signaler som adderas fÃķr att skapa en ny representation av data. Liksom convolutionella neuronnÃĪtverk specialiserar sig en convolutional autoencoder pÃĨ inlÃĪrning av bilddata, och den anvÃĪnder ett filter som flyttas Ãķver hela bildavsnittet avsnitt fÃķr avsnitt. Kodningarna som genereras av kodningslagret kan anvÃĪndas fÃķr att ÃĨterskapa bilden, spegla bilden eller modifiera bildens geometri. NÃĪr filtren har lÃĪrt sig av nÃĪtverket kan de anvÃĪndas pÃĨ vilken tillrÃĪckligt lik inmatning som helst fÃķr att extrahera funktionerna i bilden.
Denoising

Foto: MAL via Wikimedia Commons, CC BY SA 3.0 (https://en.wikipedia.org/wiki/File:ROF_Denoising_Example.png)
Denoising autoencoders introducerar brus i kodningen, vilket resulterar i en kodning som ÃĪr en fÃķrdÃĪrvad version av den ursprungliga inmatningsdata. Denna fÃķrdÃĪrvade version av data anvÃĪnds fÃķr att trÃĪna modellen, men fÃķrlustfunktionen jÃĪmfÃķr utmatningsvÃĪrdena med den ursprungliga inmatningen och inte den fÃķrdÃĪrvade inmatningen. MÃĨlet ÃĪr att nÃĪtverket ska kunna ÃĨterskapa den ursprungliga, ofÃķrdÃĪrvade versionen av bilden. Genom att jÃĪmfÃķra den fÃķrdÃĪrvade data med den ursprungliga data lÃĪr sig nÃĪtverket vilka funktioner i data som ÃĪr viktigast och vilka funktioner som ÃĪr oviktiga/fÃķrdÃĪrvningar. Med andra ord, fÃķr att en modell ska kunna rensa den fÃķrdÃĪrvade bilden, mÃĨste den ha extraherat de viktigaste funktionerna i bilddata.
Variational
Variational autoencoders fungerar genom att gÃķra antaganden om hur de latenta variablerna i data fÃķrdelas. En variational autoencoder producerar en sannolikhetsfÃķrdelning fÃķr de olika funktionerna i trÃĪningsbilderna/de latenta attributen. NÃĪr den trÃĪnas skapar kodaren latenta distributioner fÃķr de olika funktionerna i inmatningsbilderna.
Â

NÃĪr nÃĪtverket trÃĪnas analyseras den kodade data och erkÃĪnnandemodellen genererar tvÃĨ vektorer, som drar ut medelvÃĪrdet och standardavvikelsen fÃķr bilderna. En distribution skapas baserat pÃĨ dessa vÃĪrden. Detta gÃķrs fÃķr de olika latenta tillstÃĨnden. Dekodaren tar sedan slumpmÃĪssiga prover frÃĨn den motsvarande distributionen och anvÃĪnder dem fÃķr att ÃĨterskapa de ursprungliga inmatningarna till nÃĪtverket.
Autoencoder-TillÃĪmpningar
Autoencoders kan anvÃĪndas fÃķr en mÃĪngd olika tillÃĪmpningar, men de anvÃĪnds vanligtvis fÃķr uppgifter som dimensionella reduktioner, datorensering, funktionsextrahering, bildgenerering, sekvens-till-sekvens-prediktion och rekommendationssystem.
Datorensning ÃĪr anvÃĪndningen av autoencoders fÃķr att ta bort brus frÃĨn bilder. LikasÃĨ kan autoencoders anvÃĪndas fÃķr att reparera andra typer av bildskador, som suddiga bilder eller bilder som saknar sektioner. Dimensionella reduktioner kan hjÃĪlpa hÃķgkapacitetsnÃĪtverk att lÃĪra sig anvÃĪndbara funktioner i bilder, vilket betyder att autoencoders kan anvÃĪndas fÃķr att fÃķrbÃĪttra trÃĪningsprocessen fÃķr andra typer av neuronnÃĪtverk. Detta gÃĪller ocksÃĨ fÃķr anvÃĪndning av autoencoders fÃķr funktionsextrahering, eftersom autoencoders kan anvÃĪndas fÃķr att identifiera funktioner i andra trÃĪningsdata fÃķr att trÃĪna andra modeller.
NÃĪr det gÃĪller bildgenerering kan autoencoders anvÃĪndas fÃķr att generera falska mÃĪnskliga bilder eller animerade tecken, vilket har tillÃĪmpningar i utformningen av ansiktsigenkÃĪnningssystem eller automatisering av vissa aspekter av animering.
Sekvens-till-sekvens-prediktionsmodeller kan anvÃĪndas fÃķr att bestÃĪmma den temporala strukturen i data, vilket betyder att en autoencoder kan anvÃĪndas fÃķr att generera nÃĪsta hÃĪndelse i en sekvens. Av denna anledning kan en autoencoder anvÃĪndas fÃķr att generera videor. Slutligen kan djupa autoencoders anvÃĪndas fÃķr att skapa rekommendationssystem genom att plocka upp mÃķnster relaterade till anvÃĪndarintresse, med kodaren som analyserar anvÃĪndarengagemangsdata och dekodaren som skapar rekommendationer som passar de etablerade mÃķnstren.












