Cum să abordați problemele de învățare automată

Publicat: 2022-03-11

Una dintre sarcinile principale ale computerelor este automatizarea sarcinilor umane. Unele dintre aceste sarcini sunt simple și repetitive, cum ar fi „mutați X de la A la B”. Devine mult mai interesant atunci când computerul trebuie să ia decizii cu privire la probleme care sunt mult mai dificil de oficializat. Acolo începem să întâlnim probleme de bază de învățare automată.

Problemele de învățare automată acoperă ilustrația

Din punct de vedere istoric, astfel de algoritmi au fost construiți de oameni de știință sau experți care aveau cunoștințe intime despre domeniul lor și s-au bazat în mare parte pe reguli. Odată cu explozia puterii de calcul și disponibilitatea unor seturi de date mari și diverse, accentul s-a mutat către o abordare mai computațională.

Cele mai populare concepte de învățare automată în zilele noastre au de-a face cu rețelele neuronale și, din experiența mea, acest lucru a creat multor oameni impresia că rețelele neuronale sunt un fel de armă miracolă pentru toate problemele de inferență. De fapt, acest lucru este destul de departe de adevăr. În ochii statisticianului, ele formează o clasă de abordări de inferență cu punctele forte și punctele slabe asociate și depinde complet de problemă dacă rețelele neuronale vor fi cea mai bună soluție sau nu.

Destul de des, există abordări mai bune.

În acest articol, vom schița o structură pentru atacarea problemelor de învățare automată. Nu există niciun spațiu pentru a intra în prea multe detalii despre anumite modele de învățare automată, dar dacă acest articol generează interes, articolele ulterioare ar putea oferi soluții detaliate pentru unele probleme interesante de învățare automată.

În primul rând, totuși, permiteți-ne să depunem un efort pentru a arăta de ce ar trebui să fiți mai circumspect decât să gândiți automat „rețea neuronală” atunci când vă confruntați cu o problemă de învățare automată.

Avantajele și dezavantajele rețelelor neuronale

Cu rețelele neuronale, inferența se face printr-o „rețea” ponderată. Ponderile sunt calibrate în timpul așa-numitului proces de „învățare” și apoi, ulterior, aplicate pentru a atribui rezultate intrărilor.

Oricât de simplu ar suna, toate greutățile sunt parametri ai rețelei calibrate și, de obicei, asta înseamnă prea mulți parametri pentru ca un om să-i înțeleagă.

Ilustrație intrare-ieșire a teoriei rețelelor neuronale

Deci, am putea considera rețelele neuronale ca un fel de cutie neagră de inferență care conectează intrarea la ieșire, fără un model specific între ele.

Să aruncăm o privire mai atentă la avantajele și dezavantajele acestei abordări.

Avantajele rețelelor neuronale

  • Intrarea sunt datele în sine. Rezultate utilizabile chiar și cu puțină sau deloc inginerie de caracteristici.
  • Abilitate antrenabilă. Fără inginerie a caracteristicilor, nu este nevoie de abilități atât de greu de dezvoltat precum intuiția sau expertiza în domeniu. Instrumente standard sunt disponibile pentru inferențe generice.
  • Precizia se îmbunătățește odată cu cantitatea de date. Cu cât vede mai multe intrări, cu atât o rețea neuronală funcționează mai bine.
  • Poate depăși modelele clasice atunci când nu există informații complete despre model. Gândiți-vă la sentimentul public, unul.
  • Inferența deschisă poate descoperi modele necunoscute. Dacă utilizați un model și lăsați o considerație în afara acestuia, acesta nu va detecta fenomenul corespunzător. Rețelele neuronale ar putea.

Exemplu de rețea neuronală de succes: IA Google a găsit o planetă care orbitează în jurul unei stele îndepărtate – unde NASA nu a făcut-o – analizând datele acumulate ale telescopului.

Dezavantajele rețelelor neuronale

  • Acestea necesită o mulțime de date (adnotate!). În primul rând, această cantitate de date nu este întotdeauna disponibilă. Convergența este lentă. Un model solid (să zicem, în fizică) poate fi calibrat după câteva observații - cu rețele neuronale, acest lucru este exclus. Adnotarea este multă muncă, ca să nu mai vorbim de faptul că, în sine, nu este sigură.
  • Nu există informații despre structura interioară a datelor. Te interesează pe ce se bazează inferența? Niciun noroc aici. Există situații în care ajustarea manuală a datelor îmbunătățește inferența printr-un salt, dar o rețea neuronală nu va putea ajuta cu asta.
  • Probleme de supraadaptare. Se întâmplă adesea ca rețeaua să aibă mai mulți parametri decât justifică datele, ceea ce duce la o inferență suboptimă.
  • Performanța depinde de informații. Dacă există informații complete despre o problemă, un model solid tinde să depășească o rețea neuronală.
  • Există probleme de eșantionare. Eșantionarea este întotdeauna o problemă delicată, dar cu un model se poate dezvolta rapid o noțiune de eșantionare problematică. Rețelele neuronale învață doar din date, așa că, dacă obțin date părtinitoare, vor avea concluzii părtinitoare.

Un exemplu de eșec: o relație personală mi-a spus despre o corporație majoră (pe care nu o pot numi) care lucra la detectarea vehiculelor militare pe fotografiile aeriene. Aveau imagini în care erau astfel de vehicule și altele care nu. Majoritatea imaginilor din prima clasă au fost făcute într-o zi ploioasă, în timp ce ultimele au fost făcute pe vreme însorită. Drept urmare, sistemul a învățat să distingă lumina de umbră.

În concluzie, rețelele neuronale formează o clasă de metode de inferență care au avantajele și dezavantajele lor.

Faptul că popularitatea lor depășește toate celelalte metode statistice în ochii publicului are probabil mai mult de-a face cu guvernanța corporativă decât cu orice altceva.

Instruirea oamenilor pentru a utiliza instrumente standard și metode standardizate de rețele neuronale este un proces mult mai previzibil decât vânătoarea de experți în domeniu și artiști din diverse domenii. Acest lucru, totuși, nu schimbă faptul că utilizarea unei rețele neuronale pentru o problemă simplă și bine definită înseamnă de fapt doar împușcarea unei vrăbii cu un tun: are nevoie de multe date, necesită multă muncă de adnotare și, în schimb, ar putea doar sub performanță în comparație cu un model solid. Nu cel mai bun pachet.

Cu toate acestea, există o putere uriașă în faptul că „democratizează” cunoștințele statistice. Odată ce o soluție de inferență bazată pe rețele neuronale este văzută ca un simplu instrument de programare, poate ajuta chiar și pe cei care nu se simt confortabil cu algoritmi complexi. Deci, inevitabil, acum sunt construite o mulțime de lucruri care altfel nu ar exista dacă am putea funcționa doar cu modele sofisticate.

Abordarea problemelor de învățare automată

Când abordați problemele de învățare automată, aceștia sunt pașii pe care va trebui să-i parcurgeți:

  • Stabilirea criteriilor de acceptare
  • Curățarea datelor și maximizarea conținutului de informații
  • Alegerea celei mai optime abordări de inferență
  • Antrenează, testează, repetă

Să vedem aceste articole în detaliu.

Diferiți pași ai unei probleme de învățare automată

Stabilirea criteriilor de acceptare

Ar trebui să aveți o idee despre precizia țintei cât mai curând posibil, în măsura în care este posibil. Aceasta va fi ținta către care lucrați.

Curățarea datelor și maximizarea conținutului lor de informații

Acesta este pasul cel mai critic. În primul rând, datele dvs. ar trebui să nu aibă (sau puține) erori. Curățarea acestuia de acestea este un prim pas esențial. Înlocuiți valorile lipsă, încercați să identificați modele care sunt în mod evident false, eliminați duplicatele și orice altă anomalie pe care ați putea observa.

În ceea ce privește informațiile, dacă datele tale sunt foarte informative (în sens liniar), atunci practic orice metodă de inferență îți va da rezultate bune. Dacă informațiile necesare nu sunt acolo, atunci rezultatul va fi zgomot. Maximizarea informațiilor înseamnă în primul rând găsirea oricăror relații neliniare utile în date și liniarizarea acestora. Dacă asta îmbunătățește semnificativ intrările, grozav. Dacă nu, atunci ar putea fi nevoie să fie adăugate mai multe variabile. Dacă toate acestea nu dă roade, precizia țintei poate avea de suferit.

Cu puțin noroc, vor exista variabile unice care sunt utile. Puteți identifica variabile utile dacă, de exemplu, le trasați în raport cu variabilele țintă de învățare și găsiți că graficul este asemănător cu o funcție (adică, intervalul îngust în intrare corespunde intervalului îngust în ieșire). Această variabilă poate fi apoi liniarizată - de exemplu, dacă este reprezentată sub formă de parabolă, scădeți unele valori și luați rădăcina pătrată.

Pentru variabilele care sunt zgomotoase - intervalul îngust în intrare corespunde unui interval larg în ieșire - putem încerca să le combinăm cu alte variabile.

Pentru a avea o idee despre acuratețe, poate doriți să măsurați probabilitățile de clasă condiționată pentru fiecare dintre variabilele dvs. (pentru probleme de clasificare) sau să aplicați o formă foarte simplă de regresie, cum ar fi regresia liniară (pentru probleme de predicție). Dacă conținutul informațional al intrării se îmbunătățește, atunci se va îmbunătăți și deducerea dvs. și pur și simplu nu doriți să pierdeți prea mult timp în această etapă calibând un model când datele nu sunt încă gata. Așa că continuați să testați cât mai simplu posibil.

Alegerea celei mai optime abordări de inferență

Odată ce datele dvs. sunt într-o formă decentă, puteți alege metoda de inferență (datele ar putea fi încă lustruite mai târziu, dacă este necesar).

Ar trebui sa folosesti un model? Ei bine, dacă aveți motive întemeiate să credeți că puteți construi un model bun pentru sarcină, atunci probabil că ar trebui. Dacă nu credeți, dar există date ample cu adnotări bune, atunci puteți utiliza o rețea neuronală fără mâini. Cu toate acestea, în aplicațiile practice de învățare automată, adesea nu există suficiente date pentru asta.

Acuratețea jocului versus acoperire are adesea rezultate extraordinare. Abordările hibride sunt de obicei perfecte. Să presupunem că datele sunt de așa natură încât puteți obține o precizie de aproape 100% pe 80% cu un model simplu? Aceasta înseamnă că puteți demonstra rapid rezultate și dacă sistemul dumneavoastră poate identifica când funcționează pe teritoriul prietenos în proporție de 80%, atunci ați acoperit practic cea mai mare parte a problemei. Este posibil ca clientul dvs. să nu fie încă pe deplin mulțumit, dar acest lucru vă va câștiga încrederea lor rapid. Și nimic nu vă împiedică să faceți ceva similar cu datele rămase: cu un efort rezonabil acum acoperiți, să zicem, 92% din date cu o acuratețe de 97%. Adevărat, în restul datelor, este o monedă, dar deja ai produs ceva util.

Pentru majoritatea aplicațiilor practice, acest lucru este foarte util. Să presupunem că sunteți în domeniul creditării și doriți să decideți cui să acordați un împrumut și tot ce știți este că pentru 70% dintre clienți algoritmul dvs. este foarte precis. Grozav - adevărat, ceilalți 30% dintre solicitanții dvs. vor necesita mai multă procesare, dar 70% pot fi complet automatizați. Sau: să presupunem că încercați să automatizați munca operatorului pentru centrele de apeluri, puteți face o treabă bună (rapidă și murdară) numai pentru cele mai simple sarcini, dar aceste sarcini acoperă 50% din apeluri? Grozav, centrul de apeluri economisește bani dacă își poate automatiza 50% din apeluri în mod fiabil.

Pentru a rezuma: dacă datele nu sunt suficient de informative sau problema este prea complexă pentru a fi tratată în întregime, gândiți-vă în afara cutiei. Identificați subprobleme utile și ușor de rezolvat până când aveți o idee mai bună.

Odată ce aveți sistemul pregătit, învățați, testați-l și buclați-l până când sunteți mulțumit de rezultate.

Antrenează, testează, repetă

După pașii anteriori, a mai rămas puțin interes. Aveți datele, aveți metoda de învățare automată, așa că este timpul să extrageți parametrii prin învățare și apoi să testați inferența pe setul de testare. Literatura sugerează că 70% din înregistrări ar trebui folosite pentru instruire și 30% pentru testare.

Dacă sunteți mulțumit de rezultate, sarcina este încheiată. Dar, mai probabil, ați dezvoltat câteva idei noi în timpul procedurii, iar acestea vă pot ajuta să vă îmbunătățiți acuratețea. Poate ai nevoie de mai multe date? Sau doar mai multă curățare a datelor? Sau alt model? Oricum, sunt șanse să fii ocupat destul de mult.

Așadar, mult succes și bucurați-vă de munca care urmează!

Legate de:
  • Mașini și încredere: Cum să atenuați prejudecățile AI
  • Stele realiniete: îmbunătățirea sistemului de evaluare IMDb