Convolutional Neural Network (CNN) -arkkitehtuuri on syväoppimismalli, joka on suunniteltu käsittelemään strukturoitua ruudukkomaista dataa, kuten kuvia. Se koostuu useista kerroksista, mukaan lukien konvoluutio-, poolaus- ja täysin yhdistetyt kerrokset. CNN:t ovat erittäin tehokkaita tehtävissä, kuten kuvien luokittelussa, objektien havaitsemisessa ja kuvien segmentoinnissa niiden hierarkkisten ominaisuuksien poimimisominaisuuksien ansiosta.
VGG-16
VGG-16-malli on konvoluutiohermoverkon (CNN) arkkitehtuuri, jota Oxfordin yliopiston Visual Geometry Group (VGG) ehdotti. Sille on ominaista sen syvyys, joka koostuu 16 kerroksesta, mukaan lukien 13 konvoluutiokerrosta ja 3 täysin yhdistettyä kerrosta. VGG-16 tunnetaan yksinkertaisuudestaan ja tehokkuudestaan sekä kyvystään saavuttaa vahva suorituskyky erilaisissa tietokonenäkötehtävissä, mukaan lukien kuvien luokittelu ja objektien tunnistus. Mallin arkkitehtuuri sisältää pinon konvoluutiokerroksia, joita seuraa max-pooling-kerrokset, joiden syvyys kasvaa asteittain. Tämä suunnittelu mahdollistaa sen, että malli oppii visuaalisten ominaisuuksien monimutkaisia hierarkkisia esityksiä, mikä johtaa vankoihin ja tarkkoihin ennusteisiin. Huolimatta yksinkertaisuudestaan uudempiin arkkitehtuureihin verrattuna, VGG-16 on edelleen suosittu valinta moniin syvän oppimisen sovelluksiin monipuolisuutensa ja erinomaisen suorituskyvynsä ansiosta.
ImageNet Large Scale Visual Recognition Challenge (ILSVRC) on vuosittainen tietokonenäön kilpailu, jossa tiimit käsittelevät tehtäviä, kuten kohteen lokalisointia ja kuvien luokittelua. Karen Simonyanin ja Andrew Zissermanin vuonna 2014 ehdottama VGG16 saavutti huippusijoituksia molemmissa tehtävissä havaitsemalla esineitä 200 luokasta ja luokittelemalla kuvat 1000 luokkaan.
kuinka muuttaa merkkijono int:ksi

VGG-16 arkkitehtuuri
Tällä mallilla saavutetaan 92,7 % top-5 testaa tarkkuus ImageNet-tietojoukossa, joka sisältää 14 miljoonaa kuvaa, jotka kuuluvat 1000 luokkaan.
VGG-16 mallin tavoite:
ImageNet-tietojoukko sisältää kiinteän kokoisia kuvia 224*224 ja niissä on RGB-kanavat. Meillä on siis tensori (224, 224, 3) panoksemme. Tämä malli käsittelee syötekuvan ja tulostaa vektorin 1000 arvot:
Tämä vektori edustaa vastaavan luokan luokitustodennäköisyyttä. Oletetaan, että meillä on malli, joka ennustaa kuvan kuuluvan luokkaan 0 todennäköisyydellä 1 , luokka 1 todennäköisyydellä 0,05 , luokka 2 todennäköisyydellä 0,05 , luokka 3 todennäköisyydellä 0,03 , luokka 780 todennäköisyydellä 0,72 , luokka 999 todennäköisyydellä 0,05 ja kaikki muut luokka 0 .
joten luokitteluvektori tälle on:
muuntaa kokonaisluvun java-merkkijonoksi
Varmistaaksesi, että nämä todennäköisyydet lisääntyvät 1 , käytämme softmax-toimintoa.
Tämä softmax-toiminto määritellään seuraavasti:
Tämän jälkeen otetaan 5 todennäköisintä ehdokasta vektoriin.
ja pohjatotuusvektorimme määritellään seuraavasti:
Sitten määritämme Virhefunktiomme seuraavasti:
tyhjennä välimuisti npm
Se laskee kunkin maanpinnan totuusluokan ja ennustettujen ehdokkaiden välisen vähimmäisetäisyyden, jossa etäisyysfunktio d määritellään seuraavasti:
- d = 0 jos
c_i=G_k - d = 1 muuten
Joten tämän esimerkin häviöfunktio on:
Koska kaikki pohjatotuuden luokat ovat Ennustettu top-5 -matriisissa, joten häviöstä tulee 0.
VGG Arkkitehtuuri:
VGG-16-arkkitehtuuri on syväkonvoluutiohermoverkko (CNN), joka on suunniteltu kuvien luokittelutehtäviin. Sen esitteli Oxfordin yliopiston Visual Geometry Group. VGG-16:lle on ominaista sen yksinkertaisuus ja yhtenäinen arkkitehtuuri, minkä ansiosta se on helppo ymmärtää ja toteuttaa.
kassalle gitillä
VGG-16-kokoonpano koostuu tyypillisesti 16 kerroksesta, mukaan lukien 13 konvoluutiokerrosta ja 3 täysin yhdistettyä kerrosta. Nämä kerrokset on järjestetty lohkoiksi, ja jokainen lohko sisältää useita konvoluutiokerroksia, jota seuraa max-pooling-kerros alennusnäytteistystä varten.

