Autoencoder - Autoencoder

En autoencoder är en typ av artificiellt neuralt nätverk som används för att lära sig effektiva kodningar av omärkt data ( oövervakad inlärning ). Kodningen valideras och förfinas genom att försöka regenerera ingången från kodningen. Autokodaren lär sig en representation (kodning) för en uppsättning data, vanligtvis för att reducera dimensionalitet , genom att träna nätverket att ignorera obetydliga data ("brus").

Det finns varianter som syftar till att tvinga de inlärda representationerna att anta användbara egenskaper. Exempel är regulariserade autoencoders ( Sparse , Denoising och Contractive ), som är effektiva i inlärningsrepresentationer för efterföljande klassificeringsuppgifter , och Variational autoencoders, med applikationer som generativa modeller . Autokodare tillämpas på många problem, från ansiktsigenkänning , funktionsdetektering, avvikelsedetektering till att förvärva betydelsen av ord. Autokodare är också generativa modeller: de kan slumpmässigt generera ny data som liknar inmatningsdata (träningsdata).

Grundläggande arkitektur

En autoencoder har två huvuddelar: en encoder som mappar ingången till koden och en avkodare som mappar koden till en rekonstruktion av ingången.

Det enklaste sättet att utföra kopieringsuppgiften perfekt skulle vara att duplicera signalen. I stället tvingas autoencoders typiskt att rekonstruera ingången ungefär, bevarar endast de mest relevanta aspekterna av data i kopian.

Idén med autokodare har varit populär i decennier. De första ansökningarna dateras till 1980 -talet. Deras mest traditionella tillämpning var minskning av dimensioner eller inlärning av funktioner , men konceptet blev allmänt använt för inlärning av generativa datamodeller . Några av de mest kraftfulla AI: erna under 2010 -talet involverade autoencoders staplade inuti djupa neurala nätverk.

Image
Schema för en grundläggande Autoencoder

Den enklaste formen av en autoencoder är ett feedforward , icke- återkommande neuralt nätverk som liknar enkellagers perceptroner som deltar i flerlagers perceptroner (MLP)- använder ett inmatningsskikt och ett utmatningsskikt som är anslutna med ett eller flera dolda lager. Utgångsskiktet har samma antal noder (neuroner) som inmatningsskiktet. Dess syfte är att rekonstruera sina ingångar (minimera skillnaden mellan ingången och utgången) istället för att förutsäga ett målvärde som ges ingångar . Därför lär autokodare sig utan tillsyn.

En autoencoder består av två delar, encoder och decoder, som kan definieras som övergångar och så att:

I det enklaste fallet, med ett dolt lager, tar kodningssteget i en autoencoder ingången och kartlägger den till :

Denna bild brukar kallas kod, latenta variabler eller en latent representation. är en elementmässig aktiveringsfunktion såsom en sigmoid-funktion eller en rättad linjär enhet . är en viktmatris och är en förspänningsvektor. Vikter och fördomar initialiseras vanligtvis slumpmässigt och uppdateras sedan iterativt under träning genom backpropagation . Efter det, avkodar scenen i autoencoder till rekonstruktion av samma form som :

där för avkodaren kan vara orelaterad till motsvarande för kodaren.

Autoencoders är utbildade för att minimera rekonstruktionsfel (till exempel kvadrerade fel ), ofta kallade " förlusten ":

där är vanligtvis i genomsnitt över utbildningsuppsättningen.

Som nämnts tidigare utförs autoencoder -utbildning genom bakpropagering av felet, precis som andra feedforward -neurala nätverk .

Skulle funktionsutrymmet ha en lägre dimension än inmatningsutrymmet kan funktionsvektorn betraktas som en komprimerad representation av ingången . Detta är fallet med underkompletterade autokodare. Om de dolda lagren är större än ( överkompletterade ), eller lika med, ingångsskiktet eller de dolda enheterna får tillräcklig kapacitet, kan en autokodare potentiellt lära sig identitetsfunktionen och bli värdelös. Experimentella resultat visade dock att överkompletterade autokodare fortfarande kan lära sig användbara funktioner . I den idealiska inställningen kan koddimensionen och modellkapaciteten ställas in på grundval av komplexiteten i datadistributionen som ska modelleras. Ett sätt att göra det är att utnyttja modellvarianterna som kallas Regularized Autoencoders.

Variationer

Reglerade autokodare

Olika tekniker finns för att förhindra att autokodare lär sig identitetsfunktionen och för att förbättra deras förmåga att fånga viktig information och lära sig rikare representationer.

Gles autoencoder (SAE)

