Why do you need a data analytics course?

Datele în AI: Cât Testăm și Cât Antrenăm?

11/12/2021

Rating: 4.54 (6722 votes)

În lumea rapidă a inteligenței artificiale și a învățării automate, datele sunt, fără îndoială, noul aur. Sunt o resursă esențială pe care fiecare companie o caută, și o caută acum. O întrebare fundamentală, adesea rostită în cercurile experților, este: „Cât de multe date de antrenament sunt necesare pentru a construi modelele tale AI?” Răspunsul, la fel ca în multe aspecte ale vieții, variază considerabil în funcție de ceea ce încerci să realizezi. Modelele AI necesită, de obicei, cantități vaste de date pentru a fi antrenate eficient, dar unele seturi de date sunt atât de limitate încât poate fi dificil să știi de unde să începi sau ce să faci în continuare. Acest articol explorează nu doar procentajul ideal de date de testare, ci și cum să obții mai multe date și să-ți extinzi seturile limitate folosind tehnici inteligente de augmentare a datelor.

What is training data?
In his free time, you can find him reading books, obsessing over sci-fi movies, or fighting the urge to have a slice of pizza. Training data is a dataset used to teach the machine learning algorithms to make predictions or perform a desired task. Learn more about how it's used.
Cuprins

Datele în Învățarea Automată vs. Programarea Convențională

Învățarea automată a cucerit deja diverse sectoare datorită potențialului său imens de rezolvare a problemelor. Algoritmii săi permit mașinilor să imite comportamentul inteligent uman, un atu prețios în știința datelor, procesarea imaginilor, procesarea limbajului natural și multe alte domenii. Desigur, învățarea automată aplicată nu poate înlocui programarea convențională. Totuși, este de neegalat în ceea ce privește problemele de predicție și clasificare, unde nu este simplu să definești regulile care guvernează programul. În timp ce algoritmii tradiționali utilizează logica codificată pentru a găsi răspunsuri, cei de învățare automată folosesc răspunsurile existente pentru a-și constitui propria logică. Astfel, ei învață din exemplele date, obținând rezultate din ce în ce mai precise cu fiecare iterație.

Lăsând la o parte abordarea matematică riguroasă, învățarea automată permite rezolvarea eficientă a problemelor complexe, dar nu vine fără un preț. Un algoritm de învățare automată nu necesită reguli, dar are nevoie de o mulțime de date de intrare – și adunarea unei cantități suficiente poate fi o provocare. Mă gândesc că, în acest moment, te-ai putea întreba ce înseamnă de fapt „o mulțime”? Nu este un mister că procesele de învățare automată sunt intensive în date, dar cum se raportează acest lucru la proiectul tău particular? Fie că iei în considerare implementarea AI în viitorul tău proiect, fie că ai făcut-o deja, dar nu ești mulțumit de rezultat, informațiile de mai jos îți pot fi de mare ajutor.

Dar înainte de a aprofunda problema dimensiunii setului de date, să descompunem modul în care sunt antrenați algoritmii de învățare automată.

Despre Datele de Antrenament și Testare: Regula 80/20

Așa cum sugerează numele lor, algoritmii de învățare automată învață, găsesc tipare și își dezvoltă o înțelegere treptată a problemei ca rezultat al expunerii la date. Odată ce ai adunat cât mai multe informații poți la un moment dat, ar trebui să le împarți în scopuri de antrenament și testare. În general, tendința este de a le împărți în proporție de 80% pentru datele de antrenament și 20% pentru datele de testare. Evident, vei avea nevoie de majoritatea datelor pentru scopuri de antrenament, dar nu le folosi pe toate. Datele de testare îți vor permite să verifici acuratețea modelului creat. Nu poți valida un model folosind datele pe care le cunoaște deja – utilizarea unui set de date necunoscut îi va expune eventualele slăbiciuni. După ce alimentezi modelul cu datele de antrenament, etichetezi rezultatul dorit – iar în faza de testare, verifici dacă este corect sau nu.

Datele de antrenament pot lua diferite forme, în funcție de problema pe care încerci să o rezolvi – pot fi date numerice, imagini, text sau audio. Este esențial să efectuezi o anumită curățare sau preprocesare prin eliminarea datelor duplicate și corectarea erorilor structurale. Poți încerca să elimini și datele irelevante, dar reține că în unele cazuri (cum ar fi, de exemplu, în prognozarea tendințelor bursiere sau alte procese bazate pe predicție), este greu să vezi această relevanță clar. În cele din urmă, modelul tău va decide pentru tine.

Factori care Influențează Dimensiunea Setului de Date de Testare

Cât de multe date vei avea nevoie? Răspunsul depinde de tipul de sarcină pe care algoritmul tău ar trebui să o îndeplinească, de metoda pe care o utilizezi pentru a realiza AI și de performanța așteptată. În general, algoritmii tradiționali de învățare automată nu vor avea nevoie de atât de multe date ca modelele de învățare profundă (Deep Learning). 1000 de eșantioane pe categorie sunt considerate un minim pentru cei mai simpli algoritmi de învățare automată, dar nu vor fi suficiente pentru a rezolva problema în majoritatea cazurilor.

Cu cât problema este mai complexă, cu atât ar trebui să ai mai multe date de antrenament. Numărul de eșantioane de date ar trebui să fie proporțional cu numărul de parametri. Conform așa-numitei reguli a lui 10, adesea utilizată în estimarea dimensiunii setului de date, ar trebui să ai de aproximativ 10 ori mai multe eșantioane de date decât parametri. Desigur, această regulă este doar o sugestie și s-ar putea să nu se aplice în toate proiectele (unii algoritmi de învățare profundă funcționează bine la un raport de 1:1). Totuși, este benefică odată ce încerci să estimezi dimensiunea minimă a setului tău de date. Reține, însă, că unele variabile, cum ar fi raportul semnal-zgomot, pot schimba radical această cerință.

Este demn de reținut că calitatea ar trebui să rămână ridicată indiferent de nivelul de complexitate al problemei. Poate ai auzit că extinderea setului de date ar trebui să fie întotdeauna scopul tău principal, dar conform experienței noastre, nu merită să pui cantitatea înaintea calității. Ambele sunt la fel de importante.

How do you train a deep learning model?
Training a deep learning model can seem daunting, but following a structured checklist makes it manageable and effective. By focusing on each step—from data validation to deployment—you’re setting your model up for success in real-world scenarios. This approach not only improves performance but also saves time by preventing costly mistakes.

Învățare Supervizată vs. Nesupervizată și Impactul asupra Datelor

Învățarea supervizată și învățarea nesupervizată sunt două abordări distincte pentru antrenarea algoritmilor ML. Prima utilizează date etichetate pentru a obține cele mai eficiente rezultate, în timp ce cealaltă se ocupă de seturi de date neetichetate pentru a învăța tipare fără suport uman. Învățarea nesupervizată este perfectă în situațiile în care trebuie să identifici tipare folosind date de antrenament complexe. Uneori, este aproape imposibil (sau prea costisitor) să efectuezi etichetarea datelor, cum ar fi îmbunătățirea securității cibernetice sau furnizarea de etichete directe în text necesare pentru sarcinile de procesare a limbajului natural. Învățarea supervizată este mult mai comună în industrie, deoarece aduce rezultate mai precise, chiar dacă etichetarea datelor o face mai costisitoare și consumatoare de timp.

Așa cum poți vedea, în acest caz, alegerea ta nu va determina neapărat cantitatea de date, ci tipul acesteia și volumul de muncă. Cantitatea este determinată mai degrabă de modul în care îți creezi modelul de învățare automată.

CaracteristicăÎnvățare SupervizatăÎnvățare Nesupervizată
Tipul DatelorEtichetate (labeled)Neetichetate (unlabeled)
ScopPredicție/ClasificareIdentificare tipare/Structură
AcuratețeMai mareMai mică (dar utilă pentru date complexe)
Cost/TimpMai mare (datorită etichetării)Mai mic (fără etichetare)
ExempleRecunoaștere imagine, spam detectionClustering, reducerea dimensionalității

Cât de Multe Date Sunt Suficiente pentru Învățarea Profundă (Deep Learning)?

Ca subtip al învățării automate care imită structura creierului uman, învățarea profundă este mult mai capabilă să rezolve probleme foarte complexe, chiar dacă datele nu sunt structurate. Acest lucru se datorează abilităților rețelei neuronale de a extrage caracteristici independent, reducând implicarea umană necesară. Totuși, totul are un cost.

Antrenarea rețelelor neuronale necesită mult mai mult timp decât antrenarea modelelor ML obișnuite. Acest lucru se datorează faptului că mecanismul prin care procesează informațiile este mult mai complex. Rețeaua neuronală utilizează neuroni artificiali pentru a efectua transformări simple care, multiplicate la o scară mare, constituie un proces complex de rezolvare a problemelor. Ca rezultat, are nevoie de incomparabil mai multe date de antrenament. Și mai multe date înseamnă mai multă putere de calcul pentru a procesa, ceea ce generează costuri considerabile.

Dar revenind la subiect – rețelele neuronale pot necesita dimensiuni diferite ale seturilor de date în funcție de problema pe care încerci să o rezolvi. De exemplu, proiectele care emulează comportamentul uman într-un mod sofisticat (cum ar fi chatbot-uri avansate sau roboți) au nevoie de milioane de puncte de date pentru a oferi rezultate satisfăcătoare. Dar cele care efectuează sarcini de identificare – cum ar fi clasificarea imaginilor – ar trebui să se descurce cu câteva zeci de mii de eșantioane de date, dacă calitatea lor este bună. Acesta este numărul standard pentru proiectele comerciale. Pe de altă parte, algoritmii ML simpli care servesc, de exemplu, scopurilor de cercetare, se vor descurca cu 10% din ceea ce ai nevoie pentru DL standard.

Prea Multe Date Pot fi, de Asemenea, o Problemă

Este mult mai comun să te confrunți cu lipsa datelor decât cu excesul lor – dar se poate întâmpla. În general, este literalmente imposibil să ai prea multe date de calitate. Cu toate acestea, pe măsură ce dimensiunea setului de date de antrenament se extinde, este mult mai greu să menții calitatea, ceea ce îți poate afecta rezultatele într-un mod negativ. În plus, deși creșterea cantității de date îmbunătățește acuratețea, poate înceta să mai aducă efecte la un moment dat. Acesta este cazul, de exemplu, cu modelele predictive care încetează să mai reacționeze la mai multe date după atingerea unui punct de saturație.

Optarea pentru cantitate cu orice preț este o abordare învechită care pierde adepți fermi odată cu evoluția rapidă a învățării automate. Și nu este întotdeauna cea mai bună alegere din perspectiva afacerii. Așa cum am menționat deja, colectarea și stocarea datelor mari este costisitoare, așa că merită să te gândești dacă ai nevoie de ele în acest moment. Antrenarea capacității modelului pe cantități excesive de date va afecta costurile finale ale infrastructurii utilizate.

Ce Faci Când Seturile Tale de Date Sunt Limitate?

Dacă continui să primești un rezultat incorect sau imprecis în faza de testare, este posibil să fi alimentat modelul tău cu prea puține date. Aceasta nu este cea mai bună veste, deoarece colectarea datelor pentru scopuri de antrenament și testare este adesea cea mai costisitoare și consumatoare de timp parte a procesului de implementare a AI. Ce să faci într-o astfel de situație pentru a evita costurile suplimentare? Există câteva opțiuni pe care le poți lua în considerare. Odată ce te asiguri că problema nu este calitatea scăzută (date duplicate, înregistrări lipsă etc.), ci cantitatea, poți apela la una dintre următoarele metode.

What is the difference between a test and a training data set?
When a large amount of data is at hand, a set of samples can be set aside to evaluate the final model. The “training” data set is the general term for the samples used to create the model, while the “test” or “validation” data set is used to qualify performance. — Max Kuhn and Kjell Johnson, Page 67, Applied Predictive Modeling, 2013

1. Utilizarea Datelor Open-Source

Căutarea datelor open-source este prima metodă pe care am recomanda-o, deoarece este cea mai puțin intensivă în muncă și complet gratuită. Căutând pe internet, poți găsi practic orice date ai putea avea nevoie, dar reține să verifici mai întâi seturile de date existente – îți va economisi echipei tale o mulțime de muncă manuală. Reciclarea unui model deja antrenat este o practică comună care poate economisi timp și bani, așa că de ce să nu faci același lucru cu datele în sine?

Desigur, șansele de a găsi date disponibile pentru proiecte fintech, de producție sau medicale sunt mult mai mici din cauza problemelor de confidențialitate. Dar pentru sarcini de viziune computerizată, cum ar fi detectarea și recunoașterea obiectelor, identificarea limbajului textului sau analiza semantică, ar trebui să poți găsi o mulțime de surse. Este demn de reținut, însă, că este esențial să verifici licența înainte de a apela la un anumit set de date. În timp ce găsirea datelor pentru cercetare nu va fi o problemă, lucrurile devin puțin mai complicate cu utilizarea comercială.

Unde să cauți seturi de date open-source pentru proiecte de învățare automată? Unele surse populare includ Kaggle, Azure, AWS, ca să nu mai vorbim de cel mai recunoscut Google Datasets. Repozitoriile lor includ atât seturi de date open-source, cât și plătite.

2. Augmentarea Datelor

Internetul este o mină de aur pentru date, dar te poate dezamăgi, mai ales dacă problema pe care încerci să o rezolvi cu modelul tău de clasificare este de nișă. Atunci este timpul să-ți sufleci mânecile și să lucrezi cu setul de antrenament limitat pe care îl ai la dispoziție. Folosind o tehnică numită augmentarea datelor, poți oferi modelului tău date insuficiente fără a obține noi eșantioane. În acest fel, îl vei împiedica să învețe tipare greșite lucrând repetat cu aceleași eșantioane.

Este suficient să faci modificări minore eșantioanelor tale de date pentru a efectua augmentarea datelor. Modelul tău poate fi destul de inteligent pentru standardele AI, dar este încă departe de inteligența umană, așa că odată ce modifici o imagine doar puțin, modelul o va considera un eșantion de date diferit. Cum să modifici datele în scopul augmentării datelor? Poți opta pentru:

  • Scalare (redimensionare)
  • Rotație
  • Reflecție (mirroring)
  • Decupare (cropping)
  • Translație (deplasare)
  • Adăugarea de zgomot Gaussian

O altă opțiune este de a utiliza tehnici mai avansate, cum ar fi regularizarea prin decupare (cutout regularization), mixup, transferul de stil neuronal sau aplicarea GAN-urilor (Generative Adversarial Networks) pentru a crea exemple complet noi. Este demn de remarcat aici că tehnicile de augmentare a datelor pot fi aplicate oricărui tip de date. Ele par destul de simple și naturale atunci când vine vorba de sarcini de clasificare și recunoaștere a imaginilor. La fel de bine, augmentarea datelor poate fi aplicată pentru a crește dimensiunea datelor și a extinde setul de date original pentru seturi de date numerice, tabulare, serii de timp și toate celelalte tipuri de seturi de date.

Folosind augmentarea datelor, poți furniza datele necesare modelului la un cost limitat. Odată ce o realizezi bine, poți îmbunătăți semnificativ acuratețea rezultatelor. Este întotdeauna o soluție bună? Ce provocări aduce? Dacă dorești să citești despre această metodă și tehnicile sale într-un context mai larg, verifică articolele dedicate antrenării rețelelor neuronale cu un set de date deficitar și o dimensiune limitată a eșantionului.

Întrebări Frecvente (FAQ)

Poate fi folosită data din faza de antrenament în testare?

Nu, categoric nu. În învățarea automată, trebuie să urmăm întotdeauna o regulă importantă: datele din faza de antrenament nu ar trebui să fie utilizate în faza de testare a modelului. Modelul tău ar învăța pe de rost rezultatele, și nu ai putea evalua cu adevărat performanța sa pe date noi, nevăzute. Acest lucru ar duce la un model care pare perfect pe hârtie, dar eșuează lamentabil în lumea reală.

Cum știu dacă am suficiente date de antrenament?

Nu există un răspuns unic. Depinde de complexitatea problemei și de algoritmul folosit. Pentru algoritmii simpli de învățare automată, regula generală este de a avea aproximativ 10 ori mai multe eșantioane de date decât parametri. Pentru învățarea profundă, ai nevoie de mult mai multe date, de la zeci de mii la milioane, în funcție de complexitatea sarcinii. Cel mai important aspect este calitatea datelor. Un set mic de date de înaltă calitate este adesea mai valoros decât un set mare de date de calitate slabă. Dacă acuratețea modelului tău nu se îmbunătățește, chiar și cu mai multe date, ai putea fi într-un punct de saturație sau ai nevoie de date mai diverse/relevante.

Care este procentul ideal de împărțire a datelor?

Deși regula 80% antrenament / 20% testare este o linie directoare larg acceptată și un bun punct de plecare (Scikit-learn, de exemplu, folosește implicit 25% pentru testare), nu este o regulă rigidă. Dimensiunea setului de testare este dictată de următorii factori:

  • Cât de multe date ai: Dacă ai un set de date foarte mic (de exemplu, doar 100 de instanțe), ar putea fi mai bine să aloci aproximativ 90% pentru antrenament pentru a oferi modelului suficient material de învățare.
  • Cât de bine ar trebui să funcționeze modelul: Pentru aplicații critice, s-ar putea să ai nevoie de un set de testare mai mare pentru a asigura o evaluare robustă a performanței.
  • Dacă setul de testare reprezintă întregul set de date: Este crucial ca setul de testare să fie reprezentativ pentru toate datele pe care modelul le va întâlni în producție. O împărțire aleatorie este adesea suficientă, dar în cazuri specifice (de exemplu, date secvențiale), s-ar putea să fie necesare strategii mai sofisticate.

Concluzie

Așa cum poți observa, nu există un răspuns direct la întrebarea cât de multe date ar trebui să aduni pentru proiectul tău AI. Metodele enumerate mai sus ar trebui să te ajute să decizi dacă ar trebui sau nu să-ți extinzi setul de date. Estimarea este mult mai ușoară cu un partener experimentat care poate privi proiectul tău dintr-un unghi diferit și poate oferi informații valoroase. Dacă ești în căutarea unui astfel de sprijin, nu ezita să ceri sfaturi de specialitate! Succesul în AI nu este doar despre cantitatea de date, ci despre strategia inteligentă de gestionare și utilizare a acestora.

Dacă vrei să descoperi și alte articole similare cu Datele în AI: Cât Testăm și Cât Antrenăm?, poți vizita categoria Fitness.

Go up