Caracteristicile rețelelor neuronale. Rețele neuronale: ce sunt și cum le folosesc mărcile. Diagrama structurii biologice

De data asta m-am hotarat sa explorez rețele neuronale. Am reușit să obțin abilități de bază în această chestiune în vara și toamna lui 2015. Prin abilități de bază, vreau să spun că pot crea o rețea neuronală simplă de la zero. Puteți găsi exemple în depozitele mele GitHub. În acest articol, voi oferi câteva clarificări și voi împărtăși resurse pe care le puteți găsi utile pentru studiu.

Pasul 1: Neuronii și propagarea feedforward

Deci, ce este o „rețea neuronală”? Să așteptăm cu asta și să ne ocupăm mai întâi de un neuron.

Un neuron este ca o funcție: acceptă mai multe intrări și returnează una.

Cercul de mai jos reprezintă un neuron artificial. Primește 5 și returnează 1. Intrarea este suma celor trei sinapse conectate la neuron (trei săgeți în stânga).

În partea stângă a imaginii vedem 2 valori de intrare (în verde) și un offset (evidențiat cu maro).

Datele de intrare pot fi reprezentări numerice a două proprietăți diferite. De exemplu, atunci când creați un filtru de spam, acestea ar putea însemna să aveți mai mult de un cuvânt scris cu MAJUSCULE și să aveți cuvântul „Viagra”.

Valorile de intrare sunt înmulțite cu așa-numitele „greutăți”, 7 și 3 (evidențiate cu albastru).

Acum adăugăm valorile rezultate cu offset și obținem un număr, în cazul nostru 5 (evidențiat cu roșu). Aceasta este intrarea neuronului nostru artificial.

Apoi neuronul efectuează un fel de calcul și produce o valoare de ieșire. Avem 1 pentru că valoarea rotunjită a sigmoidului la punctul 5 este 1 (mai multe despre această funcție mai târziu).

Dacă acesta ar fi un filtru de spam, faptul că rezultatul este 1 ar însemna că textul a fost marcat ca spam de către neuron.

Ilustrație rețelei neuronale de pe Wikipedia.

Dacă combinați acești neuroni, obțineți o rețea neuronală care se propagă înainte - procesul trece de la intrare la ieșire, prin neuroni conectați prin sinapse, ca în imaginea din stânga.

Pasul 2. Sigmoid

După ce ați urmărit tutorialele Welch Labs, este o idee bună să consultați a patra săptămână a cursului de învățare automată Coursera despre rețelele neuronale, pentru a vă ajuta să înțelegeți cum funcționează acestea. Cursul intră adânc în matematică și se bazează pe Octave, în timp ce preferința mea este Python. Din acest motiv, am sărit peste exerciții și am obținut toate cunoștințele necesare din videoclip.

Sigmoid pur și simplu mapează valoarea ta (pe axa orizontală) la un segment de la 0 la 1.

Prima prioritate pentru mine a fost să studiez sigmoidul, așa cum figura în multe aspecte ale rețelelor neuronale. Știam deja ceva despre ea din a treia săptămână a cursului de mai sus, așa că am revăzut videoclipul de acolo.

Dar videoclipurile singure nu te vor duce departe. Pentru o înțelegere completă, am decis să-l codez eu. Așa că am început să scriu o implementare a algoritmului de regresie logistică (care folosește sigmoid).

A durat o zi întreagă, iar rezultatul este puțin probabil să fie satisfăcător. Dar nu contează, pentru că mi-am dat seama cum funcționează totul. Codul poate fi văzut.

Nu trebuie să o faceți singur, deoarece necesită cunoștințe speciale - principalul lucru este că înțelegeți cum funcționează sigmoidul.

Pasul 3 Metoda de propagare înapoi

Înțelegerea modului în care funcționează o rețea neuronală de la intrare la ieșire nu este atât de dificilă. Este mult mai dificil de înțeles cum este antrenată o rețea neuronală pe seturi de date. Principiul pe care l-am folosit se numește backpropagation.

Pe scurt: estimați cât de greșită este rețeaua și modificați ponderea valorilor de intrare (numerele albastre din prima imagine).

Procesul este de la capăt la cap pe măsură ce începem de la sfârșitul rețelei (vedeți cât de departe se abate presupunerea rețelei de la adevăr) și lucrăm înapoi, schimbând greutățile pe parcurs, până ajungem la intrare. Pentru a calcula toate acestea manual, sunt necesare cunoștințe de analiză matematică. Khan Academy oferă cursuri bune de calcul, dar l-am studiat la universitate. De asemenea, nu vă puteți deranja și utiliza biblioteci care vă vor calcula tot matanul.

Captură de ecran din ghidul lui Matt Mazur pentru propagarea inversă.

Iată trei surse care m-au ajutat să înțeleg această metodă:

În procesul de citire a primelor două articole, cu siguranță trebuie să vă codificați, acest lucru vă va ajuta în continuare. Și, în general, rețelele neuronale nu pot fi înțelese corect dacă practica este neglijată. Al treilea articol este, de asemenea, grozav, dar este mai mult o enciclopedie, deoarece are dimensiunea unei cărți întregi. Conține explicații detaliate ale tuturor principiilor importante ale modului în care funcționează rețelele neuronale. Aceste articole vă vor ajuta, de asemenea, să învățați concepte precum funcția de cost și coborârea gradientului.

Pasul 4. Creați-vă propria rețea neuronală