Image
Enkelt schema för en enkelsidig gles autoencoder. De dolda noderna i ljusgult aktiveras medan de ljusgula är inaktiva. Aktiveringen beror på ingången.

Att lära sig representationer på ett sätt som uppmuntrar till sparsamhet förbättrar prestanda för klassificeringsuppgifter. Glesa autokodare kan innehålla fler (snarare än färre) dolda enheter än ingångar, men endast ett litet antal av de dolda enheterna får vara aktiva samtidigt (alltså glesa). Denna begränsning tvingar modellen att svara på de unika statistiska egenskaperna i träningsdata.

Specifikt är en gles autoencoder en autoencoder vars utbildningskriterium innebär en sparsitetstraff på kodlagret .

Påminner om det , straffet uppmuntrar modellen att aktivera (dvs. utgångsvärde nära 1) specifika områden i nätverket på grundval av inmatningsdata, samtidigt som alla andra neuroner inaktiveras (dvs. att ha ett utgångsvärde nära 0).

Denna sparsamhet kan uppnås genom att formulera straffvillkoren på olika sätt.

vara den genomsnittliga aktiveringen av den dolda enheten (i genomsnitt över utbildningsexemplen). Notationen identifierar det ingångsvärde som utlöste aktiveringen. För att uppmuntra de flesta neuronerna att vara inaktiva måste de vara nära 0. Därför tvingar denna metod begränsningen var är sparsitetsparametern, ett värde nära noll. Strafftiden har en form som straffar för att avvika avsevärt från och utnyttja KL -avvikelsen:
där summeras över de dolda noder i det dolda lagret, och är KL-avvikelsen mellan en Bernoulli slumpmässig variabel med medelvärde och en Bernoulli slumpmässig variabel med medelvärde .
  • Ett annat sätt att uppnå sparsamhet är genom att tillämpa L1- eller L2 -regleringsvillkor på aktiveringen, skalad med en viss parameter . Till exempel i fallet med L1 i förlustfunktionen blir
  • En ytterligare föreslagen strategi för att tvinga fram gleshet är att manuellt nollställa alla utom de starkaste dolda enhetsaktiveringarna ( k-gles autoencoder ). K-sparse autoencoder är baserad på en linjär autoencoder (dvs med linjär aktiveringsfunktion) och bundna vikter. Identifieringen av de starkaste aktiveringarna kan uppnås genom att sortera aktiviteterna och bara behålla de första k -värdena, eller genom att använda ReLU -dolda enheter med trösklar som anpassas anpassat tills de k största aktiviteterna har identifierats. Detta urval fungerar som de tidigare nämnda regulariseringsvillkoren genom att det hindrar modellen från att rekonstruera ingången med hjälp av för många neuroner.

Denoising autoencoder (DAE)

Denoising autoencoders (DAE) försöker uppnå en bra representation genom att ändra rekonstruktionskriteriet .

DAE tar faktiskt en delvis skadad ingång och tränas i att återställa den ursprungliga oförvrängda ingången . I praktiken är syftet med denoiseringen av autoencoders att rengöra den skadade ingången, eller denoizing. Två antaganden är inneboende i detta tillvägagångssätt:

  • Högre representationer är relativt stabila och robusta för korruption av input;
  • För att utföra denoising väl måste modellen extrahera funktioner som fångar användbar struktur i ingångsfördelningen.

Med andra ord förespråkas denoisering som ett utbildningskriterium för att lära sig extrahera användbara funktioner som kommer att utgöra bättre representationer av input på högre nivå.

Utbildningsprocessen för en DAE fungerar enligt följande:

  • Den första ingången skadas genom stokastisk kartläggning .
  • Den skadade ingången därefter avbildas till en dold representation med samma process av standarden autoencoder, .
  • Från den dolda representationen rekonstruerar modellen .

Modellens parametrar och är utbildade för att minimera det genomsnittliga rekonstruktionsfelet över träningsdata, särskilt minimera skillnaden mellan och den ursprungliga okorrupta ingången . Observera att varje gång ett slumpmässigt exempel presenteras för modellen genereras en ny korrupt version stokastiskt på grundval av .

Ovannämnda utbildningsprocess kan tillämpas med alla typer av korruptionsprocesser. Några exempel kan vara additivt isotropiskt gaussiskt brus , maskeringsbrus (en bråkdel av den slumpmässigt valda ingången för varje exempel tvingas till 0) eller salt och peppar (en bråkdel av den slumpmässiga ingången för varje exempel är inställd på dess lägsta eller högsta värde med enhetlig sannolikhet).

Inmatningen skadas endast under utbildning. Efter träning läggs ingen korruption till.

Contractive autoencoder (CAE)

En kontraktiv autokodare lägger till en uttrycklig regulator i sin objektiva funktion som tvingar modellen att lära sig en kodning robust till små variationer av ingångsvärden. Denna regulator motsvarar Frobenius -normen för den jakobiska matrisen för kodaraktiveringarna med avseende på ingången. Eftersom straffet endast tillämpas på träningsexempel, tvingar denna term modellen att lära sig användbar information om utbildningsfördelningen. Den slutliga objektivfunktionen har följande form:

Autokodaren kallas kontraktiv eftersom den uppmuntras att mappa ett grannskap med ingångspunkter till ett mindre grannskap med utgångspunkter.

DAE är ansluten till CAE: i gränsen för små Gauss-ingångsbrus får DAE: er att rekonstruktionsfunktionen motstår små men begränsade ingångsstörningar, medan CAE: er gör att de extraherade funktionerna motstår infinitesimala ingångsstörningar.

Betong autoencoder

Den automatiska kodaren för betong är utformad för diskret val av funktioner. En konkret autokodare tvingar det latenta utrymmet att endast bestå av ett användarspecifikt antal funktioner. Den konkreta autokodaren använder en kontinuerlig avslappning av den kategoriska fördelningen för att tillåta gradienter att passera genom funktionsväljarskiktet, vilket gör det möjligt att använda standard backpropagation för att lära sig en optimal delmängd av inmatningsfunktioner som minimerar förlust av rekonstruktion.

Variational autoencoder (VAE)

Variationella autoencoders (VAE) tillhör familjerna med variationer i Bayesianska metoder . Trots de arkitektoniska likheterna med grundläggande autoencoders är VAEs arkitektur med olika mål och med en helt annan matematisk formulering. Det latenta utrymmet består i detta fall av en blandning av fördelningar istället för en fast vektor.

Med tanke på en inputdataset som kännetecknas av en okänd sannolikhetsfunktion och en multivariat latent kodningsvektor , är målet att modellera data som en distribution , med definierad som uppsättningen av nätverksparametrarna så att .

Fördelar med djup

Image
Schematisk struktur för en autoencoder med 3 helt anslutna dolda lager. Koden (z eller h för referens i texten) är det mest interna lagret.

Autoencoders tränas ofta med en encoder och en encoder, men att använda många lager (djupa) kodare och avkodare erbjuder många fördelar.

  • Djup kan exponentiellt minska beräkningskostnaden för att representera vissa funktioner.
  • Djup kan exponentiellt minska mängden träningsdata som behövs för att lära sig vissa funktioner.
  • Experimentellt ger djupa autokodare bättre kompression jämfört med grunda eller linjära autokodare.

Träning

Geoffrey Hinton utvecklade nätverkstekniken för djup tro för att träna många lager djupa autokodare. Hans metod innebär att varje angränsande uppsättning av två lager behandlas som en begränsad Boltzmann-maskin så att förträning närmar sig en bra lösning och sedan använder backpropagation för att finjustera resultaten.

Forskare har diskuterat om gemensam utbildning (dvs. att träna hela arkitekturen tillsammans med ett enda globalt rekonstruktionsmål för att optimera) skulle vara bättre för djupa autokodare. En studie från 2015 visade att gemensam träning lär sig bättre datamodeller tillsammans med mer representativa funktioner för klassificering jämfört med den lagvisa metoden. Men deras experiment visade att framgången med gemensam träning beror starkt på de regleringsstrategier som antagits.

Ansökningar

De två huvudapplikationerna för autokodare är minskning av dimension och informationshämtning, men moderna variationer har tillämpats på andra uppgifter.

Minskad dimension

Image
Plot av de två första huvudkomponenterna (vänster) och ett tvådimensionellt dolt lager av en Linear Autoencoder (höger) tillämpas på Fashion MNIST-datauppsättningen . De två modellerna är båda linjära och lär sig att spänna över samma delrum. Projektionen av datapunkterna är verkligen identisk, förutom rotation av delrummet - till vilket PCA är invariant.

Dimensionalitet minskning var en av de första djupinlärning applikationer.

För Hintons studie från 2006 förtränade han en flerlagers autoencoder med en stapel RBM och använde sedan sina vikter för att initialisera en djup autoencoder med gradvis mindre dolda lager tills han träffade en flaskhals med 30 neuroner. De resulterande 30 dimensionerna av koden gav ett mindre rekonstruktionsfel jämfört med de första 30 komponenterna i en huvudkomponentanalys (PCA), och lärde sig en representation som var kvalitativt lättare att tolka, vilket tydligt skilde datakluster.

