O prezentare completă a rețelelor neuronale artificiale (ANN)
Publicat: 2020-07-17Chiar dacă nu lucrați în domeniul științei datelor sau al ingineriei software, este greu să evitați să intrați în fața termenului de rețele neuronale artificiale.
Rețelele neuronale artificiale (ANN) sunt omniprezente. Ele sunt folosite în chatbot, imagistica medicală, planificarea media și o mulțime de alte domenii. Dar ne-am întrebat cu un sentiment de profundă curiozitate: ce este o rețea neuronală artificială și ce poate realiza cu adevărat?
Cu toții am întâlnit definiția comună că rețelele neuronale artificiale reproduc funcționarea sistemului neuronal uman. Asta explică principiul de funcționare, dar cei mai mulți dintre noi încă nu știm ce face o ANN atât de specială sau pentru ce seturi de probleme este ideală. Pentru a curăța aerul, iată cel mai cuprinzător și totuși accesibil ghid pe care îl veți găsi despre rețelele neuronale artificiale.
Ce este o rețea neuronală artificială?
Când există o duzină de termeni precum inteligența artificială, învățarea automată, învățarea profundă și rețelele neuronale, este ușor să fii confuz. Bifurcația reală între aceste verticale nu este atât de complicată.
AI este setul universal care este subiectul la îndemână. Este studiul sistematic al modului în care funcționează și sunt realizate programele inteligente. Învățarea automată este un subset al AI care se concentrează pe modul în care mașinile pot învăța singure. Învățarea profundă este un alt subset al ML care se concentrează pe modul în care straturile de rețele neuronale pot fi utilizate pentru a genera rezultate. Puteți utiliza această vizualizare pentru a naviga în ierarhie:

