Cum se configurează smartphone-uri și PC-uri. Portal de informare
  • Acasă
  • Sfat
  • Pe scurt despre modul în care funcționează neuroprocesoarele folosind exemplul NM500 de la NeuroMem. Intel începe să livreze procesoare pentru rețelele neuronale

Pe scurt despre modul în care funcționează neuroprocesoarele folosind exemplul NM500 de la NeuroMem. Intel începe să livreze procesoare pentru rețelele neuronale

companie chineză Huawei a anunțat Kirin 970, primul chipset care include o unitate de procesare neuronală (NPU) dedicată. În urma chinezilor, Apple și-a prezentat A11 Bionic pentru Modele de iPhone 8, 8 Plus și X. Acest cip, printre altele, suportă tehnologia Neural Engine, care, potrivit reprezentanților companiei, este „special concepută pentru învățarea automată" Destul de recent, Qualcomm a introdus cipul său Snapdragon 845, care poate transfera sarcini legate de inteligența artificială către anumite nuclee. Nu există nicio diferență deosebită în abordările companiilor. Totul depinde de nivelurile de control de bază disponibile pentru dezvoltatori și de eficiența energetică a cipurilor.

Dar sunt noile cipuri într-adevăr semnificativ diferite de analogii existenți pe piață și, dacă da, care este diferența lor? Răspunsul la aceasta poate fi dat de termenul care se găsește adesea în rapoartele despre inteligența artificială - „computing heterogen”. Se aplică procesoarelor care utilizează caracteristici de sistem specializate pentru a îmbunătăți performanța sau a reduce consumul de energie. Această abordare a fost deja implementată în mod repetat în generațiile anterioare de cipuri. Noile procesoare mobile folosesc pur și simplu acest concept cu unele variații.

Dezvoltare naturală?

ÎN generațiile recente procesoarele folosesc în mod activ tehnologia ARM Big .Little. Combină nuclee lente, eficiente din punct de vedere energetic cu nuclee mai rapide și mai eficiente. nivel înalt consumul de energie. Ideea a fost reducerea cantității de energie pentru a crește autonomia dispozitivelor. Anul trecut, cipurile neuronale au făcut un alt pas în această direcție, adăugând element separat pentru sarcini de procesare inteligenţă artificială, sau, în cazul , folosind nuclee separate de putere redusă pentru această sarcină.

Procesorul mobil A11 Bionic de la Apple folosește Neural Engine în combinație cu un cip grafic pentru a accelera Face ID, Animoji și pentru a accelera unele aplicații non-native. Când utilizatorul execută aceste procese iPhone nou, cipul include un Neural Engine pentru a procesa fața proprietarului sau pentru a proiecta expresiile faciale ale acestuia pe o imagine animată.

NPU preia funcțiile de scanare și traducere a cuvintelor din imaginile obținute folosind Microsoft Translator. Cu toate acestea, deocamdată programul este singurul aplicație terță parte, lucrând cu adaptate Producator chinez tehnologie. Potrivit Huawei, noua tehnologie „HiAI” accelerează funcționarea majorității elementelor chipset-ului și este capabilă să îndeplinească o gamă mult mai largă de sarcini decât alte NPU.

Noi Orizonturi

Considerată separat, tehnologia face posibilă realizarea, cu o eficiență nu mai mică, direct pe dispozitiv a acelor sarcini care au fost procesate anterior folosind soluții cloud terțe. Cu ajutorul unor componente noi, un telefon echipat cu astfel de cipuri va putea funcționa mai multă acțiune simultan. Acest lucru va afecta multe aspecte ale funcționării dispozitivului, de la reducerea timpului de traducere până la căutarea de fotografii folosind hashtag-uri interne. De asemenea, transferul execuției unor astfel de procese direct pe smartphone, în loc să utilizeze soluții cloud, va avea un impact pozitiv asupra securității și confidențialității, reducând șansele ca hackerii să pună mâna pe datele utilizatorilor.

încă unul punct important Noile cipuri reprezintă consumul de energie, deoarece energia este o resursă valoroasă care necesită o distribuție rezonabilă, mai ales când vine vorba de sarcini repetitive. Cipurilor grafice le place să consume foarte repede durata de viață a bateriei, așa că descărcarea proceselor lor pe DSP poate fi o soluție bună.

De fapt, procesoarele mobile în sine nu pot lua decizii în mod independent cu privire la nucleele care trebuie utilizate la execuție anumite sarcini. Acest lucru depinde de dezvoltatorii și producătorii de echipamente care folosesc biblioteci acceptate de terți pentru aceasta. și să integreze în mod activ soluții precum TensorFlow Lite și Facebook Caffe2. Qualcomm acceptă, de asemenea, noul schimb de rețele neuronale deschise (ONNX), iar Apple a adăugat recent interoperabilitate pentru multe modele noi de învățare automată. Cadrul de bază ML.

Din păcate, noile procesoare mobile nu oferă încă avantaje speciale. Producătorii sunt deja măsurați în raport cu propriile teste și repere. Dar fără o integrare strânsă cu mediul utilizator modernÎn realitate, acești indicatori au puțină semnificație. Tehnologia în sine se află într-un stadiu foarte incipient de dezvoltare, iar dezvoltatorii care o folosesc sunt încă puțini și împrăștiați.

În orice caz, fiecare tehnologie nouă este un câștig pentru utilizator, fie că este vorba despre creșterea productivității sau eficiența energetică îmbunătățită. Producătorii sunt serioși să investească timp și bani în dezvoltarea cipurilor neuronale, ceea ce înseamnă că viitoarele procesoare mobile vor putea oferi o listă mult mai largă de sarcini care vor implica inteligența artificială.

Salutăm cititorii noștri pe paginile blogului iCover! La evenimentul desfășurat la începutul lunii februarie la San Francisco Conferinta internationala Internaţional Stare solidă Circuits Conference (ISSCC-2016), un grup de dezvoltatori de la MIT (Massachusetts Institute of Technology) a demonstrat un prototip funcțional al noii generații de cip Eyeriss, care a fost creat ca o soluție conceptuală care permite recrearea capabilităților algoritmilor rețelei neuronale în gamă largă dispozitive de putere redusă.


Unul dintre motive obiective Motivul pentru care rețelele neuronale artificiale nu au primit o dezvoltare adecvată în smartphone-urile sau tabletele noastre este lipsa unei surse de alimentare compacte cu suficientă putere. La urma urmei, așa-numitele sisteme de inteligență artificială asemănătoare creierului, „asemănătoare creierului”, cel puțin în forma în care sunt reprezentate de tehnologiile moderne, depind în munca lor de puternice procesoare multi-core consumând o cantitate incredibilă de energie în comparație cu creierul nostru. Nu a fost posibil să ne imaginăm astfel de soluții la nivelul dispozitivelor de clasă utilizator, cel puțin până de curând. În același timp, ideea „miniaturizării” inteligenței artificiale a excitat mintea dezvoltatorilor de destul de mult timp și, după cum se dovedește, dă deja roade destul de tangibile.

Rețelele neuronale au fost în centrul atenției științifice încă de la începuturile cercetării în domeniul inteligenței artificiale, dar în anii 1970 au fost oarecum uitate. În ultimul deceniu, tehnologiile legate de utilizarea rețelelor neuronale au fost studiate la nivelul programelor de „învățare profundă”.