Când citiți diverse articole și tutoriale, într-un fel sau altul, veți scrie mici rețele neuronale. Recomand să faci exact asta, pentru că este foarte metoda eficientaînvăţare.

Un alt articol util

În prima jumătate a anului 2016, lumea a auzit despre o mulțime de evoluții în domeniul rețelelor neuronale - Google (un jucător de rețea în AlphaGo), Microsoft (un număr de servicii pentru identificarea imaginilor), startup-urile MSQRD, Prisma și altele au demonstrat algoritmii lor.

La marcaje

Editorii site-ului spun ce sunt rețelele neuronale, pentru ce sunt, de ce au capturat planeta chiar acum și nu cu ani mai devreme sau mai târziu, cât poți câștiga pe ele și cine sunt principalii jucători de pe piață. Experții de la Institutul de Fizică și Tehnologie din Moscova, Yandex, Mail.Ru Group și Microsoft și-au împărtășit opiniile.

Ce sunt rețelele neuronale și ce sarcini pot rezolva

Rețelele neuronale sunt una dintre direcțiile în dezvoltarea sistemelor de inteligență artificială. Ideea este de a modela cât mai îndeaproape posibil modul în care funcționează sistemul nervos uman - și anume, capacitatea acestuia de a învăța și de a corecta erorile. Acesta este ce caracteristica principală orice rețea neuronală - este capabil să învețe în mod independent și să acționeze pe baza experienței anterioare, făcând de fiecare dată din ce în ce mai puține erori.

Rețeaua neuronală imită nu numai activitatea, ci și structura sistemului nervos uman. O astfel de rețea constă dintr-un număr mare de elemente de calcul individuale ("neuroni"). În cele mai multe cazuri, fiecare „neuron” se referă la un anumit strat al rețelei. Datele de intrare sunt procesate secvenţial la toate straturile reţelei. Parametrii fiecărui „neuron” se pot modifica în funcție de rezultatele obținute pe seturile anterioare de date de intrare, modificând astfel ordinea întregului sistem.

Andrey Kalinin, șeful Mail.ru Search la Mail.Ru Group, observă că rețelele neuronale sunt capabile să rezolve aceleași probleme ca și alți algoritmi de învățare automată, diferența constă doar în abordarea învățării.

Toate sarcinile pe care le pot rezolva rețelele neuronale sunt oarecum legate de învățare. Printre principalele domenii de aplicare ale rețelelor neuronale se numără prognoza, luarea deciziilor, recunoașterea modelelor, optimizarea, analiza datelor.

Vlad Shershulsky, director de programe de cooperare tehnologică la Microsoft din Rusia, observă că acum rețelele neuronale sunt folosite peste tot: „De exemplu, multe site-uri mari de internet le folosesc pentru a face reacția la comportamentul utilizatorului mai naturală și mai utilă pentru publicul lor. Rețelele neuronale sunt în centrul celor mai multe sisteme moderne recunoașterea și sinteza vorbirii, precum și recunoașterea și procesarea imaginilor. Sunt folosiți în unele sisteme de navigație, fie că sunt roboți industriali sau vehicule fără pilot. Algoritmii bazați pe rețele neuronale protejează Sisteme de informare de atacuri rău intenționate și ajută la detectarea conținutului ilegal în rețea.”

Pe termen scurt (5-10 ani), consideră Shershulsky, rețelele neuronale vor fi utilizate și mai pe scară largă:

Imaginați-vă o mașină de recoltat agricolă cu mai multe camere video în dispozitivele sale de acționare. Face cinci mii de poze pe minut fiecărei plante din fâșia traiectoriei sale și, folosind o rețea neuronală, analizează dacă este o buruiană, dacă este afectată de o boală sau dăunători. Și tratează fiecare plantă în mod individual. Fictiune? Chiar nu mai. Și în cinci ani poate deveni norma. - Vlad Shershulsky, Microsoft

Mikhail Burtsev, șeful Laboratorului de sisteme neuronale și de învățare profundă la Centrul pentru sisteme vii de la MIPT, oferă o hartă provizorie a dezvoltării rețelelor neuronale pentru 2016-2018:

  • sisteme de recunoaștere și clasificare a obiectelor în imagini;
  • interfețe de voce interacțiuni pentru Internetul lucrurilor;
  • sisteme de monitorizare a calitatii serviciului in call center;
  • sisteme de depanare (inclusiv timp predictiv întreținere), anomalii, amenințări ciber-fizice;
  • sisteme de securitate intelectuală și monitorizare;
  • înlocuirea de către roboți a unei părți din funcțiile operatorilor de call center;
  • sisteme de analiză video;
  • sisteme de autoînvățare care optimizează gestionarea fluxurilor de materiale sau amplasarea obiectelor (în depozite, transport);
  • sisteme de control inteligente, cu auto-învățare, pentru procesele și dispozitivele de producție (inclusiv cele robotizate);
  • apariția sistemelor universale de traducere „în zbor” pentru conferințe și uz personal;
  • apariția roboților consilieri suport tehnic sau asistenți personali, în ceea ce privește funcțiile apropiate unei persoane.

