Wat is de convolutionele neurale netwerkarchitectuur?
Dit artikel is gepubliceerd als onderdeel van de Data Science Blogathon.
Inleiding
werken aan een Project op het gebied van beeldherkenning of objectdetectie, maar niet over de basis beschikken om een architectuur te bouwen?,
in dit artikel zullen we zien wat convolutionele neurale netwerkarchitecturen zijn vanaf basic en we zullen een basic architectuur als casestudy nemen om onze lessen toe te passen, de enige vereiste is dat je gewoon moet weten hoe convolution werkt, maar maak je geen zorgen het is heel eenvoudig !!
laten we een eenvoudig Convolutioneel neuraal netwerk nemen,
We zullen laaggewijs gaan om diepgaande inzichten te krijgen over deze CNN.,
Ten Eerste, er zijn een paar dingen te leren van laag 1 dat is stap en padding, we zullen elk van hen in het kort zien met voorbeelden
laten we veronderstellen dat dit in de input matrix van 5×5 en een filter van matrix 3X3, voor degenen die niet weten wat een filter is een set van gewichten in een matrix toegepast op een afbeelding of een matrix om de vereiste functies te verkrijgen, zoek dan op convolutie als dit uw eerste keer is!
opmerking: We nemen altijd de som of het gemiddelde van alle waarden tijdens het doen van een convolutie.,
een filter kan van elke diepte zijn, als een filter een diepte d heeft, kan het gaan tot een diepte van D lagen en convoluut i.,”f4a6da248a”>
Hier is de ingang van grootte van 5×5 na het toepassen van een 3×3-kernel of filters die u het verkrijgen van een 3×3-uitgang functie kaart dus laten we proberen te formuleren
Dus de uitgang hoogte is geformuleerd en hetzelfde met de o/p-breedte van de…
Padding
Tijdens het toepassen van windingen zullen we niet het verkrijgen van de output afmetingen hetzelfde als input zullen we verliezen gegevens over de landsgrenzen heen, zodat we aan een grens van nullen en het herberekenen van de convolutie over alle ingevoerde waarden.,r breedte ook
Voortschrijdende
Sommige tijden willen we niet vastleggen van alle gegevens of informatie die beschikbaar is zodat wij het overslaan van sommige naburige cellen laat ons het visualiseren,
Hier de input matrix of de afbeelding van de afmetingen 5×5 met een filter van 3×3 en een stap van 2 dus elke keer slaan we twee kolommen en convolute, laat ons het formuleren van deze
Als de afmetingen zijn in float u kunt nemen ceil() op de uitgang van de ik.,e (next close integer)
Hier h verwijst naar hoogte, dus de uitvoerhoogte is geformuleerd en hetzelfde met o/p breedte ook en hier 2 is de stapwaarde zodat u het kunt maken als S in de formules.
Pooling
in algemene termen pooling verwijst naar een klein deel van de input, dus hier nemen we een klein deel van de input en proberen we de gemiddelde waarde te nemen waarnaar wordt verwezen als gemiddelde pooling of een maximale waarde genaamd max pooling, dus door pooling te doen op een afbeelding nemen we niet alle waarden weg we nemen een samengevatte waarde over alle aanwezige waarden !!!,
Hier is een voorbeeld van max pooling dus hier nemen we een stap van twee we nemen de maximale waarde aanwezig in de matrix
activeringsfunctie
De activeringsfunctie is een knooppunt dat wordt geplaatst aan het einde van of tussen neurale netwerken. Ze helpen om te beslissen of het neuron zou vuren of niet., We hebben verschillende soorten activering van functies, net als in de figuur hierboven, maar voor deze post, mijn focus ligt op de Gerectificeerde Lineaire Eenheid (ReLU)
Don ‘ t drop uw kaken, dit is niet zo ingewikkeld deze functie gewoon geeft 0 als resultaat als de waarde negatief is, anders geeft de dezelfde waarde, u gaf, niets maar elimineert negatieve uitgangen en onderhoudt waarden tussen 0 naar +oneindig
Nu, dat we geleerd hebben alle basics nodig laat ons onderzoek een fundamentele neurale net genoemd LeNet.,
LeNet-5
voordat we beginnen zullen we zien wat de architecturen zijn die tot op heden zijn ontworpen.,maatregelen
Wat zijn de ingangen en uitgangen (Laag 0 en Laag N) :
Hier zijn we voorspellen cijfers op basis van de input beeld gegeven, let op dat hier het beeld van afmetingen hoogte = 32 pixels, breedte = 32 pixels en een diepte van 1, dus we kunnen veronderstellen dat er een afbeelding in grijswaarden of zwart-wit, met dat in gedachte is de uitvoer een softmax van de 10 waarden, hier softmax geeft de waarschijnlijkheid of de ratio ‘ s voor alle 10 cijfers, kunnen we het aantal als de uitgang met de hoogste kans of ratio.,ef5″>
Hier nemen we de ingang en convoluting met filters van grootte van 5 x 5 waardoor een uitgang van maat 28 x 28 controleren van de bovenstaande formule voor het berekenen van de output afmetingen, het ding hier is die we hebben genomen 6 dergelijke filters en dus de diepte van conv1 is 6, dus haar dimensies, 28 x 28 x 6 nu dit door te geven aan het poolen laag
Pooling 1 (Layer 2) :
Hier nemen we de 28 x 28 x 6 als invoer en toepassing van de gemiddelde bundeling van een matrix van 2×2 en een stap van 2 ik.,e zweven een 2 x 2 matrix op de invoer en het nemen van het gemiddelde van al die vier pixels en springen met een overslaan van 2 kolommen elke keer waardoor 14 x 14 x 6 als uitvoer we berekenen de pooling voor elke laag dus hier is de uitvoerdiepte 6
Hier nemen we de 14 x 14 x 6 dat wil zeggen de vorige o/p en convoluteren met een filter van grootte 5 x5, met een stap van 1 i.,e (niet springen), en met nul stofferingen zo krijgen we een 10 x 10 output, nu we hier zijn 16 dergelijke filters van diepte 6 en convoluting dus het verkrijgen van een output van 10 x 10 x 16
Pooling 2 (Laag 4):
Hier nemen we de output van de vorige laag en het uitvoeren van gemiddelde bundelen met een stap van 2 ik.,yer (N-1) :
tot slot, we plat van de 5 x 5 x 16 tot en met een enkele laag van grootte 400 waarden invoeren van een hen op een feed-forward neurale netwerk van 120 neuronen met een gewicht van matrix van grootte en een verborgen laag van 84 neuronen met elkaar verbonden door de 120 neuronen met een gewicht matrix van en deze 84 neuronen inderdaad zijn aangesloten op een 10-output neuronen
de o/p neuronen afronden van het voorspelde aantal door softmaxing .,
Hoe werkt een Convolutioneel neuraal netwerk eigenlijk?,
Het werkt door het gewicht te delen en verspreid connectiviteit,
hier is Dus zoals je kunt zien is de convolutie heeft een aantal gewichten van deze gewichten worden gedeeld door alle input neuronen, niet elke ingang heeft een aparte gewicht genoemd gewicht te delen, en niet alle input neuronen zijn verbonden met de output neuron een ‘ o slechts enkele die ingewikkeld zijn ontslagen bekend als verspreid connectiviteit, CNN is geen verschillend van feed-forward neurale netwerken deze twee eigenschappen maken hen bijzonder !!!,
wijst naar
1. Na elke convolutie wordt de uitvoer naar een activeringsfunctie gestuurd om betere functies te verkrijgen en positiviteit te behouden, bijvoorbeeld: ReLu
2. Beperkte connectiviteit en gewichtsverdeling zijn de belangrijkste reden voor een convolutioneel neuraal netwerk om te werken
3. Het concept van het kiezen van een aantal filters tussen lagen en padding en stride en filter afmetingen worden genomen op het doen van een aantal experimenten, maak je geen zorgen over dat, focus op het bouwen van Stichting, ooit zul je die experimenten doen en bouwen van een productievere!!!,
u kunt dit artikel ook lezen op onze mobiele APP