„Învățarea profundă are multe aplicații, cum ar fi recunoașterea obiectelor, a vorbirii sau a feței”, notează Vivienne Sze și Emanuel E. Landsman, profesor asistent de inginerie electrică la MIT. informatică, al cărui grup a dezvoltat noul cip. „Acum, rețelele neuronale sunt destul de complexe și funcționează în principal pe cipuri puternice. Imaginați-vă că puteți aduce această funcționalitate la dvs telefon mobil sau un dispozitiv încorporat și apoi procesează cantități colosale de informații fără a utiliza o conexiune Wi-Fi. Procesarea unor cantități mari de date de pe smartphone-ul tău va evita întârzierea care apare din cauza schimbului de date cu rețeaua, care, la rândul său, va permite multor aplicații să funcționeze mult mai eficient. În plus, soluția propusă va oferi o nouă calitate de protecție a informațiilor confidențiale.”

Rețelele neuronale sunt de obicei implementate pe unități de procesare grafică (GPU) multi-core. La Conferința Internațională de la San Francisco, cercetătorii MIT au prezentat un nou cip cu 168 de nuclee conceput pentru a implementa algoritmi de inteligență artificială bazați pe rețele neuronale. În comparație cu un GPU mobil (nu este specificat care), procesorul a demonstrat o eficiență de 10 ori mai mare, ceea ce permite dispozitivului mobil al utilizatorului să fie folosit pentru a rula algoritmi puternici de inteligență artificială la nivel local, fără a fi nevoie să trimită date în cloud pentru procesare. Principalele puncte ale dezvoltării sunt reflectate în comunicatul de presă al MIT din 3 februarie 2016.

Noul cip, numit „Eyeriss” de către dezvoltatori, poate găsi o aplicație largă în Internetul lucrurilor, electronice purtabile, auto-conducere vehicule, echipamente de productie, și chiar în agricultură, ajutând la rezolvarea și coordonarea sarcinilor curente. Cu algoritmi de inteligență artificială la bord dispozitive mobile va putea lua decizii cu privire la nivel local, oferind utilizatorului un rezultat gata făcut ca ghid de acțiune, mai degrabă decât un set de date „brute” de pe Internet. Și, desigur, una dintre aplicațiile rețelelor neuronale locale este utilizarea lor în crearea de roboți autonomi pentru o mare varietate de scopuri.

Împărțiți și cuceriți

Rețelele neuronale au de obicei o structură cu mai multe straturi și fiecare strat conține un număr mare de noduri de procesare. În etapa inițială a procesării, datele sosesc și sunt distribuite între nodurile stratului inferior. După procesarea datelor primite de către fiecare dintre noduri, rezultatul este transferat pentru procesare către nodurile stratului următor. La ieșirea ultimului strat se formează rezultatul rezolvării problemei. În consecință, rezolvarea problemelor la scară largă folosind algoritmul descris va necesita resurse de calcul semnificative.

Cerințele stabilite inițial pentru cip de către dezvoltatori înșiși i-au plasat într-un cadru destul de strict: pe de o parte, soluția trebuie să fie eficientă energetic, pe de altă parte, trebuie să funcționeze cu simple blocuri de informații. În cele din urmă, cipul trebuie să fie capabil să simuleze diferite tipuri de rețele neuronale, ținând cont de sarcinile curente care îi sunt atribuite. Toate aceste cerințe au fost implementate cu succes în procesorul Eyeriss.

Cipul, dezvoltat la laboratorul MIT, este o rețea neuronală deja formată, localizată la nivelul unui procesor cu 168 de nuclee, care în viitor poate fi încorporată în dispozitivele mobile.

Cheia eficienței Eyeriss este reducerea la minimum a frecvenței de comunicare între nuclee și băncile de memorie externe, o operațiune asociată cu un consum mare de energie și costuri de timp. În timp ce nucleele GPU tradiționale sunt legate de o singură bancă de memorie comună, fiecare nucleu Eyeriss are propria memorie. În plus, datele sunt supuse unei proceduri de compresie înainte de a fi trimise către nucleele învecinate.

Un alt avantaj al algoritmului implementat este capacitatea nucleelor ​​de a „comunica” între ele direct, ocolind „intermediarul” sub forma unui autobuz. memorie de sistem. Aceasta este o caracteristică critică pentru simularea funcționării unui convoluțional rețea neuronală» (Rețeaua neuronală convoluțională - CNN). Toate lucrările de calcul necesare pentru recunoașterea imaginii și a vorbirii sunt efectuate local în Eyeriss, fără a fi nevoie să accesați resursele rețelei, ceea ce permite dispozitivului să funcționeze eficient chiar și în absența unei rețele externe.

În cele din urmă, un alt avantaj al Eyeriss este principiul distribuției „inteligente” a sarcinilor de calcul individuale între nuclee în cadrul unei singure probleme de rezolvat. În memoria sa locală, nucleul trebuie să stocheze nu numai datele procesate de noduri, ci și datele care descriu nodurile în sine. Pentru a asigura performanta maxima procesului de prelucrare a datelor, precum și pentru a încărca Eyeriss cu cantitatea maximă de date din memoria principală, algoritmul de distribuție a datelor pentru ambele tipuri este optimizat de un cip special conceput în acest scop în timp real, ținând cont de caracteristicile actualului rețea neuronală.

La Conferința Internațională de Circuite Solid State din San Francisco, echipa de dezvoltare, folosind capacitățile cipului Eyeriss la nivel de „utilizator”, a demonstrat implementarea unui algoritm de recunoaștere a modelelor în cadrul unei rețele neuronale locale. O sarcină similară – menționată în comunicatul de presă – a fost implementată anterior, dar la nivelul proiectelor guvernamentale ale celor mai moderne rețele neuronale create.

„Această activitate este foarte importantă, deoarece demonstrează cât de eficient procesoarele de deep learning încorporate pot oferi puterea și performanța de optimizare necesare și pot aduce complexe procese de calcul de la cloud la dispozitive mobile”, spune Mike Polley, vicepreședinte senior al laboratorului procesoare mobile Laboratorul de inovații al Samsung a adăugat: „Pe lângă un set inovator de soluții hardware, cercetările MIT demonstrează modul în care nucleul încorporat poate fi făcut util pentru dezvoltatorii de aplicații care folosesc arhitecturi de rețea AlexNet și Caffe standard din industrie”.

Finanțarea proiectului Eyeriss, începând cu crearea unei unități cu sediul la laboratorul MIT, a fost asigurată parțial de agenția americană de apărare DARPA. Nu este de mirare că primul care a răspuns la anunțul procesorului cu material editorial impresionant a fost celebrul analist militar Patrick Tucker. Noi procesoare Eyeriss instalate pe dispozitive mobile Soldații americani, este convins, vor fi capabili să rezolve probleme complexe de calcul asociate cu procesarea unor cantități colosale de informații fără a se conecta la o rețea comună.

