Kursinnehåll
Grundläggande Datorseende
Grundläggande Datorseende
Konvolutionslager
Förståelse av konvolutionslager
Konvolutionslager utgör kärnan i konvolutionella neurala nätverk (CNN). De utför konvolution, där en liten matris kallad filter (eller kärna) förflyttas över en bild för att identifiera kanter, texturer och former. Detta möjliggör att CNN:er kan bearbeta bilder mer effektivt än traditionella nätverk.
Istället för att analysera en hel bild på en gång, delar CNN:er upp den i mindre sektioner och identifierar egenskaper på olika nivåer. Tidiga lager känner igen enkla mönster som kanter, medan djupare lager identifierar komplexa strukturer.
Hur konvolution fungerar
Konvolution innebär att ett filter (kärna) rör sig över en bild enligt följande steg:
Applicera kärnan i det övre vänstra hörnet av bilden.
Utför elementvis multiplikation mellan kärnan och pixelvärdena.
Summera produkterna för att generera en utgångspixel.
Flytta kärnan enligt steget och upprepa.
Generera en funktionskarta som framhäver identifierade mönster.
Flera filter gör det möjligt för CNN:er att fånga olika egenskaper, såsom vertikala kanter, kurvor och texturer.
Filter (Kärnor):
Filter spelar en avgörande roll i att extrahera meningsfulla mönster från bilder. Olika typer av filter är specialiserade på att identifiera olika egenskaper:
Kantdetekteringsfilter: identifierar objektgränser genom att upptäcka plötsliga intensitetsförändringar (t.ex. Sobel-, Prewitt- och Laplacian-filter);
Texturfilter: fångar upprepade mönster såsom vågor eller rutnät (t.ex. Gabor-filter);
Skärpningsfilter: förstärker bilddetaljer genom att öka högfrekventa komponenter;
Suddningsfilter: minskar brus och jämnar ut bilder (t.ex. Gaussisk suddning);
Emboss-filter: framhäver kanter och lägger till en 3D-effekt genom att betona djup.
Varje filter tränas för att upptäcka specifika mönster och bidrar till att bygga hierarkiska representationsnivåer i djupa CNN:er.
Konvolutionslager återanvänder samma filter över en bild, vilket minskar antalet parametrar och gör CNN:er effektiva. Specialiserade lokalt anslutna lager använder dock olika filter för olika regioner vid behov.
Genom att stapla konvolutionslager extraherar CNN:er detaljerade mönster, vilket gör dem kraftfulla för bildklassificering, objektdetektering och synuppgifter.
Hyperparametrar:
Steglängd (Stride): styr hur långt filtret flyttas per steg;
Utfyllnad (Padding): lägger till pixlar för att kontrollera utdata-storlek (same padding bevarar storleken, valid padding minskar den);
Antal filter (djup): fler filter förbättrar egenskapsdetektering men ökar beräkningen.
Innan nästa kapitel behöver du komma ihåg:
Även om konvolutionslager kan minska utdata-storleken, är deras huvudsakliga syfte feature extraction, inte dimensionsreduktion. Poolinglager däremot, minskar uttryckligen dimensionerna samtidigt som viktig information bevaras, vilket säkerställer effektivitet i djupare lager.
1. Vad är den primära rollen för ett konvolutionslager i ett CNN?
2. Vilken hyperparameter avgör hur långt ett filter förflyttas under konvolutionen?
3. Vad är syftet med att använda flera filter i ett konvolutionslager?
Tack för dina kommentarer!