- Nopea läpikäynti parhaista kuvanluokittelua käsittelevistä papereista vuosikymmenen aikana, jotta voit aloittaa oppimasi tietokonenäkö
- 1998: LeNet luo perustan tulevalle kuvanluokittelututkimukselle, jossa käytetään konvoluutiohermoverkkoa. Monia klassisia CNN-tekniikoita, kuten poolikerroksia, täysin kytkettyjä kerroksia, pehmusteita ja aktivointikerroksia, käytetään piirteiden poimimiseen ja luokittelun tekemiseen. Keskimääräisen neliövirheen häviöfunktion ja 20 epookin harjoittelun avulla tämä verkko saavuttaa 99,05 prosentin tarkkuuden MNIST-testijoukossa. Vielä 20 vuoden jälkeenkin monet huipputason luokitusverkot noudattavat yleisesti ottaen tätä mallia. 2012: AlexNet
- 2014: VGG
- 2014: GoogLeNet
- 2015: Batch Normalization
- 2015: ResNet
- 2016: Xception
- 2017: MobileNet
- 2017: NASNet
- 2019: EfficientNet
- 2014: SPPNet
- 2016: DenseNet
- 2017: SENet
- 2017: ShuffleNet
- 2018: Bag of Tricks
- Johtopäätös
Nopea läpikäynti parhaista kuvanluokittelua käsittelevistä papereista vuosikymmenen aikana, jotta voit aloittaa oppimasi tietokonenäkö
Tietokonenäkö on oppiaine, jonka avulla kuvia ja videoita voidaan muuntaa koneellisiksi-ymmärrettäviksi signaaleiksi. Näiden signaalien avulla ohjelmoijat voivat edelleen ohjata koneen käyttäytymistä tämän korkean tason ymmärryksen perusteella. Monista tietokonenäkötehtävistä kuvanluokittelu on yksi perustavanlaatuisimmista. Sitä voidaan käyttää monissa todellisissa tuotteissa, kuten Google Photo -valokuvien merkitsemisessä ja tekoälyllä tapahtuvassa sisällönmoderoinnissa, mutta se avaa myös oven monille edistyneemmille näkötehtäville, kuten objektien havaitsemiselle ja videoiden ymmärtämiselle. Koska alalla on tapahtunut nopeita muutoksia syväoppimisen läpimurron jälkeen, aloittelijoiden on usein vaikea oppia sitä. Toisin kuin tyypillisissä ohjelmistotekniikan oppiaineissa, DCNN:ää käyttävästä kuvien luokittelusta ei ole paljon hyviä kirjoja, ja paras tapa ymmärtää tätä alaa on lukea akateemisia artikkeleita. Mutta mitä papereita lukea? Mistä aloittaa? Tässä artikkelissa esittelen 10 parasta aloittelijoiden luettavaa artikkelia. Näiden artikkelien avulla voimme nähdä, miten tämä ala kehittyy ja miten tutkijat ovat keksineet uusia ideoita aiempien tutkimustulosten pohjalta. Siitä huolimatta on silti hyödyllistä selvittää kokonaiskuva, vaikka olisit jo työskennellyt tällä alalla jonkin aikaa. Aloitetaan siis.
1998: LeNet luo perustan tulevalle kuvanluokittelututkimukselle, jossa käytetään konvoluutiohermoverkkoa. Monia klassisia CNN-tekniikoita, kuten poolikerroksia, täysin kytkettyjä kerroksia, pehmusteita ja aktivointikerroksia, käytetään piirteiden poimimiseen ja luokittelun tekemiseen. Keskimääräisen neliövirheen häviöfunktion ja 20 epookin harjoittelun avulla tämä verkko saavuttaa 99,05 prosentin tarkkuuden MNIST-testijoukossa. Vielä 20 vuoden jälkeenkin monet huipputason luokitusverkot noudattavat yleisesti ottaen tätä mallia.
2012: AlexNet
ImageNet Classification with Deep Convolutional Neural Networks
ImageNet Classification with Deep Convolutional Neural Networks
Vaikka LeNet saavutti hienon tuloksen ja osoitti CNN:n mahdollisuudet, kehitys tällä alalla pysähtyi vuosikymmeneksi rajallisen laskentatehon ja datan määrän vuoksi. Näytti siltä, että CNN voi ratkaista vain joitakin helppoja tehtäviä, kuten numeroiden tunnistamisen, mutta monimutkaisempien piirteiden, kuten kasvojen ja esineiden, osalta HarrCascade- tai SIFT-piirteiden poiminta SVM-luokittimen kanssa oli suositeltavampi lähestymistapa.
Vuonna 2012 ImageNet Large Scale Visual Recognition Challenge -haasteessa Alex Krizhevsky ehdotti CNN-pohjaista ratkaisua tähän haasteeseen, ja se nosti ImageNetin testijoukon top-5-tarkkuuden jyrkästi 73,8 %:sta 84,7 prosenttiin. Hänen lähestymistapansa peri monikerroksisen CNN:n idean LeNetistä, mutta kasvatti CNN:n kokoa huomattavasti. Kuten yllä olevasta kaaviosta näkyy, syötteen koko on nyt 224×224 verrattuna LeNetin 32×32:een, ja monissa konvoluutioytimissä on myös 192 kanavaa verrattuna LeNetin 6:een. Vaikka suunnittelua ei ole juurikaan muutettu, kun parametreja on satoja kertoja enemmän, verkon kyky vangita ja esittää monimutkaisia piirteitä parani myös satoja kertoja. Näin suuren mallin kouluttamiseen Alex käytti kahta GTX 580 -näytönohjainta, joissa kummassakin oli 3 gigatavua RAM-muistia, mikä oli edelläkävijä GPU-koulutuksen suuntauksessa. Myös ReLU-epälineaarisuuden käyttö auttoi vähentämään laskentakustannuksia.
Sen lisäksi, että verkkoon tuotiin paljon lisää parametreja, se tutki myös suuremman verkon tuomaa ylisovitusongelmaa käyttämällä Dropout-kerrosta. Sen Local Response Normalization -menetelmä ei saanut jälkeenpäin kovin suurta suosiota, mutta se innoitti muita tärkeitä normalisointitekniikoita, kuten BatchNormia, torjumaan gradientin kyllästymisongelmaa. Yhteenvetona voidaan todeta, että AlexNet määritteli de facto luokitusverkkokehyksen seuraavaksi kymmeneksi vuodeksi: yhdistelmä konvoluutiota, ReLun epälineaarista aktivointia, MaxPoolingia ja tiheää kerrosta.
2014: VGG
Very Deep Convolutional Networks for Large-Scale Image Recognition
Näin suuri menestys CNN:n käyttämisestä visuaaliseen tunnistukseen, koko tutkimusyhteisö räjähti ja kaikki alkoivat tutkia, miksi tämä neuroverkko toimii niin hyvin. Esimerkiksi Matthew Zeiler käsitteli vuonna 2013 ilmestyneessä kirjassaan ”Visualizing and Understanding Convolutional Networks” sitä, miten CNN poimii piirteitä ja visualisoi välimuotoisia representaatioita. Ja yhtäkkiä kaikki alkoivat tajuta, että CNN on tietokonenäön tulevaisuus vuodesta 2014 lähtien. Kaikkien näiden välittömien seuraajien joukossa Visual Geometry Groupin VGG-verkko on silmiinpistävin. Se sai huomattavan tuloksen: 93,2 % top-5-tarkkuus ja 76,3 % top-1-tarkkuus ImageNet-testijoukossa.
VGG-verkossa on AlexNetin suunnittelua seuraten kaksi merkittävää päivitystä: 1) VGG ei ainoastaan käyttänyt laajempaa verkkoa kuin AlexNet, vaan myös syvempää. VGG-19:ssä on 19 konvoluutiokerrosta verrattuna AlexNetin viiteen. 2) VGG osoitti myös, että muutamalla pienellä 3×3-konvoluutiosuodattimella voidaan korvata yksittäinen 7×7- tai jopa 11×11-suodatin AlexNetistä, saavuttaa parempi suorituskyky ja vähentää samalla laskentakustannuksia. Tämän tyylikkään suunnittelun ansiosta VGG:stä tuli myös monien uraauurtavien verkkojen taustaverkko muissa tietokonenäkötehtävissä, kuten FCN semanttisessa segmentoinnissa ja Faster R-CNN objektien havaitsemisessa.
Syvemmällä verkolla gradientin katoaminen monikerroksisesta takaisinkulkeutumisesta tulee suurempi ongelma. Sen käsittelemiseksi VGG käsitteli myös esivalmennuksen ja painojen alustamisen tärkeyttä. Tämä ongelma rajoittaa tutkijoita lisäämään jatkuvasti lisää kerroksia, muuten verkon on todella vaikea konvergoitua. Näemme kuitenkin paremman ratkaisun tähän kahden vuoden kuluttua.
2014: GoogLeNet
Going Deeper with Convolutions
VGG:llä on hyvännäköinen ja helposti ymmärrettävä rakenne, mutta sen suorituskyky ei ole paras kaikista ImageNet 2014 -kilpailujen finalisteista. GoogLeNet eli InceptionV1 voitti finaalipalkinnon. VGG:n tavoin yksi GoogLeNetin tärkeimmistä saavutuksista on verkon syvyyden rajan ylittäminen 22 kerroksen rakenteella. Tämä osoitti jälleen kerran, että syvemmälle ja laajemmalle meneminen on todellakin oikea suunta tarkkuuden parantamiseksi.
VGG:stä poiketen GoogLeNet yritti puuttua suoraan laskentaan ja gradientin vähenemiseen liittyviin ongelmiin sen sijaan, että se olisi ehdottanut kiertotietä paremmalla esivalmennetulla skeemalla ja painojen alustamisella.
Aluksi se tutki epäsymmetrisen verkon rakenteen ideaa käyttämällä moduulia, jonka nimi on Inception (ks. kaavio yllä). Ihannetapauksessa he haluaisivat tavoitella harvaa konvoluutiota tai tiheitä kerroksia ominaisuuksien tehokkuuden parantamiseksi, mutta nykyaikainen laitteistosuunnittelu ei ollut räätälöity tähän tapaukseen. Niinpä he uskoivat, että harvuus verkkotopologiatasolla voisi myös auttaa ominaisuuksien fuusioinnissa samalla kun hyödynnetään nykyisiä laitteistokapasiteetteja.
Toiseksi se hyökkää korkeiden laskentakustannusten ongelmaa vastaan lainaamalla idean paperista nimeltä ”Network in Network”. Periaatteessa 1×1-konvoluutiosuodatin otetaan käyttöön ominaisuuksien ulottuvuuksien pienentämiseksi ennen kuin käydään läpi raskas laskentatoimi, kuten 5×5-konvoluutioydin. Tätä rakennetta kutsutaan myöhemmin ”pullonkaulaksi”, ja sitä käytetään laajalti monissa seuraavissa verkoissa. Samoin kuin ”Verkko verkossa”, se käytti myös keskimääräistä poolikerrosta korvaamaan viimeisen täysin kytketyn kerroksen kustannusten vähentämiseksi entisestään.
Kolmanneksi, auttaakseen gradientteja virtaamaan syvemmille kerroksille, GoogLeNet käytti myös valvontaa joihinkin välikerroksen ulostuloihin tai apulaisulostuloihin. Tämä muotoilu ei ole aivan suosittu myöhemmin kuvanluokitusverkossa monimutkaisuuden vuoksi, mutta se on yhä suositumpi muilla tietokonenäön aloilla, kuten Hourglass-verkko pose-estimoinnissa.
Jatkona tämä Googlen tiimi kirjoitti lisää papereita tähän Inception-sarjaan. ”Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift” tarkoittaa InceptionV2:ta. ”Rethinking the Inception Architecture for Computer Vision” vuonna 2015 edustaa InceptionV3:a. Ja ”Inception-v4, Inception-ResNet and the Impact of Residual Connections on Learning” vuonna 2015 tarkoittaa InceptionV4:ää. Jokaisessa artikkelissa lisättiin lisää parannuksia alkuperäiseen Inception-verkkoon ja saavutettiin parempia tuloksia.
2015: Batch Normalization
Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift
Inception-verkko auttoi tutkijoita saavuttamaan yli-inhimillisen tarkkuuden ImageNet-tietoaineistossa. Tilastollisena oppimismenetelmänä CNN on kuitenkin hyvin riippuvainen tietyn harjoitusaineiston tilastollisesta luonteesta. Siksi paremman tarkkuuden saavuttamiseksi meidän on yleensä laskettava etukäteen koko tietokokonaisuuden keskiarvo ja keskihajonta ja normalisoitava niiden avulla syötteemme ensin, jotta voimme varmistaa, että suurin osa verkon kerrosten syötteistä on lähellä toisiaan, mikä johtaa parempaan aktivointiherkkyyteen. Tämä likimääräinen lähestymistapa on hyvin hankala, ja joskus se ei toimi lainkaan uuden verkkorakenteen tai uuden tietokokonaisuuden kohdalla, joten syväoppimismallia pidetään edelleen vaikeana kouluttaa. Tämän ongelman ratkaisemiseksi Sergey Ioffe ja Chritian Szegedy, joka loi GoogLeNetin, päättivät keksiä jotain fiksumpaa nimeltä Batch Normalization.
Ajatus eränormalisoinnista ei ole vaikea: Voimme käyttää sarjan minierän tilastoja approksimoimaan koko datasetin tilastoja, kunhan harjoittelemme tarpeeksi kauan. Tilastojen manuaalisen laskemisen sijaan voimme myös ottaa käyttöön kaksi opittavissa olevaa parametria ”scale” ja ”shift”, jotta verkko oppii itse, miten kukin kerros normalisoidaan.
Yllä oleva kaavio näytti eränormalisointiarvojen laskentaprosessin. Kuten näemme, otamme koko minierän keskiarvon ja laskemme myös varianssin. Seuraavaksi voimme normalisoida syötteen tällä minierän keskiarvolla ja varianssilla. Lopuksi verkko oppii skaalaus- ja siirtoparametrin avulla mukauttamaan erän normalisoidun tuloksen siten, että se sopii parhaiten seuraaville kerroksille, yleensä ReLU:lle. Yksi varoitus on se, että meillä ei ole mini-batch-tietoa päättelyn aikana, joten kiertotapa on laskea liukuva keskiarvo ja varianssi koulutuksen aikana ja käyttää näitä liukuvia keskiarvoja päättelypolulla. Tämä pieni innovaatio on niin vaikuttava, että kaikki myöhemmät verkot alkavat käyttää sitä heti.
2015: ResNet
Deep Residual Learning for Image Recognition
Vuosi 2015 on ehkä paras vuosi tietokonenäköalalla vuosikymmeneen, sillä olemme nähneet niin monia loistavia ideoita, jotka eivät koske vain kuvien luokittelua, vaan kaikenlaisia tietokonenäkötehtäviä, kuten objektien havaitsemista, semanttista segmentointia jne. Vuoden 2015 suurin edistysaskel on uusi verkko nimeltä ResNet eli jäännösverkot, jonka on ehdottanut kiinalainen tutkijaryhmä Microsoft Research Aasiasta.
Kuten jo aiemmin keskustelimme VGG-verkon kohdalla, niin vielä syvemmälle mentäessä suurimpana esteenä on gradientin katoamisongelma, eli.eli derivaatat pienenevät ja pienenevät, kun ne takaisinkulkeutuvat syvempien kerrosten läpi, ja lopulta saavutetaan piste, jota nykyaikainen tietokonearkkitehtuuri ei voi todella mielekkäästi esittää. GoogLeNet yritti puuttua tähän käyttämällä apuvalvontaa ja epäsymmetristä aloitusmoduulia, mutta se lievittää ongelmaa vain vähän. Jos haluamme käyttää 50 tai jopa 100 kerrosta, löytyykö parempaa tapaa, jolla gradientti kulkee verkon läpi? ResNetin vastaus on käyttää jäännösmoduulia.
ResNet lisäsi ulostuloon identiteettipikakuvakkeen, jotta jokainen residuaalimoduuli ei voi ainakaan ennustaa mitä tahansa syötteestä ilman, että se hukkuu villiin. Vielä tärkeämpi asia on se, että sen sijaan, että toivottaisiin jokaisen kerroksen sopivan suoraan haluttuun ominaisuuskartoitukseen, jäännösmoduuli yrittää oppia eron ulostulon ja syötteen välillä, mikä tekee tehtävästä paljon helpomman, koska tarvittava informaatiovoitto on pienempi. Kuvittele, että olet oppimassa matematiikkaa, ja jokaista uutta ongelmaa varten sinulle annetaan samankaltaisen ongelman ratkaisu, joten sinun tarvitsee vain laajentaa tätä ratkaisua ja yrittää saada se toimimaan. Tämä on paljon helpompaa kuin keksiä aivan uusi ratkaisu jokaiseen kohtaamaasi ongelmaan. Tai kuten Newton sanoi, voimme seistä jättiläisten harteilla, ja identiteettisyöttö on tuo jättiläinen residuaalimoduulille.
Identiteettikartoituksen lisäksi ResNet lainasi Inception-verkoista myös pullonkaulan ja eränormalisoinnin. Lopulta se onnistui rakentamaan verkon, jossa oli 152 konvoluutiokerrosta, ja se saavutti 80,72 %:n top-1-tarkkuuden ImageNetissä. ResNet-lähestymistavasta tulee myöhemmin oletusvaihtoehto myös monille muille verkoille, kuten Xceptionille, Darknetille jne. Yksinkertaisen ja kauniin rakenteensa ansiosta sitä käytetään edelleen laajalti monissa tuotannollisissa visuaalisissa tunnistusjärjestelmissä.
Jäännösverkon hypeä seuraten syntyi monia muitakin invariantteja. Teoksessa ”Identity Mappings in Deep Residual Networks” ResNetin alkuperäinen tekijä yritti laittaa aktivoinnin ennen residuaalimoduulia ja saavutti paremman tuloksen, ja tätä suunnittelua kutsutaan sen jälkeen ResNetV2:ksi. Myös vuonna 2016 julkaistussa artikkelissa ”Aggregated Residual Transformations for Deep Neural Networks” tutkijat ehdottivat ResNeXt:tä, joka lisäsi rinnakkaisia haaroja residuaalimoduuleille eri muunnosten ulostulojen aggregoimiseksi.
2016: Xception
Xception: Deep Learning with Depthwise Separable Convolutions
ResNetin julkaisun myötä näytti siltä, että suurin osa matalalla roikkuvista hedelmistä kuvanluokittelijassa oli jo napattu. Tutkijat alkoivat miettiä, mikä on CNN:n taikuuden sisäinen mekanismi. Koska poikkikanavainen konvoluutio tuo yleensä mukanaan tonneittain parametreja, Xception-verkko päätti tutkia tätä operaatiota ymmärtääkseen kokonaiskuvan sen vaikutuksesta.
Nimensä mukaisesti Xception on peräisin Inception-verkosta. Inception-moduulissa eri muunnosten useita haaroja aggregoidaan yhteen topologian harvennuksen aikaansaamiseksi. Mutta miksi tämä harvuus toimi? Xceptionin tekijä, joka on myös Keras-kehyksen tekijä, laajensi tämän idean ääritapaukseen, jossa yksi 3×3-konvoluutiotiedosto vastaa yhtä ulostulokanavaa ennen lopullista ketjuttamista. Tässä tapauksessa nämä rinnakkaiset konvoluutioytimet muodostavat itse asiassa uuden operaation, jota kutsutaan syvyyssuuntaiseksi konvoluutioksi.
Viitteessä yllä olevasta kaaviosta, toisin kuin perinteisessä konvoluutiossa, jossa kaikki kanavat otetaan mukaan yhteen laskentaan, syvyysviisas konvoluutio laskee konvoluution vain kullekin kanavalle erikseen ja ketjuttaa sitten tuloksen yhteen. Tämä vähentää kanavien välistä ominaisuuksien vaihtoa, mutta vähentää myös paljon yhteyksiä ja johtaa siten kerrokseen, jossa on vähemmän parametreja. Tämä operaatio antaa kuitenkin tulosteeksi saman määrän kanavia kuin tulo (tai pienemmän määrän kanavia, jos ryhmität kaksi tai useampia kanavia yhteen). Siksi, kun kanavien ulostulot on yhdistetty, tarvitsemme toisen tavallisen 1×1-suodattimen tai pistemäisen konvoluution kanavien lukumäärän lisäämiseksi tai vähentämiseksi, aivan kuten tavallinen konvoluutio tekee.
Tämä idea ei ole alun perin Xceptionista. Se on kuvattu artikkelissa ”Learning visual representations at scale” ja sitä käytetään satunnaisesti myös InceptionV2:ssa. Xception otti askeleen pidemmälle ja korvasi lähes kaikki konvoluutiot tällä uudella tyypillä. Ja kokeilun tulos osoittautui melko hyväksi. Se päihitti ResNetin ja InceptionV3:n, ja siitä tuli uusi SOTA-menetelmä kuvien luokitteluun. Tämä osoitti myös, että kanavien välisten korrelaatioiden ja spatiaalisten korrelaatioiden kartoitus CNN:ssä voidaan täysin irrottaa toisistaan. Lisäksi Xceptionilla on sama hyve kuin ResNetillä, ja sillä on myös yksinkertainen ja kaunis muotoilu, joten sen ideaa käytetään monissa muissa seuraavissa tutkimuksissa, kuten MobileNetissä, DeepLabV3:ssa jne.
2017: MobileNet
MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Application
Xception saavutti 79 %:n top-1-tarkkuuden ja 94,5 %:n top-5-tarkkuuden ImageNet-verkkosovelluksessa, mutta se on vain 0,8 %:n ja 0,4 %:n parannus verrattuna aiempaan SOTA:n InceptionV3:een. Uuden kuvanluokitusverkon marginaalinen hyöty on yhä pienempi, joten tutkijat alkavat siirtää painopistettään muille alueille. MobileNet on johtanut merkittävään sysäykseen kuvien luokittelussa resurssirajoitteisessa ympäristössä.
Samankaltaisena kuin Xceptionissa, MobileNetissä käytettiin samaa syvyydeltään separoituvaa konvoluutiomoduulia kuin edellä on esitetty, ja sen pääpaino oli korkeassa hyötysuhteessa ja vähemmissä parametreissa.
Yllä olevan kaavan osoittaja on syvyyssuuntaisesti separoituvassa konvoluutiossa vaadittavien parametrien kokonaismäärä. Ja nimittäjä on samanlaisen säännöllisen konvoluution parametrien kokonaismäärä. Tässä D on konvoluutioytimen koko, D on piirrekartan koko, M on tulokanavien lukumäärä, N on lähtökanavien lukumäärä. Koska erotimme kanavan ja spatiaalisen ominaisuuden laskennan toisistaan, voimme muuttaa kertolaskun yhteenlaskuksi, joka on suuruusluokkaa pienempi. Vielä parempi, kuten voimme nähdä tästä suhteesta, mitä suurempi lähtökanavien määrä on, sitä enemmän laskentaa säästimme käyttämällä tätä uutta konvoluutiota.
Toinen MobileNetin panos on leveys- ja resoluutiokerroin. MobileNet-tiimi halusi löytää kanonisen tavan pienentää mallin kokoa mobiililaitteille, ja intuitiivisin tapa on pienentää tulo- ja lähtökanavien määrää sekä tulokuvan resoluutiota. Tämän käyttäytymisen hallitsemiseksi kerrotaan suhdeluku alpha kanavien kanssa ja suhdeluku rho tuloresoluution kanssa (joka vaikuttaa myös ominaisuuskartan kokoon). Parametrien kokonaismäärä voidaan siis esittää seuraavalla kaavalla:
Vaikka tämä muutos vaikuttaa naiivilta innovaation kannalta, sillä on suuri insinööritekninen arvo, koska se on ensimmäinen kerta, kun tutkijat päättelevät kanonisen lähestymistavan verkon mukauttamiseksi erilaisiin resurssirajoituksiin. Lisäksi se tavallaan kiteytti neuroverkon parantamisen perimmäisen ratkaisun: leveämpi ja korkearesoluutioinen syöte johtaa parempaan tarkkuuteen, ohuempi ja matalaresoluutioinen syöte johtaa huonompaan tarkkuuteen.
Myöhemmin vuosina 2018 ja 2019 MobiletNet-tiimi julkaisi myös ”MobileNetV2: Inverted Residuals and Linear Bottlenecks” ja ”Searching for MobileNetV3”. MobileNetV2:ssa käytetään käänteistä residuaalista pullonkaularakennetta. Ja MobileNetV3:ssa alettiin etsiä optimaalista arkkitehtuuriyhdistelmää käyttämällä neuraalista arkkitehtuurihakutekniikkaa, jota käsittelemme seuraavaksi.
2017: NASNet
Learning Transferable Architectures for Scalable Image Recognition
Kuten kuvien luokittelu resurssirajoitteisessa ympäristössä, myös neuraalinen arkkitehtuurihaku on toinen vuoden 2017 tienoilla esiin noussut ala. ResNetin, Inceptionin ja Xceptionin avulla näyttää siltä, että olemme saavuttaneet optimaalisen verkkotopologian, jota ihminen voi ymmärtää ja suunnitella, mutta entä jos on olemassa parempi ja paljon monimutkaisempi yhdistelmä, joka ylittää paljon ihmisen mielikuvituksen? Vuonna 2016 julkaistussa artikkelissa ”Neural Architecture Search with Reinforcement Learning” ehdotettiin ideaa optimaalisen yhdistelmän etsimiseen ennalta määritellystä hakuavaruudesta käyttämällä vahvistusoppimista. Kuten tiedämme, vahvistusoppiminen on menetelmä, jolla etsitään paras ratkaisu, jolla on selkeä tavoite ja palkkio hakuagentille. Laskentatehon rajoittamana tässä artikkelissa käsiteltiin kuitenkin vain sovellusta pienessä CIFAR-tietoaineistossa.
Tavoitteenaan löytää optimaalinen rakenne ImageNetin kaltaiselle suurelle tietokokonaisuudelle NASNet teki ImageNetille räätälöidyn hakuavaruuden. Se toivoo voivansa suunnitella erityisen hakuavaruuden niin, että CIFARissa haettu tulos toimii hyvin myös ImageNetissä. Ensinnäkin NASNet olettaa, että ResNetin ja Xceptionin kaltaisissa hyvissä verkoissa yleiset käsin tehdyt moduulit ovat edelleen käyttökelpoisia hakuja tehtäessä. Sen sijaan, että NASNet etsisi satunnaisia yhteyksiä ja operaatioita, se etsii näiden moduulien yhdistelmiä, jotka ovat osoittautuneet hyödyllisiksi jo ImageNetissä. Toiseksi varsinainen haku suoritetaan edelleen CIFAR-tietokannassa 32×32-resoluutiolla, joten NASNet etsii vain moduuleja, joihin syötekoko ei vaikuta. Toisen kohdan toteuttamiseksi NASNet määritteli valmiiksi kahdenlaisia moduulimalleja: Reduction ja Normal. Reduction-moduulissa voi olla pienennetty ominaisuustietokartta verrattuna syötteeseen, ja Normal-moduulissa se on sama.
Vaikka NASNetillä on paremmat mittarit kuin manuaalisesti suunnitelluilla verkoilla, sillä on myös muutama haitta. Optimaalisen rakenteen etsiminen on hyvin kallista, ja siihen on varaa vain suurilla yrityksillä, kuten Googlella ja Facebookilla. Lopullinen rakenne ei myöskään ole kovin järkevä ihmisille, joten sitä on vaikeampi ylläpitää ja parantaa tuotantoympäristössä. Myöhemmin vuonna 2018 ”MnasNet: Platform-Aware Neural Architecture Search for Mobile” laajentaa tätä NASNet-ideaa edelleen rajoittamalla hakuvaihetta ennalta määritellyllä ketjupohjaisella rakenteella. Määrittelemällä painokertoimen mNASNet antoi myös systemaattisemman tavan hakea mallia tietyin resurssirajoituksin sen sijaan, että se arvioitaisiin vain FLOPien perusteella.
2019: EfficientNet
EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks
Vuonna 2019 näyttää siltä, että CNN:llä tehtävään valvottuun kuvanluokitteluun ei ole enää jännittäviä ideoita. Jyrkkä muutos verkon rakenteessa tarjoaa yleensä vain pienen tarkkuusparannuksen. Vielä pahempaa on se, että kun samaa verkkoa sovelletaan eri tietokokonaisuuksiin ja tehtäviin, aiemmin väitetyt kikat eivät näytä toimivan, mikä johti kritiikkiin siitä, ovatko nämä parannukset vain ylisovitusta ImageNet-tietokokonaisuudessa. Toisaalta on yksi temppu, joka ei koskaan petä odotuksiamme: korkeamman resoluution syötteen käyttäminen, useampien kanavien lisääminen konvoluutiokerroksille ja useampien kerrosten lisääminen. Vaikka tämä on hyvin raakaa väkivaltaa, näyttää siltä, että on olemassa periaatteellinen tapa skaalata verkkoa tarpeen mukaan. MobileNetV1 tavallaan ehdotti tätä vuonna 2017, mutta painopiste siirtyi myöhemmin parempaan verkkosuunnitteluun.
NASNetin ja mNASNetin jälkeen tutkijat huomasivat, että arkkitehtuurin muuttaminen ei tuota kovin suurta hyötyä edes tietokoneen avulla. Niinpä he alkavat turvautua verkon skaalaamiseen. EfficientNet on rakennettu juuri tämän oletuksen varaan. Toisaalta se käyttää mNASNetistä saatua optimaalista rakennuspalikkaa varmistaakseen hyvän perustan lähtökohdaksi. Toisaalta se määritteli kolme parametria alfa, beta ja rho verkon syvyyden, leveyden ja resoluution hallitsemiseksi vastaavasti. Näin insinöörit voivat käyttää näitä periaatteellisia parametreja verkon virittämiseen erilaisten vaatimustensa mukaan, vaikka heillä ei olisikaan suurta GPU-poolia optimaalisen rakenteen etsimiseen. Lopulta EfficientNet antoi 8 erilaista vaihtoehtoa, joissa oli eri leveys-, syvyys- ja resoluutiosuhteet, ja se sai hyvän suorituskyvyn sekä pienille että suurille malleille. Toisin sanoen, jos haluat suurta tarkkuutta, valitse 600×600 ja 66M parametrien EfficientNet-B7. Jos haluat matalan latenssin ja pienemmän mallin, valitse 224×224 ja 5,3M parametrit EfficientNet-B0. Ongelma ratkaistu.
Jos luet edellä mainitut 10 artikkelia, sinulla pitäisi olla melko hyvä käsitys CNN:n avulla tapahtuvan kuvanluokittelun historiasta. Jos haluat jatkaa tämän alan opiskelua, olen listannut myös muita mielenkiintoisia papereita luettavaksi. Vaikka nämä paperit eivät sisälly top-10-listaan, ne ovat kaikki kuuluisia omalla alueellaan ja inspiroivat monia muita tutkijoita maailmassa.
2014: SPPNet
Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition
SPPNet lainaa ominaisuuspyramidin idean perinteisestä tietokonenäön ominaisuuksien louhinnasta. Tämä pyramidi muodostaa sanapussin eri mittakaavaisista piirteistä, joten se voi mukautua eri kokoisiin syötteisiin ja päästä eroon kiinteäkokoisesta täysin kytketystä kerroksesta. Tämä idea innoitti myös DeepLabin ASPP-moduulia ja FPN:ää objektien havaitsemiseen.
2016: DenseNet
Densely Connected Convolutional Networks
DenseNet Cornellilta laajentaa edelleen ResNetin ideaa. Se ei ainoastaan tarjoa ohitusyhteyksiä kerrosten välillä, vaan sillä on myös ohitusyhteydet kaikista edellisistä kerroksista.
2017: SENet
Squeeze-and-Excitation Networks
Xception-verkko osoitti, että kanavien välisellä korrelaatiolla ei ole paljon tekemistä spatiaalisen korrelaation kanssa. Viime ImageNet-kilpailun voittajana SENet suunnitteli kuitenkin Squeeze-and-Excitation-lohkon ja kertoi toisenlaista tarinaa. SE-lohko puristaa ensin kaikki kanavat pienemmiksi kanaviksi käyttämällä globaalia yhdistämistä, soveltaa täysin kytkettyä muunnosta ja ”herättää” ne sitten takaisin alkuperäiseen kanavien määrään käyttämällä toista täysin kytkettyä kerrosta. Joten pohjimmiltaan FC-kerros auttoi verkkoa oppimaan huomiota syötteen ominaisuuskarttaan.
2017: ShuffleNet
ShuffleNet: An Extremely Efficient Convolutional Neural Network for Mobile Devices
Rakennettu MobileNetV2:n käänteisen pullonkaulamoduulin päälle, ShuffleNet uskoo, että pistemäisessä konvoluutiossa syvyyssuuntaisesti separoituvassa konvoluutiossa uhrataan tarkkuus vastineeksi pienemmästä laskennasta. Tämän kompensoimiseksi ShuffleNet lisäsi ylimääräisen kanavien sekoitusoperaation varmistaakseen, että pistemäistä konvoluutiota ei sovelleta aina samaan ”pisteeseen”. Ja ShuffleNetV2:ssa tämä kanavien sekoitusmekanismi on laajennettu edelleen myös ResNetin identiteettikartoitushaaraan, joten osa identiteettiominaisuudesta käytetään myös sekoitukseen.
2018: Bag of Tricks
Bag of Tricks for Image Classification with Convolutional Neural Networks
Bag of Tricks keskittyy yleisimpiin kuvanluokittelussa käytettyihin temppuihin. Se toimii hyvänä viitteenä insinööreille, kun heidän on parannettava vertailuarvojen suorituskykyä. Mielenkiintoista on, että näillä tempuilla, kuten sekoituksen lisääminen ja kosinusoppimisnopeus, voidaan joskus saavuttaa paljon parempi parannus kuin uudella verkkoarkkitehtuurilla.
Johtopäätös
EfficientNetin julkaisun myötä näyttää siltä, että ImageNet-luokittelun vertailuanalyysi tulee tiensä päähän. Nykyisellä syväoppimislähestymistavalla emme tule koskaan pääsemään 99,999 prosentin tarkkuuteen ImageNetissä, ellei jotain muuta paradigman muutosta tapahdu. Tutkijat etsivätkin aktiivisesti uusia alueita, kuten itseohjautuvaa tai puolivalvottua oppimista laajamittaista visuaalista tunnistusta varten. Tällä välin insinöörien ja yrittäjien on nykyisten menetelmien avulla löydettävä reaalimaailman sovellukset tälle epätäydelliselle teknologialle. Kirjoitan tulevaisuudessa myös tutkimuksen, jossa analysoin näitä kuvanluokitteluun perustuvia reaalimaailman tietokonenäön sovelluksia, joten pysykää kuulolla! Jos mielestäsi on myös muita tärkeitä artikkeleita, joita kannattaa lukea kuvien luokittelua varten, jätä kommentti alle ja kerro meille.
Originally published at http://yanjia.li on July 31, 2020
- Y. Lecun, L. Bottou, Y. Bengio, P. Haffner, Gradient-based Learning Applied to Document Recognition
- Alex Krizhevsky, Ilya Sutskever, Geoffrey E. Hinton, ImageNet Classification with Deep Convolutional Neural Networks
- Karen Simonyan, Andrew Zisserman, Very Deep Convolutional Networks for Large-Scale Image Recognition
- Christian Szegedy, Wei Liu, Yangqing Jia, Pierre Sermanet, Scott Reed, Dragomir Anguelov, Dumitru Erhan, Vincent Vanhoucke, Andrew Rabinovich, Going Deeper with Convolutions (Syvemmälle konvoluutioilla)
- Sergey Ioffe, Christian Szegedy, Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift
- Kaiming He, Xiangyu Zhang, Shaoqing Ren, Jian Sun, Deep Residual Learning for Image Recognition
- François Chollet, Xception: Andrew G. Howard, Menglong Zhu, Bo Chen, Dmitry Kalenichenko, Weijun Wang, Tobias Weyand, Marco Andreetto, Hartwig Adam, MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Application
- Barret Zoph, Vijay Vasudevan, Jonathon Shlens, Quoc V. Le, Learning Transferable Architectures for Scalable Image Recognition
- Mingxing Tan, Quoc V. Le, EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks
- Kaiming He, Xiangyu Zhang, Shaoqing Ren, Jian Sun, Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition
- Gao Huang, Zhuang Liu, Laurens van der Maaten, Kilian Q. Weinberger, Densely Connected Convolutional Networks
- Jie Hu, Li Shen, Samuel Albanie, Gang Sun, Enhua Wu, Squeeze-and-Excitation Networks
- Xiangyu Zhang, Xinyu Zhou, Mengxiao Lin, Jian Sun, ShuffleNet: An Extremely Efficient Convolutional Neural Network for Mobile Devices
- Tong He, Zhi Zhang, Hang Zhang, Zhongyue Zhang, Junyuan Xie, Mu Li, Bag of Tricks for Image Classification with Convolutional Neural Networks