Irudi Errekonozimendua eta Konboluzio Sare Neuronalak
Clasificado en Informática
Escrito el en
vasco con un tamaño de 26,03 KB
Irudi Errekonozimendua
Ordenagailuak irudia tentsore moduan ikusten du. Honakoak hainbat arazo ditu eta, beraz, erronka hauei aurre egin behar die:
- Ikuspegi aldaketa: Ikuspegi aldaketa badago, tentsorea aldatzen da.
- Argiztapena: Argiztapen desberdinek irudi berdinean tentsorea aldatzen dute.
- Inguruneko informazioa: Objektua ingurune desberdinetan ager daiteke irudi desberdinetan.
- Oklusioa: Errekonozitu behar dena ezkutuan dago.
- Deformazioak: Objektu bera forma askotan atera daiteke.
- Klase berdineko aldaketak: Klase batek subklaseak eduki ditzake.
- Testuingurua: Objektua deformatu daiteke testuinguruaren eraginez.
Nola Ebatzi Ataza?
Saiakera batzuk egin ziren: ertzak eta izkinak bilatzea, eskuzko kodea idaztea katu/ez katu sailkatzeko. EZIN DA!
Ez da erabiltzen. Ez dago modurik eskuz koderik idazteko katu bat edo beste edozein klase bat errekonozitzeko.
Beraz, ikaskuntza automatikoa izan zen konponbidea:
- Irudi pareak bildu.
- Sailkatzaile bat entrenatu.
- Sailkatzailea ebaluatu.
Hurbilpen Klasikoa
Hurbilpen klasikoaren izaera honakoa da:
- Irudia.
- Ezaugarriak atera.
- Sailkatzailea.
- Erantzuna.
Entrenamendua (Train)
Ezaugarriak ateratzean (2. pausoan), deskribatzaileak bektore batean konkatenatu behar dira (bektore bat irudi bat) eta honekin + etiketekin eredua entrenatuko da.
Testa (Test)
Test garaian, iruditik ezaugarriak aterako dira, deskribatzaileak eraiki (bektoreak eraiki) eta zuzenean sailkatuko dira iragarpena/klasea lortuz (Adibidez: Katua da!).
Muga Argiak
Eskuz kodetutako ezaugarriek ez dute beharrezko informazioa errepresentatzen askotan. Erabiltzen ziren sailkatzaileak mugatuak ziren (RF, SVM, AdaBoost…).
Konboluzio-Sare Neuronalak (CNN)
Iragazkiak eskuz definitzea neketsua da eta beharrezko informazioa aurreikustea eta kodetzea ia ezinezkoa da.
IDEIA: Iragazkiak datuetatik ikasi eta helburu atazarako egokienak diren iragazkiak ikasi. W pisuak ikasi egingo dira.
Iragazkiak (Neurona-Sare Sinpleak)
Konboluzioak irudia eta iragazkia erabiltzen ditu. Iragazkia neurona bat izango da, W pisu batzuekin (iragazkia irudi osorako).
Iragazki bakoitzeko aktibazio-mapa bat dugu. Hainbat iragazki izan ditzakegu, gauza desberdinak ikasiko dituztenak.
Bi ikuspegi daude neurona munduan: edo neurona batek irudi guztia zeharkatzen du, edo neurona bat baino gehiago pisu berdinekin. Bigarren ikuspegia programatzerakoan hobea da.
Aktibazio-mapek ematen digute irudiari buruzko informazioa. Gure iragazkiak ertzak detektatzen baditu, aktibazio-mapean agertuko da ertzak dauden zonaldeak.
Konboluzio-Sareak Entrenatzen
Overfitting-a ez gertatzeko, erregularizazio teknikak erabiltzen dira (adibidez, Data Augmentation). Bestela, buruz ikasiko ditu ezaugarriak eta ez du gaitasunik izango bestelako datuen gainean orokortzeko.
Datu Gehikuntza (Data Augmentation)
Irudi originalari buelta eman ezkero, katua izaten jarraitzen du. Hau da, irudi originalari hainbat transformazio egin “katu” gehiago edukitzeko. Honek, ereduari orokortzeko gaitasuna ematen dio.
- a. Rand Augment: Irudi-transformazio geometrikoak edo koloretakoak ausaz aukeratu eta aplikatzen ditu, emandako magnitude batekin (hiperparametroa). Geroz eta magnitude handiagoa, aldaketa gehiago egongo da.
- b. CutOut: Entrenamenduan: ausazko irudi-eskualdeak 0n jarri edo zarata jarri. Testean: irudi osoa erabili.
- c. MixUp: Entrenamenduan: irudiak konbinatu ausaz (adibidez, katua/txakurra) eta etiketak jarri, irudia sortzeko erabili duzun proportzioaren arabera. Testean: irudi originalak erabili.
- d. CutMix: Entrenamenduan: Bi irudi hartu eta eskualde bat bestearen gainean itsatsi, eta etiketak jarri, irudia sortzeko erabili duzun proportzioaren arabera. Testean: irudi originalak erabili.
Etiketak Leuntzea (Label Smoothing)
Etiketen klaseen banaketa aldatu, hau da, berriz ere multzoa etiketatu eta batzuk nahita gaizki etiketatzea.
Sakonera Estokastikoa (Stochastic Depth)
Adibidez, Entrenamenduan: ResNet batean hainbat hondar-bloke saltatzea. Testean: Sare osoa erabili.
Konboluzio-Sareak Diseinatzen
CNN bat diseinatzerakoan gauza asko hartu behar dira kontuan eta, beraz, diseinatzea zaila da. CNNak iraultza bat izan ziren irudi errekonozimendurako. Ikaskuntzaren garrantzia guztiz agerian utzi zuten.
- AlexNet-ek erakutsi zuen CNNak erabil daitezkeela ikusmen artifizialerako.
- VGG-k erakutsi zuen sare sakonagoek hobeto funtzionatzen dutela.
- GoogLeNet izan zen lehenengotarikoa eraginkortasuna kontuan hartzen, 1x1 konboluzioak erabiliz eta FC geruzak Global Average Pooling geruzekin ordezkatuz.
- ResNet-ek erakutsi zuen sare oso sakonak nola entrenatu.
CNNak Ulertzen eta Interpretatzen
Honelako sare batean zer gertatzen da emaitzak lortzeko? Teknika enpirikoak erabiliko dira.
Lehen Geruzako Iragazkiak
Lehen geruzako iragazkiak RGB irudi bezala bistaratu. Iragazki hori irudi-eskualdearekin biderkatzen dugu (produktu eskalarra), beraz, irudian iragazkiaren antzeko eskualdeek erantzun indartsua emango dute. Adibide honetan lau sare ezberdin, baina lehen geruzan oso antzeko iragazkiak ikasten dituzte: orientazio ezberdinetako ertzak, kolore ezberdinetako ehundurak bilatzen dituztenak. Gauza bera egin dezakegu CNNaren geruza sakonetan?
Geruza Sakonagoetako Iragazkiak
3 geruzatako CNN bat entrenatu dugu CIFAR datu-multzoan. 2. Geruzako iragazkiek 16 sarrera-kanal dituzte: nola bistaratu hori? Kasu honetan 16 kanalak gris-eskalan erakusten ditugu. Orokorrean ez digu asko esaten.
Azken Geruza (FC7)
FC7 geruza. 4096 dimentsioko bektorea irudia errepresentatzeko. Exekutatu entrenatuta dagoen sarea irudi askotan, eta gorde ezaugarri-bektoreak. Azken geruzan sailkapena egin baino lehen, klaseen semantikarekin zerikusia duten ezaugarriak lortzen dira.
Azken Geruza: Auzokide Hurbilena
1. Pixel espazioan: Antzeko pixelak dituzten irudiak ekarri, ez klase berekoak (txalupa eta zaldia).
2. Ezaugarri espazioan: 4096 bektorea erabiliz, klase berekoak agertu. Beraz, bektore horrek ezaugarrien informazioa gordeko du.
Azken Geruza: Dimentsio Murrizketa
Azken geruzan dimentsio murrizketa egin daiteke, ezaugarri-bektorearena alegia. 4096 osagaietatik 2 osagaietara igarotzen gara. Honakoa egiteko bi algoritmo ditugu: PCA eta t-SNE.
Aktibazioak Bistaratu
Pisua eta aktibazioa gauza ezberdinak dira. Pisuak ikasi egiten dira eta aktibazioak, neuronari sartzen zaion pisuaren arabera, aktibazio bat edo beste bat izango du.
Irudiko Zein Eskualdetan Zentratzen da?
Iragazki konkretu bat aukeratu eta zein irudi-eskualdek lortzen duen aktibazio handiena aztertu.
Errenkada bakoitza neurona bat da. Lehen errenkada txakurrekin aktibatuko da, bigarrena testu idatziarekin, adibidez.
Pixel Garrantzitsuak Bilatu Oklusioak Erabiliz
Zein pixel dira garrantzitsuak? Maskaratu irudiaren eskualde bat CNNra pasatzeko. Ikusi irteera-probabilitateak nola aldatzen diren. Asko aldatzen badira, maskaratutakoan fijatzen da (kasu honetan argiagoa bada).
Baina, teknika hau konputazionalki oso garestia da. Pentsa zenbat forward egin behar diren sare batean irudi-multzo handi batentzat.
Pixel Garrantzitsuak Bilatu Backprop Bidez
Bi atal ditugu:
- Forward: Probabilitateak kalkulatu (txakurra izatearena, adibidez).
- Backprop: Kalkulatu klase-balioen gradienteak irudiko pixelekiko, hartu balio absolutua eta geratu RGB kanaletako maximoekin.
Horrekin, GARRANTZIA MAPA (Saliency Map) sortuko da, esango diguna zein pixel diren garrantzitsuenak gradientearen ustez. Edo beste modu batera esanda, gradientea handia den eskualdeak aldatzen baditugu, txakurra izateko probabilitatea jaitsiko da.
Merkea izan arren, kasu orokorrean teknika honek ez du hain ondo funtzionatzen.
Tarteko Ezaugarriak Backprop Gidatuaren Bidez
Tarteko neurona bakarra aukeratzen da, neuronaren balioaren gradientea kalkulatzeko irudiaren pixelekiko.
Irudiak hobeto ikusten dira gradiente positiboen gainean eginez gero backprop (backprop gidatua). Soilik zein zati den garrantzitsua bistaratuko du.
Klase Aktibazio Mapak (CAM)
Mc,h,w = Σk Wk,c fh,w,k
- Azken geruzako ezaugarriak: f ∈ RHxWxK
- (Global avg pooling)
- Pooling ondoren ezaugarriak: F ∈ RK (Fully Connected Layer, weights w ∈ RKxC)
- Klase balioak: S ∈ RC
Arazoa: Azken geruza konboluzionalari soilik aplika dakioke. Neurona eta pisu ezberdinen gehiketa osoak ematen du Class Activation Mapping (Adibidez: Txakurra non dago?).
Gradiente-Pisatuko Klase-Aktibazio Mapak (Grad-CAM)
- Aukeratu edozein geruza, A ∈ RHxWxK.
- SC klase-balioaren gradientea kalkulatu A-rekiko.
- Gradienteen Global Average Pooling kalkulatu.
- Aktibazio-mapa kalkulatu.
Sailkatzaileak ez diren sistemetan ere erabilgarriak dira.
CNN Ezaugarriak Bistaratu: Gradiente Igoera
Backprop (gidatua) neurona bat aktibatzen duen irudi-eskualdea bilatzen du. Hemen, eskura ditugun irudietara mugatuta gaude.
Gradiente igoeran, berriz, irudi sintetiko bat sortu nahi dugu neurona baten aktibazio maximoa lortzeko: I* = arg maxI f(I) + R(I), non f(I) neuronen balioa eta R(I) irudi natural bat erregularizatzeko den.
Hauek pixelak ikasten dituzte, ez pisuak! Pisuak ezin direlako aldatu. Helburua, beraz, irudia aldatzea da. Irudia eguneratzeko, neurona zein forman edo ehunduretan fijatzen den ikusi behar da. Honakoa da prozesua:
- Hasieratu irudia zerokoz.
- Honakoa errepikatu:
- Irudiarekin forward egin klase-balioak kalkulatzeko.
- Kalkulatu neuronaren gradientea irudi-pixelekiko backprop bidez.
- Eguneratu irudia.
arg maxI SC(I) + λ || I ||22 non SC(I) C klusterraren balioa eta λ... Erregularizazio sinplea: zigortu sortutako irudiaren L2 norma.
Egin daiteke ere: Leundu irudia (Gaussian blur), balio txikiko pixelak zerokatu, gradiente txikiko pixelak zerokatu.
“Alde-anitzeko” bistaratzea erabiliz emaitza hobeak lortzen dira: gainera, erregularizazio hobea, erdikalderako alborapena.
Kontua da erregularizatzaile konplexuagoekin irudi naturalagoak lor ditzakegula. Baina horrek ere beste eztabaida batzuk sortzen ditu; erregularizazio extremoa txarra da.
Aurkako Adibideak (Adversarial Examples)
- Edozein iruditik hasi.
- Aukeratu edozein klase.
- Aldatu irudia (gradiente igoera erabilita) klase-balioa maximizatzeko.
- Gelditu sareak huts egiten duenean.
Gerta daiteke aldaketa batzuk egitea (bistan ohartu gabe) baina neurona-sareak beste klase bat bezala hartzea. Helburua ikaskuntza automatikoko ereduen ahultasunak ulertzea eta sistema horien segurtasuna eta fidagarritasuna bermatzeko teknika sendoen beharra nabarmentzea.
Aurkako Erasoa
Sare bat erasotzeko eta bere errendimendua kaltetzeko, aurkako adibideak sortzeko metodoa.
- 1.1. Kutxa-zuriko erasoak: Sarearen arkitektura eta pisuak ditugu. Predikzioak zein gradienteak lor ditzakegu edozein irudirentzat.
- 1.2. Kutxa-beltzeko erasoak: Sarearen arkitektura eta pisuak ezezagunak dira. Sarearen predikzioak bakarrik lor ditzakegu edozein irudirentzat.
Aurkako Defentsa
Aldaketak egin sarearen arkitekturan, entrenamenduan, etab., erasoak saihesteko.
Ezaugarriak Alderantzikatu (Feature Inversion)
Irudi batentzat CNN baten ezaugarri-bektorea emanda, irudi berri bat bilatu:
- Emandako ezaugarri-bektorearekin bat datorrena: l(Φ(x),Φ0)=∣∣Φ(x)−Φ0 ∣∣ 2 non Φ(x) irudi berriaren ezaugarriak den eta Φ0 emandako ezaugarrien bektorea.
- “Naturala dirudiena” (irudi bidezko erregularizazioa): RTBeta = Σ ((xi, j+1 - xi,j)2 + (xi+1,j - xi,j)2)Beta/2
Esan daiteke VGG16 sarearen geruza ezberdinetatik berreraiki daitezkeela irudiak. Hau da, geroz eta hasieratik hurbilago egon geruza, berreraikitako irudiak irudi originalaren antza gehiago edukiko du. Zergatik? Geruza horrek pixel informazio ia osoa errepresentatzen baitu oraindik.
Zertarako da baliagarria?
- 1. Aktibazioak ikustea: Neurona jakin batzuk aktibatzen dituzten ezaugarriak ikus ditzakezu.
- 2. Edukiak sortzea: Nahi diren ezaugarriak dituzten irudiak sortu.
- 3. Ereduaren interpretagarritasuna: Sare neuronalak zer eredu eta ezaugarri ikasten ari den ulertzea.
DeepDream: Ezaugarriak Areagotzea
Irudi bat sortu beharrean neurona baten aktibazioa maximizatzeko, saiatu neurona baten aktibazioa areagotzen gauza baten neurona batentzako. Aukeratu irudi bat eta CNN geruza bat; errepikatu:
- Forward: aktibazioak lortu aukeratutako geruzarako.
- Aukeratutako geruzaren gradienteari esleitu aktibazioaren balioa.
- Backward: irudiarekiko gradientea kalkulatu.
- Irudia eguneratu.
DeepDream aplikatzen badugu hasierako geruzetan, ertzak agertu zeruan. Urrutiko geruzetan aplikatuz, kontzeptu abstraktuagoak agertu.
DeepDream iterazio askotan exekutatzen bada, irudi originaletik gehiago urruntzen gara.
Ehundurak Sortzen (Texture Synthesis)
Ehundura baten eskualde bat emanda, sor dezakegu irudi handiago bat ehundura berdinarekin? Auzokide hurbilena erabiliz egin daiteke.
Sortu pixelak banan-banan eta ordenean. Lehendik sortutako pixelen auzoa eratu eta kopiatu hurbilen dagoen auzokidea sarreratik. Ehundura sinpleentzat teknika hauek nahiko ondo funtzionatzen dute.
Ehundurak Sortzen: Gram Matrizea
Auzokide hurbilarekin egin ordez, neurona-sareak erabiliz ere egin daiteke. Feature inversion antzeko ideia bat jarraituz:
- CNNaren geruza bakoitzak C x H x W tamainako ezaugarri-tentsorea; C dimentsiotako bektoreak H x W matrize batean.
- C dimentsiotako bi bektoreen arteko kanpoko produktuak C x C matrize bat ematen digu (elementuz-elementu biderkatuak).
- HW pare guztien batezbestekoak C x C tamainako Gram Matrizea ematen digu.
Gram matrizeak informazio espazial guztia “ahaztu” du. Kodetzen duen informazioa da: zein ezaugarri-pare aktibatzen diren elkarrekin, edo ez diren aktibatzen elkarrekin (kobariantza matrize antzeko bat da).
Ideia da: Helburu-irudi baten ehundura erreplikatzeko, helburu-irudi horren GRAM matrizea kalkulatu (geruza bakoitzeko) eta gradiente igoera bidez, sortu irudi sintetiko bat GRAM matrize horren oso antzeko bat sortuko lukeena.
- Entrenatu CNN bat ImageNet-en (VGG19).
- Ehundura konkretu baten forward egin, gorde geruza guztietako aktibazioak.
- Geruza bakoitzean kalkulatu Gram Matrizea.
- Hasieratu irudi berria ausaz.
- Sortutako irudia CNNtik pasatu, kalkulatu Gram Matrizea geruza bakoitzean.
- Galera kalkulatu: Gram matrizeen arteko L2 distantzia ponderatua. Galera-funtzioa: helburu-irudiaren GRAM matrizeen eta guk sortutako GRAM matrizeen arteko distantzia euklidearra (ponderatua).
- Backprop irudiarekiko gradienteak lortzeko.
- Eguneratu irudia.
- Joan 5. pausora.
Geruza gorenetako ehundurak berreraikitzeak sarrera-irudietako ezaugarri handiagoak errekuperatzen ditu.
Neural Style Transfer
Hainbat irudien estiloak nahastu Gram matrizeen batazbesteko ponderatuak eginez.
Laburbilduz (Interpretazio Teknikak)
Metodo asko daude CNNek ikasitako errepresentazioak ulertzeko.
- Aktibazioak: auzokide hurbilenak, dimentsio-murrizketak, aktibazio handieneko eskualdeak, oklusioak, CAM.
- Gradienteak: Grad-CAM, garrantzia-mapak, klase bistaratzeak, aurkako adibideak, ezaugarriak alderantzikatzea.
- Kuriosoa: Style Transfer.
CNN Arkitektura Modernoak
ResNet Ondorengo Arkitekturak
ResNetek asmatze-tasa hobetu zitekeela erakutsi zigun eredu handiago eta sakonagoekin. ResNet ondorengo arkitektura asko eraginkortasunean zentratu dira: hobetu dezakegu asmatze-tasa ereduaren “konplexutasuna” kontrolpean izanik.
Ereduaren Konplexutasuna Neurtzea
Eredu baten konplexutasuna neurtzeko honakoa eduki behar da kontuan:
- Parametro kopurua: Parametro ikasgarri kopurua.
- Koma-higikorreko operazioak (FLOPs): Zenbat eragiketa aritmetiko behar ditu forward batek. Baina hemen FLOP 1 zer den kontuan izan behar da: konboluzio-geruzen eragiketak soilik, edo biderketa eta batuketa 1 FLOP 1. Beste batzuk, azken hau 2 FLOP direla argudiatu.
- Sarearen exekuzio-denbora: Eredu baten forward batek zenbat denbora behar duen benetako hardware batean.
Konboluzio Normalak
Konboluzio-geruza normaletan iragazki bakoitzaren sarrerak hainbat kanal ditu eta irteera-mapa bakoitzak sarrera osoa eta iragazki batekiko dependentzia du. Adibidean sarrera 1 da eta C_in 8 xafla dira: C_in x H x W, eta iragazki 4 daude: C_out x C_in x K x K. Beraz, irteera 1 izango da eta C_out 4 xafla izango da C_out x H' x W'.
Kontuz! Lehenago irteerak (Aktibazio-mapak) sarreran zuen dependentzi guztia eta orain ez! Sarrera osoa eta iragazki batekiko du dependentzia.
Taldekako Konboluzioak
Taldekako konboluzioetan sarrerako kanalak G taldetan banatzen dira (C_in / G) kanal taldeko. Adibidean G = 2 da baina totalean 8 xafla daude.
Iragazkiak G taldetan banatzen dira. Talde bakoitzak sarrera-kanalen azpimultzo batekiko hartzen du dependentzia. 4 iragazki badaude, lehenengo 2 urdin, bigarrenak berde. Irteeran edukiko genukeena: 2 urdin eta 2 berde. 4 xafla.
Kasu Berezia: Sakonerako Konboluzioa (Depthwise Convolution)
Talde kopurua sarrera-kanal kopuruaren berdina denean, irteerak soilik informazio espaziala konbinatzen du, kanalen arteko informazioa ez (Adibidez; C_out = Zenbat xafla iragazkiko * C_in).
G talde erabiltzeak FLOP kopurua zati G egiten du! Beraz, FLOP ikuspegitik hobeak dira!
ResNet Hobetzen: ResNext
ResNet arkitekturan taldekako konboluzioak sartzean datza. Hainbat konboluzio-neurona multzo jarriko dira paraleloan eta sarrera banatuko da.
Taldeak gehitzeak errendimendua hobetzen du FLOP berdinekin. Lehen zatiko blokeek d kanal dituzte, eta zati bakoitzean kanal kopurua bikoizten da.
Squeeze-and-Excitation Networks (SENet)
Honek testuinguru orokorra gehitzen dio ResNet blokeari.
“Squeeze-and-Excitation” (SE) block-ak, ezaugarri sentsorialen erantzunak birkalibratzen ditu, kanalen arteko interdependentzien eredu esplizituaren bidez.
Global AVG pool → Fully Connected → ReLU → Fully Connected → Sigmoid
Ideia ona da orokorrean.
Neurona-Sare Txikiak Mugikorrentzat
Sare handiak egin beharrean asmatze-tasa hobetzeko, sare txikiak esploratu eta errendimendu / konplexutasun balantzea bilatu.
Eredu Familiak Konparatu: Familia bat bestea baino hobea da kurba osoa gorantz eta ezkerrera mugitzen badu.
MobileNet: Konboluzio-bloke arrunta erabili beharrean, sakonerako konboluzio bereizgarria erabiltzen du. Sakonerako konboluzioa + puntukazko konboluzioa.
MobileNet V2
Alderantzizko botila-lepoa erabiltzen du eta hondar-lineala ere bai.
Hasieran kanalak gehitu eta bukaeran murriztu:
- 1x1 conv kanalak gehitzeko 3x3 conv aurretik (alderantzizko botila-lepoa) (tHWC2 FLOP).
- 3x3 sakonerako conv sarrera-kanalak baino gehiagorekin (9tHWC FLOP).
- 1x1 conv irteera-kanalak murrizteko (tHWC2 FLOP).
- Aktibazio ez-linearrik ez! (Hondar lineala!).
ReLU6: Aktibazioak tarte egokian mantentzen ditu zehaztasun txikiko ingurunetan exekutatzeko.
- 3x3 sakonerako konboluzioak: Datuak konbinatzen ditu espazialki, kanal-mailan datuak ez konbinatu.
- 1x1 konboluzioak: Datuak ez ditu konbinatzen espazialki, kanal-mailan datuak konbinatu.
Ideia: Konbina dezakegu kanalen arteko informazioa 1x1 conv baino modu eraginkorragoan.
Konboluzio Taldekatuak Pilatuz
Taldekako konboluzioetan talde ezberdinetako kanalen artean ez da informazioa konbinatzen. Baina eragiketen artean SHUFFLE eginez, kanalen arteko informazioa guztiz konbinatzen da.
ShuffleNet
ShuffleNet-ek aurreko ideiak aplikatzen ditu.
Neural Architecture Search (NAS)
CNNak diseinatzea zaila denez, automatiza dezagun!
- Sare batek (kontrolagailuak) sare-arkitekturak sortzen ditu.
- Lagindu sare-umeak kontrolagailutik eta entrenatu.
- Sare-ume batzuk entrenatu eta gero, gradiente eguneraketa bat egin kontrolagailuan (policy gradient).
- Denborarekin, kontrolagailuak arkitektura onak sortzen ikasten du.
Helburua: “Bloke” berrerabilgarriak bilatu nahi dira ondorengo operazioak konbinatuz:
- “Normal cell”: irudi tamaina mantendu.
- “Reduction cell”: irudi tamaina zati 2.
Konbinatu ikasitako bi zelda patroi erregular bat jarraituz sare-arkitektura sortzeko.
Arazoa zein da? NAS oso garestia dela.
Ereduak Eskalatuz: EfficientNet
Zabalera (kanal kopurua), sakonera (geruza kopurua) edo bereizmena (irudiaren tamaina) bakarrik eskalatzeak ez du asko laguntzen. Emaitza onak lortzeko hirurak batera eskalatu behar dira!
Prozesua:
- NAS erabili hasierako EfficientNet-B0 arkitektura lortzeko: sakonerako-konboluzioak, alderantzizko botila-lepoa eta SE darabiltza.
- Bilatu eskala-faktore optimoak sakonerarako (⍺), zabalerarako (β) eta bereizmenerako (𝛄), ⍺, β, 𝛄 ≥ 1 izanik eta ⍺β2𝛄2 ≈ 2, bilaketa karratua erabiliz hasierako arkitekturaren gainean; ⍺ = 1.2, β = 1.1 eta 𝛄 = 1.15.
- Eskalatu hasierako arkitektura nahi adina FLOPetara: ⍺𝜙, β𝜙, 𝛄𝜙 erabiliz gero, FLOPak 2𝜙 faktorearekiko hazten dira.
Arazo handia: Benetako exekuzio-denbora ez dago ondo korrelazionatuta FLOPekin!
NAS Ondoren: Eskuzko Diseinura Itzuli
Azken urteetako lanak NAS alde batera utzi dute:
- Saiatu ResNet moduko arkitekturak eraldatzen errendimendua hobetzeko, hobeto eskalatzeko, exekuzio-denbora hobetzeko GPU/TPUetan.
- 1. NFNets: Batch Normalization kendu (ez dugu ikusiko).
- 2. Resnet-RS: ResNetentzat entrenamendu-errezeta “modernoak”, hobeto eskalatzen du.
- 3. RegNet: bloke sinpleak diseinatu, optimizatu arkitektura orokorra eta eskalatzeko portaera.
RegNet: Sareen diseinu-espazioak
Sarearen diseinua sinplea da: 3x3 konboluzioa zurtoinean (stem), 4 etapa gorputzean eta buru bat.
Etapa bakoitzak hainbat bloke ditu:
- Head: Lehen blokeak azpilaginketa 2x, hurrengoek tamaina mantentzen dute.
- Body: Bloke baten diseinua sinplea da. ResNext orokortzen du.
- Stem: Etapa bakoitzak 4 parametro ditu: 1. Bloke kopurua, 2. Sarrera-kanalak (w), 3. Botila-lepoaren ratioa (b), 4. Taldekatze zabalera (g).
Sarearen diseinu-espazioak 16 parametro bakarrik ditu.
Emaitzak erabili diseinu-espazioa fintzeko: murriztu parametroak 16tik errendimendu hobeko arkitekturen alde:
- Botila-lepoaren ratio bera erabili etapa guztietan (16 → 13 parametro).
- Taldekatze-zabalera bera etapa guztietan (13 → 10 parametro).
- Zabalera zehaztu, etapa bakoitzeko blokeak linearki handitzeko.
Azken diseinu-espazioak 6 parametro ditu:
- Sarearen sakonera (d), botila-lepoaren ratioa (b), taldekatze-zabalera (g).
- Hasierako zabalera w0, zabaleraren hazkunde-tasa wa, blokeak etapako wm.
Laburpena (CNN Modernoak)
- Hasierako lanak (AlexNet → VGG → ResNet): sare handiagoek errendimendu hobea.
- Eraginkortasunean zentratu: errendimendua hobetu, konplexutasuna kontrolatu.
- Taldekako- eta sakonerako-konboluzioak arkitektura modernoetan.
- Squeeze-and-Excite edozein arkitekturaren errendimendua hobetzeko FLOP eta exekuzio-denbora pixka bat gehituz.
- Sare txikiak mugikorrentzat (MobileNet, ShuffleNet).
- Neural Architecture Search (NAS) arkitekturen diseinua automatizatzeko.
- Azken lanak ResNet moduko sareak modu metodikoan hobetzen zentratu dira.
- ResNet eta ResNext oraindik ere oso sare indartsuak dira!
- RegNet arkitekturak eraginkortasuna, sinpletasuna eta errendimendu ona konbinatzen ditu.