Autoencoders - Hoofdcomponenten en architectuur van Autoencoder

Inhoudsopgave:

Anonim

Inleiding tot autoencoders

Het is het geval van kunstmatige neurale mesh die wordt gebruikt om op effectieve wijze effectieve datacodering te ontdekken. Het doel van de Autoencoder wordt gebruikt om de presentatie te leren voor een groep gegevens, met name voor step-down dimensionaliteit. Autoencoders hebben een unieke functie waarbij de invoer gelijk is aan de uitvoer door feedforwarding-netwerken te vormen. Autoencoder verandert de invoer in gecomprimeerde gegevens om een ​​lage dimensionale code te vormen en haalt de invoer vervolgens weer terug om de gewenste uitvoer te vormen. De gecomprimeerde invoercode wordt ook latente ruimteweergave genoemd. Simpel gezegd, het belangrijkste doel is om vervorming tussen circuits te verminderen.

Er zijn drie hoofdcomponenten in Autoencoder. Ze zijn Encoder, Decoder en Code. De encoder en decoder zijn volledig verbonden om een ​​feed forwarding mesh te vormen. De code fungeert als een enkele laag die fungeert als per eigen dimensie. Om een ​​Autoencoder te ontwikkelen, moet u een hyperparameter instellen, dwz dat u het aantal knooppunten in de kernlaag moet instellen. Op een meer gedetailleerde manier is het uitgangsnetwerk van de decoder een spiegelbeeld van de ingangscodeerder. De decoder produceert de gewenste uitvoer alleen met behulp van de codelaag.

Zorg ervoor dat de encoder en decoder dezelfde dimensionale waarden hebben. De belangrijke parameter om autoencoder in te stellen is de codegrootte, het aantal lagen en het aantal knooppunten in elke laag.

De codegrootte wordt bepaald door het totale aantal knooppunten in de middelste laag. Om effectieve compressie te krijgen, is de kleine maat van een middelste laag aan te raden. Het aantal lagen in autoencoder kan naar wens diep of ondiep zijn. Het aantal knooppunten in autoencoder moet hetzelfde zijn in zowel encoder als decoder. De laag decoder en encoder moet symmetrisch zijn.

In gestapelde autoencoder heb je één onzichtbare laag in zowel encoder als decoder. Het bestaat uit handgeschreven foto's met een grootte van 28 * 28. Nu kunt u een autoencoder ontwikkelen met 128 knooppunten in de onzichtbare laag met 32 ​​als codegrootte. Gebruik deze functie om veel aantallen lagen toe te voegen

model.add(Dense(16, activation='relu'))
model.add(Dense(8, activation='relu'))

voor conversie,

layer_1 = Dense(16, activation='relu')(input)
layer_2 = Dense(8, activation='relu')(layer_1)

Nu wordt de uitvoer van deze laag toegevoegd als invoer voor de volgende laag. dit is de opvraagbare laag in deze dichte methode. De decoder voert deze functie uit. Het gebruikt de sigmoïde methode om output tussen 0 en 1 te verkrijgen. Omdat de input tussen 0 en 1 bereik ligt

Reconstructie van invoer door een Autoencoder in deze methode wordt gedaan door voorspelling. De individuele beeldtest wordt uitgevoerd en de uitvoer is niet exact zo invoer maar vergelijkbaar als invoer. Om deze problemen te overwinnen, kunt u de autoencoder efficiënter maken door veel lagen toe te voegen en meerdere knooppunten aan lagen toe te voegen. Maar als het krachtiger wordt, resulteert dit in een kopie van gegevens die vergelijkbaar zijn met de invoer. Maar dit is niet het verwachte resultaat.

Architectuur van Autoencoder

In deze gestapelde architectuur heeft de codelaag een kleine dimensionale waarde dan invoerinformatie, waarin wordt gezegd dat deze zich onder volledige autoencoder bevindt.

1. Denoising Autoencoders

Bij deze methode kunt u het invoersignaal niet naar het uitvoersignaal kopiëren om het perfecte resultaat te krijgen. Omdat hier het ingangssignaal ruis bevat die moet worden afgetrokken voordat het resultaat wordt verkregen dat de onderliggende benodigde gegevens zijn. Dit proces wordt een denoising-autoencoder genoemd. De eerste rij bevat originele afbeeldingen. Om ze een luidruchtig ingangssignaal te geven, worden enkele luidruchtige gegevens toegevoegd. Nu kunt u de autoencoder als volgt ontwerpen om een ​​ruisvrije output te krijgen

autoencoder.fit(x_train, x_train)

Een gemodificeerde Autoencoder is als volgt,

autoencoder.fit(x_train_noisy, x_train)

Daarom kunt u gemakkelijk ruisvrije uitvoer krijgen.

Convolution autoencoder wordt gebruikt om complexe signalen te verwerken en krijgt ook een beter resultaat dan het normale proces

2. Sparse Autoencoders

Om autoencoders effectief te gebruiken, kunt u twee stappen volgen.

Stel een kleine codegrootte in en de andere duidt autoencoder aan.

Een andere effectieve methode is regularisatie. Om deze regularisatie toe te passen, moet u de spaarzaamheidsbeperkingen regulariseren. Om sommige delen van knooppunten in de laag te activeren, voegt u wat extra termen toe aan de verliesfunctie die de autoencoder pusht om elke invoer als gecombineerde kleinere knooppunten te maken en het zorgt ervoor dat de encoder enkele unieke structuren in de gegeven gegevens vindt. Het is ook van toepassing op een groot aantal gegevens omdat slechts een deel van de knooppunten is geactiveerd.

De waarde van de spaarzaamheidsbeperking is dichter bij nul

Om een ​​codelaag te genereren,

code = Dense(code_size, activation='relu')(input_img)

Om een ​​regulariserende waarde toe te voegen,

code = Dense(code_size, activation='relu', activity_regularizer=l1(10e-6))(input_img)

In dit model is slechts 0, 01 het laatste verlies ook vanwege de regularisatietermijn.

In dit spaarzame model is een aantal codewaarden waar voor het verwachte resultaat. Maar het heeft vrij lage variantie waarden.

Geregulariseerde autoencoders hebben unieke eigenschappen, zoals robuustheid voor ontbrekende invoer, schaarse weergave en waarde die het dichtst bij derivaten in presentaties ligt. Houd de minimale codegrootte en de ondiepe encoder en decoder om effectief te gebruiken. Ze ontdekken een hoge inputcapaciteit en hebben geen extra regularisatieterm nodig om te kunnen coderen. Ze zijn getraind om een ​​maximaal effect te geven in plaats van kopiëren en plakken.

3. Variabele Autoencoder

Het wordt gebruikt in complexe gevallen en het vindt de kansen op distributie van de invoergegevens. Deze variabele autoencoder gebruikt een bemonsteringsmethode om de effectieve uitvoer te verkrijgen. Het volgt dezelfde architectuur als geregulariseerde autoencoders

Conclusie

Daarom worden autoencoders gebruikt om real-world gegevens en afbeeldingen te leren, die betrokken zijn bij binaire en multiclass-classificaties. Het eenvoudige proces voor vermindering van de dimensionaliteit. Het wordt toegepast in een Beperkte Boltzmann-machine en speelt daarin een cruciale rol. Het wordt ook gebruikt in de biochemische industrie om het niet-onthulde deel van leren te ontdekken en gebruikt om het patroon van intelligent gedrag te identificeren. Elke component in machine learning heeft een zelfgeorganiseerd karakter, Autoencoder is er een van succesvol leren in kunstmatige intelligentie

Aanbevolen artikelen

Dit is een gids voor Autoencoders. Hier bespreken we de belangrijkste componenten in Autoencoder die een encoder, decoder en code zijn en de architectuur van Autoencoder. U kunt ook de volgende artikelen bekijken voor meer informatie -

  1. Big Data-architectuur
  2. Codering versus decodering
  3. Machine Learning-architectuur
  4. Big Data-technologieën