VGG-16 arkkitehtuuri kartta
Tässä on VGG-16-arkkitehtuurin erittely annettujen tietojen perusteella:
- Syöttötaso:
- Syötteen mitat: (224, 224, 3)
- Convolutional Layers (64 suodatinta, 3 × 3 suodatinta, sama täyttö):
- Kaksi peräkkäistä konvoluutiokerrosta, joissa kussakin 64 suodatinta ja suodattimen koko 3×3.
- Sama pehmuste on käytössä tilamittojen säilyttämiseksi.
- Suurin poolituskerros (2 × 2, askel 2):
- Max pooling -kerros, jonka altaan koko on 2 × 2 ja askelpituus 2.
- Convolutional Layers (128 suodatinta, 3×3 suodatinta, sama täyte):
- Kaksi peräkkäistä konvoluutiokerrosta, joissa kussakin 128 suodatinta ja suodattimen koko 3×3.
- Suurin poolituskerros (2 × 2, askel 2):
- Max pooling -kerros, jonka altaan koko on 2 × 2 ja askelpituus 2.
- Convolutional Layers (256 suodatinta, 3×3 suodatinta, sama täyte):
- Kaksi peräkkäistä konvoluutiokerrosta, joissa kussakin 256 suodatinta ja suodattimen koko 3×3.
- Convolutional Layers (512 suodatinta, 3 × 3 suodatinta, sama täyte):
- Kaksi sarjaa kolmea peräkkäistä konvoluutiokerrosta, joissa kussakin on 512 suodatinta ja suodatinkoko 3 × 3.
- Suurin poolituskerros (2 × 2, askel 2):
- Max pooling -kerros, jonka altaan koko on 2 × 2 ja askelpituus 2.
- Pino konvoluutiokerroksia ja max pooling:
- Kaksi ylimääräistä konvoluutiokerrosta edellisen pinon jälkeen.
- Suodattimen koko: 3×3.
- Tasoitus:
- Tasoita tulosteen piirrekartta (7x7x512) vektoriksi, jonka koko on 25088.
- Täysin yhdistetyt kerrokset:
- Kolme täysin yhdistettyä kerrosta ReLU-aktivoinnilla.
- Ensimmäinen kerros syöttökoolla 25088 ja tulostuskoolla 4096.
- Toinen kerros syöttökoolla 4096 ja tulostuskoolla 4096.
- Kolmas kerros, jonka tulokoko on 4096 ja lähtökoko 1000, mikä vastaa ILSVRC-haasteen 1000 luokkaa.
- Softmax-aktivointia sovelletaan kolmannen täysin yhdistetyn kerroksen lähtöön luokittelua varten.
Tämä arkkitehtuuri noudattaa annettuja määrityksiä, mukaan lukien ReLU-aktivointitoiminnon käyttö ja lopulliset täysin yhdistetyn kerroksen tulostustodennäköisyydet 1000 luokassa käyttämällä softmax-aktivointia.
VGG-16 kokoonpano:
Suurin ero VGG-16-konfiguraatioiden C ja D välillä on suodatinkokojen käytössä joissakin konvoluutiokerroksissa. Vaikka molemmat versiot käyttävät pääasiassa 3 × 3 -suodattimia, versiossa D on tapauksia, joissa sen sijaan käytetään 1 × 1 -suodattimia. Tämä pieni vaihtelu johtaa eroon parametrien lukumäärässä, sillä versiossa D on hieman enemmän parametreja kuin versiossa C. Molemmat versiot säilyttävät kuitenkin VGG-16-mallin yleisen arkkitehtuurin ja periaatteet.

Eri VGG-kokoonpano
Objektin lokalisointi kuvassa:
Lokalisoinnin suorittamiseksi meidän on korvattava luokan pisteet rajaamalla laatikon sijaintikoordinaatit. Rajauslaatikon sijaintia edustaa 4-D-vektori (keskikoordinaatit (x,y), korkeus, leveys). Lokalisointiarkkitehtuurista on kaksi versiota, joista toinen on rajaava laatikko jaetaan eri ehdokkaiden kesken (tulos on 4 parametrivektori) ja toinen on luokkakohtainen rajoitusruutu (lähtö on 4000 parametrivektori). Paperi kokeili molempia lähestymistapoja VGG -16 (D) -arkkitehtuurissa. Tässä meidän on myös muutettava häviö luokitteluhäviöstä regressiohäviöfunktioihin (esim MSE ), jotka rankaisevat ennustetun menetyksen poikkeamista perustotuudesta.
Tulokset: VGG-16 oli yksi parhaiten suoriutuvista arkkitehtuureista ILSVRC-haasteessa 2014. Se oli toiseksi paras luokitustehtävässä viiden parhaan luokitusvirheen kanssa. 7,32 % (vain GoogLeNetin takana, luokitusvirheellä 6,66 % ). Se voitti myös lokalisointitehtävän 25,32 % lokalisointivirhe.
VGG 16:n rajoitukset:
- Se on erittäin hidasta harjoitella (alkuperäistä VGG-mallia koulutettiin Nvidia Titan GPU: lla 2-3 viikkoa).
- VGG-16-koulutettujen imageNet-painojen koko on 528 MB. Joten se vie melko paljon levytilaa ja kaistanleveyttä, mikä tekee siitä tehottoman.
- 138 miljoonaa parametria johtaa räjähdysmäiseen gradienttiongelmaan.
Lisäedustukset: Resnetit otetaan käyttöön estämään VGG-16:ssa esiintynyt räjähdysmäinen gradienttiongelma.