Grigory Bakunov, director de diseminare a tehnologiei la Yandex, consideră că capacitatea unor astfel de sisteme de a lua diferite decizii va deveni baza pentru răspândirea rețelelor neuronale în următorii cinci ani: „Principalul lucru pe care rețelele neuronale îl fac acum pentru o persoană este pentru a-l salva de la luarea excesivă a deciziilor. Deci pot fi folosite aproape oriunde unde deciziile nu prea inteligente sunt luate de o persoană vie. În următorii cinci ani, această abilitate va fi exploatată, care va înlocui luarea deciziilor umane cu o simplă mașină.

De ce rețelele neuronale au devenit atât de populare acum

Oamenii de știință dezvoltă rețele neuronale artificiale de peste 70 de ani. Prima încercare de a oficializa o rețea neuronală datează din 1943, când doi oameni de știință americani (Warren McCulloch și Walter Pitts) au prezentat un articol despre calculul logic al ideilor umane și al activității neuronale.

Cu toate acestea, până de curând, spune Andrey Kalinin de la Mail.Ru Group, viteza rețelelor neuronale era prea mică pentru ca acestea să poată fi utilizate pe scară largă și, prin urmare, astfel de sisteme au fost utilizate în principal în dezvoltările legate de viziunea computerizată, iar alți algoritmi au fost utilizați în alte domenii. domenii.învăţare automată.

O parte laborioasă și consumatoare de timp a procesului de dezvoltare a unei rețele neuronale este formarea acesteia. Pentru ca rețeaua neuronală să poată rezolva corect setul de sarcini, este necesar să-și „ruleze” munca pe zeci de milioane de seturi de date de intrare. Odată cu apariția diferitelor tehnologii de învățare accelerată, Andrey Kalinin și Grigory Bakunov asociază răspândirea rețelelor neuronale.

Principalul lucru care s-a întâmplat acum este că au apărut diverse trucuri care vă permit să faceți rețele neuronale care sunt mult mai puțin predispuse la supraadaptare. - Grigory Bakunov, Yandex

„În primul rând, a apărut o gamă largă și disponibilă public de imagini marcate (ImageNet), despre care puteți afla. În al doilea rând, plăcile video moderne fac posibilă antrenarea și utilizarea rețelelor neuronale de sute de ori mai rapid. În al treilea rând, au apărut rețele neuronale gata făcute, pre-antrenate, recunoscând imagini, pe baza cărora vă puteți crea propriile aplicații fără a fi nevoie să faceți pregătirea pe termen lung a rețelei neuronale pentru muncă. Toate acestea asigură o dezvoltare foarte puternică a rețelelor neuronale în domeniul recunoașterii modelelor”, notează Kalinin.

Care sunt dimensiunile pieței rețelelor neuronale

„Foarte ușor de calculat. Puteți lua orice domeniu care utilizează forță de muncă slab calificată - operatori de call center, de exemplu - și pur și simplu scădeți toate resursele umane. as spune ca vorbim despre o piață de mai multe miliarde de dolari, chiar și într-o singură țară. Câți oameni din lume sunt implicați în muncă slab calificată poate fi ușor de înțeles. Deci, chiar și foarte abstract vorbind, cred că vorbim de o piață de o sută de miliarde de dolari în întreaga lume”, spune Grigory Bakunov, director de distribuție de tehnologie la Yandex.

Potrivit unor estimări, mai mult de jumătate din profesii vor fi automatizate - asta este volum maxim, care poate crește piața pentru algoritmi de învățare automată (și rețelele neuronale în special) - Andrey Kalinin, Mail.Ru Group

„Algoritmii de învățare automată sunt următorul pas în automatizarea oricărui proces, în dezvoltarea oricărui software. Prin urmare, piața cel puțin coincide cu întreaga piață de software, dar mai degrabă o depășește, pentru că devine posibil să se realizeze noi soluții inteligente care sunt inaccesibile software-ului vechi”, continuă Andrey Kalinin, șeful Căutare Mail.ru la Mail.Ru Group. .

De ce dezvoltatorii de rețele neuronale creează aplicații mobile pentru piața de masă

În ultimele luni, mai multe proiecte de divertisment de mare profil care folosesc rețele neuronale au apărut simultan pe piață - acesta este, de asemenea, un serviciu video popular, care este social. Rețeaua Facebook, și aplicații rusești pentru procesarea imaginilor (în iunie, investiții de la Mail.Ru Group) și altele.

Abilitățile propriilor rețele neuronale au fost demonstrate și de Google (tehnologia AlphaGo a câștigat campionul la Go; în martie 2016, corporația a vândut la licitație 29 de tablouri desenate de rețele neuronale și așa mai departe) și Microsoft (proiectul CaptionBot, care recunoaște imagini în imagini și generează automat subtitrări pentru ele; proiectul WhatDog, care determină rasa unui câine dintr-o fotografie; serviciul HowOld, care determină vârsta unei persoane într-o imagine și așa mai departe) și Yandex (în iunie , echipa a construit un serviciu de recunoaștere a mașinilor în imagini în aplicația Avto.ru; a prezentat un album muzical; în mai a creat proiectul LikeMo.net pentru desen în stilul artiștilor celebri).

Astfel de servicii de divertisment sunt create mai degrabă decât pentru a rezolva problemele globale către care sunt vizate rețelele neuronale, ci pentru a demonstra capacitățile unei rețele neuronale și pentru a-și desfășura formarea.

