Stumm Wat ass en Autoencoder? - Unite.AI
Connect mat eis

AI 101

Wat ass en Autoencoder?

mm
aktualiséiert on

Wann Dir virdru iwwer net iwwerwaachte Léiertechnike gelies hutt, hutt Dir vläicht de Begrëff "autoencode". Autoencoders sinn ee vun de primäre Weeër wéi onkontrolléiert Léiermodeller entwéckelt ginn. Awer wat ass en Autoencoder genau?

Kuerz gesot, Autoencoder funktionnéieren andeems se Daten ophuelen, d'Daten kompriméieren a codéieren, an dann d'Donnéeën aus der Kodéierungsvertriedung rekonstruéieren. De Modell gëtt trainéiert bis de Verloscht miniméiert ass an d'Donnéeën sou no wéi méiglech reproduzéiert ginn. Duerch dëse Prozess kann en Autoencoder déi wichteg Feature vun den Daten léieren. Och wann dat eng séier Definitioun vun engem Autoencoder ass, wier et gutt fir Autoencoder méi no ze kucken an e bessert Verständnis ze kréien wéi se funktionnéieren. Dësen Artikel wäert beméien Autoencoderen ze demystify, d'Architektur vun Autoencoderen an hir Uwendungen z'erklären.

Wat ass en Autoencoder?

Autoencoders sinn neural Netzwierker. Neural Netzwierker besteet aus multiple Schichten, an den definéierende Aspekt vun engem Autoencoder ass datt d'Inputschichten genau sou vill Informatioun enthalen wéi d'Ausgangsschicht. De Grond datt d'Inputschicht an d'Ausgangsschicht déi exakt selwecht Unzuel un Eenheeten hunn ass datt en Autoencoder zielt d'Inputdaten ze replizéieren. Et gëtt eng Kopie vun den Daten eraus nodeems se se analyséiert hunn an se op eng onkontrolléiert Manéier rekonstruéiert.

D'Donnéeën, déi duerch en Autoencoder beweegen, ginn net nëmmen direkt vum Input op d'Output mapéiert, dat heescht datt d'Netzwierk net nëmmen d'Inputdaten kopéiert. Et ginn dräi Komponenten zu engem Autoencoder: e Kodéierungs- (Input) Deel deen d'Donnéeën kompriméiert, e Komponent deen déi kompriméiert Donnéeën (oder Flaschenhals) handhabt, an en Decoder (Output) Deel. Wann Daten an en Autoencoder gefüttert ginn, ginn se kodéiert an dann op eng méi kleng Gréisst kompriméiert. D'Netzwierk gëtt dann op déi kodéiert / kompriméiert Donnéeën trainéiert an et gëtt eng Erhuelung vun dësen Daten eraus.

Also firwat wëllt Dir en Netzwierk trainéieren fir just d'Donnéeën ze rekonstruéieren déi et ginn? De Grond ass datt d'Netz d'"Essenz" léiert, oder déi wichtegst Feature vun den Inputdaten. Nodeems Dir d'Netzwierk trainéiert hutt, kann e Modell erstallt ginn, deen ähnlech Donnéeën synthetiséieren kann, mat der Zousatz oder Subtraktioun vu bestëmmte Zilfeatures. Zum Beispill, Dir kënnt en Autoencoder op grainy Biller trainéieren an dann den trainéierte Modell benotzen fir d'Korn / Kaméidi aus dem Bild ze läschen.

Autoencoder Architektur

Loosst eis kucken d'Architektur vun engem Autoencoder. Mir diskutéieren d'Haaptarchitektur vun engem Autoencoder hei. Et gi Variatiounen op dëser allgemenger Architektur déi mir an der Rubrik hei drënner diskutéieren.

Foto: Michela Massi iwwer Wikimedia Commons, (https://commons.wikimedia.org/wiki/File:Autoencoder_schema.png)

Wéi virdru scho gesot, kann en Autoencoder wesentlech an dräi verschidde Komponenten opgedeelt ginn: den Encoder, e Flaschenhals an den Decoder.

Den Encoder Deel vum Autoencoder ass typesch e Feedforward, dicht verbonne Netzwierk. Den Zweck vun de Kodéierungsschichten ass d'Inputdaten ze huelen an se an eng latente Raumvertriedung ze kompriméieren, eng nei Duerstellung vun den Donnéeën ze generéieren déi Dimensioun reduzéiert huet.

D'Codeschichten, oder de Flaschenhals, handelen mat der kompriméierter Representatioun vun den Donnéeën. De Flaschenhalscode ass suergfälteg entworf fir déi relevantst Portioune vun den observéierten Donnéeën ze bestëmmen, oder op eng aner Manéier d'Features vun den Donnéeën ze setzen, déi am wichtegsten fir d'Datenrekonstruktioun sinn. D'Zil hei ass et ze bestëmmen wéi eng Aspekter vun den Donnéeën erhale musse ginn a wéi eng verworf kënne ginn. De Flaschenhalscode muss zwee verschidde Considératiounen ausbalancéieren: Representatiounsgréisst (wéi kompakt d'Representatioun ass) a Variabel / Feature Relevanz. De Flaschenhals mécht Element-schlau Aktivatioun op d'Gewiichter a Biases vum Netz. D'Flaschenhalsschicht gëtt och heiansdo eng latent Representatioun oder latent Variablen genannt.

D'Decoderschicht ass dat wat verantwortlech ass fir déi kompriméiert Donnéeën ze huelen an se zréck an eng Representatioun mat de selwechte Dimensiounen ze konvertéieren wéi déi ursprénglech, onverännert Donnéeën. D'Konversioun gëtt mat der latenter Raumvertriedung gemaach, déi vum Encoder erstallt gouf.

Déi meescht Basisarchitektur vun engem Autoencoder ass eng Feed-Forward-Architektur, mat enger Struktur ähnlech wéi eng eenzeg Schicht Perceptron, déi a Multilayer Perceptronen benotzt gëtt. Vill wéi regelméisseg feed-forward neural Netzwierker, gëtt den Auto-Encoder duerch d'Benotzung vun der Réckpropagatioun trainéiert.

Attributer vun engem Autoencoder

Et gi verschidden Aarte vun Autoencoder, awer si hunn all bestëmmte Eegeschaften déi se verbannen.

Autoencoder léiere automatesch. Si erfuerderen keng Etiketten, a wa genuch Daten ginn ass et einfach en Autoencoder ze kréien fir héich Leeschtung op eng spezifesch Aart vun Inputdaten z'erreechen.

Autoencoder sinn datespezifesch. Dëst bedeit datt se nëmmen Daten kënnen kompriméieren déi ganz ähnlech wéi Daten sinn, op deenen den Autoencoder scho trainéiert gouf. Autoencoders sinn och lossy, dat heescht datt d'Ausgänge vum Modell am Verglach mat den Inputdaten ofgebaut ginn.

Wann Dir en Autoencoder designt, musse Maschinnléieringenieuren op véier verschidde Modellhyperparameter oppassen: Codegréisst, Layernummer, Noden pro Layer a Verloschtfunktioun.

D'Codegréisst entscheet wéivill Noden den mëttleren Deel vum Netz ufänken, a manner Noden kompriméieren d'Donnéeë méi. An engem Deep Autoencoder, wärend d'Zuel vun de Schichten all Zuel ka sinn, déi den Ingenieur passend hält, sollt d'Zuel vun den Noden an enger Schicht erofgoen wéi den Encoder weidergeet. Mëttlerweil hält de Géigendeel am Decoder, dat heescht datt d'Zuel vun den Noden pro Layer soll eropgoen wéi d'Decoderschichten op déi lescht Schicht kommen. Schlussendlech ass d'Verloschtfunktioun vun engem Autoencoder typesch entweder binär Kräizentropie oder mëttlere Quadratfehler. Binär Kräiz-Entropie ass gëeegent fir Fäll wou d'Input Wäerter vun den Donnéeën an engem 0 - 1 Beräich sinn.

Autoencoder Typen

Wéi uewen ernimmt, existéieren Variatiounen op der klassescher Autoencoder Architektur. Loosst eis déi verschidden Autoencoderarchitekturen ënnersichen.

Spatz

Foto: Michela Massi iwwer Wikimedia Commons, CC BY SA 4.0 (https://commons.wikimedia.org/wiki/File:Autoencoder_sparso.png)

Wärend Autoencoder typesch e Flaschenhals hunn, deen d'Donnéeën duerch eng Reduktioun vun Noden kompriméiert, spatzen autoencoders sinn eng Alternativ zu deem typesche operationelle Format. An engem spatzen Netzwierk behalen déi verstoppte Schichten déiselwecht Gréisst wéi d'Encoder- an Decoderschichten. Amplaz ginn d'Aktivatioune bannent enger bestëmmter Schicht bestrooft, se ageriicht sou datt d'Verloschtfunktioun besser d'statistesch Feature vun den Inputdaten erfaasst. Fir dat anescht auszedrécken, wärend déi verstoppte Schichten vun engem spatzen Autoencoder méi Eenheeten hunn wéi en traditionellen Autoencoder, sinn nëmmen e gewësse Prozentsaz vun hinnen zu all Moment aktiv. Déi beaflosst Aktivéierungsfunktiounen ginn erhaalen an anerer ginn ignoréiert, an dës Aschränkung hëlleft dem Netz just déi wichtegst Feature vun den Inputdaten ze bestëmmen.

Kontraktiv

Kontraktive Autoencoder sinn entwéckelt fir resistent géint kleng Variatiounen an den Donnéeën ze sinn, eng konsequent Duerstellung vun den Donnéeën ze halen. Dëst gëtt erreecht andeems Dir eng Strof op d'Verloschtfunktioun applizéiert. Dës Regulariséierungstechnik baséiert op der Frobenius Norm vun der Jacobian Matrix fir d'Input Encoder Aktivatiounen. Den Effekt vun dëser Regulariséierungstechnik ass datt de Modell gezwongen ass eng Kodéierung ze konstruéieren wou ähnlech Inputen ähnlech Kodéierungen hunn.

Verlousung

Konvolutional Autoencoder codéieren Inputdaten andeems Dir d'Donnéeën an Ënnersektiounen opdeelt an dann dës Ënnersektiounen an einfache Signaler konvertéieren, déi zesummegefaasst ginn fir eng nei Duerstellung vun den Donnéeën ze kreéieren. Ähnlech wéi Convolution neural Netzwierker, ass e konvolutionalen Autoencoder spezialiséiert op d'Léiere vu Bilddaten, an et benotzt e Filter deen iwwer de ganze Bild Sektioun fir Sektioun geréckelt gëtt. D'Kodéierunge generéiert vun der Kodéierungsschicht kënne benotzt ginn fir d'Bild ze rekonstruéieren, d'Bild ze reflektéieren oder d'Geometrie vum Bild z'änneren. Wann d'Filtere vum Netz geléiert goufen, kënne se op all genuch ähnlech Input benotzt ginn fir d'Features vum Bild ze extrahieren.

Bezeechent

Foto: MAL iwwer Wikimedia Commons, CC BY SA 3.0 (https://en.wikipedia.org/wiki/File:ROF_Denoising_Example.png)

Bezeechent Autencoders Kaméidi an d'Kodéierung aféieren, wat zu enger Kodéierung resultéiert déi eng korrupt Versioun vun den originelle Inputdaten ass. Dës korrupt Versioun vun den Donnéeën gëtt benotzt fir de Modell ze trainéieren, awer d'Verloschtfunktioun vergläicht d'Ausgangswäerter mat der ursprénglecher Input an net de korrupte Input. D'Zil ass datt d'Netzwierk fäeg ass déi originell, net korrupt Versioun vum Bild ze reproduzéieren. Andeems Dir déi korrupt Donnéeën mat den ursprénglechen Donnéeën vergläicht, léiert d'Netzwierk wéi eng Feature vun den Daten am wichtegsten sinn a wéi eng Features onwichteg / Korruptiounen sinn. An anere Wierder, fir datt e Modell déi korrupt Biller denoise kann, muss et déi wichteg Feature vun den Bilddaten extrahéiert hunn.

Variatioun

Variational Autoencoder Bedreiwen andeems Dir Viraussetzungen mécht iwwer wéi déi latent Variablen vun den Daten verdeelt sinn. E Variatiounsautoencoder produzéiert eng Wahrscheinlechkeetsverdeelung fir déi verschidde Feature vun den Trainingsbilder / déi latent Attributer. Beim Training erstellt den Encoder latente Verdeelunge fir déi verschidde Funktiounen vun den Inputbilder.

 

Well de Modell d'Features oder d'Biller als Gaussian Verdeelungen léiert anstatt diskret Wäerter, ass et fäeg fir nei Biller ze generéieren. D'Gaussesch Verdeelung gëtt gesampelt fir e Vektor ze kreéieren, deen an d'Dekodéierungsnetz gefüttert gëtt, wat e Bild baséiert op dësem Vektor vu Proben. Wesentlech léiert de Modell allgemeng Feature vun den Trainingsbiller a gëtt hinnen e puer Wahrscheinlechkeet datt se geschéien. D'Wahrscheinlechkeetsverdeelung kann dann benotzt ginn fir e Bild ëmgedréint ze maachen, nei Biller ze generéieren déi d'Original ausgesinn, Trainingsbilder.

Beim Training vum Netz ginn déi kodéiert Donnéeën analyséiert an den Unerkennungsmodell gëtt zwee Vektoren eraus, déi d'Moyenne an d'Standardabweichung vun de Biller erauszéien. Eng Verdeelung gëtt op Basis vun dëse Wäerter erstallt. Dëst gëtt fir déi verschidde latente Staaten gemaach. Den Decoder hëlt dann zoufälleg Proben aus der entspriechender Verdeelung a benotzt se fir déi initial Inputen an d'Netz ze rekonstruéieren.

Autoencoder Uwendungen

Autoencoders kënne fir eng breet benotzt ginn Villfalt vun Uwendungen, awer si ginn typesch fir Aufgaben wéi Dimensiounsreduktioun, Datendenoising, Feature Extraktioun, Bildgeneratioun, Sequenz fir Sequenz Viraussoen a Empfehlungssystemer benotzt.

Data denoising ass d'Benotzung vun Autoencoders fir Kär / Geräischer aus Biller ze strippen. Ähnlech kënnen Autoencoder benotzt ginn fir aner Aarte vu Bildschued ze reparéieren, wéi onschëlleg Biller oder Biller fehlend Sektiounen. Dimensiounsreduktioun kann hëllefen, héich Kapazitéit Netzwierker nëtzlech Feature vu Biller ze léieren, dat heescht datt d'Autoencoder kënne benotzt ginn fir d'Ausbildung vun aneren Typen vun neurale Netzwierker ze vergréisseren. Dëst ass och wouer fir Autoencoder fir Feature Extraktioun ze benotzen, well Autoencoder kënne benotzt ginn fir Feature vun aneren Trainingsdatesets z'identifizéieren fir aner Modeller ze trainéieren.

Wat d'Bildgeneratioun ugeet, kënnen Autoencoder benotzt ginn fir gefälschte mënschlech Biller oder animéiert Charakteren ze generéieren, wat Uwendungen huet fir Gesiichtserkennungssystemer ze designen oder verschidden Aspekter vun der Animatioun ze automatiséieren.

Sequenz zu Sequenz Prognosemodeller kënne benotzt ginn fir d'temporär Struktur vun Daten ze bestëmmen, dat heescht datt en Autoencoder ka benotzt ginn fir déi nächst souguer an enger Sequenz ze generéieren. Aus dësem Grond kéint en Autoencoder benotzt ginn fir Videoen ze generéieren. Schlussendlech kënnen déif Autoencoder benotzt ginn fir Empfehlungssystemer ze kreéieren andeems se Mustere betreffend Benotzerinteresse ophuelen, mam Encoder analyséiert d'Benotzer Engagementdaten an den Decoder erstellt Empfehlungen déi passend un déi etabléiert Mustere passen.

Blogger a Programméierer mat Spezialitéiten am Machine Learning an Deep Learning Themen. Den Daniel hofft anerer ze hëllefen d'Kraaft vun der AI fir sozial Gutt ze benotzen.