Deci, ce este o rețea neuronală artificială? Răspunsul este exact cum îl prezintă mass-media populară. Este un sistem de procesare a datelor și generare de ieșiri care reproduce sistemul neuronal pentru a dezlega relații neliniare într-un set de date mare. Datele pot proveni de la rute senzoriale și pot fi sub formă de text, imagini sau audio.
Cel mai bun mod de a înțelege cum funcționează o rețea neuronală artificială este înțelegerea modului în care funcționează o rețea neuronală naturală din interiorul creierului și stabilirea unei paralele între ele. Neuronii sunt componenta fundamentală a creierului uman și sunt responsabili pentru învățarea și reținerea cunoștințelor și informațiilor așa cum le cunoaștem. Le puteți considera unitatea de procesare a creierului. Ei iau datele senzoriale ca intrare, le procesează și oferă datele de ieșire utilizate de alți neuroni. Informațiile sunt procesate și transmise până la obținerea unui rezultat decisiv.
Rețeaua neuronală de bază din creier este conectată prin sinapse. Le puteți vizualiza ca nodurile terminale ale unei punți care conectează doi neuroni. Deci, sinapsa este punctul de întâlnire pentru doi neuroni. Sinapsele sunt o parte importantă a acestui sistem, deoarece puterea unei sinapse ar determina profunzimea înțelegerii și reținerea informațiilor.
Când practicați o activitate, întăriți aceste relații sinaptice. Iată cum puteți vizualiza rețeaua neuronală din creier:
Toate datele senzoriale pe care creierul tău le colectează în timp real sunt procesate prin aceste rețele neuronale. Au un punct de origine în sistem. Și pe măsură ce sunt procesați de neuronii inițiali, forma procesată a unui semnal electric care iese dintr-un neuron devine intrarea pentru alt neuron. Această procesare de microinformații la fiecare strat de neuroni este ceea ce face ca această rețea să fie eficientă și eficientă. Replicând această temă recurentă a procesării datelor în rețeaua neuronală, ANN-urile sunt capabile să producă rezultate superioare.
Într-o ANN, totul este conceput pentru a reproduce chiar acest proces. Nu vă faceți griji pentru ecuația matematică. Aceasta nu este ideea cheie care trebuie înțeleasă acum. Toate datele introduse cu eticheta „X” în sistem au o pondere de „W” pentru a genera un semnal ponderat. Acest lucru reproduce rolul puterii unui semnal sinaptic în creier. Variabila de polarizare este atașată pentru a controla rezultatele rezultatelor din funcție.
Deci, toate aceste date sunt procesate în funcție și ajungeți cu o ieșire. Așa ar arăta o rețea neuronală cu un singur strat sau un perceptron. Ideea unei rețele neuronale artificiale se învârte în jurul conectării mai multor combinații de astfel de neuroni artificiali pentru a obține rezultate mai puternice. De aceea, cadrul conceptual tipic al rețelei neuronale artificiale arată foarte mult astfel:
Vom defini în curând stratul ascuns, pe măsură ce ne aprofundăm în modul în care funcționează o rețea neuronală artificială. Dar în ceea ce privește înțelegerea rudimentară a unei rețele neuronale artificiale, cunoașteți primele principii acum.
Acest mecanism este folosit pentru a descifra seturi mari de date. Ieșirea tinde, în general, să fie o stabilire a cauzalității între variabilele introduse ca intrare care poate fi utilizată pentru prognoză. Acum că cunoașteți procesul, puteți aprecia pe deplin definiția tehnică aici:
„O rețea modelată după creierul uman prin crearea unui sistem neuronal artificial prin intermediul unui algoritm computerizat de recunoaștere a modelelor care învață din, interpretează și clasifică datele senzoriale.”
Cum funcționează și învață rețelele neuronale artificiale?
Pregătiți-vă, lucrurile sunt pe cale să devină interesante aici. Și nu-ți face griji - nu trebuie să faci o mulțime de matematică chiar acum.
Magia se întâmplă mai întâi la funcția de activare. Funcția de activare efectuează procesarea inițială pentru a determina dacă neuronul va fi activat sau nu. Dacă neuronul nu este activat, ieșirea sa va fi aceeași cu intrarea sa. Nu se întâmplă nimic atunci. Este esențial să aveți acest lucru în rețeaua neuronală, în caz contrar, sistemul va fi forțat să proceseze o mulțime de informații care nu au impact asupra ieșirii. Vezi tu, creierul are o capacitate limitată, dar a fost optimizat pentru a-l folosi cât mai bine.
O proprietate centrală comună în toate rețelele neuronale artificiale este conceptul de neliniaritate. Majoritatea variabilelor care sunt studiate au o relație neliniară în viața reală.
Luați de exemplu prețul ciocolatei și numărul de ciocolate. Să presupunem că o ciocolată costă 1 USD. Cât ar costa 100 de ciocolate? Probabil 100 de dolari. Cât ar costa 10.000 de ciocolate? Nu 10.000 USD; pentru că fie vânzătorul va adăuga costul folosirii unui ambalaj suplimentar pentru a pune toate ciocolatele împreună, fie va reduce costul, deoarece muți atât de mult din inventarul ei de pe mâini dintr-o singură mișcare. Acesta este conceptul de neliniaritate.
O funcție de activare va folosi principiile matematice de bază pentru a determina dacă informația urmează să fie procesată sau nu. Cele mai obișnuite forme de funcții de activare sunt Funcția de pas binar, Funcția logistică, Funcția tangentă hiperbolică și Unitățile liniare rectificate. Iată definiția de bază a fiecăruia dintre acestea:
- Funcția pas binar: Această funcție activează un neuron pe baza unui prag. Dacă funcția are rezultatul final care este deasupra sau sub o valoare de referință, neuronul este activat.
- Funcția logistică: această funcție are un rezultat final matematic sub forma unei curbe „S” și este utilizată atunci când probabilitățile sunt criteriile cheie pentru a determina dacă neuronul ar trebui activat. Deci, în orice moment, puteți calcula panta acestei curbe. Valoarea acestei funcții este între 0 și 1.
Panta este calculată folosind o funcție diferențială. Conceptul este folosit atunci când două variabile nu au o relație liniară. Panta este valoarea unei tangente care atinge curba în punctul exact în care intervine neliniaritatea. Problema cu funcția logistică este că nu este bună pentru procesarea informațiilor cu valori negative. - Funcția tangentă hiperbolică: este destul de asemănătoare cu funcția logistică, cu excepția faptului că valorile acesteia se încadrează între -1 și +1. Deci, problema unei valori negative care nu este procesată în rețea dispare.
- Unități liniare rectificate (ReLu): Valorile acestei funcții se află între 0 și infinitul pozitiv. ReLu simplifică câteva lucruri – dacă intrarea este pozitivă, va da valoarea lui „x”. Pentru toate celelalte intrări, valoarea ar fi „0”. Puteți folosi un Leaky ReLu care are valori între infinitul negativ și infinitul pozitiv. Este folosit atunci când relația dintre variabilele care sunt procesate este cu adevărat slabă și poate fi omisă cu totul de funcția de activare.
Acum vă puteți referi la aceleași două diagrame ale unui perceptron și ale unei rețele neuronale. Care este diferența, în afară de numărul de neuroni? Diferența cheie este stratul ascuns. Un strat ascuns se află chiar între stratul de intrare și stratul de ieșire într-o rețea neuronală. Sarcina stratului ascuns este de a rafina procesarea și de a elimina variabilele care nu vor avea un impact puternic asupra rezultatului.
Dacă numărul de instanțe dintr-un set de date în care impactul modificării valorii unei variabile de intrare este vizibil asupra variabilei de ieșire, stratul ascuns va afișa acea relație. Stratul ascuns facilitează ca ANN să transmită semnale mai puternice următorului strat de procesare.
Chiar și după ce ați făcut toate aceste calcule și ați înțeles cum funcționează stratul ascuns, s-ar putea să vă întrebați cum învață de fapt o rețea neuronală artificială? Să începem cu întrebarea de bază despre ce înseamnă învățarea. Învățarea, în cei mai simpli termeni, înseamnă stabilirea cauzalității între două lucruri (activități, procese, variabile etc.). Când „înveți” cum să arunci o minge curbă, stabilești o cauzalitate între acțiunea fizică de a arunca mingea într-un anumit fel și a face ca traiectoria mingii să se curbe într-un anumit fel.
Acum, această cauzalitate este foarte greu de stabilit. Îți amintești că corelația nu este egală cu cauzalitate? Este destul de ușor să determinați când două variabile se mișcă în aceeași direcție. Este foarte greu de spus cu certitudine absolută care variabilă provoacă mișcarea în care variabilă. Evident, deseori suntem capabili să stabilim acest lucru intuitiv; dar cum faci un algoritm să înțeleagă intuiția?

Folosiți o funcție de cost. Din punct de vedere matematic, este diferența pătrată dintre valoarea reală a setului de date și valoarea de ieșire a setului de date. Puteți lua în considerare și gradul de eroare. Îl pătrundem pentru că uneori diferența poate fi negativă.
Puteți marca fiecare ciclu de procesare de intrare la ieșire cu funcția de cost. Sarcina dvs. și a ANN este de a minimiza funcția de cost la cea mai mică valoare posibilă. O faci prin ajustarea greutăților din ANN. (Îți amintești de relațiile sinaptice, adică de greutăți? Despre asta vorbim). Există mai multe moduri de a face acest lucru, dar în măsura în care înțelegeți principiul, veți folosi diferite instrumente pentru a-l executa.
Cu fiecare ciclu, ne propunem să minimizăm funcția de cost. Procesul de trecere de la intrare la ieșire se numește propagare înainte. Iar procesul de utilizare a datelor de ieșire pentru a minimiza funcția de cost prin ajustarea greutății în ordine inversă de la ultimul strat ascuns la stratul de intrare se numește propagare înapoi.
Puteți continua să ajustați aceste ponderi folosind fie metoda Brute Force, care devine ineficientă atunci când setul de date este prea mare, fie Batch-Gradient Descent, care este un algoritm de optimizare. Acum aveți o înțelegere intuitivă a modului în care o rețea neuronală artificială învață.
Rețele neuronale recurente (RNN) vs. rețele neuronale convoluționale (CNN)
Înțelegerea acestor două forme de rețele neuronale poate fi, de asemenea, introducerea în două fațete diferite ale aplicației AI – viziunea computerizată și procesarea limbajului natural. În cea mai simplă formă, aceste două ramuri ale AI ajută o mașină să identifice vizual obiectele și să înțeleagă contextul datelor lingvistice. După cum vă puteți imagina, există deja aplicații utilizate ale acestor ramuri în mașinile cu conducere autonomă și asistenți virtuali precum Siri.
Acum, fiecare dintre aceste ramuri are propria sa rețea neuronală stabilită. NLP este foarte dependent de rețelele neuronale recurente. Diferența dintre un RNN și un ANN este că într-un ANN, fiecare semnal de intrare este considerat independent de următorul semnal de intrare. Deci, datele de intrare care există între două noduri, în sine, nu au nicio relație.
În realitate, nu este cazul. Când comunicăm, fiecare cuvânt clarifică modul contextual pentru următorul cuvânt. Prin urmare, natura fundamentală a limbajului este că creează interdependențe între informațiile care sunt introduse mai devreme și informațiile care sunt introduse mai târziu. RNN-urile sunt sensibile la acest lucru prin rularea unei memorie paralele care stabilește relația dintre aceste intrări pentru a șterge contextul.
Rețelele neuronale convoluționale sunt utilizate în mod ideal pentru vederea computerizată. Pe lângă funcțiile de activare utilizate în general, acestea adaugă o funcție de pooling și o funcție de convoluție. O funcție de convoluție, în termeni mai simpli, ar arăta cum intrarea unei imagini și intrarea unei a doua imagini (un filtru) vor avea ca rezultat o a treia imagine (rezultatul). Vă puteți imagina acest lucru vizualizând-o ca o imagine filtrată (un nou set de valori pixeli) așezat deasupra imaginii dvs. de intrare (setul original de valori pixeli) pentru a obține o imagine rezultată (valori pixeli modificate).
O funcție de pooling va lua valoarea maximă sau minimă, în funcție de funcția adăugată, pentru a ușura procesarea acestui set de informații. Iată cum le puteți vizualiza:


Funcția de pooling
5 aplicații ale rețelelor neuronale artificiale
Ceea ce am vorbit până acum, totul se petrecea sub capotă. Acum putem micșora și vedem aceste ANN-uri în acțiune pentru a aprecia pe deplin legătura lor cu lumea noastră în evoluție:
1. Personalizați recomandările pe platformele de comerț electronic
Una dintre cele mai vechi aplicații ale ANN-urilor a fost personalizarea experiențelor platformei de comerț electronic pentru fiecare utilizator. Îți amintești recomandările cu adevărat eficiente de pe Netflix? Sau sugestiile potrivite de produse Amazon? Ele sunt un rezultat al ANN.
Există o mulțime de date care sunt folosite aici: achizițiile dvs. anterioare, datele demografice, datele geografice și datele care arată ce au cumpărat în continuare oamenii care cumpără același produs. Toate acestea servesc drept intrări pentru a determina ce ar putea funcționa pentru tine. În același timp, ceea ce cumpărați cu adevărat ajută la optimizarea algoritmului. Cu fiecare achiziție, îmbogățiți compania și algoritmul care dă putere ANN. În același timp, fiecare nouă achiziție făcută pe platformă va îmbunătăți, de asemenea, priceperea algoritmului de a vă recomanda produsele potrivite.
2. Valorificarea procesării limbajului natural pentru chatbot-urile conversaționale
Nu cu mult timp în urmă, casetele de chat începuseră să ia avânt pe site-uri web. Un agent s-ar așeza pe o parte și vă va ajuta cu întrebările introduse în casetă. Apoi, un fenomen numit procesarea limbajului natural (NLP) a fost introdus în chatbot și totul s-a schimbat.
NLP folosește în general reguli statistice pentru a reproduce capacitățile limbajului uman și, ca și alte aplicații ANN, se îmbunătățește cu timpul. Punctuațiile, intonațiile și enunțurile, alegerile gramaticale, alegerile sintactice, ordinea cuvintelor și a propozițiilor și chiar limba aleasă pot servi drept intrări pentru a antrena algoritmul NLP.
Chatbot-ul devine conversațional utilizând aceste intrări atât pentru a înțelege contextul întrebărilor dvs., cât și pentru a formula răspunsuri într-un mod care s-ar potrivi cel mai bine stilului dvs. Același NLP este folosit și pentru editarea audio în muzică și în scopuri de verificare a securității.
3. Prezicerea rezultatelor unui eveniment de mare profil
Cei mai mulți dintre noi urmăresc previziunile rezultatelor făcute de algoritmii bazați pe inteligență artificială în timpul alegerilor prezidențiale, precum și în timpul Cupei Mondiale FIFA. Deoarece ambele evenimente sunt etapizate, ajută algoritmul să-și înțeleagă rapid eficacitatea și să minimizeze funcția de cost pe măsură ce echipele și candidații sunt eliminați. Adevărata provocare în astfel de situații este gradul variabilelor de intrare. De la candidați la statistici ale jucătorilor la date demografice la capacități anatomice - totul trebuie încorporat.
Pe piețele de valori, algoritmii predictivi care folosesc ANN există de ceva vreme. Actualizările de știri și valorile financiare sunt variabilele cheie de intrare utilizate. Datorită acestui fapt, majoritatea burselor și băncilor pot tranzacționa cu ușurință active în cadrul inițiativelor de tranzacționare de înaltă frecvență la viteze care depășesc cu mult capacitățile umane.
Problema cu bursele este că datele sunt întotdeauna zgomotoase. Aleatorie este foarte mare din cauza gradului de judecată subiectivă care poate afecta prețul unui titlu este foarte mare. Cu toate acestea, ANN-urile sunt folosite în activitățile de creare a pieței de către fiecare bancă importantă în prezent.
4. Sancțiuni de credit
Tabelele actuariale erau deja folosite pentru a determina factorii de risc asociați fiecărui solicitant de asigurare. ANN-urile au luat toate aceste date cu un pas mai sus.
Toți creditorii pot parcurge deceniile de date pe care le dețin cu ponderile puternic stabilite în sistem și pot folosi informațiile dvs. ca intrare pentru a determina profilul de risc adecvat asociat cererii dvs. de împrumut. Vârsta, sexul, orașul de reședință, școala de absolvire, o industrie a angajamentului, salariul și raportul de economii, toate sunt folosite ca date de intrare pentru a determina scorurile de risc de credit.
Ceea ce mai devreme depindea în mare măsură de scorul dvs. de credit individual a devenit acum un mecanism mult mai cuprinzător. Acesta este motivul pentru care mai mulți jucători privați fintech au sărit în spațiul împrumuturilor personale pentru a gestiona aceleași ANN-uri și a împrumuta unor persoane ale căror profiluri sunt considerate prea riscante de către bănci.
5. Mașini care se conduc singure
Tesla, Waymo și Uber au folosit ANN-uri similare. Intrările și ingineria produsului ar fi putut fi diferite, dar implementau computere vizuale sofisticate pentru a transforma mașinile cu conducere autonomă în realitate.
O mare parte din conducerea autonomă are de-a face cu procesarea informațiilor care provin din lumea reală sub formă de vehicule din apropiere, semne rutiere, lumini naturale și artificiale, pietoni, clădiri și așa mai departe. Evident, rețelele neuronale care alimentează aceste mașini autonome sunt mai complicate decât cele pe care le-am discutat aici, dar funcționează pe aceleași principii pe care le-am expus.
Concluzie
ANN-urile devin din ce în ce mai sofisticate pe zi ce trece. NLP-urile ajută acum la diagnosticarea timpurie a problemelor de sănătate mintală, vederea computerizată este folosită în imagistica medicală, iar ANN-urile alimentează livrarea cu drone. Pe măsură ce ANN-urile devin mai complexe și mai stratificate, nevoia de inteligență umană în acest sistem ar deveni mai mică. Chiar și domenii precum designul au început să implementeze soluții AI cu design generativ.
Evoluția eventuală a tuturor ANN-urilor reunite ar fi General Intelligence – o formă de inteligență atât de sofisticată încât poate învăța și percepe toate informațiile cunoscute și necunoscute omenirii. Deși este o realitate foarte îndepărtată, chiar dacă este posibil, a devenit un concept imaginabil datorită adoptării pe scară largă de către ANN.