Convolutional Neural Networks (CNNs) er en type dyplæringsmodell som har blitt mye brukt til forskjellige datasynoppgaver som bildeklassifisering, objektdeteksjon og bildesegmentering. I dette fagfeltet har CNN-er vist seg å være svært effektive på grunn av deres evne til automatisk å lære og trekke ut meningsfulle funksjoner fra bilder.
De grunnleggende trinnene som er involvert i å bygge en CNN kan oppsummeres som følger:
1. Forbehandling: Det første trinnet i å bygge en CNN er å forhåndsbehandle inngangsbildene. Dette innebærer vanligvis å endre størrelsen på bildene til en fast størrelse, normalisere pikselverdiene og utvide datasettet om nødvendig. Forbehandling hjelper til med å redusere beregningskompleksiteten og forbedre ytelsen til modellen.
2. Konvolusjonslag: Kjernebyggesteinene til et CNN er konvolusjonslagene. Disse lagene utfører konvolusjonsoperasjonen, som innebærer å skyve et lite filter (også kjent som en kjerne) over inngangsbildet og beregne punktproduktet mellom filteret og det lokale mottakelige feltet i bildet. Utdata fra denne operasjonen er et funksjonskart som representerer tilstedeværelsen av visse funksjoner i inndatabildet. Flere konvolusjonslag kan stables sammen for å lære komplekse og hierarkiske funksjoner.
3. Aktiveringsfunksjon: Etter konvolusjonsoperasjonen påføres en aktiveringsfunksjon elementvis på utgangen til hvert konvolusjonslag. Den mest brukte aktiveringsfunksjonen i CNN er Rectified Linear Unit (ReLU), som introduserer ikke-linearitet i modellen og hjelper til med å lære komplekse mønstre.
4. Sammenslåingslag: Sammenslåingslag brukes til å redusere de romlige dimensjonene til funksjonskartene samtidig som den viktigste informasjonen beholdes. Den mest brukte sammenslåingsoperasjonen er maks pooling, som velger den maksimale verdien fra et lokalt nabolag i funksjonskartet. Pooling hjelper til med å redusere beregningskompleksiteten og gjøre modellen mer robust overfor små oversettelser og forvrengninger i inngangsbildene.
5. Fullt sammenkoblede lag: Etter flere konvolusjons- og sammenslåingslag, blir funksjonskartene flatet ut til en endimensjonal vektor og ført gjennom ett eller flere fullstendig sammenkoblede lag. Disse lagene forbinder hvert nevron i ett lag til hvert nevron i det neste laget, på samme måte som et tradisjonelt nevralt nettverk. Fullt tilkoblede lag er ansvarlige for å lære funksjonene på høyt nivå og lage de endelige spådommene.
6. Utdatalag: Utdatalaget til en CNN avhenger av den spesifikke oppgaven. For eksempel, i bildeklassifisering, består utgangslaget typisk av en softmax-aktiveringsfunksjon som produserer en sannsynlighetsfordeling over de forskjellige klassene. Ved gjenstandsdeteksjon kan utgangslaget bestå av flere nevroner som representerer tilstedeværelsen eller fraværet av forskjellige objekter i bildet.
7. Tapsfunksjon: Tapsfunksjonen måler forskjellen mellom den forutsagte produksjonen fra CNN og etikettene for grunnsannhet. Valget av tapsfunksjonen avhenger av den spesifikke oppgaven. For eksempel, i bildeklassifisering, er kryssentropitap ofte brukt.
8. Optimalisering: Målet med optimalisering er å oppdatere parametrene til CNN for å minimere tapsfunksjonen. Dette gjøres vanligvis ved å bruke en optimaliseringsalgoritme som stokastisk gradientnedstigning (SGD) eller Adam. Parametrene til CNN oppdateres iterativt ved å beregne gradientene til tapsfunksjonen med hensyn til parametrene og justere dem deretter.
9. Opplæring og evaluering: CNN blir trent på et merket datasett ved å mate input-bildene gjennom nettverket og justere parametrene ved hjelp av optimaliseringsalgoritmen. Treningsprosessen involverer flere iterasjoner eller epoker, der hver epoke består av å sende hele datasettet gjennom nettverket. Ytelsen til CNN blir evaluert på et eget valideringssett for å overvåke generaliseringsevnen. Når CNN er opplært, kan det brukes til å lage spådommer på nye, usette bilder.
Å bygge et konvolusjonelt nevralt nettverk innebærer å forhåndsbehandle inngangsbildene, bruke konvolusjonslag for å trekke ut funksjoner, bruke aktiveringsfunksjoner for å introdusere ikke-linearitet, bruke sammenslåingslag for å redusere romlige dimensjoner, bruke fullt tilkoblede lag for å lære funksjoner på høyt nivå, definere et utdatalag basert på oppgaven, velge en passende tapsfunksjon, optimalisere parametrene ved hjelp av en optimaliseringsalgoritme, og trene og evaluere CNN på merket data.
Andre nyere spørsmål og svar vedr Konvolusjonelle nevrale nettverk (CNN):
- Hva er rollen til det fullt tilkoblede laget i et CNN?
- Hvordan forbereder vi dataene for opplæring av en CNN-modell?
- Hva er hensikten med backpropagation i trening av CNN-er?
- Hvordan hjelper sammenslåing med å redusere dimensjonaliteten til funksjonskart?
Flere spørsmål og svar:
- Field: Kunstig intelligens
- program: EITC/AI/DLPTFK Deep Learning med Python, TensorFlow og Keras (gå til sertifiseringsprogrammet)
- Lekse: Konvolusjonelle nevrale nettverk (CNN) (gå til relatert leksjon)
- Emne: Introduksjon til konvolusjonelle nevrale nettverk (CNN) (gå til relatert emne)
- Eksamensgjennomgang

