CNN har viktiga nackdelar
CNN (convolutional neural networks) är fantastiska. De är en av anledningarna till att djupt lärande är så populärt idag. De kan göra fantastiska saker som folk brukade tro att datorer inte skulle kunna göra länge, länge. Ändå har de sina gränser och de har grundläggande nackdelar.
låt oss överväga ett mycket enkelt och icke-tekniskt exempel. Föreställ dig ett ansikte. Vilka är komponenterna? Vi har ansiktet ovalt, två ögon, en näsa och en mun. För en CNN kan enbart närvaron av dessa objekt vara en mycket stark indikator för att överväga att det finns ett ansikte i bilden. Orienterings-och relativa rumsliga relationer mellan dessa komponenter är inte särskilt viktiga för en CNN.
hur fungerar CNNs? Huvudkomponenten i en CNN är ett faltningsskikt. Dess uppgift är att upptäcka viktiga funktioner i bildpixlarna. Lager som är djupare (närmare ingången) lär sig att upptäcka enkla funktioner som kanter och färggradienter, medan högre lager kombinerar enkla funktioner till mer komplexa funktioner. Slutligen kommer täta lager högst upp i nätverket att kombinera funktioner på mycket hög nivå och producera klassificeringsprognoser.
en viktig sak att förstå är att funktioner på högre nivå kombinerar funktioner på lägre nivå som en viktad summa: aktiveringar av ett föregående lager multipliceras med följande lager neurons vikter och läggs till innan de överförs till aktiveringslinjäritet. Ingenstans i denna inställning finns pose (translationell och roterande) förhållandet mellan enklare funktioner som utgör en högre nivå funktion. CNN-tillvägagångssätt för att lösa detta problem är att använda max pooling eller successiva faltningslager som minskar rymdstorleken på data som strömmar genom nätverket och därför ökar ”synfältet” för högre lagers neuroner, vilket gör det möjligt för dem att upptäcka högre ordningsfunktioner i en större region av ingångsbilden. Max pooling är en krycka som gjorde att faltningsnätverk fungerar förvånansvärt bra och uppnår övermänsklig prestanda på många områden. Men låt dig inte luras av dess prestanda: medan CNN fungerar bättre än någon modell före dem, förlorar max pooling ändå värdefull information.
Hinton själv uppgav att det faktum att max pooling fungerar så bra är ett stort misstag och en katastrof:
Hinton: ”pooloperationen som används i konvolutionella neurala nätverk är ett stort misstag och det faktum att det fungerar så bra är en katastrof.”
Naturligtvis kan du göra bort med max pooling och fortfarande få bra resultat med traditionella CNN, men de löser fortfarande inte nyckelproblemet:
Intern datarepresentation av ett konvolutionellt neuralt nätverk tar inte hänsyn till viktiga rumsliga hierarkier mellan enkla och komplexa objekt.
i exemplet ovan betyder inte bara närvaron av 2 Ögon, en mun och en näsa i en bild att det finns ett ansikte, vi behöver också veta hur dessa objekt är orienterade i förhållande till varandra.
Hårdkodande 3D-värld i ett neuralt nät: Inverse Graphics Approach
datorgrafik handlar om att konstruera en visuell bild från någon intern hierarkisk representation av geometriska data. Observera att strukturen för denna representation måste ta hänsyn till objektens relativa positioner. Den interna representationen lagras i datorns minne som matriser av geometriska objekt och matriser som representerar relativa positioner och orientering av dessa objekt. Sedan tar speciell programvara den representationen och omvandlar den till en bild på skärmen. Detta kallas rendering.
inspirerad av den här tanken hävdar Hinton att hjärnor faktiskt gör motsatsen till rendering. Han kallar det inverse graphics: från visuell information som tas emot av ögonen dekonstruerar de en hierarkisk representation av världen runt oss och försöker matcha den med redan lärda mönster och relationer lagrade i hjärnan. Så här sker erkännande. Och nyckeltanken är att representation av föremål i hjärnan inte beror på synvinkeln.
så vid denna tidpunkt är frågan: hur modellerar vi dessa hierarkiska relationer inuti ett neuralt nätverk? Svaret kommer från datorgrafik. I 3D-grafik kan relationer mellan 3D-objekt representeras av en så kallad pose, som i huvudsak är översättning plus rotation.
Hinton hävdar att för att korrekt göra klassificering och objektigenkänning är det viktigt att bevara hierarkiska pose-relationer mellan objektdelar. Detta är den viktigaste intuitionen som gör att du kan förstå varför kapselteori är så viktig. Den innehåller relativa relationer mellan objekt och representeras numeriskt som en 4D-posmatris.
när dessa relationer är inbyggda i intern representation av data blir det väldigt lätt för en modell att förstå att det som den ser bara är en annan syn på något som den har sett tidigare. Tänk på bilden nedan. Du kan lätt känna igen att detta är Frihetsgudinnan, även om alla bilder visar det från olika vinklar. Detta beror på att intern representation av Frihetsgudinnan i din hjärna inte beror på synvinkeln. Du har förmodligen aldrig sett dessa exakta bilder av det, men du visste fortfarande omedelbart vad det var.