Astfel, forțele aeriene americane primesc în prezent până la 1.500 de ore de videoclipuri HD și până la 1.500 de fotografii la rezoluție ultra-înaltă de la dronele care plutesc peste Afganistan în fiecare zi. În plus, tot acest flux nesfârșit de informații trebuie să fie analizat vizual de către operatori în mod demodat, deoarece software-ul de calculator existent nu este capabil să distingă un țăran care merge pe o potecă de munte cu un băț de un terorist cu un lansator de rachete ghidate. . Pentru a rezolva astfel de probleme, au început inițial să fie create metode de învățare automată bazate pe învățarea reprezentării.

Procesoarele Eyeriss sunt ideale pentru instalarea pe drone militare fără pilot, deoarece vor permite procesarea inteligentă a unei game de imagini și videoclipuri folosind tehnologii de deep learning direct la bordul aeronavei. În acest caz, datele utile eliminate ar putea fi trimise direct către unitățile de luptă care operează în regiunea specificată, ocolind centrul de analiză. informații operaționale.

Scurt rezumat

În timpul experimentelor, cipul Eyeriss a demonstrat un nivel de eficiență energetică de zece ori mai mare decât cel al telefoanelor mobile moderne. cipuri grafice. În același timp, cu ajutorul acestuia se dovedește a fi posibil din punct de vedere tehnologic să se asigure funcționarea algoritmilor de inteligență artificială pe dispozitive cu dimensiuni compacte - de la smartphone-uri și tablete până la electronice portabile. Întârzieri create de rețele La schimbul de date pentru un astfel de procesor, acestea sunt reduse la minimum, deoarece cipul poate efectua majoritatea calculelor la nivel local. Pe baza Eyeriss, va fi posibil să se creeze nu numai toate tipurile de „ dispozitive inteligente„, dar și roboți cu un anumit grad de independență în luarea deciziilor.

Intervale specifice de timp în care Eyeriss se va putea transforma în produs comercial iar dezvoltatorii de la MIT nu și-au anunțat încă potențialul maxim de a-și dezvălui capacitățile la nivel de consumator. Implicarea specialiștilor de frunte NVIDIA în dezvoltare și interesul puternic al cercetătorilor responsabili de la Samsung inspiră un oarecare optimism.

Pentru rețelele neuronale până la sfârșitul acestui an

Hardware Intel pentru a accelera operarea sistemelor de inteligență artificială, despre care Intel vorbește de ceva timp, va fi livrat primilor clienți anul acesta. Compania a anunțat astăzi că procesorul său de rețea neuronală de prima generație (numit de cod „Lake Crest”) va fi disponibil în curând pentru a fi comandat unui set limitat de parteneri, pentru a-i ajuta să-și accelereze dramatic eforturile în cercetarea inteligenței artificiale.


NNP (Neural Network Processor) este optimizat pentru foarte solutie rapida specializate probleme matematice, care stau la baza aplicațiilor de inteligență artificială, în special a rețelelor neuronale, o ramură populară în prezent a învățării automate. Una dintre principalele probleme ale rețelelor neuronale complexe care sunt acum atât de populare este faptul că acestea sunt extrem de intensive din punct de vedere al calculului, ceea ce le face dificil de testat și implementat rapid.

NNP-urile vor fi lansate inițial doar unui număr mic de parteneri Intel, pe care compania intenționează să-i lanseze înainte de sfârșitul acestui an. Hardware-ul este dezvoltat în strânsă colaborare cu Facebook, una dintre companiile care încearcă să folosească rețelele neuronale în propriile scopuri, în special vorbim despre combaterea spam-ului, știrilor „false” și multe altele. conținut neadecvat cel mai mare din lume.

Clienții vor putea accesa NNP prin serviciul Intel Nervana. Potrivit lui Naveen Rao, vicepreședinte și director general al grupului de produse Intel, compania intenționează să facă serviciul disponibil în general în viitorul apropiat.

Observatorii se așteaptă la o putere de calcul record de la sistem, care este diferită de alte produse Intel atât din punct de vedere tehnologic, cât și funcțional. Intel sugerează că dezvoltarea rapidă a sistemelor de inteligență artificială înseamnă o cerere mare a clienților pentru noi modele de procesoare cu noi capabilități. Intel promite că prezența nucleelor ​​ultra-rapide nu ar trebui să afecteze stabilitatea și vorbim și despre formarea unei infrastructuri adecvate.

„Când lucrați la un subiect precum rețelele neuronale, există multe speranțe pentru procesoarele neuronale”, a spus Rao. „Și suntem foarte atenți la completările și schimbările aduse arhitecturii procesorului. Când lucrați într-un mediu cu evoluție rapidă, cum ar fi rețelele neuronale, este extrem de important să urmăriți rapid toate solicitările și să le rezolvați pentru client.”

Intel lucrează în prezent la trei variante de procesoare neuronale și promit că cel puțin o variantă va fi disponibilă până la sfârșitul acestui an.

Rețelele neuronale au fost în centrul atenției științifice încă de la începuturile cercetării în domeniul inteligenței artificiale, dar în anii 1970 au fost oarecum uitate. În ultimul deceniu, tehnologiile legate de utilizarea rețelelor neuronale au fost studiate la nivelul programelor de „învățare profundă”. O rețea neuronală artificială este un model matematic, precum și întruchiparea software sau hardware, construit pe principiul organizării și funcționării rețelelor neuronale biologice - rețele de celule nervoase ale unui organism viu. Acest concept a apărut în timpul studierii proceselor care au loc în creier și încercând să modeleze aceste procese. După dezvoltarea algoritmilor de învățare, modelele rezultate au început să fie utilizate în scopuri practice: în probleme de prognoză, pentru recunoașterea modelelor, în probleme de control etc. ANN-urile sunt un sistem de procesoare simple conectate și interacționând (neuroni artificiali). Astfel de procesoare sunt de obicei destul de simple (mai ales în comparație cu procesoarele utilizate în calculatoare personale). Fiecare procesor rețea similară se ocupă doar de semnalele pe care le primește periodic și de semnalele pe care le trimite periodic altor procesoare. Și, totuși, fiind conectat suficient retea mare cu interacțiune controlată, de exemplu separat procesoare simpleîmpreună sunt capabili să îndeplinească sarcini destul de complexe.

  • Din punctul de vedere al învățării automate, o rețea neuronală este un caz special al metodelor de recunoaștere a modelelor, analizei discriminante, metodelor de grupare etc.
  • Din punct de vedere matematic, antrenarea rețelelor neuronale este o problemă de optimizare neliniară multi-parametrică.
  • Din punctul de vedere al ciberneticii, o rețea neuronală este utilizată în probleme de control adaptiv și ca algoritmi pentru robotică.
  • Din punctul de vedere al dezvoltării tehnologiei informatice și al programării, o rețea neuronală este o modalitate de a rezolva problema paralelismului efectiv.
  • Și din punctul de vedere al inteligenței artificiale, ANN este baza mișcării filozofice a conectivismului și direcția principală în abordare structurală pentru a studia posibilitatea construirii (modelării) inteligenței naturale folosind algoritmi informatici.

