Perceptron is Definitie van de term, kenmerken, toepassing

Inhoudsopgave:

Perceptron is Definitie van de term, kenmerken, toepassing
Perceptron is Definitie van de term, kenmerken, toepassing
Anonim

In machine learning is een perceptron een leeralgoritme onder toezicht voor binaire classificaties. Het wordt ook vaak een perceptron genoemd. Een binaire classificatie is een functie die kan beslissen of een invoer, voorgesteld door een vector van getallen, tot een bepaalde klasse behoort. Dit is een type lineaire classificatie, dat wil zeggen een classificatie-algoritme dat zijn voorspellingen doet op basis van een lineaire voorspellerfunctie die een reeks gewichten combineert met een kenmerkvector.

Perceptron-formules
Perceptron-formules

In de afgelopen jaren hebben kunstmatige neurale netwerken aandacht gekregen dankzij de vooruitgang in deep learning. Maar wat is een kunstmatig neuraal netwerk en waaruit bestaat het?

Maak kennis met de Perceptron

In dit artikel zullen we snel kijken naar kunstmatige neurale netwerken in het algemeen, dan kijken we naar een enkel neuron, en ten slotte (dit is het coderingsgedeelte) nemen we de meest elementaire versie van een kunstmatige neuron, het perceptron, en classificeer zijn punten invliegtuig.

Heb je je ooit afgevraagd waarom er taken zijn die zo gemakkelijk zijn voor iedereen, maar ongelooflijk moeilijk voor computers? Kunstmatige neurale netwerken (kortweg ANN) zijn geïnspireerd op het menselijke centrale zenuwstelsel. Net als hun biologische tegenhanger, zijn ANN's gebouwd op eenvoudige signaalverwerkingselementen die worden gecombineerd tot een groot raster.

Neurale netwerken moeten leren

In tegenstelling tot traditionele algoritmen, kunnen neurale netwerken niet worden "geprogrammeerd" of "afgestemd" om te werken zoals bedoeld. Net als het menselijk brein, moeten ze leren om de taak te voltooien. Er zijn grofweg drie leerstrategieën.

De eenvoudigste manier kan worden gebruikt als er een testcase is (groot genoeg) met bekende resultaten. Dan gaat de training als volgt: verwerk één set gegevens. Vergelijk het resultaat met het bekende resultaat. Stel het netwerk in en probeer het opnieuw. Dit is de leerstrategie die we hier zullen gebruiken.

Onbegeleid leren

Handig als er geen testgegevens beschikbaar zijn en als het mogelijk is om uit het gewenste gedrag een kostenfunctie af te leiden. De kostenfunctie vertelt het neurale netwerk hoe ver het van het doel verwijderd is. Het netwerk kan dan zijn parameters direct aanpassen, werkend met echte data.

Versterkt leren

De "wortel en stok"-methode. Kan worden gebruikt als het neurale netwerk een continue actie genereert. Na verloop van tijd leert het netwerk de voorkeur te geven aan de juiste acties en de verkeerde te vermijden.

Ok, nu weten we een beetje overaard van kunstmatige neurale netwerken, maar waar zijn ze precies van gemaakt? Wat zullen we zien als we het deksel openen en naar binnen kijken?

Neuronen zijn de bouwstenen van neurale netwerken. Het belangrijkste onderdeel van elk kunstmatig neuraal netwerk is een kunstmatig neuron. Ze zijn niet alleen vernoemd naar hun biologische tegenhangers, maar ze zijn ook gemodelleerd naar het gedrag van neuronen in onze hersenen.

Biologie versus technologie

Net zoals een biologisch neuron dendrieten heeft om signalen te ontvangen, een cellichaam om ze te verwerken en een axon om signalen naar andere neuronen te sturen, heeft een kunstmatig neuron meerdere ingangskanalen, een verwerkingsstadium en één uitgang die vertakken zich naar vele andere kunstmatige neuronen.

Kunnen we iets nuttigs doen met een enkele perceptron? Er is een klasse van problemen die een enkele perceptron kan oplossen. Beschouw de invoervector als puntcoördinaten. Voor een vector met n-elementen zal dit punt in een n-dimensionale ruimte leven. Om het leven (en de onderstaande code) te vereenvoudigen, laten we aannemen dat het 2D is. Als een stuk papier.

Stel je nu voor dat we enkele willekeurige punten op dit vlak tekenen en ze in twee sets splitsen door een rechte lijn over het papier te trekken. Deze lijn verdeelt de punten in twee sets, één boven en één onder de lijn. De twee verzamelingen worden dan lineair scheidbaar genoemd.

