CNN-urile au dezavantaje importante
CNN-urile (rețelele neuronale convoluționale) sunt minunate. Acestea sunt unul dintre motivele pentru care învățarea profundă este atât de populară astăzi. Ei pot face lucruri uimitoare pe care oamenii obișnuiau să creadă că computerele nu ar fi capabile să le facă pentru o lungă perioadă de timp. Cu toate acestea, au limitele lor și au dezavantaje fundamentale.să luăm în considerare un exemplu foarte simplu și non-tehnic. Imaginează-ți o față. Care sunt componentele? Avem fața ovală, doi ochi, un nas și o gură. Pentru un CNN, o simplă prezență a acestor obiecte poate fi un indicator foarte puternic pentru a considera că există o față în imagine. Relațiile spațiale orientaționale și relative dintre aceste componente nu sunt foarte importante pentru un CNN.
cum funcționează CNN-urile? Componenta principală a unui CNN este un strat convoluțional. Sarcina sa este de a detecta caracteristici importante în pixelii imaginii. Straturile care sunt mai profunde (mai aproape de intrare) vor învăța să detecteze caracteristici simple, cum ar fi marginile și gradienții de culoare, în timp ce straturile superioare vor combina caracteristici simple în caracteristici mai complexe. În cele din urmă, straturile dense din partea de sus a rețelei vor combina caracteristici de nivel foarte înalt și vor produce predicții de clasificare.
un lucru important de înțeles este că caracteristicile de nivel superior combină caracteristicile de nivel inferior ca o sumă ponderată: activările unui strat precedent sunt înmulțite cu următoarele greutăți ale neuronului stratului și adăugate, înainte de a fi trecute la neliniaritatea activării. Nicăieri în această configurație nu există relație de poziție (translațională și rotativă) între caracteristicile mai simple care alcătuiesc o caracteristică de nivel superior. Abordarea CNN pentru a rezolva această problemă este de a utiliza gruparea maximă sau straturi convoluționale succesive care reduc dimensiunea spațială a datelor care curg prin rețea și, prin urmare, măresc „câmpul vizual” al neuronilor stratului superior, permițându-le astfel să detecteze caracteristici de ordin superior într-o regiune mai mare a imaginii de intrare. Max pooling este o cârjă care a făcut ca rețelele convoluționale să funcționeze surprinzător de bine, obținând performanțe supraomenești în multe domenii. Dar nu vă lăsați păcăliți de performanțele sale: în timp ce CNN-urile funcționează mai bine decât orice model dinaintea lor, max pooling pierde totuși informații valoroase.
Hinton însuși a declarat că faptul că max pooling funcționează atât de bine este o mare greșeală și un dezastru:
Hinton: „operația de pooling folosită în rețelele neuronale convoluționale este o mare greșeală și faptul că funcționează atât de bine este un dezastru.”
desigur, puteți face departe cu Max pooling și încă obține rezultate bune cu CNN tradiționale, dar ei încă nu rezolva problema cheie:
reprezentarea datelor interne ale unei rețele neuronale convoluționale nu ia în considerare ierarhiile spațiale importante între obiecte simple și complexe.
în exemplul de mai sus, o simplă prezență a 2 ochi, o gură și un nas într-o imagine nu înseamnă că există o față, trebuie să știm și cum sunt orientate aceste obiecte unul față de celălalt.
Hardcoding lume 3D într-o rețea neuronală: Abordarea grafică inversă
grafica computerizată se ocupă cu construirea unei imagini vizuale dintr-o reprezentare ierarhică internă a datelor geometrice. Rețineți că structura acestei reprezentări trebuie să țină seama de pozițiile relative ale obiectelor. Această reprezentare internă este stocată în memoria computerului ca matrice de obiecte geometrice și matrice care reprezintă pozițiile relative și orientarea acestor obiecte. Apoi, software-ul special ia acea reprezentare și o transformă într-o imagine pe ecran. Aceasta se numește redare.
inspirat de această idee, Hinton susține că creierele, de fapt, fac opusul randării. El o numește grafică inversă: din informațiile vizuale primite de ochi, ei deconstruiesc o reprezentare ierarhică a lumii din jurul nostru și încearcă să o potrivească cu tiparele și relațiile deja învățate stocate în creier. Așa se întâmplă recunoașterea. Și ideea cheie este că reprezentarea obiectelor din creier nu depinde de unghiul de vizualizare.
deci, în acest moment întrebarea este: cum modelăm aceste relații ierarhice în interiorul unei rețele neuronale? Răspunsul vine de la grafica pe calculator. În grafica 3D, relațiile dintre obiectele 3D pot fi reprezentate de o așa-numită poză, care este în esență traducere plus rotație.
Hinton susține că, pentru a face corect clasificarea și recunoașterea obiectelor, este important să se păstreze relațiile de poziție ierarhică între părțile obiectului. Aceasta este intuiția cheie care vă va permite să înțelegeți de ce teoria capsulelor este atât de importantă. Încorporează relații relative între obiecte și este reprezentat numeric ca o matrice de poziție 4D.
când aceste relații sunt încorporate în reprezentarea internă a datelor, devine foarte ușor pentru un model să înțeleagă că lucrul pe care îl vede este doar o altă viziune a ceva ce a văzut înainte. Luați în considerare imaginea de mai jos. Puteți recunoaște cu ușurință că aceasta este Statuia Libertății, chiar dacă toate imaginile o arată din unghiuri diferite. Acest lucru se datorează faptului că reprezentarea internă a Statuii Libertății în creierul tău nu depinde de unghiul de vedere. Probabil că nu ați văzut niciodată aceste imagini exacte, dar totuși ați știut imediat ce este.