Rețelele neuronale nu sunt programate în sensul obișnuit al cuvântului, sunt antrenate. Abilitatea de a învăța este unul dintre principalele avantaje ale rețelelor neuronale față de algoritmii tradiționali. Din punct de vedere tehnic, învățarea constă în găsirea coeficienților conexiunilor dintre neuroni. În timpul procesului de antrenament, rețeaua neuronală este capabilă să identifice dependențe complexe între datele de intrare și datele de ieșire, precum și să efectueze generalizări. Aceasta înseamnă că, dacă antrenamentul are succes, rețeaua va putea returna rezultatul corect pe baza datelor care lipseau din setul de antrenament, precum și a datelor incomplete și/sau „zgomotoase”, parțial distorsionate.

Capacitățile predictive ale unei rețele neuronale rezultă direct din capacitatea sa de a generaliza și evidenția dependențele ascunse între datele de intrare și de ieșire. După antrenament, rețeaua este capabilă să prezică valoarea viitoare a unei anumite secvențe pe baza mai multor valorile anterioareși (sau) unele existente în momentul prezent factori. Trebuie remarcat faptul că prognoza este posibilă numai atunci când modificări anterioareîntr-adevăr, într-o oarecare măsură, predetermina viitorul. De exemplu, predicția prețurilor acțiunilor pe baza prețurilor de săptămâna trecută poate (sau nu) să aibă succes, în timp ce prognoza rezultatelor loteriei de mâine pe baza datelor din ultimii 50 de ani va eșua aproape sigur.

Lasă comentariul tău!

În prezent, neuroprocesoarele rămân încă unul dintre cele mai promițătoare domenii ale dezvoltării electronice. Desigur, sunt încă foarte departe de a fi perfecte. Cu toate acestea, tehnologia nu stă pe loc, iar capacitățile neuroprocesoarelor moderne se dovedesc a fi foarte impresionante. Acest articol descrie pe scurt istoria neuroprocesoarelor, dezvăluie diferențele dintre neuroprocesoare și procesoare cu arhitectură tradițională și analizează principiile de bază ale funcționării și antrenării neuroprocesoarelor folosind exemplul unui microcircuit.N.M.500 dinNeuroMem.

În ciuda tuturor realizărilor tehnologii moderne, creierul uman rămâne cel mai perfect sistem de calcul pe Pământ. Desigur, orice, chiar și cel mai simplu microcontroler pe 8 biți va depăși cu ușurință un profesor de matematică în competițiile de aritmetică, dar este puțin probabil să poată face față problemelor neformalizate.

Versatilitatea uimitoare a creierului a fost mult timp un vis pentru dezvoltatori sisteme de procesoare. Încercările de a crea o mașină analogă a neuronilor au fost făcute încă din anii 60 ai secolului trecut. Un exemplu este perceptronul Mark-1, dezvoltat de Frank Rosenblatt. Primele versiuni ale neuronilor electronici erau foarte departe de originalul biologic în ceea ce privește capacitățile lor, iar interesul pentru această problemă nu era foarte mare. Cu toate acestea, în anii 80, tehnologiile integrate au făcut posibilă crearea de procesoare complexe care combină milioane de tranzistori, iar normele lor topologice s-au dovedit a fi mai mici decât dimensiunea neuronilor biologici reali. În același timp, aceste procesoare erau încă semnificativ inferioare creierului în ceea ce privește eficiența lor în rezolvarea problemelor informale. Această contradicție a devenit impulsul dezvoltării tehnologiilor neuroprocesoarelor. Totodată, am discutat atât despre crearea arhitecturilor specializate, cât și despre dezvoltarea probleme teoretice.

Care este diferența dintre un procesor neuronal și un procesor tradițional?

Cum diferă procesoarele neuronale de sistemele tradiționale de procesoare, cum ar fi microcontrolere (MCU), procesoare (CPU), procesoare de semnal digital (DSP), GPU-uri(GP), etc. Principala diferență constă în arhitectură. Procesoarele tradiționale constau din unități separate care îndeplinesc diferite funcții (de calcul și unități periferice, memorie). Neuroprocesoarele au o structură mai „omogenă”, incluzând mulți neuroni - celule de calcul identice și relativ simple, cu memorie încorporată. Această diferență este clar vizibilă chiar și în fotografie (Figura 1).

Orez. 1. Fotografia mărită a structurii unui procesor tradițional și a unui neuroprocesor

Astfel, arhitectura unui neuroprocesor, prin definiție, se dovedește a fi multi-core, deoarece fiecare neuron este un nucleu de calcul independent. Ca urmare, multe operații precum recunoașterea imaginii, filtrarea etc. sunt efectuate foarte rapid. Desigur, procesoarele moderne pot avea și o structură multi-core (în primul rând procesoare grafice), dar rezolvarea problemelor neformalizate pentru ele se dovedește totuși dificilă. Alte diferențe importante Capacitățile procesorului sunt prezentate în Tabelul 1.

Tabelul 1. Comparația procesoarelor cu arhitectura tradițională și procesoarele neuronale

MK/ CPU/ DSP/ GP

Neuroprocesoare

Arhitectura Harvard sau arhitectura von Neumann cu separarea nucleului de calcul și a memoriei

Structura uniformă a celulelor de calcul identice cu memorie proprie

Prelucrare paralelă în sisteme multiprocesor

Procesare paralelă prin definiție

Rezolvarea problemelor logice/secvențiale/liniare?

Rezolvarea problemelor non-standard/paralele/neliniare?

Descompunerea sarcinilor și utilizarea evaluărilor obiective

Rezolvarea problemei „în întregime”, ținând cont de experiența anterioară și de auto-învățare constantă

Determinare rigidă după timp, aparate matematice, tip de date

Nu există un determinism strict în rezolvarea problemelor

Ideal pentru lucrul cu seturi de date clar structurate

Ideal pentru lucrul cu seturi de date nestructurate și non-standard

Dificultate la scalare

Ușurință relativă de scalare

Dezvoltarea neuroprocesoarelor, ca și dezvoltarea procesoarelor convenționale, este strâns legată de îmbunătățirea tehnologiilor integrate. Cu cât normele topologice sunt mai mici, cu atât mai mulți neuroni pot fi plasați pe un cip, menținând în același timp un nivel scăzut de consum (Figura 2).

Orez. 2. Dezvoltarea tehnologiilor integrate determină dezvoltarea neuroprocesoarelor

În prezent, există multe exemple de implementări mai mult și mai puțin reușite ale neuroprocesoarelor. Multe dintre soluțiile propuse au fost dezvoltate pentru a rezolva o gamă restrânsă de probleme și nu au fost întotdeauna disponibile pentru o gamă largă de dezvoltatori. Cu toate acestea, aparent, apariția procesoarelor neuronale accesibile și ușor de utilizat nu este departe. Un exemplu sunt procesoarele CM1K și NM500 de la NeuroMem.

Cum este structurată rețeaua neuronală într-un neuroprocesor?

Să ne uităm la proiectarea și principiul de funcționare al neuroprocesoarelor folosind exemplul CM1K și NM500 de la NeuroMem. Aceste procesoare, pe de o parte, dezvăluie bine esența neurocomputingului și, pe de altă parte, au o arhitectură destul de simplă și transparentă.

CM1K- un neuroprocesor fabricat folosind tehnologia 130 nm și care conține o rețea de 1024 de neuroni (Tabelul 2). CM1K nu are un supervizor încorporat (coprocesor de control încorporat) - toate calculele sunt efectuate de neuroni paraleli conectați la o magistrală paralelă și care funcționează la o frecvență de până la 27 MHz (Figura 3). În același timp consumul total sistemul se dovedește a fi destul de scăzut (de la 0,5 W). CM1K are un pachet TQFP de 16x16mm.

NM500- un nou neuroprocesor de la NeuroMem, realizat folosind tehnologia de 110 nm și care combină 576 de neuroni (Tabelul 2). La fel ca CM1K, NM500 nu are niciun supervizor încorporat (Figura 3). Dimensiunile carcasei a acestui procesor 4x4 mm (WCSP64), iar consumul este mai mic de 153 mW în modul activ.

Orez. 3. Structura neuroprocesoarelor CM1K și NM500 se dovedește a fi destul de simplă

Tabelul 2. Comparația caracteristicilor neuroprocesoarelor C1MK, QuarkSE/Curie și NM500

Parametru

QuarkSE/Curie

Producător

Numărul de neuroni

Memoria neuronilor

Distante

„Kcel mai apropiat vecinii» (K-Cel mai apropiat vecin, KNN)

Funcția de bază radială (RBF)

Calculul distanței LSUP

Calcularea distanței L1 (Manhattan)

În cascadă

Frecvență/frecvență când procesoarele în cascadă

Cadru

Tehnologie

Lipsa unui supervizor încorporat înseamnă că lucrul cu CM1K și NM500 necesită un procesor de control extern care va furniza neuronilor date. În acest caz, comunicarea se realizează printr-o magistrală paralelă bidirecțională de 26 de biți. În esență, NM500 este un lanț de neuroni identici care sunt conectați la o magistrală paralelă comună și au conexiuni între ei (Figura 4).

Orez. 4. Structura simplificată a NM500

Cum funcționează o rețea neuronală într-un neuroprocesor?

CM1K și NM500 sunt capabile să funcționeze în două moduri principale: antrenament și recunoaștere (Figura 5). În acest caz, putem vorbi despre date de natură complet diferită: texte, imagini, semnale sonore, video etc. Mai departe (doar pentru simplitate!) vom presupune că neuroprocesorul este folosit pentru recunoașterea imaginilor. Fluxul de date este generat de un procesor de control extern, iar procesarea este efectuată de neuroni.

Orez. 5. CM1K și NM500 pot funcționa în două moduri principale: învățare și recunoaștere

Fiecare neuron NM500 are propria memorie programabilă: principal 256 de octeți (șablon), context (8 biți), categorie (16 biți). Categoria este folosită pentru a clasifica obiectele, iar contextul este folosit pentru a împărți neuronii în subrețele. În plus, fiecare neuron are propriul său NID de 24 de biți (neuron ID). Programarea memoriilor neuronale este diferită de programarea procesoarelor convenționale. Într-un procesor convențional, programul este scris înainte de a începe lucrul. În multe neuroprocesoare (dar nu toate!) programarea poate fi efectuată direct în timpul funcționării și se numește antrenament.

Figura 6 prezintă procesul de antrenament al NM500. La primul pas, toți neuronii nu sunt antrenați și sunt în starea „gol” (cu excepția primului neuron). La ieșirea lor există semnal scăzut„L”. Primul neuron este în starea „gata de învățat”. După ce procesorul de control completează umplerea memorie internă(prin intermediul unei magistrale paralele), primul neuron va intra în starea „antrenat” și va primi identificatorul NID=1, un semnal mare „H” va fi setat la ieșire. În acest caz, al doilea neuron va intra în starea „gata de învățat”. În acest fel, toți neuronii (NID=2, NID=3...) pot fi antrenați secvențial și identificați automat. Această abordare permite procesoarelor NM500 să fie conectate în cascadă, crescând numărul de neuroni aproape la infinit.

Orez. 6. Neuronii NM500 sunt antrenați secvenţial

De exemplu, să analizăm funcționarea NM500 ca parte a unei case de marcat cu funcție de recunoaștere a produsului (Figura 7). În timpul procesului de antrenament, imaginile șablon ale produselor au fost scrise în memoria principală a neuronilor (256 de octeți), iar tipul lor a fost codificat în câmpul categoriei (16 biți): castraveți, banane, morcov etc. În plus, în timpul funcționării, camera face fotografie digitală produs. Procesorul de control transmite imaginea către toți neuronii simultan printr-o magistrală paralelă. Neuronii, folosind algoritmi de recunoaștere încorporați, compară conținutul memoriei lor și imaginea rezultată. Apoi, neuronii raportează procesorului de control despre rezultatele meciului. Dacă se găsește o potrivire, atunci sarcina a fost rezolvată cu succes. Dacă nu, atunci controlerul de control, independent sau cu ajutorul unui operator, poate crea șablon nouși plasați-l într-un neuron liber.

Orez. 7. Utilizarea NM500 pentru a recunoaște produsele

Neuronii pot fi utilizați pentru recunoaștere proprietăți diverse obiect, cum ar fi forma, culoarea etc. În astfel de cazuri, este convenabil să împărțiți neuronii în subrețele separate folosind câmpul de context. Apoi, în timpul procesului de recunoaștere, doar acei neuroni al căror context coincide cu context global, specificat de procesorul de control.

Exemplul dat nu ia în considerare cele mai complexe aspecte ale funcționării unui neuroprocesor. Mai exact, cum efectuează un neuron o comparație? Cum se evaluează asemănarea? Cum se rezolvă problemele controversate? De exemplu, ce s-ar întâmpla dacă în acest exemplu aparatul de fotografiat ar surprinde o banană verde, necoaptă, care arăta ca un castravete? Ar exista o coliziune între neuronii 1 și 3? Să luăm în considerare aceste întrebări separat.

De ce procesorul neuronal măsoară distanța în biți?

Pentru a înțelege cum este evaluat gradul de similitudine, ar trebui să se facă referire la structura neuronului din NM500 (Figura 8). În timpul procesului de comparare, imaginea originală este procesată folosind algoritmi specializați(despre ei vom vorbi mai departe) și un șablon (256 de octeți) stocat în memoria neuronului. Rezultatul comparației este un număr de 16 biți, care este plasat în registrul „Distanță”. Cu alte cuvinte, neuronul generează rezultatul nu sub forma „potrivită” - nu „potrivită”, ci sub forma unui număr de 16 biți - distanță, care este o măsură a „asemănării”. Cu cât distanța este mai mică, cu atât imaginea studiată este mai aproape de șablon.

Orez. 8. Proces de recunoaștere în neuronul NM500

După calcularea distanței, aceasta este comparată cu valoarea registrului câmpului de interes (câmp de influență, IF). Dacă distanța este mai mică, atunci obiectul are o mare asemănare cu șablonul. În acest caz, neuronul intră într-o stare excitată (foc) și începe să transmită valoarea distanței și apoi, dacă este necesar, categoria (16 biți) și identificatorul neuronului (NID) către procesorul de control.

Există posibilitatea ca obiectul studiat să se încadreze simultan în domeniul de interes al mai multor neuroni, precum o banană verde, care este similară atât cu o banană, cât și cu un castravete. Pentru astfel de cazuri, NM500 implementează un mecanism de arbitraj nedistructiv brevetat.

Pentru efectuarea arbitrajului se folosește blocul de comparație COMP. Una dintre intrările sale primește date de la neuron, iar a doua starea actuală cauciucuri. În acest caz, liniile de ieșire D ale unității de comparație sunt de tip colector deschis și sunt conectate la aceeași magistrală. Astfel, fiecare dintre neuroni nu numai că transmite date către magistrală, dar îi monitorizează și starea. Dacă se dovedește că unul dintre neuroni raportează o distanță mai mică (mai multă asemănare), atunci neuronul cu mai puțină asemănare se oprește automat și iese din „cursă” pentru o similaritate maximă.

Dacă procesorul de control, după citirea distanței, trebuie să citească categoria (16 biți) și identificatorul neuronului (NID), atunci se folosește același mecanism de arbitrare. Prin urmare, dacă doi neuroni au o distanță egală, dar unul dintre ei are o valoare de categorie mai mică, atunci el este cel care va câștiga „cursa” de arbitraj și va continua să transmită date.

Acest principiu de arbitraj se numește „Câștigătorul ia totul”, care este de obicei tradus ca „câștigătorul ia tot”.

Algoritmul de operare descris mai sus corespunde mecanismului funcțiilor de bază radială (Radial Basis Function, RBF). Principalul său avantaj este determinismul temporal maxim - procesorul de control află despre o potrivire (sau absența acesteia) în 19 cicluri de ceas (37 de cicluri de ceas cu scădere de categorie). NM500 acceptă, de asemenea, mecanismul K-Nearest Neighbor (KNN).

Când se utilizează mecanismul K-Nearest Neighbor (KNN), valoarea registrului câmpului de interes este ignorată și toți neuronii intră oricum într-o stare excitată. Ulterior, procesorul de control citește valorile distanței tuturor neuronilor, ceea ce durează mult mai mult timp. După cum am menționat mai sus, citirea distanței unui neuron necesită 19 cicluri de ceas, apoi, de exemplu, pentru a citi distanța a 50 de neuroni, vor fi necesare 950 de cicluri de ceas.

De ce sunt necesari diferiți algoritmi de procesare?

De asemenea, este necesar să spunem câteva cuvinte despre algoritmii de comparație înșiși. Există mulți astfel de algoritmi, în special NM500 acceptă algoritmii L1 (Manhattan) și Lsup (Figura 9). Alegerea algoritmului depinde de sarcina specifică:

  • Lsup vă permite să detectați abaterea maximă a datelor sursă de la șablon. Evident, un astfel de algoritm este ideal pentru filtrare, precum și pentru detectarea anomaliilor.
  • L1 vă permite să determinați abaterea tuturor componentelor matricei de date de la componentele corespunzătoare ale șablonului. Acest algoritm este solicitat în operațiunile miniere.

Orez. 9. Pentru a calcula distanța, NM500 utilizează algoritmii L1 (Manhattan) și Lsup

Lucrarea neuroprocesorului pe degete, în imagini și tabele

Acum că problemele generale au fost acoperite, este timpul să analizăm câteva exemple specifice în detaliu.

Exemplul 1. Recunoașterea tablourilor unidimensionale de două numere

ÎN în acest exemplu ar trebui să fie folosiți trei neuroni. Pentru a face acest lucru, memoria lor este umplută după cum urmează:

  • 1 neuron: model = (11, 11), câmp de interes AIF = 16, Categoria CAT= 55, NID=1;
  • 2 neuron: șablon = (15, 15), câmp de interes AIF = 16, categorie CAT = 33, NID = 2;
  • 3 neuron: model = (30, 30), câmpul de interes AIF = 20, categoria CAT = 100, NID = 3.

Acest exemplu poate fi ilustrat convenabil ca bidimensional model grafic(Figura 10). Fiecare neuron este reprezentat ca o sferă cu o rază egală cu câmpul de interes AIF. În același timp, este ușor de observat prezența unor domenii de interese suprapuse.

Orez. 10. Exemplul 1. Reprezentare grafică date sursă

Să luăm în considerare răspunsul sistemului la vectorii de intrare.

Vector (12, 12). Distanța estimată dintre neuronul 1 și vectorul 1 (conform algoritmului L1) se calculează ca suma diferențelor dintre componentele vectorului și șablon: (12-11) + (12-11) = 2.

De asemenea:

  • Distanța până la neuronul 2: (15-12) + (15-12) = 6.
  • Distanța până la neuronul 3: (30-12) + (30-12) = 36.

Astfel, vectorul (12, 12) se încadrează în domeniul de interes al neuronului 1 și al neuronului 2 (le excită), dar nu se încadrează în domeniul de interes al neuronului 3 (Figura 11).

Ca urmare, atunci când citiți rezultatul folosind mecanismul „câștigătorul ia tot”, procesorul de control va primi date de potrivire de la neuronul 1, deoarece neuronul 1 are distanța minimă, adică potrivirea maximă.

Orez. 11. Exemplul 1. Poziția vectorului (12,12)

Vector (13, 13). Distanțe estimate până la vector:

  • Distanța până la neuronul 1: (13-11) + (13-11) = 4.
  • Distanța până la neuronul 2: (15-13) + (15-13) = 4.
  • Distanța până la neuronul 3: (30-13) + (30-13) = 34.

Astfel, vectorul (13, 13) se încadrează în domeniul de interes al neuronului 1 și al neuronului 2 (le excită), dar nu se încadrează în domeniul de interes al neuronului 3 (Figura 12). În același timp, distanța până la 1 și 2 neuroni este aceeași. Cu toate acestea, deoarece categoria neuronului 2 este mai mică, acesta va câștiga cursa în care câștigătorul ia tot. Procesorul de control va primi date de potrivire de la neuronul 2.

Orez. 12. Exemplul 1. Poziția vectorului (13,13)

Vector (14, 14). Distanțe estimate până la vector:

  • Distanța până la neuronul 1: (14-11) + (14-11) = 6.
  • Distanța până la neuronul 2: (15-14) + (15-14) = 4.
  • Distanța până la neuronul 3: (100-14) + (100-14) = 32.

Astfel, vectorul (14, 14) se încadrează în domeniul de interes al neuronului 1 și al neuronului 2 (le excită), dar procesorul de control va primi date despre meciul de la câștigător - neuronul 2 (Figura 13).

Orez. 13. Exemplul 1. Poziția vectorului (14,14)

Vector (200, 200). Distanțe estimate până la vector:

  • Distanța până la neuronul 1: (200 - 11) + (200 - 11) = 378.
  • Distanța până la neuronul 2: (200 - 15) + (200 - 15) = 370.
  • Distanța până la neuronul 3: (200 - 30) + (200 - 30) = 340.

Astfel, vectorul (200, 200) nu intră în domeniul de interes al niciunui dintre neuroni (Figura 14). În astfel de cazuri, procesorul poate iniția scrierea acestui vector la un neuron neocupat și îl poate clasifica independent.

Orez. 14. Exemplul 1. Poziția vectorului (200.200)

Învățarea unui vector nou (13, 13). Să presupunem că trebuie să „învățăm” un vector nou (13,13) cu categoria 100. După cum se arată mai sus, acesta se află la o distanță egală de neuronul 1 și neuronul 2. Din acest motiv, atunci când scrieți acest vector, neuronii vor automat restrângeți câmpurile de interes la valoarea AIF = 8. Astfel, se realizează autoînvățarea neuronilor.

Orez. 15. Exemplul 1. Autoînvățarea neuronilor la adăugarea unui nou vector constă în îngustarea câmpului de interes

Exemplul 2. Antrenamentul și operarea unei rețele cu doi neuroni cu o serie de 10 numere

În acest exemplu, se repetă calcule similare cu cele din Exemplul 1. Principala diferență este că antrenamentul se efectuează între recunoașteri și afectează grav rezultatele.

Procesul este prezentat în tabelul 3.

Tabelul 3. Exemplul 2. Comportamentul unui neuroprocesor atunci când lucrează cu o matrice de 10 numere

Operațiunea

Cel mai bun meci

Al doilea cel mai bun meci

Antrenează 1 neuron

Vector 1 = 0,1,2,3,4,5,6,7,8,9

Recunoaştere

CAT=1, DIST=0, NID=1

CAT=0xffff, DIST=0xffff

Vector 2 = 0,1,2,6,4,5,6,7,8,9

Recunoaştere

CAT=1, DIST=3, NID=1

CAT=0xffff, DIST=0xffff

Antrenamentul 2 neuron

Vector 3 = 0,1,4,3,8,5,12,7,16,9

Recunoaştere

CAT=2, DIST=0, NID=2

CAT=0xffff, DIST=0xffff

Vector 4 = 0,1,2,3,4,5,12,7,16,9

Recunoaştere

CAT=2, DIST=6, NID=2

CAT=1, DIST=14, NID=1

Vector 5 = 0,1,2,3,4,5,6,7,16,9

Recunoaştere

CAT=1, DIST=8, NID=1

CAT=2, DIST=12, NID=2

Ce să faci dacă nu sunt destui neuroni?

Apare o întrebare. 576 de neuroni și 256 de octeți de memorie - este mult sau puțin? Evident, răspunsul depinde de cerințe aplicație specifică. Acest lucru este suficient pentru sarcini simple, dar aplicațiile mai complexe pot necesita mai mult. instrument puternic. Cu toate acestea, procesoarele NM500 se dovedesc a fi foarte simple și accesibile pentru o gamă largă de utilizatori, ceea ce este, fără îndoială, cel mai mare avantaj al acestora.

După cum am menționat mai sus, dacă este necesar, rețeaua neuronală bazată pe procesoare NM500 poate fi extinsă. În acest scop, se folosește cascada de microcircuite (Figura 16). În acest caz, ieșirea DCO a unui procesor trebuie conectată la intrarea DCI a următorului procesor. Numărul de microcircuite conectate secvenţial nu este limitat, sau mai degrabă limitat de capabilităţi placa de circuit imprimat menține integritatea semnalului atunci când funcționează la frecvențe de până la 20 MHz.

Orez. 16. Extinderea rețelei neuronale prin cascada procesoarelor NM500

Cum mă pot familiariza cu capacitățile NM500?

Unul dintre obiectivele creării NM500 a fost promovarea neuroprocesoarelor în rândul maselor. Acționând în cadrul acestei strategii, compania NeuroMem a luat calea logică și a lansat modulul de depanare NeuroTile compatibil cu Arduino, care face ca neuroprocesorul să fie cât mai accesibil atât dezvoltatorilor profesioniști, cât și pasionaților obișnuiți de electronică.

La bord NeuroTile are unul sau două procesoare NM500, un microcontroler STM32F476 de înaltă performanță și putere redusă cu un nucleu de procesor ARM Cortex-M4, XO3 FPGA de la Lattice, Bluetooth, un modul inerțial cu 6 axe (giroscop + accelerometru), un 6 -modul inerțial al axelor (magnetometru + accelerometru), senzor de presiune, microfon, slot pentru card de memorie, cip de încărcare baterii Li-ion, USB, stiva de antet pin compatibilă cu Arduino (Figura 17).

Orez. 17. Aspectși structura plăcii de dezvoltare NeuroTile

Există module de depanare compatibile cu Arduino cu NM500 de la producători terți, de exemplu ProdigyBoard de la compania coreeană nepes (Figura 18). Caracteristici distinctive ProdigyBoard sunt: ​​două procesoare NM500, 1GB DDR3, FPGA cu flash bootabil 20 Mbit, cameră, microfon, Micro SD, USB.

Orez. 18. Aspectul și structura plăcii de dezvoltare ProdigyBoard

Concluzie

Spre deosebire de procesoarele tradiționale, procesoarele neuronale oferă performanțe ridicate și consum redus atunci când execută sarcini informale complexe. Acestea pot fi utilizate într-o gamă largă de aplicații, de la controlul calității produselor până la procesarea imaginii și a sunetului.

Apariția neuroprocesoarelor simple și ușor de utilizat NM500 poate fi un pas mare pentru popularizarea tehnologiilor neuroprocesoarelor.

Caracteristicile neuroprocesoruluiNM500:

  • Număr de neuroni: 576;
  • Capacitate memorie neuron: 256 octeți;
  • Mod de operare: funcții simetrice radial (RadialBasisFunction, RBF) și „K-nearest neighbors” (K-NearestNeighbor, KNN);
  • Stări de ieșire: determinată, nu o potrivire completă, necunoscută;
  • Calcul distanta: L1 (Manhattan), Lsup;
  • Frecventa de operare: 37 MHz (un singur procesor), 18 MHz (cu procesoare paralele);
  • Interfete de comunicatie: magistrala paralela (26 linii);
  • Tensiuni de alimentare: 3,3 V IO și 1,2 V miez;
  • Consum (muncă activă):<153 мВт;
  • Carcasa: CSP-64 4,5x4,5x0,5 mm.

Una dintre cele mai promițătoare domenii pentru dezvoltarea unor arhitecturi fundamentale noi de sisteme de calcul este strâns legată de crearea unei noi generații de computere bazate pe principiile procesării informațiilor încorporate în rețele neuronale artificiale(NS). Primele lucrări practice privind rețelele neuronale artificiale și neurocalculatoarele au început în anii 40 și 50. O rețea neuronală este de obicei înțeleasă ca un set de convertoare de informații elementare, numite „neuroni”, care sunt conectate într-un anumit fel între ele prin canale de schimb de informații „conexiuni sinaptice”.

Neuron, în esență, este un procesor elementar caracterizat prin stări de intrare și ieșire, o funcție de transfer (funcție de activare) și memorie locală. Stările neuronilor se modifică în timpul funcționării și constituie memoria pe termen scurt a rețelei neuronale. Fiecare neuron calculează suma ponderată a semnalelor care ajung la el prin sinapse și efectuează o transformare neliniară asupra acestuia. Când sunt trimise peste sinapse, semnalele sunt multiplicate cu un anumit factor de ponderare. Distribuția coeficienților de ponderare conține informații stocate în memoria asociativă a rețelei neuronale. Elementul principal al proiectării rețelei este pregătirea acesteia. Când antrenați și reinstruiți o rețea neuronală, coeficienții ei de ponderare se modifică. Cu toate acestea, ele rămân constante în timpul funcționării rețelei neuronale, formând memoria pe termen lung.

N C poate consta dintr-un strat, două straturi, trei sau mai multe, cu toate acestea, de regulă, mai mult de trei straturi într-un NN nu sunt necesare pentru a rezolva probleme practice.

Numărul de intrări NN determină dimensiunea hiperspațiului, în care semnalele de intrare pot fi reprezentate prin puncte sau hiperregiuni de puncte apropiate. Numărul de neuroni dintr-un strat de rețea determină numărul de hiperplanuri din hiperspațiu. Calcularea sumelor ponderate și efectuarea unei transformări neliniare fac posibilă determinarea în ce parte a unui anumit hiperplan este situat punctul semnalului de intrare în hiperspațiu.

Să luăm problema clasică a recunoașterii modelelor: a determina dacă un punct aparține uneia dintre cele două clase. Această problemă este rezolvată în mod natural folosind un singur neuron. Acesta va permite ca hiperspațiul să fie împărțit în două hiperregiuni neintersectate și neimbricate. În realitate, semnalele de intrare în problemele rezolvate cu ajutorul rețelelor neuronale formează zone foarte imbricate sau care se intersectează în hiperspațiu, care nu pot fi separate folosind un singur neuron. Acest lucru se poate face numai prin desenarea unei hipersuprafețe neliniare între regiuni. Poate fi descris folosind un polinom de ordinul al n-lea. Cu toate acestea, funcția de putere este calculată prea lent și, prin urmare, este foarte incomod pentru calcul. O opțiune alternativă este aproximarea suprafeței cu hiperplane liniare. Este clar că acuratețea aproximării depinde de numărul de hiperplanuri utilizate, care, la rândul său, depinde de numărul de neuroni din rețea. Prin urmare, apare necesitatea implementării hardware a cât mai multor neuroni în rețea. Numărul de neuroni dintr-un strat al rețelei determină rezoluția acesteia. O rețea neuronală cu un singur strat nu poate separa imaginile dependente liniar. Prin urmare, este important să putem implementa rețele neuronale multistrat în hardware.

ŞI rețele neuronale artificiale au proprietăți uimitoare. Ele nu necesită o dezvoltare software detaliată și deschid posibilitatea de a rezolva probleme pentru care nu există modele teoretice sau reguli euristice care să determine algoritmul de rezolvare. Astfel de rețele au capacitatea de a se adapta la schimbările condițiilor de funcționare, inclusiv la apariția unor factori neprevăzuți anterior. Prin natura lor, NN-urile sunt sisteme cu un nivel foarte ridicat de paralelism.

ÎN neurocalculatoare se folosesc principiile procesării informaţiei efectuate în reţele neuronale reale. Aceste instrumente de calcul fundamental noi, cu o arhitectură neconvențională, permit procesarea de înaltă performanță a matricelor de informații la scară largă. Spre deosebire de sistemele de calcul tradiționale, calculatoarele de rețele neuronale, similare rețelelor neuronale, fac posibilă procesarea fluxurilor de informații de semnale discrete și continue cu o viteză mai mare, conțin elemente de calcul simple și cu un grad ridicat de fiabilitate permit rezolvarea problemelor informaționale de prelucrare a datelor, în timp ce asigurarea unui mod de auto-restructurare a mediului de calcul în funcţie de soluţiile obţinute.

În general, termenul „Neurocomputer” înseamnă în prezent o clasă destul de largă de computere. Acest lucru se întâmplă din simplul motiv că în mod formal, orice implementare hardware a unui algoritm de rețea neuronală poate fi considerată un neurocomputer, de la un simplu model al unui neuron biologic la un sistem de recunoaștere a caracterelor sau ținte în mișcare. Neurocalculatoarele nu sunt computere în sensul convențional al cuvântului. În prezent, tehnologia nu a atins încă nivelul de dezvoltare la care s-ar putea vorbi despre un neurocomputer de uz general (care ar fi și inteligență artificială). Sistemele cu valori fixe ale coeficienților de ponderare sunt, în general, cele mai specializate din familia rețelelor neuronale. Rețelele de învățare sunt mai flexibile la varietatea de probleme pe care le rezolvă. Astfel, construcția unui neurocomputer este de fiecare dată cel mai larg domeniu pentru activități de cercetare în domeniul implementării hardware a aproape tuturor elementelor rețelei neuronale.

La începutul secolului XXI, spre deosebire de anii 40-50 ai secolului trecut, există o nevoie practică obiectivă de a învăța cum să faci neurocalculatoare, adică. este necesar să se implementeze în hardware destul de mulți neuroni care funcționează în paralel, cu milioane de conexiuni-sinapse modificate adaptativ fix sau paralel, cu mai multe straturi de neuroni complet conectate. În același timp, tehnologia electronică integrată este aproape de a-și epuiza capacitățile fizice. Dimensiunile geometrice ale tranzistoarelor nu mai pot fi reduse fizic: cu dimensiuni realizabile tehnologic de ordinul a 1 micron sau mai puțin, apar fenomene fizice care sunt invizibile cu dimensiuni mari de elemente active - efectele de dimensiune cuantică încep să aibă un efect puternic. Tranzistorii nu mai funcționează ca tranzistori.

Pentru implementarea hardware a NN, este necesar un nou mediu de stocare. Un astfel de transportator de informații nou ar putea fi aprinde, care va crește dramatic performanța de calcul cu câteva ordine de mărime.

Singura tehnologie pentru implementarea hardware a rețelelor neuronale care poate înlocui optica și optoelectronica în viitor este nanotehnologiei, capabilă să asigure nu numai gradul maxim de integrare fizic posibil a elementelor cuantice submoleculare cu viteza maximă fizică posibilă, ci și arhitectura tridimensională atât de necesară implementării hardware a rețelei neuronale.

Multă vreme s-a crezut că neurocalculatoarele sunt eficiente pentru rezolvarea așa-numitelor probleme neformalizabile și slab formalizabile asociate cu necesitatea includerii procesului de învățare folosind material experimental real în algoritmul de rezolvare a problemei. În primul rând, astfel de probleme au inclus sarcina de a aproxima o anumită formă de funcții care iau un set discret de valori, de exemplu. problemă de recunoaștere a modelelor.

În prezent, la această clasă de probleme i se adaugă o clasă de probleme, care uneori nu necesită pregătire pe material experimental, dar sunt bine reprezentate într-o bază logică a rețelei neuronale. Acestea includ sarcini cu paralelism natural pronunțat de procesare a semnalului, procesare a imaginilor etc.. Punctul de vedere că în viitor neurocalculatoarele vor fi mai eficiente decât alte arhitecturi poate fi confirmat, în special, de extinderea bruscă în ultimii ani a clasei de probleme matematice generale rezolvate în baza logică a rețelei neuronale. Acestea, pe lângă cele enumerate mai sus, includ probleme de rezolvare a ecuațiilor algebrice liniare și neliniare și a inegalităților dimensionale mari; sisteme de ecuații diferențiale neliniare; ecuații cu diferențe parțiale; probleme de optimizare și alte probleme.

Cele mai bune articole pe această temă