Inteligență Artificială vs Programare Algoritmică Clasică

Spre Inteligența Artificială de la Programarea Algoritmică Clasică

Anthony Quattrone, PhD 30 Aprilie 2022

Progresele în inteligența artificială au permis rezolvarea eficientă a problemelor computationale complexe care anterior au fost dificile, intratabile sau puternic combinatorii. Aceste probleme includ recunoașterea facială, detectarea obiectelor, planificarea rutelor și sisteme de recomandare online extrem de personalizate.

Provocarea pentru organizațiile care avansează spre viitor este ca factorii de decizie strategică să aleagă între abordările clasice tradiționale și abordările bazate pe inteligență artificială pentru a rezolva probleme computationale complexe. Fiecare metodă are provocări unice în livrarea unui sistem robust pe dimensiuni de acuratețe, cost, dificultate de implementare și mentenabilitate.

Abordarea programării algoritmice clasice pentru rezolvarea problemelor

Paradigma programării clasice implică rezolvarea problemelor prin algoritmi prescriptivi și utilizarea unei secvențe bine definite de instrucțiuni. Intrările sunt definite și constrânse, dezvoltând algoritmi pentru a procesa intrările prin paradigme de programare definite (Procedurală, Orientată pe Obiecte, Funcțională și Logică) pentru a produce ieșiri.

Descoperirea de algoritmi pentru rezolvarea problemelor eficiente temporal și spațial este recunoscută ca fiind extrem de dificilă. În teoria complexității computaționale, problemele sunt fie P (Polinomiale), NP (Polinomiale nedeterministe), NP-Complete sau NP-Hard. Problemele polinomiale pot fi rezolvate și verificate rapid, în timp ce problemele non-polinomiale nu pot fi rezolvate. Problemele NP sunt dificil de rezolvat prin abordări algoritmice clasice.

Un exemplu de problemă P este găsirea celui mai scurt drum între două puncte, în timp ce un exemplu de problemă NP este problema comis-voiajorului, unde, atunci când se dau o serie de locații, care este traseul optim pentru a vizita toate locurile parcurgând cea mai scurtă distanță posibilă. Se întâmplă ca multe dintre problemele care trebuie în prezent rezolvate computațional să se încadreze în categoria NP. În majoritatea cazurilor, în scopuri practice, o soluție aproximativă este adesea suficientă. Când abordează viața de zi cu zi, oamenii vin mereu cu soluții aproximative, adică navigarea.

Există provocări de implementare în rezolvarea problemelor într-un paradigmă algoritmică clasică într-un mod eficient. Complexitatea algoritmică este o ramură a informaticii care se ocupă de eficiența algoritmilor în domeniul temporal (complexitatea timpului) și spațial (complexitatea spațiului).

Deși există multe moduri diferite de a implementa algoritmi, un mod evident, dar potențial ineficient, de a implementa un algoritm este adesea denumit algoritm „naiv”. Cei mai eficienți algoritmi nu sunt ușor de descoperit, iar oamenii de știință în domeniul calculatoarelor au lucrat mulți ani pentru a găsi cei mai buni algoritmi pentru a rezolva clase de probleme. Algoritmii din sistemele de producție sunt implementați în moduri eficiente temporal și spațial. Cele mai mari companii de software asigură cele mai înalte standarde algoritmice prin programare în pereche, similară cu revizuirea de către colegi. Sunt necesari mulți ani de instruire și un grad ridicat de competență pentru a implementa algoritmi în mod eficient.

În sens practic, în timp ce tehnicile de programare au evoluat și limbajele de programare (de ex. C, C++, Java, JavaScript, PHP, Python) au variat în popularitate, fundamentele au rămas aceleași de când Bell Labs, în anii 1970, a scris primele module C. Există câteva modalități practice de a face problemele teoretic dificile să funcționeze în producție, cum ar fi utilizarea sistemelor distribuite. Abordările avansate vin la un cost mai mare și sunt dincolo de capacitățile tuturor, cu excepția celor mai progresiste organizații din punct de vedere tehnologic.

Având în vedere complexitatea abordărilor de programare algoritmică clasice, organizațiile au descoperit de mult timp că este dificil să construiască echipe eficiente pentru a produce astfel de sisteme intern. Mai mult, multe au întâmpinat, de asemenea, dificultăți în a găsi furnizori externi pentru a rezolva provocări de nișă care sunt teoretic posibil de implementat. Proiectarea unui algoritm specific devine semnificativ mai complexă pe măsură ce complexitatea problemei crește. Acest lucru este valabil mai ales pentru problemele multivariate. Este mai bine să folosiți abordări algoritmice clasice pentru situațiile în care un algoritm poate rezolva rapid o problemă și funcționează pentru majoritatea cazurilor.

Abordarea AI pentru rezolvarea problemelor

Paradigma Inteligenței Artificiale a încercat să rezolve probleme în mod generic prin introducerea intrărilor și a ieșirilor dorite într-un sistem și permițând sistemului să învețe cum să rezolve probleme. Abordările AI actuale rulează pe calculatoare clasice prin tehnici de programare clasică. Cele mai interesante metode AI sunt rețelele neuronale și învățarea prin recompensă.

Rețelele neuronale artificiale exploatează înțelegerea umană a modului în care mintea umană învață și generalizează problemele. Învățarea prin recompensă folosește agenți care introduc o stare obiectiv și o serie de scenarii. Algoritmul de învățare reține rezultatele preferabile și renunță la rezultatele defavorabile pe parcursul mai multor iterații. Învățarea prin recompensă este analogă condiționării operante. Agentul învață cum să atingă obiectivul pe parcursul mai multor iterații de instruire.

O cerință pentru antrenarea soluțiilor de inteligență artificială este fie un set de date vast bine definit, de obicei compilat folosind o combinație de diverse depozite de date sau crowdsourcing, fie un sistem poate învăța să atingă o stare obiectiv rulând o serie de iterații. Un exemplu în acest sens este un sistem care joacă un joc împotriva sa, cum ar fi Șahul sau Go, pentru a învăța mai departe cum să dezvolte strategii pentru a îmbunătăți rezultatele. Rețelele neurale artificiale și învățarea prin recompensă sunt ambele rulate pe scenarii pentru care nu sunt antrenate și evaluate similar cu alte abordări de învățare automată. Aceste abordări se generalizează bine și oferă soluții eficiente pentru o anumită clasă de probleme. Soluțiile bazate pe Inteligență Artificială se potrivesc problemelor care nu pot fi ușor definite folosind o secvență de instrucțiuni; în schimb, necesită mai multă „intuiție” și judecăți de valoare.

De obicei, sistemele de Inteligență Artificială sunt antrenate folosind seturi de date și ulterior evaluate pe un set de evaluare. Cu cât sunt introduse mai multe date de antrenament de înaltă calitate într-un sistem AI, cu atât este mai mare probabilitatea ca sistemul să performeze la un standard ridicat. Avantajul abordărilor AI este că pot continua să se îmbunătățească în timp, pe măsură ce sistemul învață mai mult. Astfel, problemele complexe pot fi generalizate și rezolvate de sistemele de calcul. Acestea includ probleme rezolvate tradițional prin intervenție umană, deși AI îngust poate fi privit ca un complement al intervenției umane existente pentru a asigura rezultate mai bune.

Inteligența artificială și învățarea automată au fost mult timp privite cu prudență de organizații, din cauza faptului că astfel de sisteme lipsesc trasabilitatea și determinabilitatea modului în care vor răspunde la cazurile de utilizare. Astfel, AI poate acționa în circumstanțe rare și poate răspunde imprevizibil atunci când este cel mai puțin de așteptat. De aceea este important să existe cazuri de utilizare clar definite pentru când se folosește AI, ce niveluri de eroare sunt acceptate și cum vor fi revizuite de colegi rezultatele produse de sistemele AI prin intervenție umană pentru a asigura acuratețea.

În ansamblu, prezicem că precizia îmbunătățită pe care sistemele AI o vor aduce, corelată cu eficiența obținută prin augmentarea contribuției umane, va reprezenta un stimulent financiar prea mare pentru ca multe organizații să nu îl ignore în anii următori; sistemele AI vor deveni omniprezente.

Când să alegeți Inteligența Artificială și când să selectați abordarea programării algoritmice clasice pentru rezolvarea problemelor

Deși nu există reguli stricte și rapide cu privire la momentul în care se utilizează fiecare abordare, ca regulă generală, problemele care necesită soluții aproximative și implică planificare pe termen lung orientată spre obiective, recunoașterea tiparelor complexe și procesarea unei multitudini de variabile sunt mai potrivite pentru AI. Abordările algoritmice clasice sunt mai potrivite pentru soluții exacte sau aproape optime care implică logică și calcule intense.

Alegerea abordării corecte poate aduce beneficii semnificative organizației dumneavoastră, în timp ce alegerea unei metode mai puțin optime poate duce la pierderi de capital substanțiale, deoarece proiectele tehnologice sunt costisitoare. Adesea, optarea pentru sisteme dovedite și demonstrabile, cum ar fi Telemus AI™, poate ajuta organizațiile să asigure succesul în transformarea lor digitală prin Inteligență Artificială.

Contactați-ne astăzi pentru o consultație gratuită despre modul în care Telemus AI™ poate fi integrat în organizația dumneavoastră.