„Jocurile sunt o trăsătură caracteristică a comportamentului nostru ca specie biologică. Pe de o parte, aproape toate scenariile tipice ale comportamentului uman pot fi modelate pe situații de joc, iar pe de altă parte, creatorii de jocuri și, mai ales, jucătorii pot obține multă plăcere din acest proces. Există și un aspect pur utilitarist. Un joc bine conceput nu numai că aduce satisfacție jucătorilor, ci ei antrenează algoritmul rețelei neuronale în timp ce se joacă. La urma urmei, rețelele neuronale se bazează pe învățarea prin exemple”, spune Vlad Shershulsky de la Microsoft.

„În primul rând, acest lucru se face pentru a arăta posibilitățile tehnologiei. Nu există într-adevăr alt motiv. Dacă vorbim despre Prisma, atunci este clar de ce au făcut-o. Băieții au construit o conductă care le permite să lucreze cu imagini. Pentru a demonstra acest lucru, au ales o modalitate destul de simplă de a crea stilizări. De ce nu? Aceasta este doar o demonstrație a modului în care funcționează algoritmii”, spune Grigory Bakunov de la Yandex.

Andrey Kalinin de la Mail.Ru Group are o altă părere: „Desigur, acest lucru este spectaculos din punctul de vedere al publicului. Pe de altă parte, nu aș spune că produsele de divertisment nu pot fi aplicate în zone mai utile. De exemplu, sarcina de a modela imaginile este extrem de relevantă pentru o serie de industrii (design, jocuri pe calculator, animația sunt doar câteva exemple), iar utilizarea completă a rețelelor neuronale poate optimiza semnificativ costurile și metodele de creare a conținutului pentru acestea.

Jucători majori pe piața rețelelor neuronale

După cum remarcă Andrei Kalinin, în general, majoritatea rețelelor neuronale de pe piață nu sunt foarte diferite unele de altele. „Tehnologia este aproximativ aceeași pentru toată lumea. Dar utilizarea rețelelor neuronale este o plăcere pe care nu și-o poate permite toată lumea. Pentru a antrena o rețea neuronală pe cont propriu și a efectua o mulțime de experimente pe ea, aveți nevoie de seturi de antrenament mari și de o flotă de mașini cu plăci video scumpe. Evident, companiile mari au astfel de oportunități”, spune el.

Printre principalii jucători de pe piață, Kalinin menționează Google și divizia sa Google DeepMind, care a creat rețeaua AlphaGo, și Google Brain. Microsoft are propriile dezvoltări în acest domeniu - acestea sunt gestionate de laboratorul Microsoft Research. Rețelele neuronale sunt create la IBM, Facebook (o divizie a Facebook AI Research), Baidu (Institutul Baidu de Învățare Aprofundată) și altele. Multe dezvoltări sunt realizate la universitățile tehnice din întreaga lume.

Grigory Bakunov, director de diseminare a tehnologiei la Yandex, observă că dezvoltări interesante în domeniul rețelelor neuronale se găsesc și în rândul startup-urilor. „Mi-aș aminti, de exemplu, ClarifAI. Acesta este un mic startup, făcut cândva de oameni de la Google. Acum probabil că sunt cei mai buni din lume la identificarea conținutului unei imagini.” Aceste startup-uri includ MSQRD, Prisma și altele.

În Rusia, dezvoltările în domeniul rețelelor neuronale sunt realizate nu numai de startup-uri, ci și de marile companii de tehnologie - de exemplu, holdingul Mail.Ru Group utilizează rețele neuronale pentru procesarea și clasificarea textelor în „Căutare”, analiza imaginilor. . Compania efectuează, de asemenea, dezvoltări experimentale legate de roboți și sisteme conversaționale.

Yandex își creează și propriile rețele neuronale: „Practic, astfel de rețele sunt deja folosite în lucrul cu imagini, cu sunet, dar le explorăm capacitățile în alte domenii. Acum facem o mulțime de experimente în utilizarea rețelelor neuronale în lucrul cu text.” Dezvoltarea se realizează în universități: la Skoltech, Institutul de Fizică și Tehnologie din Moscova, Universitatea de Stat din Moscova, Școala Superioară de Economie și altele.

Rețelele neuronale sunt un model matematic construit pe baza principiilor de funcționare a rețelelor neuronale bionice. Cunoașterea acestui fenomen ar trebui să înceapă cu conceptul de perceptron multistrat ca primă întruchipare a acestui sistem ca model de computer.

Ce este un perceptron multistrat pe scurt

Un perceptron multistrat este un model de calcul ierarhic, în care calculatorul este construit dintr-un set de neuroni de noduri simple care au multe intrări și o ieșire. Fiecare intrare (sinapsă) are asociată o pondere.

Intrările sistemului sunt alimentate cu valori care se propagă prin conexiuni interneuronale. Aceste valori, care sunt numere reale, sunt înmulțite cu greutățile legăturilor.

Diagrama logică a principiului de funcționare al perceptronului este cel mai ușor reprezentată folosind un desen grafic cu diferite culori și relații între ele:

Utilizarea rețelelor neuronale

Această metodă este utilizată pentru o varietate de scopuri. De exemplu, dacă trimiteți cotații de valori mobiliare la bursă ca intrare, rezultatul rezultat poate fi interpretat ca un semnal că titlul de valoare va scădea sau va crește prețul în viitor.

Un alt exemplu de utilizare viitoare a rețelelor neuronale este predicția mai precisă a recesiunilor globale și financiare.

Dacă intrarea este dată, de exemplu, valoarea luminozității setului de puncte raster, atunci la ieșire puteți obține o decizie cu privire la ce imagine este.

Conform acestei scheme, rețelele neuronale au învățat să imite picturile unor artiști celebri, inclusiv Van Gogh, precum și să se deseneze. imagini uniceîntr-o mare varietate de stiluri de artă.

Pentru o realizare atât de semnificativă în dezvoltarea rețelelor neuronale, termenul a fost propus de Google inceptionism - pictură creată de inteligența artificială și caracterizată de psihedelic extrem în cele mai bune tradiții.

Desigur, pentru ca sistemul să dea răspunsurile corecte, este necesar să-l reglați fin. Inițial, principiul de funcționare s-a bazat pe o selecție aleatorie a variabilelor aleatoare. Prin urmare, esența algoritmului este ajustarea sistemului la cele mai corecte răspunsuri.

În acest scop, structura rețelei neuronale a fost completată cu un algoritm de corecție a greutății, care permite minimizarea erorilor. Acesta este un lucru extrem de util care a fost documentat de multe ori cu multe produse comerciale.

Cu toate acestea, în mod paradoxal, sistemul încă nu a devenit asemănător cu creierul uman. A devenit clar că pentru a rezolva probleme mai grave decât prognoza de schimb, de exemplu, pentru un sistem complex de control al robotului cu informații multimodale, rețeaua neuronală trebuie să fie mare, în timp ce rețelele neuronale tradiționale sunt greu de realizat așa.

Cert este că creierul este format din 10 miliarde de neuroni, fiecare dintre ele având 10.000 de conexiuni. Acesta este un sistem extrem de eficient din punct de vedere energetic și rezistent la zgomot, creat de-a lungul a milioane de ani. Care este diferența?

Diferențele în principiul funcționării creierului și a rețelelor neuronale

Este vorba despre principiu diferit semnalizarea rețelei noastre biologice de neuroni și perceptron. Într-un perceptron multistrat, neuronii fac schimb de valori între ei, care sunt numere reale. Și în creier există un schimb de impulsuri cu o amplitudine strict fixă ​​și de scurtă durată. Adică pulsurile sunt aproape instantanee.

Din aceasta rezultă o întreagă gamă de avantaje și beneficii. În primul rând, astfel de linii de semnal sunt foarte economice și inactive - aproape nimic nu se propagă prin conexiunile dintre neuroni. În perceptron, fiecare linie de semnal trebuie să aibă o valoare cu adevărat semnificativă.

În al doilea rând, schema de transmisie a semnalului de impulsuri, împreună cu eficiența energetică, oferă, de asemenea, ușurință în implementare, deoarece generarea și procesarea impulsurilor pot fi efectuate folosind cel mai simplu circuite analogice, spre deosebire de mașini complexe de sprijinire a transferului de valori reale.

În al treilea rând, rețelele de impuls (spike) sunt protejate de interferențe. Avem un impuls calibrat, impunerea de zgomot asupra căruia nu interferează cu funcționarea sistemului. Numerele reale, pe de altă parte, sunt afectate de zgomot.

Și, desigur, dacă vorbim despre simulare numerică cu transmisie digitală mai degrabă decât analogică, atunci pentru a codifica 1 octet de informații, avem nevoie de 8 linii de semnal în loc de una.

Adică implementarea digitală sisteme similare de asemenea, nu este o opțiune. Nici măcar instalarea de routere multistrat nu rezolvă problema, deoarece rețeaua neuronală încetinește și continuă să fie ineficientă.

Prin urmare, este evident că pentru a crea rețele neuronale la scară largă ar trebui folosită o abordare bionică, și anume, încercarea de a crea un sistem în imaginea și asemănarea creierului.

Vom vorbi în continuare despre această clasă cea mai interesantă de rețele neuronale cu impulsuri:

Videoclip pe tema esenței rețelelor neuronale într-un limbaj simplu:

Recent, din ce în ce mai des se vorbește despre așa-numitele rețele neuronale, spun ei, în curând vor fi utilizate activ în robotică și în inginerie mecanică și în multe alte domenii ale activității umane, dar algoritmii motoarelor de căutare, același Google, încep deja încet să le folosească. Care sunt aceste rețele neuronale, cum funcționează, care sunt aplicațiile lor și cum ne pot fi utile, citiți despre toate acestea în continuare.

Ce sunt rețelele neuronale

Rețelele neuronale sunt unul dintre domeniile cercetării științifice în domeniul creării inteligenței artificiale (AI), care se bazează pe dorința de a imita sistemul nervos uman. Inclusiv capacitatea ei (sistemului nervos) de a corecta greșelile și de a auto-învăța. Toate acestea, deși oarecum aspre, ar trebui să ne permită să simulăm activitatea creierului uman.

Rețele neuronale biologice

Dar această definiție din paragraful de mai sus este pur tehnică, dar vorbind în limbajul biologiei, rețeaua neuronală este sistemul nervos uman, acel set de neuroni din creierul nostru, datorită căruia gândim, luăm anumite decizii, percepem lumea din jur. ne.

Un neuron biologic este o celulă specială formată dintr-un nucleu, un corp și procese, în plus, având o relație strânsă cu mii de alți neuroni. Prin această conexiune, impulsurile electrochimice sunt transmise constant, aducând întreaga rețea neuronală într-o stare de excitare sau invers. De exemplu, un eveniment plăcut și în același timp incitant (întâlnirea cu cineva drag, câștigarea unui concurs etc.) va genera un impuls electrochimic în rețeaua neuronală care se află în capul nostru, care va duce la excitarea acestuia. Ca urmare, rețeaua neuronală din creierul nostru își va transmite excitația către alte organe ale corpului nostru și va duce la creșterea ritmului cardiac, la clipirea mai frecventă a ochilor etc.

Aici, în imagine, este un model foarte simplificat al rețelei neuronale biologice a creierului. Vedem că un neuron este format dintr-un corp celular și un nucleu, corpul celular, la rândul său, are multe fibre ramificate numite dendrite. Dendritele lungi se numesc axoni și au o lungime mult mai mare decât cea prezentată în această figură, prin intermediul axonilor se realizează comunicarea între neuroni, datorită lor rețeaua neuronală biologică funcționează în capul nostru.

Istoria rețelelor neuronale

Care este istoria dezvoltării rețelelor neuronale în știință și tehnologie? Ea își are originea odată cu apariția primelor computere sau computere (calculatoare electronice) așa cum erau numite în acele vremuri. Deci, la sfârșitul anilor 1940, un anume Donald Hebb a dezvoltat un mecanism de rețea neuronală, care a stabilit regulile pentru predarea computerelor, aceste „protocalculatoare”.

Cronologia ulterioară a evenimentelor a fost următoarea:

  • În 1954, primul uz practic rețelele neuronale în lucrul computerelor.
  • În 1958, Frank Rosenblatt a dezvoltat un algoritm pentru recunoașterea modelelor și o adnotare matematică pentru acesta.
  • În anii 1960, interesul pentru dezvoltarea rețelelor neuronale a scăzut oarecum din cauza puterii slabe de calcul din acea vreme.
  • Și a fost reînviat deja în anii 1980, în această perioadă a apărut un sistem cu un mecanism de feedback, au fost dezvoltați algoritmi de auto-învățare.
  • Până în 2000, puterea computerelor a crescut atât de mult încât au fost capabile să realizeze cele mai sălbatice vise ale oamenilor de știință din trecut. În acest moment, apar programe de recunoaștere a vocii, viziune computerizatăși mult mai mult.

Rețele neuronale artificiale

Rețelele neuronale artificiale sunt de obicei înțelese ca sisteme de calcul având capacitatea de auto-învățare, crescându-și treptat productivitatea. Principalele elemente ale structurii rețelei neuronale sunt:

  • Neuroni artificiali, care sunt unități elementare interconectate.
  • O sinapsă este o conexiune care este folosită pentru a trimite și a primi informații între neuroni.
  • Un semnal este informația efectivă care trebuie transmisă.

Aplicarea rețelelor neuronale

Domeniul de aplicare al rețelelor neuronale artificiale se extinde în fiecare an, astăzi ele sunt utilizate în domenii precum:

  • Învățarea automată este un tip de inteligență artificială. Se bazează pe antrenamentul AI pe exemplul a milioane de sarcini de același tip. În zilele noastre, învățarea automată este implementată în mod activ motoare de căutare Google, Yandex, Bing, Baidu. Așadar, pe baza milioanelor de interogări de căutare pe care toți le introducem pe Google în fiecare zi, algoritmii lor învață să ne arate cele mai relevante rezultate, astfel încât să putem găsi exact ceea ce căutăm.
  • În robotică, rețelele neuronale sunt folosite în dezvoltarea a numeroși algoritmi pentru „creierele” de fier ale roboților.
  • Arhitecti sisteme informatice utilizați rețelele neuronale pentru a rezolva problema calculului paralel.
  • Cu ajutorul rețelelor neuronale, matematicienii pot rezolva diverse probleme matematice complexe.

Tipuri de rețele neuronale

În general, pentru diverse sarcini sunt utilizate tipuri diferiteși tipuri de rețele neuronale, printre care se numără:

  • rețele neuronale convoluționale,
  • rețele neuronale recurente,
  • Rețeaua neuronală Hopfield.

Rețele neuronale convoluționale

Rețelele convoluționale sunt unul dintre cele mai populare tipuri de rețele neuronale artificiale. Așa că și-au dovedit eficiența în recunoașterea modelelor vizuale (video și imagini), sistemele de recomandare și procesarea limbajului.

  • Rețelele neuronale convoluționale sunt foarte scalabile și pot fi utilizate pentru recunoașterea modelelor de orice rezoluție mare.
  • Aceste rețele folosesc neuroni tridimensionali volumetrici. Într-un singur strat, neuronii sunt conectați doar printr-un câmp mic, numit strat receptiv.
  • Neuronii straturilor învecinate sunt conectați prin mecanismul de localizare spațială. Lucrarea multor astfel de straturi este asigurată de filtre speciale neliniare care răspund la un număr tot mai mare de pixeli.

Rețele neuronale recurente

Astfel de rețele neuronale sunt numite recurente, ale căror conexiuni între neuroni formează un ciclu indicativ. Are urmatoarele caracteristici:

  • Fiecare conexiune are propria greutate, care este, de asemenea, o prioritate.
  • Nodurile sunt împărțite în două tipuri, noduri introductive și noduri ascunse.
  • Informațiile dintr-o rețea neuronală recurentă sunt transmise nu numai în linie dreaptă, strat cu strat, ci și între neuronii înșiși.
  • O trăsătură distinctivă importantă a unei rețele neuronale recurente este prezența așa-numitei „zone de atenție”, când mașinii i se pot furniza anumite date care necesită o procesare îmbunătățită.

Rețelele neuronale recurente sunt utilizate în recunoașterea și procesarea datelor text (în frecvență, se bazează pe Google Translator, algoritmul Yandex Palekh, asistent vocal Apple Siri).

Rețele neuronale, video

Și în concluzie video interesant despre rețelele neuronale.

1.2 Aplicații ale rețelelor neuronale

Rețelele neuronale artificiale sunt utilizate în prezent pe scară largă pentru a rezolva o varietate de probleme și sunt utilizate în mod activ acolo unde soluțiile algoritmice convenționale sunt ineficiente sau chiar imposibile. Printre sarcinile pe care rețelele neuronale artificiale au încredere să le rezolve se numără următoarele: recunoașterea textului, sistemele de securitate și supraveghere video, automatizarea proceselor de recunoaștere a imaginilor, controlul adaptiv, aproximarea funcționalelor, prognoza - și asta nu este tot. Cu ajutorul rețelelor neuronale, este posibil să se efectueze recunoașterea optică sau semnale sonore. Implementările hardware ale ANN-urilor sunt ideale pentru rezolvarea problemelor de identificare și control, deoarece acestea asigură, datorită structurii paralele, o viteză extrem de mare a operațiunilor.

Caracteristicile descrise sunt legate în principal de rețelele neuronale stratificate antrenate de algoritmul de backpropagation și rețelele neuronale în creștere bazate pe variante ale algoritmului de corelație în cascadă. Dar există și alte clase de rețele neuronale - rețele neuronale memorie asociativă, rețele neuronale pentru cuantificarea datelor, compresia datelor prin construirea de componente principale independente, rețele neuronale pentru separarea unui amestec de semnale etc. Ie. gama de sarcini rezolvate de rețelele neuronale este foarte, foarte largă, deoarece setul de algoritmi de rețele neuronale în sine este de asemenea larg.

1.3 Clasificarea rețelelor neuronale

Există o gamă destul de largă moduri universale organizarea instrumentelor și procesul propriu-zis de utilizare a rețelelor neuronale pe diverse baze hardware și software. Puteți alege întotdeauna pe cel mai optim pentru o anumită sarcină - totul este determinat de proprietățile sarcinii și cerințele pentru soluție.

Cu toate acestea, utilizarea rețelelor neuronale este complicată din mai multe motive. Este imposibil să veniți cu vreo ANN universală pentru care ar fi potrivită tipuri variate sarcini. Rețelele neuronale sunt utilizate în două versiuni:

1) Se construiește o rețea neuronală care rezolvă o anumită clasă de probleme,

2) Pentru fiecare instanță a sarcinii, se construiește o anumită rețea neuronală care găsește o soluție cvasi-optimă pentru această sarcină.

Există mai multe tipuri de rețele neuronale. Clasificarea lor este prezentată în Figura 1.1

Figura 1.1 Clasificarea INS


Cea mai comună familie de rețele de acțiune directă sunt perceptronii multistrat, în care neuronii sunt aranjați în straturi și conectați prin conexiuni unidirecționale care merg de la intrarea la ieșirea rețelei. Rețelele de acțiune directă sunt statice în sensul că pentru o intrare dată produc un set de valori de ieșire care nu depind de starea anterioară retelelor.

Rețelele recurente sunt dinamice deoarece, în virtutea părere modifică intrările neuronilor, ceea ce duce la o schimbare a stării rețelei. Comportarea rețelelor recurente este descrisă prin ecuații diferențiale sau diferențiale, de obicei de ordinul întâi. Acest lucru extinde foarte mult domeniul de aplicare al rețelelor neuronale și modul de antrenament al acestora. Rețeaua este organizată în așa fel încât fiecare neuron să primească input de la alți neuroni, posibil atât de la sine, cât și de la mediu.

Există, de asemenea, două abordări principale pentru implementarea rețelelor neuronale: digitală și analogică. Avantajele implementărilor analogice sunt: ​​viteză mare, fiabilitate și economie. Cu toate acestea, sfera posibilei utilizări în masă a neurocipurilor analogice antrenate este destul de restrânsă. Acest lucru se datorează complexității mari a implementării hardware a algoritmilor de învățare extrem de eficienți și necesității de pregătire specială a potențialilor utilizatori pentru organizarea optimă a procesului de adaptare. În același timp, neurocalculatoarele analogice antrenate (rețele neuronale) cu o structură de conexiuni fixă ​​sau ușor reglabilă – neuroprocesoare – pot fi utilizate pe scară largă.

Sarcina de a crea neuroprocesoare se reduce la predarea unui model de rețea neuronală digitală a comportamentului dorit pe un mediu normal. calculator digital.

Rețelele pot fi, de asemenea, clasificate în funcție de numărul de straturi. În acest caz, neliniaritatea funcției de activare joacă un rol important, deoarece dacă nu ar avea această proprietate sau nu ar fi inclusă în algoritmul de funcționare al fiecărui neuron, rezultatul funcționării oricărei rețele neuronale n-straturi ar fi se reduce la înmulțirea vectorului semnal de intrare φ cu o matrice de coeficienți de greutate. Adică, de fapt, o astfel de rețea neuronală este echivalentă cu o rețea neuronală cu un singur strat cu o matrice de greutate a unui singur strat W. În plus, neliniaritatea este uneori introdusă în conexiunile sinaptice.

1.4 Structura și principiile de funcționare a unei rețele neuronale

A fost ales un element de prag binar ca model de neuron, care calculează suma ponderată a semnalelor de intrare și generează un semnal de mărime 1 la ieșire dacă această sumă depășește o anumită valoare de prag și 0 în caz contrar. Pana acum acest model nu a suferit modificări majore. Au fost introduse noi tipuri de funcții de activare. Modelul structural al unui neuron tehnic este prezentat în Figura 1.3

Figura 1.3 Modelul formal al unui neuron artificial

Intrarea unui neuron artificial primește un anumit set de semnale, fiecare dintre acestea fiind ieșirea unui alt neuron sau un semnal de intrare al unui model de rețea neuronală. Fiecare intrare este înmulțită cu o greutate corespunzătoare, similară cu puterea sinaptică a unui neuron biologic. Greutatea determină cât de mult îi afectează starea intrarea corespunzătoare a neuronului. Toate produsele sunt rezumate, determinând nivelul de activare a neuronilor. Starea neuronului este determinată de formula.

unde φ este setul de semnale care sosesc la intrarea neuronului,

w i sunt coeficienții de greutate ai neuronului.

, (1.2)

unde n este dimensiunea vectorului de intrare,

w 0 - „polarizare neuronală”, introdusă pentru a inițializa rețeaua, - este conectată la intrarea neschimbată +1,

F este funcția de activare a neuronului.

Neuronii pot fi grupați într-o structură de rețea în diferite moduri. Caracteristici funcționale neuronii și modul în care aceștia sunt combinați într-o structură de rețea determină caracteristicile rețelei neuronale. Pentru rezolvarea problemelor de identificare și control, rețelele neuronale multistrat (MNS) de acțiune directă sau perceptronii multistrat sunt cele mai adecvate. La proiectarea unui MNS, neuronii sunt combinați în straturi, fiecare dintre acestea procesând un vector de semnale din stratul anterior. Implementarea minimă este o rețea neuronală cu două straturi constând dintr-un strat de intrare (distributiv), intermediar (ascuns) și un strat de ieșire.


Figura 1.4 Schema structurala rețea neuronală cu două straturi.

Implementarea modelului unei rețele neuronale cu două straturi de acțiune directă are următoarea reprezentare matematică:

, (1.7)

unde n φ este dimensiunea vectorului de intrare φ al rețelei neuronale;

n h este numărul de neuroni din stratul ascuns;

θ – vectorul parametrilor ajustabili ai rețelei neuronale, inclusiv coeficienții de greutate și distorsiunile neuronale (w ji , W ij)

f j (x) este funcția de activare a neuronilor din stratul ascuns;

F i (x) – funcția de activare a neuronilor stratului de ieșire.

Perceptronul este o rețea formată din mai multe straturi conectate secvenţial de neuroni formali (Figura 1.3). Pe Cel mai mic nivel ierarhie există un strat de intrare format din elemente senzoriale, a cărui sarcină este doar să primească și să distribuie informațiile de intrare în rețea. Apoi există unul sau, mai rar, mai multe straturi ascunse. Fiecare neuron de pe stratul ascuns are mai multe intrări conectate la ieșirile neuronilor stratului anterior sau direct la senzorii de intrare φ 1 ..φ n , și o ieșire. Neuronul este caracterizat de un vector unic de parametri ajustabili θ. Funcția unui neuron este de a calcula suma ponderată a intrărilor sale și apoi de a o transforma neliniar într-un semnal de ieșire:




Sisteme expert (A. Baturo), precum și prelegeri susținute de prof. UN. Cocoșat pe rețelele neuronale. Anexa 1. Afișe pentru susținerea diplomei. TEHNOLOGIA EXTRAGEREI CUNOAȘTERII DIN REȚELE NEURALE: ¨ APROBARE, ¨ PROIECTARE SOFTWARE, ¨ UTILIZARE ÎN PSIHOLINGVISTĂ SCOPUL LUCRĂRII ¨ aprobarea tehnologiei flexibile de extracție...

MT la extrapolarea non-critică a rezultatului este considerată slăbiciunea sa. Rețelele RBF sunt mai sensibile la „blestemul dimensionalității” și întâmpină dificultăți semnificative atunci când numărul de intrări este mare. 5. MODELAREA REȚELELOR NEURALE PENTRU PREDICȚIA COSTURILOR IMMOBILIARE 5.1 ​​Caracteristicile previziunii rețelelor neuronale în problema evaluării imobiliare Utilizarea rețelelor neuronale poate fi...

Analizați tendințele lor și preziceți situația în viitor. Toți participanții la piața valorilor mobiliare își planifică operațiunile numai după o analiză atentă. Metodele statistice de prognoză a dezvoltării pieței valorilor mobiliare se bazează pe construcția indicilor bursieri, calculul dispersiei, variației, covarianței, extrapolării și interpolării. Indicii bursieri sunt cei mai populari din toate...


Începând cu 20 mai 2006 (lista de prețuri Platan) - 2654 de ruble. ANEXA D Date inițiale pentru implementarea părții organizatorice și economice Tema lucrării finale de calificare: Sistem de rețea neuronală pentru diagnosticarea și controlul unei unități de pompare cu tijă de ventuză. Locul practicării înainte de absolvire: UGATU Preț analog: 40.000 de ruble. Preț cerut: 35.000 de ruble. Volumul necesar: 1 bucată Descarcare...