Konvolucijska operacija temeljni je proces u području konvolucijskih neuronskih mreža (CNN), posebice u domeni prepoznavanja slike. Ova je operacija ključna u izdvajanju značajki iz slika, omogućujući modelima dubokog učenja da razumiju i interpretiraju vizualne podatke. Matematička formulacija operacije konvolucije na 2D slici ključna je za razumijevanje načina na koji CNN obrađuju i analiziraju slike.
Matematički, operacija konvolucije za 2D sliku može se izraziti na sljedeći način:
[ (I * K)(x, y) = zbroj_{i=-m}^{m} zbroj_{j=-n}^{n} I(x+i, y+j) cdot K(i, j )]Gdje:
– ( I ) predstavlja ulaznu sliku.
– ( K ) označava kernel ili filter.
– ((x, y)) su koordinate izlaznog piksela.
– ( m ) i ( n ) su poluširina, odnosno poluvisina zrna.
U ovoj jednadžbi, jezgra (K) klizi preko ulazne slike (I), izvodeći množenje po elementima i zbrajanje rezultata kako bi proizvela jednu vrijednost izlaznog piksela. Ovaj se proces ponavlja za svaki piksel u izlaznoj mapi značajki, što rezultira transformiranom slikom koja ističe specifične značajke na temelju vrijednosti jezgre.
Operacija konvolucije može se bolje razumjeti kroz primjer korak po korak. Razmotrimo jednostavnu 3×3 kernel (K) i 5×5 ulaznu sliku (I):
[ K = početak{bmatrica}1 & 0 & -1 \
1 & 0 & -1 \
1 & 0 & -1
kraj{bmatrica} ] [ I = početak{bmatrica}
1 & 2 & 3 & 4 & 5 \
6 & 7 & 8 & 9 & 10 \
11 & 12 & 13 & 14 & 15 \
16 & 17 & 18 & 19 & 20 \
21 i 22 i 23 i 24 i 25
kraj{bmatrica} ]
Kako bismo izračunali konvoluciju, središte jezgre postavljamo na svaki piksel ulazne slike i izvodimo sljedeće korake:
1. Pozicionirajte kernel: Postavite središte jezgre u gornji lijevi kut slike.
2. Množenje po elementima: Pomnožite svaki element kernela s odgovarajućim elementom slike.
3. zbir: Zbroji rezultate množenja po elementima.
4. Premjestite kernel: Pomaknite kernel na sljedeći položaj i ponovite korake 2-3.
Za prvu poziciju (gornji lijevi kut), izračun je sljedeći:
[ početak{poravnano}(I * K)(1, 1) &= (1 cdot 1) + (2 cdot 0) + (3 cdot -1) \
&quad + (6 cdot 1) + (7 cdot 0) + (8 cdot -1) \
&quad + (11 cdot 1) + (12 cdot 0) + (13 cdot -1) \
&= 1 + 0 – 3 + 6 + 0 – 8 + 11 + 0 – 13 \
&= -6
kraj{poravnano} ]
Ovaj rezultat, -6, vrijednost je izlazne karte značajki na poziciji (1, 1). Ponavljanje ovog procesa za svaku poziciju kernela preko ulazne slike generira cijelu izlaznu mapu značajki.
Operacija konvolucije obično je popraćena dodatnim konceptima kao što su padding i korak:
- punjenje: Dodavanje dodatnih piksela oko ruba ulazne slike, često s nulama (zero-padding), za kontrolu prostornih dimenzija izlazne mape značajki. Padding osigurava da izlazna mapa značajki ima iste dimenzije kao ulazna slika, čuvajući prostorne informacije.
- Korak: Veličina koraka kojim se kernel pomiče preko ulazne slike. Korak od 1 znači da kernel pomiče jedan po piksel, dok korak od 2 znači da kernel pomiče dva piksela odjednom. Korak utječe na prostorne dimenzije izlazne karte značajki, pri čemu veći koraci rezultiraju manjim izlaznim dimenzijama.
Izlazne dimenzije operacije konvolucije mogu se izračunati pomoću sljedeće formule:
[ text{Izlazna širina} = leftlfloor frac{text{Input Width} – text{Kernel Width} + 2 cdot text{Padding}}{text{Stride}} rightrfloor + 1 ] [ text{Output Height} = leftlfloor frac{tekst {Input Height} – tekst{Kernel Height} + 2 cdot text{Padding}}{text{Stride}} rightrfloor + 1 ]Ove formule osiguravaju da su prostorne dimenzije izlazne mape značajki ispravno određene na temelju dimenzija ulazne slike, veličine jezgre, ispune i koraka.
U kontekstu konvolucijskih neuronskih mreža, višestruki konvolucijski slojevi složeni su zajedno, svaki sa svojim vlastitim skupom kernela koji se mogu naučiti. Ovi slojevi postupno izvlače značajke više razine iz ulazne slike, omogućujući mreži prepoznavanje složenih uzoraka i objekata. Kerneli u svakom sloju uče se tijekom procesa obuke kroz povratno širenje, optimizirajući performanse mreže na zadanom zadatku.
Nakon konvolucijskih slojeva često slijede aktivacijske funkcije, kao što je ReLU (Rectified Linear Unit), koje uvode nelinearnost u model. Ova nelinearnost omogućuje mreži da nauči složenije prikaze. Dodatno, slojevi udruživanja, kao što je maksimalno udruživanje ili prosječno udruživanje, koriste se za smanjenje prostornih dimenzija mapa značajki, čineći model računalno učinkovitijim i manje sklonim prekomjernom uklapanju.
Praktičan primjer konvolucijske neuronske mreže za prepoznavanje slika je poznata LeNet-5 arhitektura, dizajnirana za prepoznavanje rukom pisanih znamenki. LeNet-5 se sastoji od višestrukih konvolucijskih i skupnih slojeva, nakon kojih slijede potpuno povezani slojevi. Konvolucijski slojevi izvlače značajke iz ulaznih slika, dok potpuno povezani slojevi izvode konačnu klasifikaciju.
Za ilustraciju operacije konvolucije u kontekstu LeNet-5, razmotrite prvi konvolucijski sloj, koji uzima ulaznu sliku 32×32 i primjenjuje šest kernela 5×5 s korakom od 1 i bez ispune. Izlazne karte značajki imaju dimenzije 28×28, izračunate na sljedeći način:
[ tekst{Širina izlaza} = frac lijevofloor{32 – 5 + 2 cdot 0}{1} desnorfloor + 1 = 28 ] [ tekst{Izlazna visina} = frac lijevofloor{32 – 5 + 2 cdot 0}{1} desnorfloor + 1 = 28 ]Svaki od šest kernela proizvodi zasebnu mapu značajki 28×28, bilježeći različite aspekte ulazne slike. Ove mape značajki zatim prolaze kroz ReLU aktivacijsku funkciju i 2×2 maksimalni sloj udruživanja s korakom od 2, što rezultira mapama značajki 14×14.
Sljedeći slojevi u LeNet-5 nastavljaju primjenjivati operacije konvolucije i udruživanja, postupno smanjujući prostorne dimenzije dok povećavaju dubinu mapa značajki. Konačni potpuno povezani slojevi izvode klasifikaciju na temelju izdvojenih značajki, izlazeći predviđenu klasu znamenki.
Konvolucijska operacija kamen je temeljac konvolucijskih neuronskih mreža, omogućujući ekstrakciju značajnih značajki iz slika. Matematička formulacija operacije konvolucije uključuje klizanje jezgre preko ulazne slike, izvođenje množenja po elementima i zbrajanje rezultata. Dodatni koncepti poput podloge i koraka igraju važnu ulogu u kontroli prostornih dimenzija izlazne karte značajki. Konvolucijski slojevi, u kombinaciji s aktivacijskim funkcijama i skupnim slojevima, tvore građevne blokove snažnih modela prepoznavanja slika kao što je LeNet-5, sposobnih za prepoznavanje složenih uzoraka i objekata u vizualnim podacima.
Ostala nedavna pitanja i odgovori u vezi Napredni računalni vid:
- Koja je formula za aktivacijsku funkciju kao što je ispravljena linearna jedinica za uvođenje nelinearnosti u model?
- Koja je matematička formula za funkciju gubitka u konvolucijskim neuronskim mrežama?
- Koja je jednadžba za maksimalno udruživanje?
- Koje su prednosti i izazovi korištenja 3D vijuga za prepoznavanje radnji u videozapisima i kako skup podataka Kinetics pridonosi ovom polju istraživanja?
- U kontekstu procjene optičkog protoka, kako FlowNet koristi arhitekturu koder-dekoder za obradu parova slika i kakvu ulogu ima skup podataka Flying Chairs u obuci ovog modela?
- Kako U-NET arhitektura koristi veze za preskakanje kako bi poboljšala preciznost i detalje izlaza semantičke segmentacije i zašto su te veze važne za širenje unatrag?
- Koje su ključne razlike između dvostupanjskih detektora kao što je Faster R-CNN i jednostupanjski detektora kao što je RetinaNet u smislu učinkovitosti obuke i rukovanja nediferencijabilnim komponentama?
- Kako koncept Intersection over Union (IoU) poboljšava procjenu modela detekcije objekata u usporedbi s korištenjem kvadratnog gubitka?
- Kako zaostale veze u ResNet arhitekturama olakšavaju obuku vrlo dubokih neuronskih mreža i kakav je to utjecaj imalo na performanse modela za prepoznavanje slike?
- Koje su bile glavne inovacije koje je AlexNet uveo 2012. a koje su značajno unaprijedile područje konvolucijskih neuronskih mreža i prepoznavanja slika?
Pogledajte više pitanja i odgovora u naprednom računalnom vidu

