ce sunt rețelele neuronale convoluționale (CNN)?
Acest articol este parte a Descifrării AI, o serie de posturi care (încerc să) confundată jargonul și miturile din jurul AI.începând cu anii 1950, primele zile ale inteligenței artificiale, informaticienii au încercat să construiască computere care pot avea sens de date vizuale., În deceniile următoare, domeniul, care a devenit cunoscut sub numele de computer vision, a înregistrat progrese incrementale. În 2012, computer vision a făcut un salt cuantic atunci când un grup de cercetători de la Universitatea din Toronto au dezvoltat un model AI care a depășit cu o marjă mare cei mai buni algoritmi de recunoaștere a imaginilor.sistemul AI, care a devenit cunoscut sub numele de AlexNet (numit după creatorul său principal, Alex Krizhevsky), a câștigat concursul ImageNet computer vision din 2012 cu o precizie uimitoare de 85%. Runner-up a marcat un modest 74 la sută pe test.,în centrul AlexNet se afla o rețea neuronală convoluțională (CNN), un tip specializat de rețea neuronală artificială care imită aproximativ sistemul de viziune umană. În ultimii ani, CNNs au devenit pivot pentru multe aplicații de viziune computerizată. Iată ce trebuie să știți despre istoria și funcționarea CNNs.
O scurtă istorie a convoluțional rețele neuronale
Convoluțional rețele neuronale, de asemenea, numit ConvNets, au fost introduse pentru prima dată în 1980 de Yann LeCun, un postdoctorat cercetător de informatică., LeCun a construit pe munca făcută de Kunihiko Fukushima, un om de știință japonez care, cu câțiva ani mai devreme, a inventat neocognitronul, o rețea neuronală de recunoaștere a imaginii foarte de bază.
Versiunea timpurie a CNNs, numită LeNet (după LeCun), ar putea recunoaște cifrele scrise de mână. CNNs a găsit o piață de nișă în servicii bancare și poștale și bancare, unde au citit coduri poștale pe plicuri și cifre pe cecuri.dar, în ciuda ingeniozității lor, Convnetele au rămas pe marginea viziunii computerizate și a inteligenței artificiale, deoarece s-au confruntat cu o problemă serioasă: nu au putut să se scaleze., CNNs avea nevoie de o mulțime de date și resurse de calcul pentru a lucra eficient pentru imagini mari. La acea vreme, tehnica era aplicabilă numai imaginilor cu rezoluții scăzute.în 2012, AlexNet a arătat că poate a venit momentul să revizuim învățarea profundă, ramura AI care folosește rețele neuronale cu mai multe straturi. Disponibilitatea unor seturi mari de date, și anume setul de date ImageNet cu milioane de imagini etichetate și resurse vaste de calcul au permis cercetătorilor să creeze CNN-uri complexe care ar putea efectua sarcini de viziune computerizată care erau anterior imposibile.
cum funcționează CNNs?,rețelele neuronale convoluționale sunt compuse din mai multe straturi de neuroni artificiali. Neuronii artificiali, o imitație brută a omologilor lor biologici, sunt funcții matematice care calculează suma ponderată a mai multor intrări și ieșiri o valoare de activare.
comportamentul de fiecare neuron este definit de greutăți., Când sunt alimentate cu valorile pixelilor, neuronii artificiali ai unui CNN aleg diferite caracteristici vizuale.când introduceți o imagine într-un ConvNet, fiecare dintre straturile sale generează mai multe hărți de activare. Hărțile de activare evidențiază caracteristicile relevante ale imaginii. Fiecare dintre neuroni ia un petic de pixeli ca intrare, își înmulțește valorile de culoare prin greutățile sale, le însumează și le rulează prin funcția de activare.
primul strat (sau de jos) al CNN detectează de obicei caracteristici de bază, cum ar fi marginile orizontale, verticale și diagonale., Ieșirea primului strat este alimentată ca intrare a stratului următor, care extrage caracteristici mai complexe, cum ar fi colțurile și combinațiile de margini. Pe măsură ce vă deplasați mai adânc în rețeaua neuronală convoluțională, straturile încep să detecteze caracteristici de nivel superior, cum ar fi obiecte, fețe și multe altele.
operația de multiplicare a valorilor pixelilor de ponderile și însumarea lor se numește „convoluție” (de unde și numele convoluțional rețele neuronale). Un CNN este de obicei compus din mai multe straturi de convoluție, dar conține și alte componente. Stratul final al unui CNN este un strat de clasificare, care ia ieșirea stratului final de convoluție ca intrare (amintiți-vă, straturile superioare de convoluție detectează obiecte complexe).,
pe baza hărții de activare a stratului final de convoluție, stratul de clasificare emite un set de scoruri de încredere (valori între 0 și 1) care specifică cât de probabil este ca imaginea să aparțină unei clase”.”De exemplu, dacă aveți un ConvNet care detectează pisici, câini și cai, ieșirea stratului final este posibilitatea ca imaginea de intrare să conțină oricare dintre aceste animale.,
Formarea convoluțional rețele neuronale
Una dintre marile provocări de dezvoltare CNNs este ajustarea ponderilor individuale de neuroni pentru a extrage caracteristicile potrivite de imagini. Procesul de ajustare a acestor greutăți se numește „antrenarea” rețelei neuronale.
la început, CNN începe cu greutăți aleatorii., În timpul antrenamentului, dezvoltatorii furnizează rețelei neuronale un set mare de date de imagini adnotate cu clasele corespunzătoare (pisică, câine, cal etc.). ConvNet procesează fiecare imagine cu valorile sale aleatorii și apoi compară ieșirea cu eticheta corectă a imaginii. Dacă ieșirea rețelei nu se potrivește cu eticheta—ceea ce este probabil cazul la începutul procesului de antrenament—face o mică ajustare a greutăților neuronilor săi, astfel încât data viitoare când vede aceeași imagine, ieșirea sa va fi puțin mai aproape de răspunsul corect.,corecțiile se fac printr-o tehnică numită backpropagation (sau backprop). În esență, backpropagation optimizează procesul de reglare și face mai ușor pentru rețea să decidă ce unități să se adapteze în loc să facă corecții aleatorii.
fiecare rulare a întregului set de date de formare se numește o „epocă.”Convetul trece prin mai multe epoci în timpul antrenamentului, ajustându-și greutățile în cantități mici. După fiecare epocă, rețeaua neuronală devine un pic mai bună la clasificarea imaginilor de antrenament., Pe măsură ce CNN se îmbunătățește, ajustările pe care le face greutăților devin din ce în ce mai mici. La un moment dat, rețeaua „converge”, ceea ce înseamnă că, în esență, devine cât se poate de bună.după instruirea CNN, dezvoltatorii folosesc un set de date de testare pentru a verifica exactitatea acestuia. Setul de date de testare este un set de imagini etichetate care nu fac parte din procesul de instruire. Fiecare imagine este rulată prin ConvNet, iar ieșirea este comparată cu eticheta reală a imaginii. În esență, setul de date de testare evaluează cât de bună a devenit rețeaua neuronală la clasificarea imaginilor pe care nu le-a văzut până acum.,
dacă un CNN punctează bine pe datele sale de antrenament, dar punctează rău pe datele de testare, se spune că a fost „suprasolicitat.”Acest lucru se întâmplă de obicei atunci când nu există suficientă varietate în datele de antrenament sau când ConvNet trece prin prea multe epoci pe setul de date de antrenament.succesul rețelelor neuronale convoluționale se datorează în mare parte disponibilității unor seturi de date uriașe de imagine dezvoltate în ultimul deceniu. ImageNet, concursul menționat la începutul acestui articol, și-a luat titlul dintr-un set de date omonim cu peste 14 milioane de imagini etichetate., Există și alte seturi de date mai specializate, cum ar fi MNIST, o bază de date cu 70.000 de imagini cu cifre scrise de mână.cu toate acestea, nu trebuie să antrenați fiecare rețea neuronală convoluțională pe milioane de imagini. În multe cazuri, puteți utiliza un pretrained model, cum ar fi AlexNet sau Microsoft ResNet, și finetune-o pentru alta mai specializate de aplicare. Acest proces se numește învățare prin transfer, în care o rețea neuronală instruită este recalificată un set mai mic de exemple noi.,în ciuda puterii și complexității lor, rețelele neuronale convoluționale sunt, în esență, mașini de recunoaștere a modelelor. Ei pot folosi resurse masive de calcul pentru a descoperi modele vizuale minuscule și inconspicuoase care ar putea trece neobservate pentru ochiul uman. Dar când vine vorba de înțelegerea semnificației conținutului imaginilor, acestea funcționează prost.luați în considerare următoarea imagine. Un ConvNet bine pregătit vă va spune că este imaginea unui soldat, a unui copil și a steagului American., Dar o persoană poate da o descriere lungă a scenei și poate vorbi despre serviciul militar, excursii într-o țară străină, sentimentul de dor de casă, bucuria de a se reuni cu familia etc. Rețelele neuronale artificiale nu au nicio noțiune despre aceste concepte.
Aceste limite devin mai evidente în aplicații practice de convoluțional rețele neuronale. De exemplu, CNN-urile sunt acum utilizate pe scară largă pentru a modera conținutul pe rețelele de socializare., Dar, în ciuda depozitelor vaste de imagini și videoclipuri pe care sunt instruiți, ei încă se luptă să detecteze și să blocheze conținutul necorespunzător. Într-un caz, ai-ul de moderare a conținutului Facebook a interzis fotografia unei statui vechi de 30,000 ca nuditate.de asemenea, rețelele neuronale încep să se rupă de îndată ce se mișcă puțin din contextul lor. Mai multe studii au arătat că CNNs instruiți pe ImageNet și alte seturi de date populare nu reușesc să detecteze obiecte atunci când le văd în condiții de iluminare diferite și din unghiuri noi.,un studiu recent realizat de cercetătorii de la MIT-IBM Watson ai Lab evidențiază aceste deficiențe. De asemenea, introduce ObjectNet, un set de date care reprezintă mai bine diferitele nuanțe ale modului în care obiectele sunt văzute în viața reală. CNNs nu dezvoltă modelele mentale pe care oamenii le au despre diferite obiecte și capacitatea lor de a-și imagina acele obiecte în contexte nevăzute anterior.
o Altă problemă cu convoluțional rețele neuronale este incapacitatea lor de a înțelege relațiile dintre obiecte diferite. Luați în considerare următoarea imagine, cunoscută sub numele de „problema Bongard”, numită după inventatorul său, informaticianul rus Mikhail Moiseevich Bongard. Probleme Bongard vă prezintă cu două seturi de imagini (șase pe stânga și șase pe dreapta), și trebuie să explice diferența cheie dintre cele două seturi., De exemplu, în exemplul de mai jos, imaginile din setul din stânga conțin un obiect, iar imaginile din setul din dreapta conțin două obiecte.este ușor pentru oameni să tragă astfel de concluzii din cantități atât de mici de probe. Dacă vă arăt aceste două seturi și apoi vă ofer o nouă imagine, veți putea decide rapid dacă ar trebui să meargă în setul din stânga sau din dreapta.
Dar nu există încă nici convoluțional rețea neuronală care poate rezolva probleme Bongard cu atât de puține exemple de instruire. Într-un studiu realizat în 2016, cercetătorii AI au instruit un CNN pe 20.000 de probe Bongard și l-au testat pe încă 10.000. Performanța CNN a fost mult mai mică decât cea a oamenilor obișnuiți.particularitățile Convnetelor le fac, de asemenea, vulnerabile la atacuri Adversare, perturbații în datele de intrare care trec neobservate pentru ochiul uman, dar afectează comportamentul rețelelor neuronale., Atacurile adversare au devenit o sursă majoră de îngrijorare, deoarece învățarea profundă și, în special, CNNs au devenit o componentă integrantă a multor aplicații critice, cum ar fi mașinile cu autovehicule.
acest Lucru înseamnă că CNNs sunt inutile?, În ciuda limitelor rețelelor neuronale convoluționale, nu există nici o îndoială că au provocat o revoluție în inteligența artificială. Astăzi, CNNs sunt utilizate în multe aplicații de viziune computerizată, cum ar fi recunoașterea facială, căutarea și editarea imaginilor, realitatea augmentată și multe altele. În unele domenii, cum ar fi procesarea imaginilor medicale, Convnetele bine instruite ar putea chiar să depășească experții umani în detectarea modelelor relevante.,după cum arată progresele în rețelele neuronale convoluționale, realizările noastre sunt remarcabile și utile, dar suntem încă foarte departe de a reproduce componentele cheie ale inteligenței umane.