blog demisec cu note fine de tehnologie

Căutați fotografii cu mâncare sau cu pisici? Ar trebui să vedeti contul meu de Instagram!

Procesoarele neuronale și inteligența artificială: ce înseamnă și la ce sunt bune

Clock icon

15 Dec 2017

Tag icon

TEHNOLOGIE

Comments icon

15 comentarii

Trăim vremurile introducerii unei noi tehnologii în telefoanele mobile, după mulți ani în care doar au fost îmbunătățite cele deja clasice. Mă refer la introducerea procesoarelor neuronale, așa numitele procesoare de inteligență artificială, care ar putea îmbunătăți și schimba multe lucruri.

Momentan două telefoane cunoscute din piață dispun de așa ceva: Apple iPhone 8/X, unde chipsetul A11 Bionic include și așa ceva, și Huawei Mate 10 Pro, al cărui chipset Kirin 970 folosește, de asemenea, astfel de tehnologii. La anul vom vedea mai multe, Qualcomm anunțând deja că viitorul Snapdragon 845 va include și procesare neuronală. În 2 sau 3 ani, tehnologia va fi deja integrată și în chipseturi pentru gamele medii.

În primul rând, însă, probabil că vă întrebați ce reprezintă acești doi termeni, inteligență artificială și procesare neuronală. Iată o explicație:

Inteligență Artificială – nu se referă la ceea ce vedem în filme, adică un computer deștept care ia singur decizii și face ce vrea, de capul lui, precum Skynet sau cylonii sau roboții lui Asimov. Mai degrabă este un termen ce descrie procesoare performante la acele operațiuni pe care până acum doar oamenii le făceau foarte rapid, iar procesoarele clasice foarte lent.

Un exemplu perfect este recunoașterea de imagini. Un om trebuie doar să arunce o privire la cele trei imagini de mai jos și-și dă seama că ele arată un tigru. Un procesor s-ar chinui multă vreme cu asta. Noi ne dăm seama imediat dacă o persoană dintr-o fotografie pare tristă, bucuroasă sau pare că vrea să te omoare, pe când computerele nu pot face asta.

Alte exemple bune includ recunoașterea cuvintelor rostite, inclusiv dacă cineva e nervos sau plictisit din felul în care se exprimă, ceea ce pentru un procesor este… science-fiction. Problema vine din faptul că noi intuim astfel de lucruri natural, pe când procesoarele lucrează matematic și unele lucruri sunt dificil de exprimat în funcții și variabile și autocorelații.

Procesare neuronală – aici e vorba despre arhitectura internă a unor procesoare. Cele neuronale, numite și neural processing units (NPU), sunt organizate precum neuronii din creier, adică un fel de rețea formată din multe unități mici, interconectate între ele.

Nu-i un concept nou. În 2001, profesorul meu de programare tocmai participase la ceva proiect de cercetare privind așa ceva, parcă la o universitate din Elveția. Este un domeniu complicat.

De ce ai construi procesoare NPU? Pentru că sunt foarte performante pentru îndeplinit anumite sarcini din categoria “inteligență artificială” în sensul de mai sus, cum ar fi recunoașterea imaginilor. Aceste procesoare trebuie gândite ca unele specializate, iar de-a lungul timpului s-au creat multe. Cele din plăcile video sunt optimizate pentru randare video, cele din playerele blu-ray pe decodare de rezoluție mare, cele din routere pe gestionarea pachetelor de date șamd. NPU-urile sunt un alt tip de procesoare specializate, doar că sunt specializate pe niște domenii mișto, care ne vin în ajutor acum.

La iPhone nu mă pricep, dar un Huawei Mate 10 Pro am chiar acum în mână, primul telefon cu NPU pe care-l butonez.

Citiți și: Review Huawei Mate 10 Pro și Comparație foto Mate 10 Pro cu S8+.

Aș vrea întâi să remarcăm o chestiune: chipsetul Kirin 970, care include mai multe tipuri de procesoare (printre care și acel NPU) și memorie, este foarte performant. Iată o comparație:

Hisilicon Kirin 970 (Huawei Mate 10 Pro) Samsung Exynos 8895 (Note8) Qualcomm Snapdragon 835 (Note8)
3DMark Slingshot Extreme 2.933 2.622 3.603
PCMark Work 2.0 7.348 5.195 6.754
AnTuTu 178.172 173.198 175.153
Geekbench single-core 1.916 2.019 1.808
Geekbench multi-core 6.787 6.654 6.298
Renderscript 9.612 8.944 7.698

Sigur, o astfel de comparație nu este foarte precisă pentru că procesoarele sunt introduse în telefoane diferite cu sisteme de operare de versiuni diferite (Huawei-ul rulează din naștere Android 8), dar putem spune că HiSilicon, un producător chinez deținut integral de Huawei, face chipseturi foarte bune.

NPU-ul din Kirin 970 este utilizat în principal pentru recunoaștere de imagini în acest moment. Este optimizat pentru astfel de operațiuni (o cifra dată la lansare vorbea de 2000 de imagini/minut, în timp ce procesorul clasic ar procesa 100 de imagini/minut) și utilizat în primul rând pentru a recunoaște tipul de scenă spre care îndrepți telefonul, urmând să adapteze imediat culorile și focalizarea pentru a surprinde fotografia perfectă.

Asta nu pare mult, dar este, mai ales în contextul noilor funcții de portret cu izolarea fundalului șamd. Este nevoie de tehnologii ce recunosc rapid și corect toate elementele din planul apropiat (de exemplu toate crengile unui copac) față de cele din planul apropiat. Și mai știți când vă arătam ce algoritmi buni are Google Photos pentru recunoașterea imaginilor? În curând telefoanele vor putea realiza asta singure. Combinați asta cu un search universal și totul va funcționa și mai bine.

Apropo, dacă vreți să vedeți procesarea neuronală la lucru inclusiv pe schițe simple, desenate de voi, jucati-vă cu QuickDraw de la Google. Acolo puteți vedea exemple perfecte de schițe pe care oamenii le înțeleg imediat, dar procesoarele clasice nu.

Culmea este că am primit un comunicat de la Huawei în care se precizează și alte funcții unde procesorul NPU ajută. Nu zic că nu-i cred, că nu se scriu la mișto astfel de comunicate, ci doar că este ca și cum ai folosi un ciocan pentru a omorî o muscă:

Creșterea autonomiei – NPU-ul învață comportamentul tău de utilizare a telefonului și atunci știe mai bine ce programe să oprească și să scoată din memorie.

De ce zic că nu contează? Pentru că procesul acesta de învățare a comportamentului este lung și cu modificări lente între stări, nu necesită un procesor rapid, ci doar “putere de observație”.

Vă dau eu o explicație mai bună pentru creșterea autonomiei: dacă un proces se desfășoară mult mai rapid pentru că folosește un procesor specializat, consumul energetic total este mai mic.

Creșterea performanței – oarecum mână în mână cu primul punct, NPU-ul știe când să elibereze memorie și cât procesor principal să aloce fiecărei aplicații. OK, nu știu cât de semnificativ este impactul acestei funcții care practic poate fi utilă doar când învârți multe aplicații, nu în teste de benchmark.

Îmbunătățirea calității apelurilor – un efect indirect, dar interesant. NPU-ul poate recunoaște mai bine diversele sunete captate de microfonul telefonului, poate izola vocea ta și poate filtra sunetele ambientale.

Tehnic, și tehnologia de anulare activă a zgomotului filtrează sunete ambientale, dar acolo este o filtrare simplă. Un NPU ar putea identifica numărul de voci distincte pe care le capturează microfonul, o poate determina pe a ta pe baza caracteristicilor ei, învățate în timp, și le poate elimina pe celelalte. Asta ar fi deștept.

În ce privește procesarea neuronală de pe iPhone 8 sau X, este folosită pentru recunoașterea facială din FaceID, fiind capabilă să interpreteze rapid rețeaua de puncte proiectate pe chipul cuiva pentru a-l mapa 3D, pentru animarea acelor Animoji (o altă consecință a recunoașterii rapide a feței) și pentru machine learning, un alt termen generic, ca și inteligență artificială, în care computerul își dă seama singur că două obiecte sau acțiuni sunt asemănătoare.

În particular pe iPhone, machine learning cred că este utilizat tot la FaceID pentru a recunoaște față cuiva chiar dacă îi crește barbă sau poartă ochelari.

Ce-o face Snapdragon 845 cu procesorul său neuronal vedem la anul.

Huawei Mate 10 poate fi găsit la Orange, de unde am primit și telefonul pentru testare în cadrul programului Orange Smartphone Tester.

    15 comentarii

  1. Țin minte că citeam despre Google Translate la un moment dat, când au modificat motorul de traducere, făcându-l neural (pentru unele limbi, la momentul acela).

    Atunci am citit ceva care mi-a plăcut și care poate fi folosit pentru a explica noțiunea cuiva care n-are nicio legătură cu acest domeniu. Explica acolo în termeni simpli că, un proces neural înseamnă, de exemplu: dacă se vorbește despre un animal de pe lângă casa omului, mic, pufos și cu urechi ascuțite – e o probabilitate foarte mare să fie vorba de un pui de pisică.

    Atunci m-am gândit… tot la pisici ajungem?
    Asta e tot ce putem ca omenire?
    :)

      (Citează)

    • E un exemplu ușor de înțeles și care generează și zâmbete.

      Altfel, e expresia clasică de la străini “dacă auzi copite, te gândești că-s cai, nu zebre”, ceea ce de fapt are legătură cu probabilitățile.

        (Citează)

  2. inteligenta artificiala nu are de fapt legatura cu antrenrea (continua sau prealabila) a algoritmului?
    practic, pe baza unui set (foarte mare) de exemple (legaturi intre datele de intrare si cele de iesire) algoritmul determina niste legaturi matematice intre acele date pe care apoi le aplica si pentru alte date de intrare (care nu se regaseau in exemplele initiale)

      (Citează)

    • Nu, aia se numește Machine Learning și este, până la urmă, un alt mod de a programa un computer să recunoască lucrurile, să zicem.

      Machine learning este doar o componentă din domeniul mare ce se numește inteligență artificială. O altă componentă este asta de a procesa anumite lucruri la fel de rapid ca un om, cum e în recunoașterea de imagini.

      Denumirea asta de AI este oricum destul de greșită, iar când va apărea un AI adevărat sigur ne va bate obrazul virtual în legătură cu asta, înainte de a ne elimina.

      Altfel spus, și un papagal poate fi învățat să apese un buton și putem spune despre el că-i inteligent, dar sunt atâtea niveluri de inteligență încât nu-l putem compara cu un om, de exemplu.

        (Citează)

  3. In termeni simpli, inteligenta artificiala este domeniul mare legat de tot ceea ce poate executa un computer in locul unui om, pornind de la taskuri simple ce pot fi automatizate si pana la taskuri complexe, gen joc de sah, Go, trivia etc. Toti botii, roboteii SW care posteaza facturi, triaza mailuri, tichete de incidente etc pot fi incadrati in AI.
    Machine learning este un subset al AI, referindu-se la acele sisteme care pot invata singure sa faca anumite task-uri. Ele sunt antrenate cu un set limitat (finit) de date – setul de invatare sau training set – si, pe baza lui si a algoritmului din spate, poate faca taskuri noi, asemanatoare cu cele din setul de invatare, dar nu identice. Pe asta se bazeaza OCR, speech-to-text, recunoasterea imaginilor etc.
    Acum, algoritmii folositi in machine learning pot fi, de la cei mai simpli (bazati de ex. pe regresie liniara, regresie logistica, clustering) pana la cei mai complecsi (bazati pe retele neurale sau, mai noi, deep learning).

    Deci, nu tot ce AI reprezinta sisteme care pot invata singure. Astea s-ar incadra la cele care folosesc ML. Apoi, modalitatea prin care sistemele ML invata poate fi diferita: invatare supervizata (cu set de invatare), nesupervizata (clustering) sau cu intarire (reinforcement learning).

    Asta e asa, o privire din avion, domeniul este foarte complex (si super misto, daca ai rabdarea si inclinatia spre matematica si programare). De asemenea, implicatiile vor fi majore la nivelul societatii, ganditi-va ca au aparut deja sisteme sa bata omul in jocurile de sah, Go si trivia iar recent, un producator de HW a anuntat un procesor capabil sa genereze filme foarte reale (ma intreb ce relevanta vor mai aveea probele video – ar trebui implementat un sistem care sa certifice existenta unui anume film de o anumita camera, astfel incat sa verificam cu un grad destul de mare autenticitatea lui).

      (Citează)

  4. Cam multe de explicat intr-un singur articol. Cursurile se intindeau pe cateva semestre inca de acum 11 ani. Cum e asta: https://youtu.be/RP0Ii3IA3fQ

      (Citează)

    • Oare sunt toti bloggeri acum ? Sau corporatisti ?

        (Citează)

    • Unii dintre cei mai de succes oameni de afaceri din România au terminat Politehnica și chiar Electronica. Ce se face la cursuri nu are legătură mare cu realitatea din teren și evoluția carierei.

        (Citează)

  5. Lucrurile nu stau chiar asa, niciunul dintre NPU-urile de pe piata nu este un NPU adevarat, ci doar un DSP usor optimizat si (in cazul Kirin, A11 si probabil si Snapdragon 845), incarcat cu foarte multi tranzistori. Peste ruleaza SDK-ul care implementeaza la nivel de soft modelul neuronal.

    Exista si modalitati de a copia modelul neuronilor la nivel de tranzistor, insa sunt departe de a fi implementate la volum mare pe nod de 10-14 nm la costul unui procesor de telefon mobil.

    Este din pacate doar extrem de mult marketing, un nume fancy pentru nimic extrem de spectaculos in spate.

      (Citează)

    • Rares: Este din pacate doar extrem de mult marketing, un nume fancy pentru nimic extrem de spectaculos in spate.

      Marketing da, dar este și spectaculos câtă vreme face rapid anumite treburi. Pentru clienți, asta contează, nu denumirea corectă dpdv științific.

        (Citează)

  6. Și, fără o legătură prea directă. Sau…?
    http://bizarro.com/wp-content/uploads/2017/12/bizarro-12-14-17.jpg

      (Citează)

    Alătură-te discuției, spune-ți părerea:

    Your email address will not be published. Required fields are marked *

    Comentariile nu se pot edita ulterior, așa că verifică ce-ai scris. Dacă vrei să mai adaugi ceva, lasă un nou comentariu. Fără înjurături și cuvinte grele, că vorbim prietenește aici, și fără mesaje doar de dragul URL-spam-ului. Link-urile către alte site-uri, dar care au legătură cu subiectul discuției, sunt binevenite.

sus