În ultimele 12-24 de lunii, subiectul de deep learning a capătat o amplorare deosebită, fiind ținta a numeroase grupuri de cercetare, a startup-urilor, dar și a marilor companii, de la Google la Oracle la Amazon sau Adobe. Interesul este facilitat de migragrea dinspre nișele de cercetare către zona mainstream a knowledge-ului și a codului (biblioteci open source ca Torch/Facebook, TensorFlow/Google, MXNet/Amazon, DeepLearning4j), dar și de ieftinirea hardware-ului necesar pentru calculele numerice voluminoase din spatele mașinilor care ”învață” și care de multe ori se bazează pe GPU-uri pentru a reduce timpul de învățare. Un catalizator important al acestei tranziții a pieței o reprezintă și valul de știri spectaculoase despre inteligența artificială (spre exemplu, mediatizata victorie a lui AlphaGo împotriva lui Lee Sedol), care de multe ori prezintă realizările din domeniu cu optimism exagerat și cu simplism forțat.

Realitatea este că momentul în care computerele vor face toată munca urmând ca noi să beneficiem de venitul garantat din productivitatea abundentă este încă după linia orizontului.

În ciuda unor rezultate spectaculoase și a unui flux crescând de investiții, industria deep learning are încă multe provocări de înfruntat.

Garbage in, garbage out

Inteligența artificială nu este un oracol în care introduci orice fel de date și din care poți obține orice fel de informații dorești. Nu putem scrie un algoritm care să prezică prețurile de la bursă de mâine ținând cont doar de istoricul prețurilor, întrucât datele nu sunt bine corelate și depind și de factori pe care nu-i includem în model. Desigur, un calculator are potențialul de a executa sarcini mai repede și pe volume mai mari de date față de un operator uman, dar, în principiu, trebuie să presupunem că un algoritm de deep learning nu poate executa operații care nu sunt calculabile, măcar în principiu, de operatori umani. Trebuie să evităm tentația de a presupune că încărcăm într-un algoritm de deep learning datele disponibile și obținem invariabil datele dorite.

Pentru a fi fezabil, datele de intrare într-un algoritm de inteligență artificială trebuie să fie structurate, relevante, în intervale cunoscute, în mod consistent măsurate.

În multe feluri, acuratețea unui algoritm de deep learning e limitată de calitatea metodelor de preprocesare și de curațare a datelor. De prea mult ori, organizațiile își doresc să înceapă proiecte de predicție, data mining, deep learning înainte să aibă maturitatea organizării datelor într-un format consistent și structurat.

Fundamentele

Algoritmii de învățare automată se bazează pe multă matematică și statistică. Desigur, putem refolosi ce au implementat alții în open source, dar nu ne putem aștepta ca o unealtă să ne rezolve problema fără să înțelegem, măcăr în principiu, felurile în care poate funcționa. Pentru asta, trebuie să începem cu niște fundamente din statistică și matematică.

  • Ce este o problemă de optimizare și o funcție obiectiv?
  • Ce e o derivată parțială?
  • Ce reprezintă și cum arată o funcție de distribuție a probabilitații?
  • Ce înseamnă probabilitate condiționată?
  • Cum funcționează o metodă de gradient descent? Ce dezavantaje are? Ce alternative avem pentru a evita problema minimizări locale?
  • Care e diferența dintre învățare supervizată și nesupervizată?
  • Ce înseamnă un test statistic și cum ne ajută să evaluăm calitatea/acuratețea unui algoritm de deep learning? Ce înseamnă abaterea standard și ce ne spune aceasta despre probabilitatea ca o estimare să fie greșită?
  • Care e diferența dintre un algoritm paralel și unul distribuit?
  • Cât de mult ar trebui să ne bucure că avem un algoritm care prezice azi cu acuratețe 72 la sută dacă mâine va ploua sau nu? (Hint: predicția ”mâine va fi la fel ca azi” are acuratețe 71%)

Citește continuarea articolului și descoperă secretele evoluției inteligenței artificiale în proiectul Oamenii din Spatele Codului pe wall-street.ro