Eén perceptron, hoe eenvoudig het ook lijkt, kan weten waar deze lijn is, en wanneer het klaar is met trainen, kan het bepalen of een bepaald punt boven of onder deze lijn ligt.

Geschiedenisuitvindingen

Het algoritme voor deze methode werd in 1957 uitgevonden in het Cornell Aviation Laboratory door Frank Rosenblatt (vaak naar hem genoemd), gefinancierd door het Amerikaanse Office of Naval Research. De perceptron was bedoeld als een machine, niet als een programma, en hoewel de eerste implementatie in software voor de IBM 704 was, werd het later geïmplementeerd op op maat gemaakte hardware als de "Mark 1 Perceptron". Deze machine is ontworpen voor beeldherkenning: hij had een reeks van 400 fotocellen die willekeurig met neuronen waren verbonden. De gewichten werden gecodeerd in potentiometers en de gewichtsupdate tijdens de training werd gedaan door elektromotoren.

Tijdens een persconferentie georganiseerd door de Amerikaanse marine in 1958, deed Rosenblatt uitspraken over het perceptron dat een verhit debat veroorzaakte onder de jonge AI-gemeenschap; op basis van de beweringen van Rosenblatt, meldde de New York Times dat de perceptron "de embryonale elektronische computer is waarvan de marine verwacht dat hij kan lopen, praten, zien, schrijven, zichzelf kan reproduceren en zich bewust kan zijn van het bestaan ervan."

Perceptron-segmenten
Perceptron-segmenten

Verdere ontwikkelingen

Hoewel de perceptron aanvankelijk veelbelovend leek, werd al snel bewezen dat perceptrons niet konden worden getraind om veel klassen patronen te herkennen. Dit leidde tot een stagnatie in het onderzoeksveld met perceptron neurale netwerken gedurende vele jaren voordat werd erkend dat een feed-forward neuraal netwerk met twee of meer lagen (ook welmeerlaagse perceptron) hadden veel meer verwerkingskracht dan enkellaagse perceptrons (ook wel enkellaagse perceptrons genoemd). Een enkellaags perceptron is alleen in staat om lineair scheidbare structuren te bestuderen. In 1969 toonde het beroemde boek "Perceptrons" van Marvin Minsky en Seymour Papert aan dat deze klassen van netwerken de XOR-functie niet konden leren. Dit geldt echter niet voor niet-lineaire classificatiefuncties die kunnen worden gebruikt in een enkellaags perceptron.

Perceptron Rosenblatt
Perceptron Rosenblatt

Het gebruik van dergelijke functies breidt de mogelijkheden van de perceptron uit, inclusief de implementatie van de XOR-functie. Vaak wordt (ten onrechte) aangenomen dat ze er ook vanuit gingen dat een vergelijkbaar resultaat zou gelden voor een meerlaags perceptron-netwerk. Dit is echter niet het geval, aangezien zowel Minsky als Papert al wisten dat meerlaagse perceptrons een XOR-functie konden produceren. Drie jaar later publiceerde Steven Grossberg een reeks artikelen waarin hij netwerken presenteert die in staat zijn differentiële functies, contrastverhogende functies en XOR-functies te modelleren.

Works werden gepubliceerd in 1972 en 1973. De vaak over het hoofd geziene Minsky/Papert-tekst veroorzaakte echter een aanzienlijke daling van de interesse en onderzoeksfinanciering met het neurale netwerk perceptron. Er gingen nog tien jaar voorbij voordat in de jaren tachtig het onderzoek naar neurale netwerken nieuw leven werd ingeblazen.

Kenmerken

Het Perceptron Kernel-algoritme werd in 1964 geïntroduceerd door Yzerman et al. Mori en Rostamizadeh (2013), die eerdere resultaten uitbreiden en nieuwe grenzen aangeven L1.

Perceptron is een vereenvoudigd model van een biologisch neuron. Hoewel de complexiteit van biologische neurale modellen vaak nodig is om neuraal gedrag volledig te begrijpen, toont onderzoek aan dat een perceptron-achtig lineair model een deel van het gedrag kan induceren dat wordt gezien in echte neuronen.

De Perceptron is een lineaire classificatie, dus hij zal nooit in een toestand komen waarin alle invoervectoren correct zijn geclassificeerd als de trainingsset D niet lineair scheidbaar is, d.w.z. als positieve voorbeelden niet kunnen worden gescheiden van negatieve voorbeelden door een hypervlak. In dit geval zal geen "geschatte" oplossing stap voor stap door het standaard leeralgoritme gaan, in plaats daarvan zal het leren volledig mislukken. Daarom, als de lineaire scheidbaarheid van de trainingsset niet a priori bekend is, moet een van de onderstaande trainingsopties worden gebruikt.

Perceptron-relaties
Perceptron-relaties

Zakalgoritme

Het ratel-pocketalgoritme lost het perceptron-leerrobuustheidsprobleem op door de beste oplossing die tot nu toe gevonden is "in the pocket" te houden. Het zakalgoritme retourneert dan de oplossing in de zak in plaats van de laatste oplossing. Het kan ook worden gebruikt voor niet-scheidbare datasets waarbij het doel is om een perceptron te vinden met weinig misclassificaties. Deze oplossingen zien er echter stochastisch uit en daarom past het zakalgoritme er niet bij.geleidelijk in de loop van de training, en het is niet gegarandeerd dat ze worden gedetecteerd over een bepaald aantal trainingsstappen.

Maxover-algoritme

Maxover's algoritme is "robuust" in de zin dat het zal convergeren ongeacht de kennis van de lineaire scheidbaarheid van de dataset. In het geval van een lineaire splitsing lost dit het leerprobleem op, eventueel zelfs bij optimale stabiliteit (maximale marge tussen lessen). Voor niet-scheidbare datasets wordt een oplossing met een klein aantal misclassificaties geretourneerd. In alle gevallen benadert het algoritme de oplossing geleidelijk tijdens het leerproces, zonder eerdere toestanden te onthouden en zonder willekeurige sprongen. Convergentie ligt in globale optimaliteit voor gedeelde datasets en lokale optimaliteit voor niet-scheidbare datasets.

perceptron vergelijking
perceptron vergelijking

Gestemd Perceptron

Het Voted Perceptron-algoritme is een variant die meerdere gewogen perceptrons gebruikt. Het algoritme start een nieuwe perceptron telkens wanneer een voorbeeld verkeerd is geclassificeerd, waarbij de gewichtsvector wordt geïnitialiseerd met de uiteindelijke gewichten van de laatste perceptron. Elke perceptron krijgt ook een ander gewicht dat overeenkomt met het aantal voorbeelden dat ze correct classificeren voordat ze er een verkeerd classificeren, en aan het einde zal de output een gewogen stem zijn over de hele perceptron.

Toepassing

Bij scheidbare problemen kan perceptrontraining ook gericht zijn op het vinden van de grootste scheidingsgrens tussen klassen. zogenaamdEen optimale stabiliteit perceptron kan worden bepaald met behulp van iteratieve trainings- en optimalisatieschema's zoals het Min-Over- of AdaTron-algoritme. AdaTron maakt gebruik van het feit dat het corresponderende kwadratische optimalisatieprobleem convex is. De optimale stabiliteit perceptron, samen met de kernel-truc, is de conceptuele basis van de ondersteunende vectormachine.

Meerlaags perceptron
Meerlaags perceptron

Alternatief

Een andere manier om niet-lineaire problemen op te lossen zonder meerdere lagen te gebruiken, is door netwerken van hogere orde te gebruiken (sigma-pi-blok). In dit type netwerk wordt elk element van de invoervector uitgebreid door elke paarsgewijze combinatie van vermenigvuldigde invoer (tweede orde). Dit kan worden uitgebreid tot een n-order netwerk. De Perceptron is een zeer flexibel ding.

Onthoud echter dat de beste classificatie niet noodzakelijk degene is die alle trainingsgegevens nauwkeurig classificeert. Inderdaad, als we de voorafgaande beperking hadden dat de gegevens afkomstig zijn van Gauss-verdelingen met gelijke varianten, is een lineaire splitsing in de invoerruimte optimaal en wordt een niet-lineaire oplossing overschreven.

Andere lineaire classificatie-algoritmen omvatten Winnow, ondersteuningsvector en logistische regressie. Perceptron is een universele set algoritmen.

Russische vertaling van het schema
Russische vertaling van het schema

Belangrijkste ruimte voor begeleid leren

Supervised learning is een machine learning-taak die een functie leert die input aan output koppeltgebaseerd op voorbeelden van I/O-paren. Ze leiden een functie af uit gelabelde trainingsgegevens die uit een reeks voorbeelden bestaan. Bij begeleid leren is elk voorbeeld een paar bestaande uit een invoerobject (meestal een vector) en een gewenste uitvoerwaarde (ook wel een stuursignaal genoemd).

Het algoritme voor begeleid leren analyseert de trainingsgegevens en produceert een geschatte functie die kan worden gebruikt om nieuwe voorbeelden weer te geven. Het optimale scenario zou het algoritme in staat stellen om klasselabels voor onzichtbare instanties correct te bepalen. Dit vereist dat het leeralgoritme de leergegevens op een "redelijke" manier generaliseert naar ongeziene situaties.

De parallelle taak in de psychologie van mens en dier wordt vaak conceptueel leren genoemd.

Aanbevolen: