Fundamentele AI
Ce este învățarea cu puține exemple?
Învățarea cu puține exemple se referă la o varietate de algoritmi și tehnici utilizate pentru a dezvolta un model de inteligență artificială utilizând o cantitate foarte mică de date de antrenare. Învățarea cu puține exemple își propune să permită unui model de inteligență artificială să recunoască și să clasifice noi date după ce a fost expus la un număr comparativ mic de exemple de antrenare. Antrenarea cu puține exemple se deosebește de metodele tradiționale de antrenare a modelelor de învățare automată, unde de obicei se utilizează o cantitate mare de date de antrenare. Învățarea cu puține exemple este utilizată în principal în domeniul viziunii computaționale.
Pentru a dezvolta o mai bună înțelegere a învățării cu puține exemple, să examinăm conceptul în mai multe detalii. Vom examina motivațiile și conceptele din spatele învățării cu puține exemple, vom explora unele tipuri de învățare cu puține exemple și vom acoperi unele modele utilizate în învățarea cu puține exemple la un nivel general. În final, vom examina unele aplicații pentru învățarea cu puține exemple.
Ce este învățarea cu puține exemple?
„Învățarea cu puține exemple” descrie practica de a antrena un model de învățare automată cu o cantitate minimă de date. De obicei, modelele de învățare automată sunt antrenate pe volume mari de date, cu cât mai multe, cu atât mai bine. Cu toate acestea, învățarea cu puține exemple este un concept important de învățare automată pentru câteva motive diferite.
Un motiv pentru utilizarea învățării cu puține exemple este că poate reduce dramatic cantitatea de date necesare pentru a antrena un model de învățare automată, ceea ce reduce timpul necesar pentru a eticheta seturi de date mari. De asemenea, învățarea cu puține exemple reduce nevoia de a adăuga caracteristici specifice pentru diverse sarcini atunci când se utilizează un set de date comun pentru a crea diverse exemple. Învățarea cu puține exemple poate face modelele mai robuste și capabile să recunoască obiecte pe baza mai puținelor date, creând modele mai generale în comparație cu modelele foarte specializate care sunt norma.
Învățarea cu puține exemple este utilizată cel mai frecvent în domeniul viziunii computaționale, deoarece natura problemelor de viziune computațională necesită fie volume mari de date, fie un model flexibil.
Subcategorii
Termenul „învățare cu puține exemple” este de fapt doar un tip de învățare care utilizează foarte puține exemple de antrenare. Deoarece utilizați doar „câteva” exemple de antrenare, există subcategorii de învățare cu puține exemple care implică, de asemenea, antrenarea cu o cantitate minimă de date. „Învățarea cu un singur exemplu” este un alt tip de antrenare a modelului care implică învățarea unui model să recunoască un obiect după ce a văzut doar o imagine a acelui obiect. Tacticile generale utilizate în învățarea cu un singur exemplu și învățarea cu puține exemple sunt aceleași. Trebuie să fiți conștienți de faptul că termenul „învățare cu puține exemple” poate fi utilizat ca un termen generic pentru a descrie orice situație în care un model este antrenat cu foarte puține date.
Abordări pentru învățarea cu puține exemple
Majoritatea abordărilor de învățare cu puține exemple se pot încadra în una dintre trei categorii: abordări la nivel de date, abordări la nivel de parametri și abordări bazate pe metrice.
Abordări la nivel de date
Abordările la nivel de date pentru învățarea cu puține exemple sunt foarte simple în concept. Pentru a antrena un model atunci când nu aveți suficiente date de antrenare, puteți obține pur și simplu mai multe date de antrenare. Există diverse tehnici pe care un specialist în date le poate utiliza pentru a crește cantitatea de date de antrenare pe care le are.
Datele de antrenare similare pot susține datele țintă exacte pe care le antrenați un clasificator. De exemplu, dacă antrenați un clasificator pentru a recunoaște anumite tipuri de câini, dar nu aveți suficiente imagini ale speciei pe care încercați să o clasificați, puteți include multe imagini cu câini care ar ajuta clasificatorul să determine caracteristicile generale care alcătuiesc un câine.
Creșterea datelor poate crea mai multe date de antrenare pentru un clasificator. Acest lucru implică de obicei aplicarea de transformări asupra datelor de antrenare existente, cum ar fi rotirea imaginilor existente, astfel încât clasificatorul să examineze imaginile din diferite unghiuri. Rețelele generative adversare (GAN) pot fi, de asemenea, utilizate pentru a genera noi exemple de antrenare pe baza a ceea ce învață din puținele exemple autentice de date de antrenare pe care le aveți.
Abordări la nivel de parametri
Învățarea meta
O abordare la nivel de parametri pentru învățarea cu puține exemple implică utilizarea unei tehnici numite „învățare meta”. Învățarea meta implică învățarea unui model cum să învețe care caracteristici sunt importante într-o sarcină de învățare automată. Acest lucru poate fi realizat prin crearea unei metode pentru a regla modul în care spațiul de parametri al unui model este explorat.
Învățarea meta utilizează două modele diferite: un model profesor și un model elev. Modelul „profesor” și modelul „elev”. Modelul profesor învață cum să încapsuleze spațiul de parametri, în timp ce algoritmul elevului învață cum să recunoască și să clasifice articolele reale din setul de date. Pentru a spune lucrurile altfel, modelul profesor învață cum să optimizeze un model, în timp ce modelul elevului învață cum să clasifice. Ieșirile modelului profesor sunt utilizate pentru a antrena modelul elevului, arătându-i modelului elevului cum să negocieze spațiul mare de parametri care rezultă din prea puține date de antrenare. De aceea „meta” din învățarea meta.
Una dintre principalele probleme cu modelele de învățare cu puține exemple este că pot ușor supraantrena pe datele de antrenare, deoarece acestea au adesea spații cu dimensiuni mari. Limitarea spațiului de parametri al unui model rezolvă această problemă, și deși acest lucru poate fi realizat prin aplicarea tehnicilor de regularizare și selectarea funcțiilor de pierdere adecvate, utilizarea unui algoritm profesor poate îmbunătăți semnificativ performanța unui model de învățare cu puține exemple.
Un model de clasificator de învățare cu puține exemple (modelul elev) va încerca să generalizeze pe baza micilor cantități de date de antrenare pe care le primește, iar precizia sa poate fi îmbunătățită cu un model profesor care să îl ghideze prin spațiul mare de parametri. Această arhitectură generală se numește „învățare meta bazată pe gradient”.
Procesul complet de antrenare a unui învățător meta bazat pe gradient este următorul:
- Se creează modelul de bază (modelul profesor)
- Se antrenează modelul de bază pe setul de suport
- Modelul de bază returnează predicții pentru setul de întrebare
- Se antrenează modelul meta (modelul elev) pe pierderea derivată din eroarea de clasificare
Variante de învățare meta
Învățarea meta independentă de model este o metodă utilizată pentru a îmbunătăți tehnica de bază de învățare meta pe care am acoperit-o mai sus.
După cum am menționat mai sus, un învățător meta bazat pe gradient utilizează experiența anterioară dobândită de un model profesor pentru a se autotune și a a furniza predicții mai precise pentru o cantitate mică de date de antrenare. Cu toate acestea, începerea cu parametri inițializați aleatoriu înseamnă că modelul poate încă supraantrena datele. Pentru a evita acest lucru, un învățător meta independent de model este creat prin limitarea influenței modelului profesor/modelului de bază. În loc de a antrena modelul elevului direct pe pierderea pentru predicțiile făcute de modelul profesor, modelul elevului este antrenat pe pierderea pentru predicțiile sale.
Pentru fiecare episod de antrenare a unui învățător meta independent de model:
- Se creează o copie a modelului meta curent.
- Copia este antrenată cu ajutorul modelului de bază/profesor.
- Copia returnează predicții pentru datele de antrenare.
- Pierderea calculată este utilizată pentru a actualiza modelul meta.
Învățarea metrică
Abordările de învățare metrică pentru proiectarea unui model de învățare cu puține exemple implică de obicei utilizarea metricilor de bază de distanță pentru a face comparații între exemplele dintr-un set de date. Algoritmii de învățare metrică, cum ar fi distanța cosinus, sunt utilizați pentru a clasifica exemplele de întrebare pe baza asemănării lor cu exemplele de suport. Pentru un clasificator de imagini, acest lucru ar însemna clasificarea imaginilor pe baza asemănării caracteristicilor superficiale. După ce un set de suport de imagini este selectat și transformat într-un vector de încorporare, același lucru se face și cu setul de întrebare, iar valorile pentru cele două vectori sunt comparate, clasificatorul selectând clasa care are valorile cele mai apropiate de vectorul de întrebare.
O soluție metrică mai avansată este „rețeaua prototip”. Rețelele prototip combină punctele de date în cluster, combinând modelele de clusterizare cu clasificarea bazată pe metrică descrisă mai sus. Ca și în clusteringul K-means, se calculează centroizii clusterelor pentru clasele din seturile de suport și de întrebare. O metrică de distanță euclidiană este apoi aplicată pentru a determina diferența dintre seturile de întrebare și centroizii setului de suport, atribuind setului de întrebare clasa setului de suport care este mai aproape.
Majoritatea celorlalte abordări de învățare cu puține exemple sunt doar variații ale tehnicilor de bază prezentate mai sus.
Aplicații pentru învățarea cu puține exemple
Învățarea cu puține exemple are aplicații în numeroasele subdomenii ale științei datelor, cum ar fi viziunea computațională, procesarea limbajului natural, robotică, sănătate și procesarea semnalelor.
Aplicațiile pentru învățarea cu puține exemple în spațiul viziunii computaționale includ recunoașterea eficientă a caracterelor, clasificarea imaginilor, recunoașterea obiectelor, urmărirea obiectelor, predicția mișcării și localizarea acțiunii. Aplicațiile de procesare a limbajului natural pentru învățarea cu puține exemple includ traducerea, completarea propozițiilor, clasificarea intenției utilizatorului, analiza sentimentului și clasificarea multi-etichetă a textului. Învățarea cu puține exemple poate fi utilizată în domeniul roboticii pentru a ajuta roboții să învețe despre sarcini din doar câteva demonstrații, permițând roboților să învețe cum să efectueze acțiuni, să se miște și să navigheze în jurul lor. Descoperirea medicamentelor cu puține exemple este un domeniu emergent al sănătății bazate pe inteligență artificială. În final, învățarea cu puține exemple are aplicații pentru procesarea semnalelor acustice, care este procesul de analiză a datelor sonore, permițând sistemelor de inteligență artificială să cloneze voci pe baza doar câtorva exemple de utilizator sau să convertească vocea de la un utilizator la altul.












