I maskininlärning är en perceptron en övervakad inlärningsalgoritm för binära klassificerare. Det kallas också ofta en perceptron. En binär klassificerare är en funktion som kan avgöra om en indata, representerad av en vektor av tal, tillhör någon speciell klass. Detta är en typ av linjär klassificerare, det vill säga en klassificeringsalgoritm som gör sina förutsägelser baserat på en linjär prediktorfunktion som kombinerar en uppsättning vikter med en egenskapsvektor.
Under de senaste åren har artificiella neurala nätverk fått uppmärksamhet på grund av framsteg inom djupinlärning. Men vad är ett artificiellt neur alt nätverk och vad består det av?
Meet the Perceptron
I den här artikeln tar vi en snabb titt på artificiella neurala nätverk i allmänhet, tittar sedan på en enda neuron och slutligen (detta är kodningsdelen) tar vi den mest grundläggande versionen av en artificiell neuron, perceptronen, och klassificera dess punkter iplan.
Har du någonsin undrat varför det finns uppgifter som är så lätta för alla, men otroligt svåra för datorer? Artificiella neurala nätverk (ANN för kort) inspirerades av människans centrala nervsystem. Liksom deras biologiska motsvarighet är ANN:er byggda på enkla signalbehandlingselement som kombineras till ett stort rutnät.
Neurala nätverk måste lära sig
Till skillnad från traditionella algoritmer kan neurala nätverk inte "programmeras" eller "justeras" för att fungera som avsett. Precis som den mänskliga hjärnan måste de lära sig att slutföra uppgiften. Grovt sett finns det tre inlärningsstrategier.
Enklaste sättet kan användas om det finns ett testfall (tillräckligt stort) med kända resultat. Sedan går träningen så här: bearbeta en uppsättning data. Jämför resultatet med det kända resultatet. Konfigurera nätverket och försök igen. Det här är inlärningsstrategin vi kommer att använda här.
Oövervakat lärande
Användbart om det inte finns några tillgängliga testdata och om det är möjligt att härleda någon kostnadsfunktion från det önskade beteendet. Kostnadsfunktionen talar om för det neurala nätverket hur långt det är från målet. Nätverket kan sedan justera sina parametrar i farten och arbeta med riktiga data.
Förstärkt lärande
metoden "morot och pinne". Kan användas om det neurala nätverket genererar en kontinuerlig åtgärd. Med tiden lär sig nätverket att föredra rätt åtgärder och undvika fel.
Okej, nu vet vi lite omartificiella neurala nätverk, men vad är de gjorda av? Vad kommer vi att se om vi öppnar locket och tittar inuti?
Neuroner är byggstenarna i neurala nätverk. Huvudkomponenten i alla artificiella neurala nätverk är en artificiell neuron. De är inte bara uppkallade efter sina biologiska motsvarigheter, utan de är också modellerade efter beteendet hos neuroner i våra hjärnor.
Biologi vs teknik
Precis som en biologisk neuron har dendriter för att ta emot signaler, en cellkropp för att bearbeta dem och en axon för att skicka signaler till andra neuroner, har en artificiell neuron flera ingångskanaler, ett bearbetningssteg och en utgång som kan förgrena sig till många andra. artificiella neuroner.
Kan vi göra något användbart med en enda perceptron? Det finns en klass av problem som en enda perceptron kan lösa. Betrakta ingångsvektorn som punktkoordinater. För en vektor med n-element kommer denna punkt att leva i n-dimensionell rymd. För att förenkla livet (och koden nedan), låt oss anta att det är 2D. Som ett papper.
Föreställ dig sedan att vi ritar några slumpmässiga punkter på det här planet och delar upp dem i två uppsättningar genom att dra en rak linje över papperet. Denna linje delar upp punkterna i två uppsättningar, en ovanför och en under linjen. De två uppsättningarna kallas sedan linjärt separerbara.
En perceptron, hur enkelt det än kan verka, kan veta var den här linjen är, och när den har tränat klart kan den avgöra om en given punkt ligger över eller under denna linje.
Historiauppfinningar
Algorithmen för denna metod uppfanns 1957 vid Cornell Aviation Laboratory av Frank Rosenblatt (ofta uppkallad efter honom), finansierad av US Office of Naval Research. Perceptronen var avsedd att vara en maskin, inte ett program, och även om dess första implementering var i mjukvara för IBM 704, implementerades den sedan på specialbyggd hårdvara som "Mark 1 Perceptron". Denna maskin var designad för bildigenkänning: den hade en uppsättning av 400 fotoceller slumpmässigt kopplade till neuroner. Vikterna kodades i potentiometrar och viktuppdateringen under träningen gjordes av elmotorer.
På en presskonferens anordnad av den amerikanska flottan 1958, gjorde Rosenblatt uttalanden om perceptronen som orsakade het debatt bland det unga AI-samhället; baserat på Rosenblatts påståenden rapporterade New York Times att perceptronen är "den embryonala elektroniska datorn som marinen förväntar sig att kunna gå, prata, se, skriva, reproducera sig själv och vara medveten om dess existens."
Ytterligare utveckling
Även om perceptronen från början verkade lovande, bevisades det snabbt att perceptroner inte kunde tränas för att känna igen många klasser av mönster. Detta ledde till en stagnation inom forskningsfältet med perceptrons neurala nätverk i många år innan man upptäckte att ett frammatningsneur alt nätverk med två eller flera lager (även kallatflerskiktsperceptron) hade mycket mer processorkraft än enkelskiktsperceptroner (även kallade enkelskiktsperceptroner). En enkelskiktsperceptron kan endast studera linjärt separerbara strukturer. 1969 visade den berömda boken "Perceptrons" av Marvin Minsky och Seymour Papert att dessa klasser av nätverk inte kunde lära sig XOR-funktionen. Detta gäller dock inte icke-linjära klassificeringsfunktioner som kan användas i en enkelskiktsperceptron.
Användningen av sådana funktioner utökar perceptronens möjligheter, inklusive implementeringen av XOR-funktionen. Det antas ofta (felaktigt) att de också antog att ett liknande resultat skulle gälla för ett flerskikts perceptronnätverk. Detta är dock inte fallet, eftersom både Minsky och Papert redan visste att flerskiktsperceptroner kunde producera en XOR-funktion. Tre år senare publicerade Steven Grossberg en serie artiklar som presenterade nätverk som kan modellera differentialfunktioner, kontrastförbättringsfunktioner och XOR-funktioner.
Works publicerades 1972 och 1973. Men den ofta förbisedda Minsky/Papert-texten orsakade en betydande nedgång i intresse och forskningsfinansiering med det neurala nätverkets perceptron. Ytterligare tio år gick innan forskningen om neurala nätverk återupplivades på 1980-talet.
Funktioner
The Perceptron Kernel Algorithm introducerades 1964 av Yzerman et al. Mori och Rostamizadeh (2013), som utökar tidigare resultat och ger nya gränser L1.
Perceptron är en förenklad modell av en biologisk neuron. Även om komplexiteten hos biologiska neurala modeller ofta krävs för att helt förstå neurala beteenden, visar forskning att en perceptronliknande linjär modell kan inducera en del av beteendet som ses i verkliga neuroner.
Perceptronen är en linjär klassificerare, så den kommer aldrig att hamna i ett tillstånd med alla indatavektorer korrekt klassificerade om träningsuppsättningen D inte är linjärt separerbar, dvs. om positiva exempel inte kan skiljas från negativa exempel med ett hyperplan. I det här fallet kommer ingen "ungefärlig" lösning steg för steg genom standardinlärningsalgoritmen, istället kommer inlärningen att misslyckas helt. Därför, om träningsuppsättningens linjära separerbarhet inte är känd a priori, bör ett av tränings alternativen nedan användas.
Pocket Algorithm
Spärrfackalgoritmen löser problemet med robusthet för perceptroninlärning genom att behålla den bästa lösningen hittills "i fickan". Fickalgoritmen returnerar sedan lösningen i fickan istället för den sista lösningen. Den kan också användas för icke-separerbara datauppsättningar där målet är att hitta en perceptron med få felklassificeringar. Dessa lösningar ser dock stokastiska ut och därför passar fickalgoritmen inte dem.gradvis under utbildningens gång, och de är inte garanterade att upptäckas under ett visst antal träningssteg.
Maxover Algorithm
Maxovers algoritm är "robust" i den meningen att den kommer att konvergera oberoende av kunskapen om den linjära separerbarheten av datamängden. I fallet med en linjär split kommer detta att lösa inlärningsproblemet, eventuellt även med optimal stabilitet (maximal marginal mellan klasserna). För icke-separerbara datauppsättningar kommer en lösning med ett litet antal felklassificeringar att returneras. I samtliga fall närmar sig algoritmen lösningen gradvis under inlärningsprocessen, utan att komma ihåg tidigare tillstånd och utan slumpmässiga hopp. Konvergens ligger i global optimalitet för delade datamängder och lokal optimalitet för icke-separerbara datamängder.
Voted Perceptron
The Voted Perceptron-algoritmen är en variant som använder flera viktade perceptroner. Algoritmen startar en ny perceptron varje gång ett exempel är felklassificerat, och initierar viktvektorn med den sista perceptronens slutvikter. Varje perceptron kommer också att ges en annan vikt som motsvarar hur många exempel de korrekt klassificerar innan de felklassificerar ett, och i slutet kommer resultatet att vara en viktad röst över hela perceptronen.
Application
I separerbara problem kan perceptronträning också syfta till att hitta den största separationsgränsen mellan klasser. Så kalladeEn optimal stabilitetsperceptron kan bestämmas med iterativ träning och optimeringsscheman såsom Min-Over eller AdaTron-algoritmen. AdaTron utnyttjar det faktum att motsvarande kvadratiska optimeringsproblem är konvext. Den optimala stabilitetsperceptronen, tillsammans med kärntricket, är den konceptuella grunden för stödvektormaskinen.
Alternativ
Ett annat sätt att lösa icke-linjära problem utan att använda flera lager är att använda högre ordningsnätverk (sigma-pi-block). I denna typ av nätverk expanderas varje element i ingångsvektorn med varje parvis kombination av multiplicerade ingångar (andra ordningen). Detta kan utökas till ett n-orders nätverk. Perceptron är en mycket flexibel sak.
Kom dock ihåg att den bästa klassificeraren inte nödvändigtvis är den som korrekt klassificerar all träningsdata. Faktum är att om vi hade den tidigare begränsningen att data kommer från likavarianta Gauss-fördelningar, är en linjär uppdelning i inmatningsutrymmet optimal, och en icke-linjär lösning åsidosätts.
Andra linjära klassificeringsalgoritmer inkluderar Winnow, stödvektor och logistisk regression. Perceptron är en universell uppsättning algoritmer.
Huvudomfång för övervakat lärande
Övervakad inlärning är en maskininlärningsuppgift som lär sig en funktion som mappar indata till utdatabaserat på exempel på I/O-par. De härleder en funktion från märkta träningsdata som består av en uppsättning exempel. Vid övervakad inlärning är varje exempel ett par som består av ett ingångsobjekt (vanligtvis en vektor) och ett önskat utgångsvärde (även kallad en styrsignal).
Den övervakade inlärningsalgoritmen analyserar träningsdata och producerar en uppskattad funktion som kan användas för att visa nya exempel. Det optimala scenariot skulle tillåta algoritmen att korrekt bestämma klassetiketter för osynliga instanser. Detta kräver att inlärningsalgoritmen generaliserar inlärningsdata till osynliga situationer på ett "rimligt" sätt.
Den parallella uppgiften inom människans och djurs psykologi kallas ofta konceptuell inlärning.