Spørgsmål:
Hvad er forskellene mellem PCA og autoencoder?
RockTheStar
2014-10-15 12:26:55 UTC
view on stackexchange narkive permalink

Både PCA og autoencoder kan reducere demension, så hvad er forskellen mellem dem? I hvilken situation skal jeg bruge den ene over den anden?

Fire svar:
bayerj
2014-10-15 13:55:02 UTC
view on stackexchange narkive permalink

PCA er begrænset til et lineært kort, mens auto-kodere kan have ikke-lineær enoder / dekodere.

En enkelt-lags automatisk indkoder med lineær overføringsfunktion svarer næsten til PCA, hvor næsten betyder, at $ W $ fundet af AE og PCA vil ikke nødvendigvis være den samme - men underområdet spændt af den respektive $ W $ span> 's vilje.

Jeg ser!Så jeg skal have to lag til ikke-lineær transformation.Så flere lag betyder meget kompleks ikke-lineær?
@RockTheStar: er det ikke antallet af lag, der betyder noget, men aktiveringsfunktionen [overføringsfunktion].Med lineær overførselsfunktion vil intet antal lag føre til en ikke-lineær autokoder.
Så med ikke-lineær transformation er der selv kun 1 lag skjult enhed.Løsningen er stadig ikke-lineær?
Ja.(Det kan også stadig være lineært i nogle tilfælde, f.eks. Når de skjulte enheder aktiveres i nær lineære regioner.)
"når de skjulte enheder aktiveres i de nærmeste lineære regioner", mener du den lineære del i sigmoid-funktionen, ikke?
Eller enhver anden overførselsfunktion, der bruges.
Kan nogen give et link til forklaringen på, hvorfor lineær auto-indkoder finder samme plads som PCA?
Det er den samme objektive funktion, som er konveks.Alle løsninger finder tilsvarende minima, men kun PCA-løseren er begrænset til at finde et ortogonalt underrum.
Dette er bedre egnet som en kommentar, men da jeg mangler ry for det, vil det blive givet som et svar.Jeg forvekslede noget med forestillingen om næsten i bayerj's svar.Læsning [Neurale netværk og hovedkomponentanalyse: At lære af eksempler uden lokale minima] (http://www.sciencedirect.com/science/article/pii/0893608089900142) hvor beviset gives.> '' I det autoassocierende tilfælde ... og derfor er det unikke lokalt og globalt optimale kort W den ortogonale projektion på det rum, der spændes af de første $ p $ egenvektorer af $ \ Sigma_ {XX} $ ''ikke nøjagtigt kernerne
Papiret, du citerer, bruger en lineær autokoder, dvs. ingen ikke-lineær aktiveringsfunktion.Det er grunden til, at dens vægte spænder over det samme underrum, der er spændt af PCA nøjagtigt.
DaemonMaker
2014-10-16 18:29:47 UTC
view on stackexchange narkive permalink

Som bayerj påpeger, er PCA en metode, der antager lineære systemer, hvor Autoencoders (AE) ikke gør det. Hvis der ikke anvendes nogen ikke-lineær funktion i AE, og antallet af neuroner i det skjulte lag er af mindre dimension, så kan input af input så PCA og AE give det samme resultat. Ellers kan AE finde et andet underrum.

En ting at bemærke er, at det skjulte lag i en AE kan have større dimensionalitet end inputets. I sådanne tilfælde foretager AE muligvis ikke dimensioneringsreduktion. I dette tilfælde opfatter vi dem som en transformation fra et funktionsrum til et andet, hvor dataene i det nye funktionsrum adskiller variationer i faktorer.

Med hensyn til dit spørgsmål om, hvorvidt flere lag betyder meget kompleks ikke-lineær i dit svar til bayerj. Afhængigt af hvad du mener med "meget kompleks ikke-lineær", kan dette være sandt. Dog giver dybde virkelig bedre generalisering. Mange metoder kræver et lige antal prøver svarende til antallet af regioner. Det viser sig imidlertid, at "et meget stort antal regioner, f.eks. $ O (2 ^ N) $, kan defineres med $ O (N) $ -eksempler" ifølge Bengio et al. Dette er et resultat af kompleksiteten i repræsentation, der opstår ved at komponere lavere funktioner fra lavere lag i netværket.

thx til dine ans!
Meget flot svar, IMO den bedste her, især forholdet til Bengios arbejde (hvor linket desværre er brudt)!
DeltaIV
2018-07-15 18:26:40 UTC
view on stackexchange narkive permalink

Det aktuelt accepterede svar fra @bayerj siger, at vægten af ​​en lineær autokoder spænder over det samme underområde som de vigtigste komponenter, der findes af PCA, men de er ikke de samme vektorer. Især er de ikke et ortogonalt grundlag. Dette er sandt, gså kan vi nemt gendanne de vigtigste komponenter, der indlæser vektorer fra autokodervægtene. En lille smule notation: lad $ \ {\ mathbf {x} _i \ in \ mathbb {R} ^ n \} _ {i = 1} ^ N $ være et sæt af $ N $ $ n- $ dimensionelle vektorer, som vi ønsker at beregne PCA for, og lad $ X $ være den matrix, hvis kolonner er $ \ mathbf {x} _1, \ dots, \ mathbf {x} _N $. Lad os derefter definere en lineær autokoder som det ene-skjulte neurale netværk defineret af følgende ligninger:

$$ \ begin {align} \ mathbf {h} _1 & = \ mathbf {W} _1 \ mathbf {x} + \ mathbf {b} _1 \\ \ hat {\ mathbf {x}} & = \ mathbf {W} _2 \ mathbf {h} _1 + \ mathbf {b} _2 \ end {align} $$

hvor $ \ hat {\ mathbf {x}} $ er output fra den (lineære) autoencoder, betegnet med en hat for at understrege det faktum, at outputtet fra en autoencoder er en "rekonstruktion" af input. Bemærk, at det skjulte lag har mindre enheder end inputlaget, da det er mest almindeligt med autokodere, dvs. $ W_1 \ i \ mathbb {R} ^ {n \ gange m} $ og $ W_2 \ i \ mathbb {R} ^ {m \ times n} $ med $ m < n $.

Beregn nu de første $ m $ entalvektorer på $ W_2 $ efter træning af din lineære autokoder. Det er muligt at bevise, at disse entalvektorer faktisk er de første $ m $ hovedkomponenter på $ X $, og beviset er i Plaut, E., Fra hovedunderrum til hovedkomponenter med lineære autokodere, Arxiv .org: 1804.10253.

Da SVD faktisk er den algoritme, der almindeligvis bruges til at beregne PCA, kan det virke meningsløst at først træne en lineær autokoder og derefter anvende SVD på $ W_2 $ for at gendanne de første $ m $ -belastningsvektorer i stedet for direkte at anvende SVDtil $ X $.Pointen er, at $ X $ er en $ n \ gange N $ -matrix, mens en $ W_2 $ er $ m \ gange n $.Nu er tidskompleksiteten af SVD for $ W_2 $ $ O (m ^ 2n) $, mens for $ X $ er $ O (n ^ 2N) $ med $ m < n $, kan der således opnås en vis besparelse (enddahvis ikke så stor som påstået af forfatteren af det papir, jeg linker).Der er selvfølgelig andre mere nyttige tilgange til at beregne PCA for Big Data (randomiseret online PCA kommer til at tænke på), men hovedpunktet i denne ækvivalens mellem lineære autokodere og PCA er ikke at finde en praktisk måde at beregne PCA på for enorme datasæt: det handler mere om at give os en intuition om forbindelserne mellem autokodere og andre statistiske tilgange til dimensionreduktion.

Oliver Schulte
2020-04-01 04:16:36 UTC
view on stackexchange narkive permalink

Det generelle svar er, at autoassocierende neurale netværk kan udføre ikke-lineær dimensionalitetsreduktion. Træning af netværket er generelt ikke så hurtigt som PCA, så kompromiset er beregningsressourcer versus udtryksfuld magt.

Der var dog en forvirring i detaljerne, hvilket er en almindelig misforståelse. Det er rigtigt, at auto-associerede netværk med lineære aktiveringsfunktioner er enige med PCA, uanset antallet af skjulte lag. Imidlertid hvis der kun er 1 skjult lag (input-skjult-output), er det optimale auto-associerende netværk stadig enig med PCA, selv med ikke-lineære aktiveringsfunktioner. For det originale bevis se 1988 papir af Bourlard og Kamp. Chris Bishop's bog har en god oversigt over situationen i kap.12.4.2:

Man kunne tro, at begrænsningerne ved en lineær dimensionalitetsreduktion kunne overvindes ved hjælp af ikke-lineære (sigmoidale) aktiveringsfunktioner til de skjulte enheder i netværket i figur 12.18. Selv med ikke-lineære skjulte enheder gives den mindste fejlløsning imidlertid igen ved projiceringen på hovedkomponentens underområde (Bourlard og Kamp, 1988). Der er derfor ingen fordel ved at bruge to-lags neurale netværk til at udføre dimensionalitetsreduktion.



Denne spørgsmål og svar blev automatisk oversat fra det engelske sprog.Det originale indhold er tilgængeligt på stackexchange, som vi takker for den cc by-sa 3.0-licens, den distribueres under.
Loading...