Att representera dimensioner kan förbättra prestanda för uppgifter som klassificering. Faktum är att kännetecknet för dimensionsminskning är att placera semantiskt relaterade exempel nära varandra.

Huvudkomponentanalys

Image
Rekonstruktion av 28x28pixelbilder av en Autoencoder med en kodstorlek på två (två-enheter dolt lager) och rekonstruktionen från de två första huvudkomponenterna i PCA. Bilder kommer från Fashion MNIST -datauppsättningen .

Om linjära aktiveringar används, eller bara ett enda sigmoid dolt lager, är den optimala lösningen för en autoencoder starkt relaterad till huvudkomponentanalys (PCA). Vikten hos en autoencoder med ett enda dolt lager av storlek (där är mindre än ingångens storlek) sträcker sig över samma vektordelrum som den som sträcks över av de första huvudkomponenterna, och outen från autoencoder är en ortogonal projektion på denna delrum. Autokodarens vikter är inte lika med huvudkomponenterna och är i allmänhet inte ortogonala, men ändå kan huvudkomponenterna återvinnas från dem genom att använda dekomponeringen i enstaka värde .

Men potentialen hos autokodare ligger i deras icke-linjäritet, vilket gör att modellen kan lära sig mer kraftfulla generaliseringar jämfört med PCA, och att rekonstruera ingången med betydligt lägre informationsförlust.

Informationsinhämtning

Informationshämtning gynnas särskilt av minskning av dimensionerna genom att sökningen kan bli mer effektiv i vissa typer av lågdimensionella utrymmen. Autoencoders tillämpades verkligen på semantisk hash, som föreslogs av Salakhutdinov och Hinton 2007. Genom att träna algoritmen för att producera en lågdimensionell binär kod kan alla databasposter lagras i en hashtabell som kartlägger binära kodvektorer till poster. Denna tabell stöder sedan informationshämtning genom att returnera alla poster med samma binära kod som frågan, eller något mindre liknande poster genom att vända några bitar från frågekodningen.

Anomali upptäckt

En annan applikation för autokodare är avvikelsedetektering . Genom att lära sig att replikera de mest framträdande funktionerna i träningsdata under några av de begränsningar som beskrivits tidigare uppmuntras modellen att lära sig att exakt återge de mest observerade egenskaperna. När den står inför avvikelser bör modellen försämra rekonstruktionens prestanda. I de flesta fall används endast data med normala instanser för att träna autoencoder; i andra är frekvensen av avvikelser liten jämfört med observationsuppsättningen så att dess bidrag till den inlärda representationen kunde ignoreras. Efter träning kommer autokodaren att rekonstruera "normala" data på ett korrekt sätt, medan den inte gör det med okända avvikande data. Rekonstruktionsfel (felet mellan originaldata och dess lågdimensionella rekonstruktion) används som en anomali poäng för att upptäcka avvikelser.

Ny litteratur har emellertid visat att vissa autokodningsmodeller, kontraintuitivt, kan vara mycket bra på att rekonstruera avvikande exempel och följaktligen inte kunna på ett tillförlitligt sätt utföra avvikelsedetektering.

Bildbehandling

Egenskaperna för autokodare är användbara vid bildbehandling.

Ett exempel kan hittas i förlustfri bildkomprimering , där autoencoders överträffade andra tillvägagångssätt och visade sig konkurrenskraftiga mot JPEG 2000 .

En annan användbar tillämpning av autokodare vid bildförbehandling är bilddenoisering .

Autoencoders fann användning i mer krävande sammanhang som medicinsk avbildning där de har använts för bildbenämning såväl som superupplösning . Vid bildassisterad diagnos har experiment använt autoencoders för detektion av bröstcancer och för att modellera sambandet mellan den kognitiva nedgången av Alzheimers sjukdom och de latenta egenskaperna hos en autoencoder som tränats med MRT .

Läkemedelsfynd

År 2019 validerades molekyler som genererats med variationer av autoencoders experimentellt i möss.

Popularitetsprognos

Nyligen gav en staplad autoencoder -ram lovande resultat för att förutsäga popularitet för sociala medier, vilket är användbart för onlineannonsstrategier.

Maskinöversättning

Autoencoders har tillämpats på maskinöversättning , som vanligtvis kallas neural machine translation (NMT). Till skillnad från traditionella autokodare matchar inte utmatningen ingången - den är på ett annat språk. I NMT behandlas texter som sekvenser som ska kodas in i inlärningsproceduren, medan på avkodarsidans sekvenser i målspråket / målen genereras. Språk specifika autoencoders införliva ytterligare språkliga funktioner i inlärningsförfarandet, till exempel kinesiska nedbrytningsfunktioner.

Se även

Referenser

externa länkar