Perceptron er Definition af begrebet, funktioner, applikation

Indholdsfortegnelse:

Perceptron er Definition af begrebet, funktioner, applikation
Perceptron er Definition af begrebet, funktioner, applikation
Anonim

I maskinlæring er en perceptron en overvåget læringsalgoritme til binære klassifikatorer. Det kaldes også ofte en perceptron. En binær klassifikator er en funktion, der kan afgøre, om et input, repræsenteret ved en vektor af tal, tilhører en bestemt klasse. Dette er en type lineær klassifikator, det vil sige en klassifikationsalgoritme, der laver sine forudsigelser baseret på en lineær forudsigelsesfunktion, der kombinerer et sæt vægte med en egenskabsvektor.

Perceptron formler
Perceptron formler

I de seneste år har kunstige neurale netværk fået opmærksomhed på grund af fremskridt inden for dyb læring. Men hvad er et kunstigt neur alt netværk, og hvad består det af?

Mød Perceptron

I denne artikel tager vi et hurtigt kig på kunstige neurale netværk generelt, ser derefter på en enkelt neuron, og til sidst (dette er kodningsdelen) tager vi den mest grundlæggende version af en kunstig neuron, perceptronen, og klassificere dens punkter ifly.

Har du nogensinde undret dig over, hvorfor der er opgaver, der er så nemme for enhver person, men utrolig svære for computere? Kunstige neurale netværk (ANN for kort) var inspireret af det menneskelige centralnervesystem. Ligesom deres biologiske modstykke er ANN'er bygget på simple signalbehandlingselementer, der er kombineret til et stort gitter.

Neurale netværk skal lære

I modsætning til traditionelle algoritmer kan neurale netværk ikke "programmeres" eller "tunes" til at fungere efter hensigten. Ligesom den menneskelige hjerne skal de lære at udføre opgaven. Groft sagt er der tre læringsstrategier.

Den nemmeste måde kan bruges, hvis der er en testsag (stor nok) med kendte resultater. Så går træningen sådan her: bearbejd ét sæt data. Sammenlign resultatet med det kendte resultat. Konfigurer netværket, og prøv igen. Dette er den læringsstrategi, vi vil bruge her.

Usupervised learning

Nyttig, hvis der ikke er tilgængelige testdata, og hvis det er muligt at udlede en omkostningsfunktion fra den ønskede adfærd. Omkostningsfunktionen fortæller det neurale netværk, hvor langt det er fra målet. Netværket kan derefter justere sine parametre i farten og arbejde med rigtige data.

Forstærket læring

"gulerod og stok"-metoden. Kan bruges, hvis det neurale netværk genererer en kontinuerlig handling. Med tiden lærer netværket at foretrække de rigtige handlinger og undgå de forkerte.

Okay, nu ved vi lidt omarten af kunstige neurale netværk, men hvad er de egentlig lavet af? Hvad vil vi se, hvis vi åbner låget og ser ind?

Neuroner er byggestenene i neurale netværk. Hovedkomponenten i ethvert kunstigt neur alt netværk er en kunstig neuron. Ikke alene er de opkaldt efter deres biologiske modstykker, men de er også modelleret efter neuronernes adfærd i vores hjerner.

Biologi vs teknologi

Ligesom en biologisk neuron har dendritter til at modtage signaler, en cellekrop til at behandle dem og en axon til at sende signaler til andre neuroner, har en kunstig neuron flere inputkanaler, et behandlingstrin og et output, der kan forgrene sig til mange andre. kunstige neuroner.

Kan vi gøre noget nyttigt med en enkelt perceptron? Der er en klasse af problemer, som en enkelt perceptron kan løse. Betragt inputvektoren som punktkoordinater. For en vektor med n-elementer vil dette punkt leve i n-dimensionelt rum. For at forenkle livet (og koden nedenfor), lad os antage, at det er 2D. Som et stykke papir.

Forestil dig dernæst, at vi tegner nogle tilfældige punkter på dette plan og deler dem i to sæt ved at tegne en lige linje på tværs af papiret. Denne linje deler punkterne i to sæt, et over og et under linjen. De to sæt kaldes derefter lineært adskillelige.

En perceptron, uanset hvor simpel den kan virke, er i stand til at vide, hvor denne linje er, og når den er færdig med træningen, kan den afgøre, om et givet punkt er over eller under denne linje.

Historieopfindelser

Algorithmen til denne metode blev opfundet i 1957 på Cornell Aviation Laboratory af Frank Rosenblatt (ofte opkaldt efter ham), finansieret af US Office of Naval Research. Perceptronen var beregnet til at være en maskine, ikke et program, og selvom dens første implementering var i software til IBM 704, blev den efterfølgende implementeret på specialbygget hardware som "Mark 1 Perceptron". Denne maskine var designet til billedgenkendelse: den havde en række af 400 fotoceller, der var tilfældigt forbundet med neuroner. Vægtene blev kodet i potentiometre, og vægtopdateringen under træning blev udført af elektriske motorer.

På en pressekonference arrangeret af den amerikanske flåde i 1958 kom Rosenblatt med udtalelser om perceptronen, der forårsagede ophedet debat blandt det unge AI-samfund; baseret på Rosenblatts påstande rapporterede New York Times, at perceptronen er "den embryonale elektroniske computer, som flåden forventer at kunne gå, tale, se, skrive, reproducere sig selv og være opmærksom på dens eksistens."

Perceptron segmenter
Perceptron segmenter

Yderligere udvikling

Selvom perceptronen oprindeligt virkede lovende, blev det hurtigt bevist, at perceptroner ikke kunne trænes til at genkende mange klasser af mønstre. Dette førte til en stagnation i forskningsfeltet med perceptron neurale netværk i mange år, før det blev erkendt, at et feed-forward neur alt netværk med to eller flere lag (også kaldetflerlagsperceptron) havde meget mere processorkraft end enkeltlagsperceptroner (også kaldet enkeltlagsperceptroner). En enkeltlagsperceptron er kun i stand til at studere lineært adskillelige strukturer. I 1969 viste den berømte bog "Perceptrons" af Marvin Minsky og Seymour Papert, at disse klasser af netværk ikke kunne lære XOR-funktionen. Dette gælder dog ikke for ikke-lineære klassifikationsfunktioner, der kan bruges i en enkeltlagsperceptron.

Perceptron Rosenblatt
Perceptron Rosenblatt

Brugen af sådanne funktioner udvider perceptronens muligheder, herunder implementeringen af XOR-funktionen. Det antages ofte (forkert), at de også antog, at et lignende resultat ville gælde for et flerlags perceptronnetværk. Dette er dog ikke tilfældet, da både Minsky og Papert allerede vidste, at flerlagsperceptroner var i stand til at producere en XOR-funktion. Tre år senere udgav Steven Grossberg en række artikler, der præsenterede netværk, der er i stand til at modellere differentialfunktioner, kontrastforstærkningsfunktioner og XOR-funktioner.

Works blev udgivet i 1972 og 1973. Imidlertid forårsagede den ofte oversete Minsky/Papert-tekst et betydeligt fald i interesse og forskningsfinansiering med det neurale netværk perceptron. Der gik yderligere ti år, før forskningen i neurale netværk blev genoplivet i 1980'erne.

Funktioner

The Perceptron Kernel Algorithm blev introduceret i 1964 af Yzerman et al. Mori og Rostamizadeh (2013), som udvider tidligere resultater og giver nye grænser L1.

Perceptron er en forenklet model af en biologisk neuron. Mens kompleksiteten af biologiske neurale modeller ofte er påkrævet for fuldt ud at forstå neural adfærd, viser forskning, at en perceptronlignende lineær model kan inducere noget af den adfærd, der ses i rigtige neuroner.

Perceptronen er en lineær klassifikator, så den vil aldrig komme i en tilstand med alle inputvektorer korrekt klassificeret, hvis træningssættet D ikke er lineært adskilleligt, dvs. hvis positive eksempler ikke kan adskilles fra negative eksempler med et hyperplan. I dette tilfælde vil ingen "omtrentlig" løsning trin for trin gennem standardindlæringsalgoritmen, i stedet vil læring mislykkes fuldstændigt. Hvis træningssættets lineære adskillelighed ikke er kendt på forhånd, bør en af træningsmulighederne nedenfor bruges.

Perceptron relationer
Perceptron relationer

Pocket Algorithm

Skralde-lommealgoritmen løser problemet med perceptronindlæring af robusthed ved at holde den bedste løsning, der hidtil er fundet, "i lommen". Lommealgoritmen returnerer derefter løsningen i lommen i stedet for den sidste løsning. Det kan også bruges til ikke-adskillelige datasæt, hvor målet er at finde en perceptron med få fejlklassificeringer. Disse løsninger ser dog stokastiske ud, og derfor passer lommealgoritmen ikke til dem.gradvist i løbet af træningen, og de er ikke garanteret at blive opdaget over et vist antal træningstrin.

Maxover Algorithm

Maxovers algoritme er "robust" i den forstand, at den vil konvergere uanset viden om datasættets lineære adskillelighed. I tilfælde af en lineær opdeling vil dette løse læringsproblemet, eventuelt endda med optimal stabilitet (maksimal margin mellem klasserne). For ikke-adskillelige datasæt vil en løsning med et lille antal fejlklassificeringer blive returneret. I alle tilfælde nærmer algoritmen sig gradvist løsningen under indlæringsprocessen, uden at huske tidligere tilstande og uden tilfældige hop. Konvergens ligger i global optimalitet for delte datasæt og lokal optimalitet for ikke-adskillelige datasæt.

perceptron ligning
perceptron ligning

Voted Perceptron

The Voted Perceptron-algoritme er en variant, der bruger flere vægtede perceptroner. Algoritmen starter en ny perceptron hver gang et eksempel er fejlklassificeret, og initialiserer vægtvektoren med den sidste perceptrons endelige vægte. Hver perceptron vil også få en forskellig vægt svarende til, hvor mange eksempler de klassificerer korrekt, før de misklassificerer et, og i slutningen vil outputtet være en vægtet stemme over hele perceptronen.

Application

I separerbare problemer kan perceptrontræning også sigte mod at finde den største adskillelsesgrænse mellem klasser. SåkaldteEn optimal stabilitetsperceptron kan bestemmes ved hjælp af iterativ træning og optimeringsskemaer såsom Min-Over eller AdaTron-algoritmen. AdaTron udnytter det faktum, at det tilsvarende kvadratiske optimeringsproblem er konveks. Den optimale stabilitetsperceptron er sammen med kernetricket det konceptuelle grundlag for støttevektormaskinen.

Flerlagsperceptron
Flerlagsperceptron

Alternativ

En anden måde at løse ikke-lineære problemer på uden at bruge flere lag er at bruge netværk af højere orden (sigma-pi-blok). I denne type netværk udvides hvert element i inputvektoren med hver parvis kombination af multiplicerede input (anden orden). Dette kan udvides til et n-orders netværk. Perceptron er en meget fleksibel ting.

Husk dog, at den bedste klassificering ikke nødvendigvis er den, der præcist klassificerer alle træningsdata. Faktisk, hvis vi havde den forudgående begrænsning, at dataene kommer fra Gauss-fordelinger med lige varianter, er en lineær opdeling i inputrummet optimal, og en ikke-lineær løsning tilsidesættes.

Andre lineære klassifikationsalgoritmer inkluderer Winnow, understøtter vektor og logistisk regression. Perceptron er et universelt sæt algoritmer.

Russisk oversættelse af ordningen
Russisk oversættelse af ordningen

Hovedområde for superviseret læring

Overvåget læring er en maskinlæringsopgave, der lærer en funktion, der kortlægger input til outputbaseret på eksempler på I/O-par. De udleder en funktion fra mærkede træningsdata bestående af et sæt eksempler. I overvåget læring er hvert eksempel et par bestående af et inputobjekt (norm alt en vektor) og en ønsket outputværdi (også kaldet et styresignal).

Den overvågede læringsalgoritme analyserer træningsdataene og producerer en estimeret funktion, der kan bruges til at vise nye eksempler. Det optimale scenarie ville give algoritmen mulighed for korrekt at bestemme klasseetiketter for usynlige forekomster. Dette kræver, at læringsalgoritmen generaliserer læringsdataene til usete situationer på en "rimelig" måde.

Den parallelle opgave i menneske- og dyrepsykologi kaldes ofte konceptuel læring.

Anbefalede: