Perceptron este Definiția termenului, caracteristici, aplicație

Cuprins:

Perceptron este Definiția termenului, caracteristici, aplicație
Perceptron este Definiția termenului, caracteristici, aplicație
Anonim

În învățarea automată, un perceptron este un algoritm de învățare supravegheat pentru clasificatorii binari. Este adesea numit și perceptron. Un clasificator binar este o funcție care poate decide dacă o intrare, reprezentată de un vector de numere, aparține unei anumite clase. Acesta este un tip de clasificator liniar, adică un algoritm de clasificare care își face predicțiile bazate pe o funcție de predictor liniar care combină un set de greutăți cu un vector caracteristic.

Formule perceptronului
Formule perceptronului

În ultimii ani, rețelele neuronale artificiale au câștigat atenția datorită progreselor în învățarea profundă. Dar ce este o rețea neuronală artificială și în ce constă?

Faceți cunoștință cu Perceptron

În acest articol, vom arunca o privire rapidă asupra rețelelor neuronale artificiale în general, apoi ne vom uita la un singur neuron și, în final (aceasta este partea de codificare) vom lua cea mai simplă versiune a unui neuron artificial. neuronul, perceptronul și clasifică punctele sale înavion.

Te-ai întrebat vreodată de ce există sarcini atât de ușoare pentru orice persoană, dar incredibil de dificile pentru computere? Rețelele neuronale artificiale (ANN, pe scurt) au fost inspirate de sistemul nervos central uman. La fel ca omologul lor biologic, ANN-urile sunt construite pe elemente simple de procesare a semnalului care sunt combinate într-o grilă mare.

Rețelele neuronale trebuie să învețe

Spre deosebire de algoritmii tradiționali, rețelele neuronale nu pot fi „programate” sau „reglate” pentru a funcționa conform intenției. La fel ca creierul uman, ei trebuie să învețe să ducă la bun sfârșit sarcina. În linii mari, există trei strategii de învățare.

Cea mai ușoară modalitate poate fi folosită dacă există un caz de testare (suficient de mare) cu rezultate cunoscute. Apoi antrenamentul decurge astfel: procesați un set de date. Comparați rezultatul cu rezultatul cunoscut. Configurați rețeaua și încercați din nou. Aceasta este strategia de învățare pe care o vom folosi aici.

Învățare nesupravegheată

Util dacă nu există date de testare disponibile și dacă este posibil să se obțină o funcție de cost din comportamentul dorit. Funcția de cost spune rețelei neuronale cât de departe este de țintă. Apoi, rețeaua își poate ajusta parametrii din mers, lucrând cu date reale.

Învățare consolidată

Metoda „morcov și stick”. Poate fi folosit dacă rețeaua neuronală generează o acțiune continuă. De-a lungul timpului, rețeaua învață să prefere acțiunile potrivite și să le evite pe cele greșite.

Bine, acum știm puțin desprenatura rețelelor neuronale artificiale, dar din ce anume sunt făcute? Ce vom vedea dacă deschidem capacul și ne uităm înăuntru?

Neuronii sunt elementele de bază ale rețelelor neuronale. Componenta principală a oricărei rețele neuronale artificiale este un neuron artificial. Nu numai că sunt numiți după omologii lor biologici, dar sunt și modelați după comportamentul neuronilor din creierul nostru.

Biologie vs tehnologie

La fel cum un neuron biologic are dendrite pentru a primi semnale, un corp celular pentru a le procesa și un axon pentru a trimite semnale către alți neuroni, un neuron artificial are mai multe canale de intrare, o etapă de procesare și o ieșire care poate ramificați-vă la mulți alții. neuroni artificiali.

Putem face ceva util cu un singur perceptron? Există o clasă de probleme pe care un singur perceptron le poate rezolva. Considerați vectorul de intrare ca coordonate punct. Pentru un vector cu n-elemente, acest punct va locui în spațiu n-dimensional. Pentru a simplifica viața (și codul de mai jos), să presupunem că este 2D. Ca o bucată de hârtie.

În continuare, imaginați-vă că desenăm câteva puncte aleatorii pe acest plan și le împărțim în două seturi desenând o linie dreaptă peste hârtie. Această linie împarte punctele în două seturi, unul deasupra și unul sub linie. Cele două mulțimi sunt apoi numite separabile liniar.

Un perceptron, oricât de simplu ar părea, este capabil să știe unde se află această linie și, când a terminat antrenamentul, poate determina dacă un anumit punct este deasupra sau sub această linie.

Istorieinvenții

Algoritmul pentru această metodă a fost inventat în 1957 la Cornell Aviation Laboratory de Frank Rosenblatt (deseori numit după el), finanțat de Oficiul de Cercetare Navală din SUA. Perceptronul a fost intenționat să fie o mașină, nu un program și, deși prima sa implementare a fost în software-ul IBM 704, a fost ulterior implementat pe hardware personalizat ca „Mark 1 Perceptron”. Acest aparat a fost proiectat pentru recunoașterea imaginilor: avea o serie de 400 de fotocelule conectate aleatoriu la neuroni. Greutățile au fost codificate în potențiometre, iar actualizarea greutății în timpul antrenamentului a fost făcută de motoare electrice.

La o conferință de presă găzduită de Marina SUA în 1958, Rosenblatt a făcut declarații despre perceptronul care a provocat dezbateri aprinse în rândul tinerilor comunități AI; pe baza afirmațiilor lui Rosenblatt, New York Times a raportat că perceptronul este „calculatorul electronic embrionar pe care Marina se așteaptă să poată merge, vorbi, vedea, scrie, se reproduce și să fie conștientă de existența lui.”

Segmente de perceptron
Segmente de perceptron

Dezvoltări ulterioare

Deși perceptronul părea inițial promițător, s-a dovedit rapid că perceptronii nu puteau fi antrenați să recunoască multe clase de modele. Acest lucru a condus la o stagnare în domeniul cercetării cu rețelele neuronale de perceptron timp de mulți ani înainte de a se recunoaște că o rețea neuronală feed-forward cu două sau mai multe straturi (numită șiperceptronul multistrat) avea o putere de procesare mult mai mare decât perceptronii cu un singur strat (numiți și perceptronii cu un singur strat). Un perceptron cu un singur strat este capabil doar să studieze structurile separabile liniar. În 1969, celebra carte „Perceptrons” de Marvin Minsky și Seymour Papert a arătat că aceste clase de rețele nu puteau învăța funcția XOR. Totuși, acest lucru nu se aplică funcțiilor de clasificare neliniară care pot fi utilizate într-un perceptron cu un singur strat.

Perceptron Rosenblatt
Perceptron Rosenblatt

Utilizarea unor astfel de funcții extinde capacitățile perceptronului, inclusiv implementarea funcției XOR. Se presupune adesea (incorect) că au presupus și că un rezultat similar ar fi valabil pentru o rețea de perceptron multistrat. Cu toate acestea, acesta nu este cazul, deoarece atât Minsky, cât și Papert știau deja că perceptronii multistrat erau capabili să producă o funcție XOR. Trei ani mai târziu, Steven Grossberg a publicat o serie de lucrări care prezintă rețele capabile să modeleze funcții diferențiale, funcții de îmbunătățire a contrastului și funcții XOR.

Opere au fost publicate în 1972 și 1973. Cu toate acestea, textul Minsky/Papert, adesea trecut cu vederea, a provocat o scădere semnificativă a interesului și a finanțării cercetării cu perceptronul rețelei neuronale. Au mai trecut zece ani înainte ca cercetarea rețelelor neuronale să fie reînviată în anii 1980.

Funcții

Algoritmul Perceptron Kernel a fost introdus în 1964 de Yzerman et al. Mori și Rostamizadeh (2013), care extind rezultatele anterioare și oferă noi limite L1.

Perceptron este un model simplificat al unui neuron biologic. În timp ce complexitatea modelelor neuronale biologice este adesea necesară pentru a înțelege pe deplin comportamentul neuronal, cercetările arată că un model liniar asemănător perceptronului poate induce o parte din comportamentul observat în neuronii reali.

Perceptronul este un clasificator liniar, deci nu va ajunge niciodată într-o stare cu toți vectorii de intrare clasificați corect dacă setul de antrenament D nu este separabil liniar, de exemplu. dacă exemplele pozitive nu pot fi separate de exemplele negative printr-un hiperplan. În acest caz, nicio soluție „aproximativă” nu va trece pas cu pas prin algoritmul de învățare standard, în schimb, învățarea va eșua complet. Prin urmare, dacă separabilitatea liniară a setului de antrenament nu este cunoscută a priori, ar trebui utilizată una dintre opțiunile de antrenament de mai jos.

Relațiile perceptronului
Relațiile perceptronului

Algoritm de buzunar

Algoritmul de buzunar cu clichet rezolvă problema robusteței învățării perceptronului, păstrând cea mai bună soluție găsită până acum „în buzunar”. Algoritmul de buzunar returnează apoi soluția în buzunar, mai degrabă decât ultima soluție. Poate fi folosit și pentru seturi de date neseparabile, unde scopul este de a găsi un perceptron cu puține clasificări greșite. Cu toate acestea, aceste soluții par stocastice și, prin urmare, algoritmul de buzunar nu se potrivește cu ele.treptat pe parcursul antrenamentului și nu se garantează că vor fi detectați într-un anumit număr de pași de antrenament.

Algoritmul Maxover

Algoritmul lui Maxover este „robust” în sensul că va converge indiferent de cunoașterea separabilității liniare a setului de date. În cazul unei împărțiri liniare, aceasta va rezolva problema de învățare, opțional chiar și cu stabilitate optimă (marja maximă între clase). Pentru seturile de date neseparabile, va fi returnată o soluție cu un număr mic de clasificări greșite. În toate cazurile, algoritmul se apropie treptat de soluție în timpul procesului de învățare, fără a-și aminti stările anterioare și fără sărituri aleatorii. Convergența constă în optimitatea globală pentru seturile de date partajate și optimitatea locală pentru seturile de date neseparabile.

ecuația perceptronului
ecuația perceptronului

Votat Perceptron

Algoritmul Voted Perceptron este o variantă care utilizează mai multe perceptroni ponderați. Algoritmul pornește un nou perceptron de fiecare dată când un exemplu este clasificat greșit, inițialând vectorul de greutate cu ponderile finale ale ultimului perceptron. Fiecărui perceptron i se va acorda, de asemenea, o pondere diferită, corespunzătoare câte exemple clasifică corect înainte de a-l clasifica greșit, iar la final rezultatul va fi un vot ponderat pentru întregul perceptron.

Aplicație

În problemele separabile, antrenamentul cu perceptron poate avea ca scop găsirea celei mai mari granițe de separare între clase. Așa-zisulUn perceptron de stabilitate optimă poate fi determinat folosind scheme iterative de antrenament și optimizare, cum ar fi algoritmul Min-Over sau AdaTron. AdaTron exploatează faptul că problema de optimizare pătratică corespunzătoare este convexă. Perceptronul de stabilitate optimă, împreună cu trucul nucleului, reprezintă baza conceptuală a mașinii vectorului suport.

Perceptron multistrat
Perceptron multistrat

alternativă

O altă modalitate de a rezolva probleme neliniare fără a utiliza mai multe straturi este utilizarea rețelelor de ordin superior (blocul sigma-pi). În acest tip de rețea, fiecare element al vectorului de intrare este extins cu fiecare combinație perechi de intrări multiplicate (de ordinul doi). Aceasta poate fi extinsă la o rețea de ordine n. Perceptronul este un lucru foarte flexibil.

Totuși, rețineți că cel mai bun clasificator nu este neapărat cel care clasifică cu exactitate toate datele de antrenament. Într-adevăr, dacă am avea constrângerea anterioară că datele provin din distribuții gaussiene cu variante egale, o împărțire liniară în spațiul de intrare este optimă, iar o soluție neliniară este suprascrisă.

Alți algoritmi de clasificare liniară includ Winnow, vector de suport și regresie logistică. Perceptron este un set universal de algoritmi.

Traducerea în limba rusă a schemei
Traducerea în limba rusă a schemei

Domeniul principal al învățării supravegheate

Învățarea supravegheată este o sarcină de învățare automată care învață o funcție care mapează intrarea cu ieșireape baza exemplelor de perechi I/O. Ei deduc o caracteristică din datele de antrenament etichetate, constând dintr-un set de exemple. În învățarea supravegheată, fiecare exemplu este o pereche formată dintr-un obiect de intrare (de obicei un vector) și o valoare de ieșire dorită (numită și semnal de control).

Algoritmul de învățare supravegheată analizează datele de antrenament și produce o funcție estimată care poate fi utilizată pentru a afișa exemple noi. Scenariul optim ar permite algoritmului să determine corect etichetele de clasă pentru instanțe invizibile. Acest lucru necesită ca algoritmul de învățare să generalizeze datele de învățare la situații nevăzute într-un mod „rezonabil”.

Sarcina paralelă în psihologia umană și animală este adesea numită învățare conceptuală.

Recomandat: