Un ghid fără cod pentru inteligența artificială

Deci, acum aproximativ un an, am citit asta articol fantastic de Trask.

Dacă nu ați făcut clic pe link, faceți-l acum.

Ai? OK bine.

Acum, iată – articolul necesită să cunoașteți un pic de piton, lucru pe care probabil îl faceți.

Cum se construieste o retea neuronala in trei randuri de
O rețea neuronală în 11 linii de cod

În cazul în care sunteți interesat de rețelele neuronale (dacă această frază vi se pare cu totul străină, urmăriți acest lucru Lista de redare YouTube) și încă nu am învățat python, felicitări, ești în locul potrivit.

Dar, indiferent de locul în care vă aflați în vastul peisaj al învățării profunde, cred că, din când în când, este frumos să vă întoarceți la elementele de bază și să revizuiți ideile matematice fundamentale care ne-au adus Siri, Alexa și orele nesfârșite de Netflix. urmărind.

Cum se construieste o retea neuronala in trei randuri de
Fotografie de freestocks.org pe Unsplash

Deci, fără alte îndemnuri, vă prezint cele trei ecuații care alcătuiesc ceea ce voi numi „Teorema fundamentală a învățării profunde”.

1. Regresie liniară

1611495969 539 Cum se construieste o retea neuronala in trei randuri de

Prima ecuație este destul de simplă. Cred că și ceilalți sunt la fel de bine, dar vom ajunge la ei în timp util.

Deocamdată, tot ce facem este să calculăm un vector z (din ecuația de mai sus), unde W este o matrice care este inițial umplută doar cu o grămadă de numere aleatorii, b este un vector care este inițial umplut doar cu o grămadă de numere aleatorii și X vector care nu este umplut inițial cu o grămadă de numere aleatorii.

X este un exemplu de instruire din setul nostru de date. De exemplu, dacă pregătești o rețea neuronală pentru a prezice vârsta cuiva, având în vedere sexul și înălțimea, ar trebui mai întâi să ai nevoie de câteva (sau, de preferință, mult, cu atât mai mult, cu atât mai bine) exemple de date în formă [[height, gender], age]. Vectorul [height, gender] asta numim noi X.

2. Funcții de activare

1611495969 748 Cum se construieste o retea neuronala in trei randuri de

În partea stângă, avem valorile noastre prezise de y, care este variabila pe care o folosesc pentru a indica etichetele de pe datele noastre.

Pălăria de deasupra înseamnă că această valoare de y este o valoare prezisă, spre deosebire de etichetele adevărului de bază din setul nostru de date.

z în această ecuație este aceeași pe care am calculat-o mai sus. Sigma reprezintă funcția de activare sigmoidă, care arată astfel:

1611495969 595 Cum se construieste o retea neuronala in trei randuri de

Deci, în engleză simplă, luăm z, un vector de numere reale care pot fi în mod arbitrar mari sau mici și care își strânge componentele să fie între 0 și 1.

A avea un număr între 0 și 1 este util deoarece, dacă încercăm să construim un clasificator, să presupunem că prezice dacă o imagine este o pisică sau un câine, putem lăsa 1 să reprezinte câini și putem lăsa 0 să fie pentru pisici. Sau invers, dacă îți plac mai mult pisicile.

1611495970 980 Cum se construieste o retea neuronala in trei randuri de
Fotografie de Erik-Jan Leusink pe Unsplash

Dar să presupunem că suntem nu a face câini și pisici (da, bine, ca și cum ar fi orice alt caz de utilizare mai bun pentru învățarea automată). Să ne întoarcem la predictorul vârstei noastre. Acolo, nu putem doar să prezicem 1 și 0.

În general, puteți utiliza orice funcție doriți, nu neapărat doar un sigmoid. Dar o grămadă de oameni deștepți au observat că sigmoidul funcționa destul de bine. Așa că am rămas cu el.

Cu toate acestea, este o poveste diferită atunci când avem de-a face cu etichete care sunt numere reale, și nu clase. Pentru predictorul de vârstă, trebuie să folosim o funcție de activare diferită.

Intrați în ReLU.

1611495970 479 Cum se construieste o retea neuronala in trei randuri de
Sursă: https://upload.wikimedia.org/wikipedia/commons/8/85/ReLU_and_Nonnegative_Soft_Thresholding_Functions.svg

Permiteți-mi să spun în avans că cred că aceasta este cea mai plictisitoare parte a învățării profunde. Adică, serios, doar o funcție plictisitoare și simplă? Unde e distracția în asta?

Privirile pot fi însă înșelătoare. Deși este destul de plictisitor – ReLU (X) este doar max(0,x) – funcția ReLU funcționează foarte bine în practică. Deci, hei, trăiește cu ea.

3. Propagarea înapoi și coborârea în gradient

1611495971 133 Cum se construieste o retea neuronala in trei randuri de
1611495971 854 Cum se construieste o retea neuronala in trei randuri de

Ok, m-ai prins. Am trisat. Din punct de vedere tehnic, sunt patru linii de matematică. Dar hei, ai putea condensa pașii 1 și 2 într-un singur pas, așa că cred că ies victorios.

Acum, pentru a digera toate aceste lucruri grecești (literal).

În prima ecuație, facem lucrurile acelea fanteziste y și y-care pentru a calcula un singur număr numit pierderea, notat cu L.

După cum se poate deduce prin nume, pierderea măsoară cât de grav am pierdut în lupta noastră vicioasă pentru a cuceri grimorul de învățare automată.

1611495972 87 Cum se construieste o retea neuronala in trei randuri de
Fotografie de Karly Santiago pe Unsplash

În special, a noastră L aici se măsoară ceva numit pierderea binară a entropiei încrucișate, care este o scurtătură pentru a suna ca și cum ai avea un doctorat în matematică. când măsoară de fapt cât de departe y este de la y-pălărie. Cu toate acestea, există mult mai multe sub suprafața ecuației, așa că verificați-l pe Daniel Godoy articol pe subiect.

Tot ce trebuie să știi pentru a obține intuiția din spatele acestor lucruri este că L devine mare dacă valorile noastre prezise sunt departe de valorile adevărului la sol și L devine mic când predicțiile și realitatea noastră se potrivesc.

Suma este acolo, astfel încât să putem adăuga toate dezordine pentru fiecare dintre exemplele de formare, astfel încât rețeaua noastră neuronală să înțeleagă cât de dezordonat este în general.

Acum începe partea reală de „învățare” a învățării profunde.

1611495972 367 Cum se construieste o retea neuronala in trei randuri de
Fotografie de Ben White pe Unsplash

Ultimul pas din stiva noastră este să actualizăm matricea W și vectorul b astfel încât pierderea noastră să scadă. Făcând acest lucru, minimizăm efectiv cât de departe sunt predicțiile de valorile adevărului la sol și, prin urmare, modelul nostru devine mai precis.

Iată din nou ecuația:

1611495971 854 Cum se construieste o retea neuronala in trei randuri de

W ‘ este matricea cu numere actualizate care ne apropie de adevărul de la sol. Alfa este o constantă pe care o alegem. Ultimul termen pe care îl priviți este gradientul pierderii în raport cu un parametru. Pur și simplu, este o măsură a multor schimbări ale pierderilor noastre pentru o mică modificare a numărului din W matrice.

Din nou, nu voi intra prea în profunzime în coborârea gradientului (procesul de actualizare a numerelor noastre în matrice), deoarece există deja o mulțime de resurse excelente pe această temă. Aș recomanda cu tărie Acest articol de Sebastian Ruder.

Apropo, putem face același lucru pentru valorile inițial aleatorii din b vector. Doar ajustează-le cu suma corectă în direcția corectă și BOOM! Tocmai ne-am apropiat de o pierdere scăzută din toate timpurile.

Concluzie

Și iată-l. Cele trei mari ecuații care alcătuiesc bazele rețelelor neuronale pe care le folosim astăzi.

1611495972 190 Cum se construieste o retea neuronala in trei randuri de
1611495971 133 Cum se construieste o retea neuronala in trei randuri de
1611495971 854 Cum se construieste o retea neuronala in trei randuri de

Pauză și medită o secundă. Ceea ce tocmai ați văzut este o compilație a înțelegerii umanității asupra complexității inteligenței.

Sigur, aceasta este o rețea neuronală de vanilie destul de simplă pe care tocmai am analizat-o și au existat nenumărate îmbunătățiri în algoritmii de învățare de-a lungul anilor care au dus la descoperiri semnificative. Odată cu explozia fără precedent de date și putere de calcul de-a lungul anilor, se pare, într-o anumită măsură, aproape inevitabil că matematica bine gândită este capabilă să înțeleagă arta subtilă de a distinge pisici și câini.

Dar inca. Aici a început totul.

Într-un fel, inima și sufletul celui mai semnificativ progres tehnologic din acest deceniu (probabil) se află chiar în fața ochilor tăi. Deci, ia o secundă. Pauză și medită.

1611495973 693 Cum se construieste o retea neuronala in trei randuri de
Sursă: https://pbs.twimg.com/media/C1hNo_KUcAAJDQ9.jpg:large