Perceptron er Definisjon av begrepet, funksjoner, applikasjon

Innholdsfortegnelse:

Perceptron er Definisjon av begrepet, funksjoner, applikasjon
Perceptron er Definisjon av begrepet, funksjoner, applikasjon
Anonim

I maskinlæring er en perceptron en overvåket læringsalgoritme for binære klassifikatorer. Det kalles også ofte en perceptron. En binær klassifikator er en funksjon som kan bestemme om en inngang, representert ved en vektor av tall, tilhører en bestemt klasse. Dette er en type lineær klassifikator, det vil si en klassifiseringsalgoritme som gjør sine prediksjoner basert på en lineær prediktorfunksjon som kombinerer et sett med vekter med en egenskapsvektor.

Perceptron formler
Perceptron formler

De siste årene har kunstige nevrale nettverk fått oppmerksomhet på grunn av fremskritt innen dyp læring. Men hva er et kunstig nevr alt nettverk og hva består det av?

Meet the Perceptron

I denne artikkelen skal vi ta en rask titt på kunstige nevrale nettverk generelt, deretter se på et enkelt nevron, og til slutt (dette er kodingsdelen) tar vi den mest grunnleggende versjonen av en kunstig nevron, perceptron, og klassifisere dets punkter ifly.

Har du noen gang lurt på hvorfor det er oppgaver som er så enkle for enhver person, men utrolig vanskelig for datamaskiner? Kunstige nevrale nettverk (ANN for kort) ble inspirert av det menneskelige sentralnervesystemet. I likhet med deres biologiske motstykke er ANN-er bygget på enkle signalbehandlingselementer som er kombinert til et stort rutenett.

Nevrale nettverk må lære

I motsetning til tradisjonelle algoritmer, kan ikke nevrale nettverk "programmeres" eller "tunes" til å fungere etter hensikten. Akkurat som den menneskelige hjernen, må de lære å fullføre oppgaven. Grovt sett er det tre læringsstrategier.

Den enkleste måten kan brukes hvis det er en testsak (stor nok) med kjente resultater. Deretter går treningen slik: behandle ett sett med data. Sammenlign resultatet med det kjente resultatet. Sett opp nettverket og prøv igjen. Dette er læringsstrategien vi skal bruke her.

Utilsyn læring

Nyttig hvis det ikke er noen testdata tilgjengelig og hvis det er mulig å utlede en kostnadsfunksjon fra ønsket oppførsel. Kostnadsfunksjonen forteller det nevrale nettverket hvor langt det er fra målet. Nettverket kan deretter justere parameterne sine i farten og jobbe med ekte data.

Forsterket læring

«Gulrot og pinne»-metoden. Kan brukes hvis det nevrale nettverket genererer en kontinuerlig handling. Over tid lærer nettverket å foretrekke de riktige handlingene og unngå de gale.

Ok, nå vet vi litt omnatur av kunstige nevrale nettverk, men hva er de laget av? Hva vil vi se hvis vi åpner lokket og ser inni?

Nevroner er byggesteinene i nevrale nettverk. Hovedkomponenten i ethvert kunstig nevrale nettverk er en kunstig nevron. Ikke bare er de oppk alt etter sine biologiske motstykker, men de er også modellert etter oppførselen til nevroner i hjernen vår.

Biologi vs teknologi

Akkurat som et biologisk nevron har dendritter for å motta signaler, en cellekropp til å behandle dem, og et akson for å sende signaler til andre nevroner, har et kunstig nevron flere inngangskanaler, et prosesseringstrinn og en utgang som kan forgrene seg til mange andre. kunstige nevroner.

Kan vi gjøre noe nyttig med en enkelt perceptron? Det er en klasse med problemer som en enkelt perceptron kan løse. Betrakt inngangsvektoren som punktkoordinater. For en vektor med n-elementer vil dette punktet leve i n-dimensjon alt rom. For å forenkle livet (og koden nedenfor), la oss anta at det er 2D. Som et stykke papir.

Deretter, forestill deg at vi tegner noen tilfeldige punkter på dette planet og deler dem i to sett ved å tegne en rett linje over papiret. Denne linjen deler punktene i to sett, ett over og ett under linjen. De to settene kalles da lineært separerbare.

En perceptron, uansett hvor enkelt det kan virke, er i stand til å vite hvor denne linjen er, og når den er ferdig med treningen, kan den avgjøre om et gitt punkt er over eller under denne linjen.

Historieoppfinnelser

Algorithmen for denne metoden ble oppfunnet i 1957 ved Cornell Aviation Laboratory av Frank Rosenblatt (ofte oppk alt etter ham), finansiert av US Office of Naval Research. Perceptronen var ment å være en maskin, ikke et program, og selv om den første implementeringen var i programvare for IBM 704, ble den deretter implementert på spesialbygd maskinvare som "Mark 1 Perceptron". Denne maskinen ble designet for bildegjenkjenning: den hadde en rekke av 400 fotoceller tilfeldig koblet til nevroner. Vektene ble kodet i potensiometre og vektoppdateringen under trening ble utført av elektriske motorer.

På en pressekonferanse arrangert av den amerikanske marinen i 1958 kom Rosenblatt med uttalelser om perceptronen som forårsaket heftig debatt blant det unge AI-miljøet; basert på Rosenblatts påstander rapporterte New York Times at perceptronen er "den embryonale elektroniske datamaskinen som marinen forventer å kunne gå, snakke, se, skrive, reprodusere seg selv og være klar over dens eksistens."

Perceptron-segmenter
Perceptron-segmenter

Ytterligere utvikling

Selv om perceptronen i utgangspunktet virket lovende, ble det raskt bevist at perceptrons ikke kunne trenes til å gjenkjenne mange klasser av mønstre. Dette førte til en stagnasjon i forskningsfeltet med perceptron nevrale nettverk i mange år før det ble anerkjent at et feed-forward nevr alt nettverk med to eller flere lag (også k altflerlags perseptron) hadde mye mer prosessorkraft enn enkeltlags perseptroner (også k alt enkeltlags perseptroner). En enkeltlags perceptron er bare i stand til å studere lineært separerbare strukturer. I 1969 viste den berømte boken "Perceptrons" av Marvin Minsky og Seymour Papert at disse klassene av nettverk ikke kunne lære XOR-funksjonen. Dette gjelder imidlertid ikke for ikke-lineære klassifiseringsfunksjoner som kan brukes i en enkeltlags perceptron.

Perceptron Rosenblatt
Perceptron Rosenblatt

Bruken av slike funksjoner utvider funksjonene til perceptronen, inkludert implementeringen av XOR-funksjonen. Det antas ofte (feilaktig) at de også antok at et lignende resultat ville gjelde for et flerlags perceptronnettverk. Dette er imidlertid ikke tilfelle, siden både Minsky og Papert allerede visste at flerlags perseptroner var i stand til å produsere en XOR-funksjon. Tre år senere publiserte Steven Grossberg en serie artikler som presenterte nettverk som er i stand til å modellere differensialfunksjoner, kontrastforbedringsfunksjoner og XOR-funksjoner.

Verk ble utgitt i 1972 og 1973. Imidlertid forårsaket den ofte oversett Minsky/Papert-teksten en betydelig nedgang i interesse og forskningsfinansiering med nevrale nettverksperceptron. Ytterligere ti år gikk før nevrale nettverksforskning ble gjenopplivet på 1980-tallet.

Funksjoner

The Perceptron Kernel Algorithm ble introdusert i 1964 av Yzerman et al. Mori og Rostamizadeh (2013), som utvider tidligere resultater og gir nye grenser L1.

Perceptron er en forenklet modell av et biologisk nevron. Mens kompleksiteten til biologiske nevrale modeller ofte kreves for å forstå nevral atferd fullt ut, viser forskning at en perceptron-lignende lineær modell kan indusere noe av atferden sett i ekte nevroner.

Perceptronen er en lineær klassifikator, så den vil aldri komme inn i en tilstand med alle inngangsvektorer korrekt klassifisert hvis treningssettet D ikke er lineært separerbart, dvs. hvis positive eksempler ikke kan skilles fra negative eksempler med et hyperplan. I dette tilfellet vil ingen "tilnærmet" løsning trinn for trinn gjennom standard læringsalgoritmen, i stedet vil læring mislykkes fullstendig. Derfor, hvis den lineære separerbarheten til treningssettet ikke er kjent på forhånd, bør ett av trenings alternativene nedenfor brukes.

Perceptron-forhold
Perceptron-forhold

Pocket Algorithm

Ratchet-lommealgoritmen løser perceptronlæringsrobusthetsproblemet ved å beholde den beste løsningen så langt "i lommen". Lommealgoritmen returnerer da løsningen i lommen i stedet for den siste løsningen. Den kan også brukes for ikke-separerbare datasett der målet er å finne en perceptron med få feilklassifiseringer. Imidlertid ser disse løsningene stokastiske ut, og lommealgoritmen passer derfor ikke til dem.gradvis i løpet av treningen, og de er ikke garantert oppdaget over et visst antall treningstrinn.

Maxover Algorithm

Maxovers algoritme er "robust" i den forstand at den vil konvergere uavhengig av kunnskapen om den lineære separerbarheten til datasettet. Ved lineær splittelse vil dette løse læringsproblemet, eventuelt også med optimal stabilitet (maksimal margin mellom timene). For ikke-separerbare datasett vil en løsning med et lite antall feilklassifiseringer bli returnert. I alle tilfeller nærmer algoritmen seg gradvis løsningen i løpet av læringsprosessen, uten å huske tidligere tilstander og uten tilfeldige hopp. Konvergens ligger i global optimalitet for delte datasett og lokal optimalitet for ikke-separerbare datasett.

perceptron ligning
perceptron ligning

Voted Perceptron

The Voted Perceptron-algoritme er en variant som bruker flere vektede perceptrons. Algoritmen starter en ny perceptron hver gang et eksempel er feilklassifisert, og initialiserer vektvektoren med de endelige vektene til den siste perceptronen. Hvert perceptron vil også få en annen vekt som tilsvarer hvor mange eksempler de klassifiserer riktig før de feilklassifiserer ett, og på slutten vil utgangen være en vektet stemme over hele perceptronen.

Application

I separerbare problemer kan perceptrontrening også være rettet mot å finne den største skillegrensen mellom klasser. Såk altEn optimal stabilitetsperceptron kan bestemmes ved å bruke iterativ trening og optimaliseringsopplegg som Min-Over eller AdaTron-algoritmen. AdaTron utnytter det faktum at det tilsvarende kvadratiske optimaliseringsproblemet er konveks. Den optimale stabilitetsperceptronen, sammen med kjernetrikset, er det konseptuelle grunnlaget for støttevektormaskinen.

Flerlags perceptron
Flerlags perceptron

Alternativ

En annen måte å løse ikke-lineære problemer uten å bruke flere lag er å bruke høyere ordensnettverk (sigma-pi-blokk). I denne typen nettverk utvides hvert element i inngangsvektoren med hver parvis kombinasjon av multipliserte innganger (andre orden). Dette kan utvides til et n-orders nettverk. Perceptron er en veldig fleksibel ting.

Husk imidlertid at den beste klassifisereren ikke nødvendigvis er den som nøyaktig klassifiserer alle treningsdata. Faktisk, hvis vi hadde den tidligere begrensningen at dataene kommer fra likevariante Gauss-fordelinger, er en lineær splittelse i inngangsrommet optimal, og en ikke-lineær løsning blir overstyrt.

Andre lineære klassifiseringsalgoritmer inkluderer Winnow, støttevektor og logistisk regresjon. Perceptron er et universelt sett med algoritmer.

Russisk oversettelse av ordningen
Russisk oversettelse av ordningen

Hovedomfang for veiledet læring

Supervised learning er en maskinlæringsoppgave som lærer en funksjon som kartlegger input til outputbasert på eksempler på I/O-par. De utleder en funksjon fra merkede treningsdata som består av et sett med eksempler. I overvåket læring er hvert eksempel et par som består av et inngangsobjekt (vanligvis en vektor) og en ønsket utgangsverdi (også k alt et kontrollsignal).

Den veiledede læringsalgoritmen analyserer treningsdataene og produserer en estimert funksjon som kan brukes til å vise nye eksempler. Det optimale scenariet ville tillate algoritmen å bestemme klasseetiketter riktig for usynlige forekomster. Dette krever at læringsalgoritmen generaliserer læringsdataene til usynlige situasjoner på en "rimelig" måte.

Den parallelle oppgaven i menneske- og dyrepsykologi kalles ofte konseptuell læring.

Anbefalt: