Home » Articole » Articole » Afaceri » Știința datelor (Data Science) » Inteligența artificială » Instrumente utilizate în inteligența artificială

Instrumente utilizate în inteligența artificială

Căutare și optimizare

Multe probleme din inteligența artificială (AI) pot fi rezolvate teoretic prin căutarea inteligentă prin multe soluții posibile: Raționamentul poate fi redus la efectuarea unei căutări. De exemplu, dovada logică poate fi privită ca o căutare a unei căi care duce de la premise la concluzii, unde fiecare pas este aplicarea unei reguli de inferență. Algoritmii de planificare caută prin arbori de obiective și sub-obiective, încercând să găsească o cale către un obiectiv țintă, un proces numit analiză mijloace-finalități. Algoritmii robotici pentru mișcarea membrelor și prinderea obiectelor folosesc căutări locale în spațiul de configurare.

Căutările simple și exhaustive sunt rareori suficiente pentru majoritatea problemelor din lumea reală: spațiul de căutare (numărul de locuri de căutat) crește rapid la numere astronomice. Rezultatul este o căutare prea lentă sau care nu se finalizează niciodată. Soluția, pentru multe probleme, este folosirea „euristicii” sau „regulilor generale” care prioritizează alegerile în favoarea celor mai susceptibile să atingă un scop și să facă acest lucru într-un număr mai scurt de pași. În unele metodologii de căutare, euristica poate servi și la eliminarea unor opțiuni puțin probabil să conducă la un scop (numit „tăierea arborelui de căutare”). Euristica furnizează programului „cea mai bună presupunere” pentru calea pe care se află soluția. Euristica limitează căutarea soluțiilor într-o dimensiune mai mică a eșantionului.

Un tip foarte diferit de căutare a devenit proeminentă în anii 1990, bazat pe teoria matematică a optimizării. Pentru multe probleme, este posibil să începeți căutarea cu o anumită formă de ghicire și apoi să rafinați ipoteza treptat până când nu mai pot fi făcute perfecționări. Acești algoritmi pot fi vizualizați ca o cățărare oarbă pe deal: începem căutarea într-un punct aleatoriu al peisajului, iar apoi, prin sărituri sau pași, continuăm să ne mișcăm presupunerea în sus, până ajungem în vârf. Alți algoritmi de optimizare sunt recoacerea simulată, căutarea fasciculului și optimizarea aleatorie. Calculul evolutiv folosește o formă de căutare de optimizare. De exemplu, căutările pot începe cu o populație de organisme (ghiciturile) și apoi li se permit să se mute și să se recombine, selectând doar pe cea mai potrivită pentru a supraviețui fiecărei generații (rafinând presupunerile). Algoritmii evolutivi clasici includ algoritmi genetici, programarea expresiei genelor și programarea genetică. Alternativ, procesele de căutare distribuite se pot coordona prin algoritmi de inteligență de roi. Doi algoritmi populari de roi utilizați în căutare sunt optimizarea roiului de particule (inspirată de turmele de păsări) și optimizarea coloniilor de furnici (inspirată de urmele furnicilor).

Logica

Logica este folosită pentru reprezentarea cunoștințelor și rezolvarea problemelor, dar poate fi aplicată și la alte probleme. De exemplu, algoritmul satplan folosește logica pentru planificare, iar programarea logică inductivă este o metodă de învățare.

În cercetarea AI sunt utilizate mai multe forme diferite de logică. Logica propozițională implică funcții de adevăr precum „sau” și „nu”. Logica de ordinul întâi adaugă cuantificatori și predicate și poate exprima fapte despre obiecte, proprietățile lor și relațiile dintre ele. Logica fuzzy atribuie un „grad de adevăr” (între 0 și 1) afirmațiilor vagi precum „Alice este bătrână” (sau bogată, sau înaltă sau flămândă), care sunt prea imprecise din punct de vedere lingvistic pentru a fi complet adevărate sau false. Logica implicită, logica nemonotonă și circumscripția sunt forme de logică concepute pentru a ajuta la raționamentul implicit și la problema calificării. Mai multe extensii ale logicii au fost concepute pentru a gestiona domenii specifice de cunoaștere, cum ar fi: logica descrierii; calcul de situație, calcul de evenimente și calcul fluent (pentru reprezentarea evenimentelor și timpului); calcul cauzal; calculul credințelor (revizuirea credinței); și logici modale. Au fost, de asemenea, concepute logici pentru a modela afirmații contradictorii sau inconsistente care apar în sistemele multi-agent, cum ar fi logicile paraconsistente.

Metode probabilistice pentru raționamentul incert

Multe probleme din AI (în raționament, planificare, învățare, percepție și robotică) necesită ca agentul să opereze cu informații incomplete sau incerte. Cercetătorii AI au conceput o serie de instrumente puternice pentru a rezolva aceste probleme folosind metode din teoria probabilității și economie. Rețelele bayesiene sunt un instrument foarte general care poate fi folosit pentru diverse probleme: raționament (folosind algoritmul de inferență bayesian), învățare (folosind algoritmul de așteptare-maximizare), planificare (folosind rețele de decizie) și percepție (folosind rețele bayesiene dinamice). Algoritmii probabilistici pot fi utilizați și pentru filtrarea, predicția, netezirea și găsirea de explicații pentru fluxurile de date, ajutând sistemele de percepție să analizeze procesele care au loc în timp (de exemplu, modele Markov ascunse sau filtre Kalman).

Un concept cheie din știința economiei este „utilitatea”: o măsură a cât de valoros este ceva pentru un agent inteligent. Au fost dezvoltate instrumente matematice precise care analizează modul în care un agent poate face alegeri și planifica, folosind teoria deciziei, analiza deciziei și teoria valorii informației. Aceste instrumente includ modele precum procesele de decizie Markov, rețelele dinamice de decizie, teoria jocurilor și proiectarea mecanismelor.

Clasificatori și metode de învățare statistică

Cele mai simple aplicații AI pot fi împărțite în două tipuri: clasificatoare („dacă e strălucitor, atunci e diamant”) și controlere („dacă e diamant, atunci ia-l”). Cu toate acestea, controlorii clasifică și condițiile înainte de a deduce acțiuni și, prin urmare, clasificatorii formează o parte centrală a multor sisteme AI. Clasificatorii sunt funcții care utilizează potrivirea modelului pentru a determina cea mai apropiată potrivire. Ele pot fi reglate după exemple, făcându-le foarte atractive pentru utilizare în AI. Aceste exemple sunt cunoscute sub denumirea de observații sau modele. În învățarea supravegheată, fiecare tipar aparține unei anumite clase predefinite. O clasă este o decizie care trebuie luată. Toate observațiile combinate cu etichetele lor de clasă sunt cunoscute ca un set de date. Când se primește o nouă observație, acea observație este clasificată pe baza experienței anterioare.

Un clasificator poate fi antrenat în diverse moduri; există multe abordări statistice și de învățare automată. Arborele de decizie este cel mai simplu și mai utilizat algoritm simbolic de învățare automată. Algoritmul celui mai apropiat vecin K a fost cel mai utilizat AI analogic până la mijlocul anilor 1990. Metodele nucleului, cum ar fi mașina vector suport (SVM) au înlocuit cel mai apropiat vecin K în anii 1990. Clasificatorul bayesian naiv este „cel mai utilizat cursant” la Google, în parte datorită scalabilității sale. Rețelele neuronale sunt, de asemenea, folosite pentru clasificare.

Performanța clasificatorului depinde în mare măsură de caracteristicile datelor care trebuie clasificate, cum ar fi dimensiunea setului de date, distribuția eșantioanelor între clase, dimensionalitatea și nivelul de zgomot. Clasificatorii bazați pe modele funcționează bine dacă modelul presupus este o potrivire extrem de bună pentru datele reale. În caz contrar, dacă nu este disponibil niciun model de potrivire și dacă acuratețea (mai degrabă decât viteza sau scalabilitatea) este singura preocupare, înțelepciunea convențională este că clasificatorii discriminatori (în special SVM) tind să fie mai precisi decât clasificatorii bazați pe modele, cum ar fi „bayesian naiv” pe cele mai multe seturi de date practice.

Rețele neuronale artificiale

Rețea neuronală artificială
Credit: Cburnett, https://en.wikipedia.org/wiki/File:Artificial_neural_network.svg, licența CC BY-SA 3.0

(O rețea neuronală este un grup interconectat de noduri, asemănător rețelei vaste de neuroni din creierul uman.)

Rețelele neuronale au fost inspirate de arhitectura neuronilor din creierul uman. Un simplu „neuron” N acceptă intrare de la alți neuroni, fiecare dintre care, atunci când este activat (sau „declanșat”), dă un „vot” ponderat pentru sau împotrivă dacă neuronul N ar trebui să se activeze. Învățarea necesită un algoritm care să ajusteze aceste ponderi pe baza datelor de antrenament; un algoritm simplu (conform teoriei asamblării celulare) este de a crește greutatea dintre doi neuroni conectați atunci când activarea unuia declanșează activarea cu succes a altuia. Neuronii au un spectru continuu de activare; în plus, neuronii pot procesa intrările într-un mod neliniar, mai degrabă decât să cântărească voturi simple.

Rețelele neuronale moderne modelează relații complexe între intrări și ieșiri sau găsesc modele în date. Ele pot învăța funcții continue și chiar operații logice digitale. Rețelele neuronale pot fi văzute ca un tip de optimizare matematică – ele efectuează o coborâre în gradient pe o topologie multidimensională care a fost creată prin antrenarea rețelei. Cea mai comună tehnică de antrenament este algoritmul de propagare înapoi. Alte tehnici de învățare pentru rețelele neuronale sunt învățarea hebiană (teoria asamblării celulare), GMDH sau învățarea competitivă.

Principalele categorii de rețele sunt rețelele neuronale aciclice sau prealimentate (în care semnalul trece într-o singură direcție) și rețelele neuronale recurente (care permit feedback și memorii pe termen scurt ale evenimentelor anterioare de intrare). Printre cele mai populare rețele prealimentate se numără perceptronii, perceptronii multistrat și rețelele pe bază radială.

Învățare profundă

Învățarea profundă.
Credit: Sven Behnke, https://en.wikipedia.org/wiki/File:Deep_Learning.jpg, licența CC BY-SA 4.0

(Reprezentarea imaginilor pe mai multe straturi de abstracție în învățare profundă. Credit: Sven Behnke, https://en.wikipedia.org/wiki/File:Deep_Learning.jpg, licența CC BY-SA 4.0))

Învățarea profundă folosește mai multe straturi de neuroni între intrările și ieșirile rețelei. Straturile multiple pot extrage progresiv caracteristici de nivel superior din intrarea brută. De exemplu, în procesarea imaginilor, straturile inferioare pot identifica marginile, în timp ce straturile superioare pot identifica conceptele relevante pentru un om, cum ar fi cifrele, literele sau fețele. Învățarea profundă a îmbunătățit drastic performanța programelor în multe subdomenii importante ale inteligenței artificiale, inclusiv viziunea computerizată, recunoașterea vorbirii, clasificarea imaginilor și altele.

Învățarea profundă folosește adesea rețele neuronale convoluționale pentru multe sau pentru toate straturile sale. Într-un strat convoluțional, fiecare neuron primește input doar de la o zonă restrânsă a stratului anterior numit câmpul receptiv al neuronului. Acest lucru poate reduce substanțial numărul de conexiuni ponderate dintre neuroni și creează o ierarhie similară cu organizarea cortexului vizual animal.

Într-o rețea neuronală recurentă (RNN) semnalul se va propaga printr-un strat de mai multe ori; astfel, un RNN este un exemplu de învățare profundă. RNN-urile pot fi antrenate prin coborâre a gradientului, cu toate acestea, gradienții pe termen lung care sunt propagați înapoi pot „dispărea” (adică pot tinde spre zero) sau „exploda” (adică pot tinde spre infinit), cunoscuți sub numele de problema gradientului care dispare. Tehnica memoriei pe termen lung (LSTM) poate preveni acest lucru în majoritatea cazurilor.

Limbaje și hardware specializate

Au fost dezvoltate limbaje specializate pentru inteligența artificială, cum ar fi Lisp, Prolog, TensorFlow și multe altele. Hardware-ul dezvoltat pentru AI include acceleratoare AI și calcul neuromorf.

Aplicații

AI este relevantă pentru orice sarcină intelectuală. Tehnicile moderne de inteligență artificială sunt omniprezente și sunt prea numeroase pentru a fi enumerate aici. Frecvent, atunci când o tehnică ajunge la uz general, nu mai este considerată inteligență artificială; acest fenomen este descris ca efectul AI.

În anii 2010, aplicațiile AI se aflau în centrul celor mai de succes domenii comerciale ale computerelor și au devenit o caracteristică omniprezentă a vieții de zi cu zi. AI este utilizată în motoarele de căutare (cum ar fi Google Search), direcționarea reclamelor online, sistemele de recomandare (oferite de Netflix, YouTube sau Amazon), generarea de trafic pe internet, publicitatea direcționată (AdSense, Facebook), asistenții virtuali (cum ar fi Siri sau Alexa), vehicule autonome (inclusiv drone și mașini cu conducere autonomă), traducere automată a limbii (Microsoft Translator, Google Translate), recunoaștere facială (Apple’s Face ID sau Microsoft’s DeepFace), etichetarea imaginilor (utilizată de Facebook, Apple iPhoto și TikTok) și filtrare de spam.

Există, de asemenea, mii de aplicații AI de succes folosite pentru a rezolva probleme pentru anumite industrii sau instituții. Câteva exemple sunt: ​​stocarea energiei, hipertrucaje, diagnosticul medical, logistica militară sau managementul lanțului de aprovizionare.

Jocul jocului a fost un test al puterii AI încă din anii 1950. Deep Blue a devenit primul sistem de joc de șah pe computer care l-a învins pe un campion mondial de șah, Garry Kasparov, pe 11 mai 1997. În 2011, în spectacolul demonstratic cu întrebări Jeopardy!, sistemul IBM Watson a răspuns la întrebări, învingând cei mai mari doi campioni Jeopardy!, Brad Rutter și Ken Jennings, cu o marjă semnificativă. În martie 2016, AlphaGo a câștigat 4 din 5 jocuri de go într-un meci cu campionul de go Lee Sedol, devenind primul sistem de joc go pe computer care a învins un jucător profesionist de go fără handicapuri. Alte programe gestionează jocuri cu informații imperfecte; precum pentru poker la nivel supraomenesc, Pluribus și Cepheus. DeepMind a dezvoltat în anii 2010 o „inteligență artificială generalizată” care ar putea învăța pe cont propriu multe jocuri Atari diverse.

Până în 2020, sistemele de procesare a limbajului natural, cum ar fi enormul GPT-3 (pe atunci de departe cea mai mare rețea neuronală artificială) se potriveau cu performanța umană pe benchmark-uri preexistente, deși fără ca sistemul să atingă înțelegerea de bun simț a conținutului benchmark-urilor. AlphaFold 2 (2020) de la DeepMind a demonstrat capacitatea de a determina, mai degrabă în ore decât în ​​luni, structura 3D a unei proteine. Alte aplicații prezic rezultatul deciziilor judecătorești, creează artă (cum ar fi poezia sau pictura) și demonstrează teoreme matematice.

Traducere și adaptare din Wikipedia

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *