Låt mig bryta ned det.
- Datorn får en bild skickad till sig.
2. Datorn använder en process som heter convolution:
Vi kan se det som att vi "anställer" en liten gubbe med ett förstoringsglas som analyserar varje pixel av bilden, där gubben letar efter mönster och detaljer.
Oftast så anställer man 16, 32 eller 64 små gubbar samtidigt.
När dessa små gubbar gjort klart sin analys ger de oss en tabell med numeriska värden där de högsta värdena på den tabellen reflekterar de delar av bilden där de hittat mönster och detaljer.
3. Förenkla gubbarnas resultat:
Våra små gubbar med förstoringsglas har nu försett oss med 16, 32 eller 64 olika individuella tabeller med data. Dessa tabeller har VÄLDIGT mycket data och är tredimensionella.
Därför så applicerar vi en funktion som heter pooling, där vi extraherar endast de högsta numeriska värdena, eftersom det är de högsta värdena som betyder att våra gubbar hittat ett mönster i bilden. Detta minskar även storleken på dessa tabeller och gör att våra datorer kan enklare "computa" dessa tabeller.
4. Vi repeterar steg 2 och 3:
Vi anställer 16, 32 eller 64 små gubbar med förstoringsglass som ska convolva bilderna IGEN och leta efter FLER komplexa mönster. Dessa gubbar fortsätter arbetet från de tidigare gubbarna - alltså så analyserar de vad de andra redan tidigare har analyserat. Vi applicerar pooling igen, för att endast få med oss den datan som är relevant (där våra arbetare funnit mönster).
Man kan repetera detta steg med att fortsätta anställa små gubbar och poola deras resultat många gånger. Desto fler gånger man gör det, desto mer detaljer av bilden man fångar, men det kan medföra problematik i form av att modellen blir för smart för sitt egna bästa och börjar lära sig fel saker (overfitting/high variance).
Om du kollar på den bifogade bilden så ser du att varje bild har en gul ruta på sig och att den blir mindre och mindre – den gula rutan representerar gubben med förstoringsglas som analyserar, och att bilden blir mindre är för att vi applicerar pooling för att få bort all irrelevanta delar av bilden vi längre inte vill ha
5. Skicka den sista sammanfattade tabellen till hjärnan:
Som sista steg tränar vi en "neural network" med denna rena och kompakta tabellen som analyserats av flera hundra gubbar.
Hjärnan analyserar resultatet och kommer fram till ett flertal förslag på vad bilden kan vara, och viktar sina åsikter med sannolikhet (aka 70% sannolikhet att den tror att bilden är e.g. en katt, och 30% att den e.g. är en hund).
Viktig detalj är att vår neural network måste först som steg 1 har tränats på en massa data så att den har kontext och blivit upplärd (precis som en människa behöver intryck för att lära sig).
Vad som också är sjukt att vi under hela denna process konstruerar arkitekturen av "neural networken" - vi bestämmer hur många neuroner vi ska använda, hur snabbt modellen ska lära sig, och många andra hyperparametrar.
Och detta är vad man kallar "deep learning" inom fältet machine learning. Och beroende på hur man konstruerar antal neuroner och dess uppsättning så får man extremt olika resultat - så mycket är trial and error!
Detta är förstås en extremt grov förenkling.
Men det är ungefär så det fungerar.
Så nästa gång du låser upp din mobil med FaceID - tänk på hur SJUKT det är att tekniken är så smidig, och gör alla dessa steg så snabbt.