Convolutional Neural Networks (CNN's) is 'n klas diep neurale netwerke wat wyd gebruik is vir beeldherkenning en klassifikasietake. Hulle is veral geskik vir die verwerking van data wat 'n roosteragtige topologie het, soos beelde. Die argitektuur van CNN's is ontwerp om outomaties en aanpasbaar ruimtelike hiërargieë van kenmerke van insetbeelde te leer. Dit word hoofsaaklik bereik deur die gebruik van konvolusionele lae, poellae en volledig gekoppelde lae.
Die proses van kenmerk-onttrekking in CNN's behels verskeie stadiums, wat elkeen die insetbeeld progressief omskep in 'n stel kenmerkkaarte. Hierdie kenmerkkaarte vang verskeie aspekte van die prent vas, soos rande, teksture en meer komplekse patrone. Om te verstaan of CNN's oor die algemeen die beeld toenemend in kenmerkkaarte saamdruk, is dit noodsaaklik om die funksionele meganika van elke tipe laag binne 'n CNN te oorweeg.
Konvolusionele lae
Die konvolusionele laag is die kernbousteen van 'n CNN. Dit pas 'n stel leerbare filters (of pitte) toe op die invoerbeeld. Elke filter is 'n klein matriks, tipies van grootte 3×3, 5×5 of 7×7, wat oor die insetbeeld gly en 'n elementsgewyse vermenigvuldiging uitvoer, gevolg deur 'n opsomming. Hierdie operasie staan bekend as konvolusie. Die resultaat van hierdie konvolusie-operasie is 'n kenmerkkaart.
Die primêre doel van die konvolusionele laag is om plaaslike patrone in die insetbeeld op te spoor. Byvoorbeeld, die eerste konvolusionele laag kan rande opspoor, die tweede laag kan teksture opspoor, en die daaropvolgende lae kan meer komplekse patrone soos vorms of voorwerpe opspoor. Die diepte van die kenmerkkaarte neem toe met elke konvolusielaag, wat beteken dat die netwerk 'n ryker stel kenmerke leer namate ons dieper gaan.
Poel lae
Na die konvolusionele lae word poellae tipies gebruik om die ruimtelike afmetings (breedte en hoogte) van die kenmerkkaarte te verminder. Die mees algemene vorm van poel is maksimum poel, wat die maksimum waarde neem van 'n stel waardes binne 'n gedefinieerde venster (bv. 2×2 of 3×3). 'n Ander vorm is gemiddelde poel, wat die gemiddelde van die waardes binne die venster neem.
Poellae dien twee hoofdoeleindes:
1. Dimensionaliteit Vermindering: Deur die ruimtelike dimensies van die kenmerkkaarte te verminder, help poellae om die berekeningskompleksiteit en die aantal parameters in die netwerk te verminder. Dit maak die netwerk meer doeltreffend en minder geneig tot oorpas.
2. Vertaling Invariansie: Pooling help om die netwerk meer robuust te maak vir vertalings van die invoerbeeld. Byvoorbeeld, as 'n voorwerp in die prent effens verskuif, sal die saamgevoegde kenmerkkaarte steeds die noodsaaklike kenmerke van die voorwerp vasvang.
Ten volle gekoppelde lae
Na verskeie konvolusie- en poellae word die kenmerkkaarte tipies in 'n eendimensionele vektor afgeplat en deur een of meer volledig gekoppelde lae gevoer. Hierdie lae is soortgelyk aan dié in tradisionele neurale netwerke en word gebruik vir hoëvlak redenering en klassifikasie. Die uitset van die finale volledig gekoppelde laag word gewoonlik deur 'n softmax-aktiveringsfunksie gestuur om die waarskynlikhede vir elke klas te produseer.
Kompressie van inligting
Nou, om die kernvraag aan te spreek: druk 'n CNN oor die algemeen die beeld meer en meer saam in kenmerkkaarte? Die antwoord is genuanseerd en hang af van wat met "kompressie" bedoel word.
1. Ruimtelike kompressie: Ja, CNN's druk wel die ruimtelike afmetings van die beeld saam deur die gebruik van poellae. Byvoorbeeld, as 'n insetbeeld van grootte 256×256 deur 'n reeks konvolusie- en poellae gevoer word, sal die ruimtelike afmetings van die gevolglike kenmerkkaarte aansienlik kleiner wees. Hierdie ruimtelike kompressie help om die berekeningskompleksiteit en die aantal parameters in die netwerk te verminder.
2. Kenmerkvoorstelling: Terwyl die ruimtelike afmetings saamgepers word, neem die diepte (aantal kanale) van die kenmerkkaarte gewoonlik toe. Dit beteken dat die netwerk meer komplekse en abstrakte kenmerke leer namate ons dieper gaan. In hierdie sin is die netwerk nie besig om die inligting saam te druk nie, maar om dit eerder in 'n meer insiggewende en diskriminerende voorstelling te transformeer.
voorbeeld
Oorweeg 'n eenvoudige CNN-argitektuur vir beeldklassifikasie:
1. Invoerlaag: 'n Insetbeeld van grootte 32x32x3 (breedte x hoogte x kanale).
2. Eerste konvolusionele laag: Pas 32 filters van grootte 3×3 toe, wat lei tot 'n kenmerkkaart van grootte 32x32x32.
3. Eerste poellaag: Pas maksimum poel toe met 'n 2×2-venster, wat lei tot 'n kenmerkkaart van grootte 16x16x32.
4. Tweede konvolusionele laag: Pas 64 filters van grootte 3×3 toe, wat lei tot 'n kenmerkkaart van grootte 16x16x64.
5. Tweede swembadlaag: Pas maksimum poel toe met 'n 2×2-venster, wat lei tot 'n kenmerkkaart van grootte 8x8x64.
6. Volledig gekoppelde laag: Maak die kenmerkkaart plat in 'n vektor van grootte 4096 en verbind dit aan 'n volledig gekoppelde laag.
In hierdie voorbeeld word die ruimtelike afmetings van die kenmerkkaarte verminder van 32×32 tot 8×8, wat 'n vorm van kompressie is. Die diepte van die kenmerkkaarte neem egter toe van 3 tot 64, wat aandui dat die netwerk meer komplekse kenmerke leer.
Konvolusionele neurale netwerke druk inderdaad die ruimtelike dimensies van die insetbeeld saam deur lae saam te poel, wat help om berekeningskompleksiteit te verminder en vertaalinvariansie te bereik. Hierdie ruimtelike kompressie gaan egter gepaard met 'n toename in die diepte van die kenmerkkaarte, wat beteken dat die netwerk toenemend komplekse en abstrakte kenmerke aanleer. Daarom, terwyl die ruimtelike dimensies saamgepers word, word die kenmerkvoorstelling ryker en meer insiggewend, wat die netwerk in staat stel om hoëvlaktake soos beeldklassifikasie en objekbespeuring effektief uit te voer.
Ander onlangse vrae en antwoorde t.o.v Basiese beginsels van evolusionêre neurale netwerke:
- TensorFlow kan nie as 'n diepleerbiblioteek opgesom word nie.
- Konvolusionele neurale netwerke vorm die huidige standaardbenadering tot diep leer vir beeldherkenning.
- Waarom beheer die bondelgrootte die aantal voorbeelde in die bondel in diep leer?
- Waarom moet die bondelgrootte in diep leer staties in TensorFlow gestel word?
- Moet die bondelgrootte in TensorFlow staties gestel word?
- Hoe word konvolusies en samevoeging in CNN's gekombineer om komplekse patrone in beelde te leer en te herken?
- Beskryf die struktuur van 'n CNN, insluitend die rol van versteekte lae en die volledig gekoppelde laag.
- Hoe vereenvoudig poel die kenmerkkaarte in 'n CNN, en wat is die doel van maksimum poel?
- Verduidelik die proses van konvolusies in 'n CNN en hoe dit help om patrone of kenmerke in 'n beeld te identifiseer.
- Wat is die hoofkomponente van 'n konvolusionele neurale netwerk (CNN) en hoe dra dit by tot beeldherkenning?

