Using Convolutional Neural Networks for Image Recognition
Ez a cikk eredetileg a Cadence weboldalán jelent meg. Itt a Cadence engedélyével nyomtatjuk újra.
A konvolúciós neurális hálózatokat (CNN) széles körben használják minta- és képfelismerési problémákban, mivel számos előnnyel rendelkeznek más technikákkal szemben. Ez a fehér könyv a CNN-ek alapjaival foglalkozik, beleértve az alkalmazott különböző rétegek leírását. A közlekedési táblák felismerésének példáján keresztül tárgyaljuk az általános probléma kihívásait, és bemutatjuk a Cadence által kifejlesztett algoritmusokat és implementációs szoftvereket, amelyek a számítási terhet és az energiát a táblák felismerési arányának szerény romlásáért cserébe képesek kiegyenlíteni. Felvázoljuk a CNN-ek beágyazott rendszerekben való alkalmazásának kihívásait, és bemutatjuk a Cadence® Tensilica® Vision P5 digitális jelfeldolgozó processzor (DSP) képalkotáshoz és számítógépes látáshoz és a szoftver kulcsfontosságú jellemzőit, amelyek alkalmassá teszik a CNN-ek alkalmazására számos képalkotási és kapcsolódó felismerési feladatban.
Mi a CNN?
A neurális hálózat egymással összekapcsolt mesterséges “neuronok” rendszere, amelyek egymás között üzeneteket cserélnek. A kapcsolatok numerikus súlyokkal rendelkeznek, amelyeket a képzési folyamat során hangolnak, hogy a megfelelően képzett hálózat helyesen reagáljon, amikor egy felismerendő képet vagy mintát kap. A hálózat a jellemzőket felismerő “neuronok” több rétegéből áll. Minden réteg sok neuronból áll, amelyek az előző rétegek bemeneteinek különböző kombinációira reagálnak. Amint az 1. ábrán látható, a rétegek úgy épülnek fel, hogy az első réteg a bemeneten lévő primitív minták egy halmazát érzékeli, a második réteg a minták mintáit, a harmadik réteg e minták mintáit, és így tovább. A tipikus CNN-ek 5-25 különböző mintázatfelismerő réteget használnak.
1. ábra: Egy mesterséges neurális hálózat
A betanítás a bemenetek “címkézett” adathalmazával történik, reprezentatív bemeneti minták széles választékában, amelyeket a tervezett kimeneti válaszukkal jelölnek. A képzés általános célú módszereket használ a köztes és végső jellemző neuronok súlyainak iteratív meghatározására. A 2. ábra blokkszinten mutatja be a képzési folyamatot.
2. ábra: A neurális hálózatok képzése
A neurális hálózatokat a biológiai idegrendszerek ihlették. Az agy alapvető számítási egysége a neuron, és ezek szinapszisokkal kapcsolódnak egymáshoz. A 3. ábra egy biológiai neuront hasonlít össze egy alapvető matematikai modellel .
3. ábra: Egy biológiai neuron (fent) és annak matematikai modellje (lent) ábrázolása
Egy valódi állati neurális rendszerben egy neuron úgy érzékelhető, hogy bemeneti jeleket kap a dendritjeiről, és kimeneti jeleket termel az axonja mentén. Az axon elágazik és szinapszisokon keresztül más neuronok dendritjeihez csatlakozik. Amikor a bemeneti jelek kombinációja elér valamilyen küszöbfeltételt a bemeneti dendritjei között, a neuron beindul, és aktiválódását közli az utódneuronokkal.
A neurális hálózat számítási modelljében az axonok mentén haladó jelek (pl. x0) az adott szinapszisban lévő szinaptikus erősség (pl. w0x0) alapján multiplikatív kölcsönhatásba lépnek (pl. w0x0) a másik neuron dendritjeivel. A szinaptikus súlyok tanulhatóak, és szabályozzák az egyik vagy másik neuron befolyását. A dendritek a jelet a sejttestbe viszik, ahol mindezek összegződnek. Ha a végső összeg egy meghatározott küszöbérték felett van, a neuron tüzel, és egy tüskét küld az axonján. A számítási modellben feltételezzük, hogy a tüzelés pontos időzítése nem számít, és csak a tüzelés frekvenciája közvetíti az információt. A sebességkód-értelmezés alapján a neuron tüzelési sebességét egy ƒ aktivációs függvénnyel modellezzük, amely az axon mentén a tüskék gyakoriságát reprezentálja. Az aktivációs függvény gyakori választása a szigmoid. Összefoglalva, minden neuron kiszámítja a bemenetek és a súlyok pontszorzatát, hozzáadja az előfeszítést, és triggerfüggvényként nemlinearitást alkalmaz (például egy szigmoid válaszfüggvényt követve).
A CNN a fent leírt neurális hálózat speciális esete. A CNN egy vagy több konvolúciós rétegből áll, gyakran egy almintavételi réteggel, amelyeket egy vagy több teljesen összekapcsolt réteg követ, mint a standard neurális hálózatban.
A CNN tervezését az agyban található vizuális mechanizmus, a vizuális kéreg felfedezése motiválta. A látókéreg rengeteg sejtet tartalmaz, amelyek a fény érzékeléséért felelősek a látómező kis, egymást átfedő alrégióiban, amelyeket receptív mezőknek nevezünk. Ezek a sejtek a bemeneti tér helyi szűrőiként működnek, az összetettebb sejtek pedig nagyobb receptív mezőkkel rendelkeznek. A CNN-ben a konvolúciós réteg végzi el azt a funkciót, amelyet a látókéreg sejtjei látnak el .
A 4. ábrán egy tipikus CNN látható közlekedési táblák felismerésére. Egy réteg minden egyes jellemzője bemenetet kap az előző rétegben egy kis szomszédságban lévő, helyi receptív mezőnek nevezett jellemzőkészletből. A lokális receptív mezőkkel a jellemzők kivonhatják az elemi vizuális jellemzőket, például a tájolt éleket, végpontokat, sarkokat stb. amelyeket aztán a magasabb rétegek kombinálnak.
A minta/képfelismerés hagyományos modelljében egy kézzel tervezett jellemzőkivonó összegyűjti a releváns információkat a bemenetről, és kiküszöböli az irreleváns változásokat. Az extrahálót egy betanítható osztályozó, egy szabványos neurális hálózat követi, amely a jellemzővektorokat osztályokba sorolja.
A CNN-ben a konvolúciós rétegek töltik be a jellemző extraháló szerepét. Ezeket azonban nem kézzel tervezik. A konvolúciós szűrőmagok súlyairól a képzési folyamat részeként döntenek. A konvolúciós rétegek képesek a helyi jellemzők kinyerésére, mivel a rejtett rétegek receptív mezőit lokálisra korlátozzák.
4. ábra: Egy CNN tipikus blokkdiagramja
A CNN-eket számos területen használják, többek között a kép- és mintafelismerésben, a beszédfelismerésben, a természetes nyelvi feldolgozásban és a videóelemzésben. Számos oka van annak, hogy a konvolúciós neurális hálózatok egyre fontosabbá válnak. A hagyományos mintafelismerő modellekben a jellemzőkivonókat kézzel tervezik. A CNN-ekben a tulajdonságok kinyerésére használt konvolúciós réteg, valamint az osztályozásra használt teljesen összekapcsolt réteg súlyai a képzési folyamat során kerülnek meghatározásra. A CNN-ek továbbfejlesztett hálózati struktúrái megtakarítást eredményeznek a memóriaigény és a számítási komplexitási követelmények terén, ugyanakkor jobb teljesítményt nyújtanak olyan alkalmazásokban, ahol a bemenet helyi korrelációval rendelkezik (pl. kép és beszéd).
A CNN-ek képzésének és kiértékelésének nagy számítási erőforrásigényét néha grafikus feldolgozó egységek (GPU-k), DSP-k vagy más, a CNN-számítás sajátos mintáinak végrehajtásakor nagy áteresztőképességre és alacsony energiára optimalizált szilíciumarchitektúrák elégítik ki. Valójában az olyan fejlett processzorok, mint a Cadence Tensilica Vision P5 DSP for Imaging and Computer Vision, a CNN-ek nagy hatékonyságú futtatásához szükséges számítási és memóriaforrások szinte ideális készletével rendelkeznek.
A minta- és képfelismerő alkalmazásokban a lehető legjobb helyes felismerési arányokat (CDR) a CNN-ek segítségével érték el. Például a CNN-ek 99,77%-os CDR-t értek el a kézzel írt számjegyeket tartalmazó MNIST-adatbázissal , 97,47%-os CDR-t a 3D objektumokat tartalmazó NORB-adatkészlettel , és 97,6%-os CDR-t a több mint 10 objektumot tartalmazó ~5600 képen . A CNN-ek nem csak más detektáló algoritmusokkal összehasonlítva nyújtják a legjobb teljesítményt, hanem még az embereket is felülmúlják olyan esetekben, mint például a tárgyak finomabb kategóriákba történő besorolása, mint például a kutya adott fajtája vagy a madárfaj .
Az 5. ábra egy tipikus látási algoritmus csővezetékét mutatja, amely négy szakaszból áll: a kép előfeldolgozása, a valószínűsíthető tárgyakat tartalmazó érdekes régiók (ROI) detektálása, a tárgyfelismerés és a látási döntéshozatal. Az előfeldolgozási lépés általában a bemenet, különösen a kamerarendszer részleteitől függ, és gyakran a látás alrendszeren kívüli, keményen bekötött egységben valósul meg. A csővezeték végén lévő döntéshozatal jellemzően a felismert objektumokkal dolgozik – összetett döntéseket hozhat, de sokkal kevesebb adattal dolgozik, így ezek a döntések általában nem számításigényes vagy memóriaigényes problémák. A nagy kihívás a tárgyak detektálásának és felismerésének szakaszában van, ahol a CNN-ek mostanában széleskörű hatást gyakorolnak.
5. ábra: Látási algoritmus pipeline
CNN-ek rétegei
A CNN-ben több és különböző réteg egymásra helyezésével komplex architektúrák épülnek fel osztályozási problémákra. A rétegek négy típusa a leggyakoribb: konvolúciós rétegek, pooling/subsampling rétegek, nemlineáris rétegek és teljesen összekapcsolt rétegek.
Konvolúciós rétegek
A konvolúciós művelet a bemenet különböző jellemzőit vonja ki. Az első konvolúciós réteg olyan alacsony szintű jellemzőket von ki, mint az élek, vonalak és sarkok. A magasabb szintű rétegek magasabb szintű jellemzőket vonnak ki. A 6. ábra a CNN-ekben használt 3D konvolúció folyamatát szemlélteti. A bemenet N x N x D méretű, és H maggal konvolválódik, amelyek mindegyike
külön-külön k x k x D méretű. A bemenet konvolúciója egy kernellel egy kimeneti jellemzőt eredményez, H kernellel pedig egymástól függetlenül H jellemzőt. A bemenet bal felső sarkából kiindulva minden egyes kernelt balról jobbra mozgatunk, egyszerre egy elemet. A jobb felső sarok elérése után a kernelt egy elemmel lefelé mozgatjuk, majd ismét balról jobbra mozgatjuk a kernelt, egyszerre egy elemmel. Ez a folyamat addig ismétlődik, amíg
a mag el nem éri a jobb alsó sarkot. Abban az esetben, ha N = 32 és k = 5 , 28 egyedi pozíciót vehet fel a mag balról jobbra és 28 egyedi pozíciót felülről lefelé. Ezeknek a pozícióknak megfelelően a kimenet minden egyes jellemzője 28×28 (azaz (N-k+1) x (N-k+1)) elemet tartalmaz. A kernel minden egyes pozíciójához a csúszóablakos folyamatban a bemenet k x k x D elemeit és a kernel k x k x D elemeit elemenként megszorozzuk és felhalmozzuk. Tehát egy kimeneti jellemző egy elemének létrehozásához k x k x D szorzási-akkumulációs műveletre van szükség.
6. ábra: A konvolúciós folyamat képi ábrázolása
Pooling/subsampling rétegek
A pooling/subsampling réteg csökkenti a jellemzők felbontását. Ez teszi a jellemzőket robosztussá a zajjal és a torzítással szemben. Az összevonás kétféleképpen végezhető: maximális összevonás és átlagos összevonás. Mindkét esetben a bemenetet nem átfedő kétdimenziós terekre osztjuk. A 4. ábrán például a 2. réteg a pooling réteg. Minden bemeneti jellemző 28×28 méretű, és 14×14 2×2 méretű régióra van felosztva. Az átlagos összevonáshoz a régió négy értékének átlagát számoljuk ki. Max pooling esetén a négy érték közül a maximális értéket választjuk ki.
A 7. ábra tovább részletezi a pooling folyamatát. A bemenet mérete 4×4. A 2×2-es almintavételezéshez a 4×4-es képet négy nem átfedő, 2×2-es méretű mátrixra osztjuk. Max pooling esetén a 2×2 mátrix négy értékének maximális értéke a kimenet. Átlagos összevonás esetén a négy érték átlaga a kimenet. Felhívjuk a figyelmet arra, hogy a (2,2) indexű kimenet esetében az átlagolás eredménye egy tört, amelyet a legközelebbi egész számra kerekítettünk.
7. ábra: A max pooling és az átlagos pooling képi ábrázolása
Nem lineáris rétegek
A neurális hálózatok általában és a CNN-ek különösen egy nem lineáris “trigger” függvényre támaszkodnak, amely az egyes rejtett rétegeken a valószínű jellemzők megkülönböztetett azonosítását jelzi. A CNN-ek különféle speciális függvényeket – például egyenesített lineáris egységeket (ReLU) és folyamatos trigger (nemlineáris) függvényeket – használhatnak ennek a nemlineáris triggerelésnek a hatékony megvalósítására.
ReLU
A ReLU az y = max(x,0) függvényt valósítja meg, így ennek a rétegnek a bemeneti és kimeneti mérete azonos. Növeli a döntési függvény és a teljes hálózat nemlineáris tulajdonságait anélkül, hogy befolyásolná a konvolúciós réteg receptív mezőit. A CNN-ekben használt más nemlineáris függvényekkel (pl. hiperbolikus érintő, a hiperbolikus érintő abszolútja és a szigmoid) összehasonlítva a ReLU előnye, hogy a hálózat sokszor gyorsabban képződik. A ReLU működését a 8. ábra szemlélteti, az átviteli függvényt a nyíl fölött ábrázolva.
8. ábra: A ReLU működésének képi ábrázolása
Folyamatos kiváltó (nemlineáris) függvény
A nemlineáris réteg elemenként működik az egyes jellemzőkben. A folyamatos triggerfüggvény lehet hiperbolikus érintő (9. ábra), a hiperbolikus érintő abszolútja (10. ábra) vagy szigmoid (11. ábra). A 12. ábra azt mutatja, hogy a nemlinearitást hogyan alkalmazzuk elemenként.
9. ábra: A hiperbolikus érintőfüggvény ábrázolása
10. ábra: A hiperbolikus érintőfüggvény abszolútjának ábrázolása
11. ábra: A szigmoid függvény ábrázolása
12. ábra: A tanh feldolgozásának képi ábrázolása
Teljesen összefüggő rétegek
A teljesen összefüggő rétegeket gyakran használják a CNN végső rétegeiként. Ezek a rétegek matematikailag összegzik az előző réteg jellemzőinek súlyozását, jelezve az “összetevők” pontos keverékét egy adott kimeneti céleredmény meghatározásához. Teljesen összekapcsolt réteg esetén az előző réteg összes jellemzőjének összes elemét felhasználják az egyes kimeneti jellemzők minden egyes elemének kiszámításához.
A 13. ábra magyarázza a teljesen összekapcsolt L réteget. Az L-1 réteg két jellemzővel rendelkezik, amelyek mindegyike 2×2, azaz négy elemmel rendelkezik. Az L rétegnek két jellemzője van, amelyek mindegyike egy-egy elemmel rendelkezik.
13. ábra: A teljesen összekapcsolt réteg feldolgozása
Miért CNN?
Míg a neurális hálózatok és más mintafelismerő módszerek már 50 éve léteznek, a közelmúltban jelentős fejlődés történt a konvolúciós neurális hálózatok területén. Ez a szakasz a CNN képfelismerésre való alkalmazásának előnyeivel foglalkozik.
Rugalmasság a kép elmozdulásaihoz és torzulásaihoz
A CNN használatával történő felismerés ellenálló az olyan torzulásokkal szemben, mint a kamera objektívje miatti alakváltozás, különböző fényviszonyok, különböző pózok, részleges elfedések jelenléte, vízszintes és függőleges elmozdulások stb. A CNN-ek azonban elmozdulás-invariánsak, mivel ugyanazt a súlykonfigurációt használják a térben. Elméletileg a teljesen összekapcsolt rétegek használatával is elérhetjük az eltolódás-invariabilitást. Ebben az esetben azonban a képzés eredménye több, azonos súlymintázattal rendelkező egység lesz a bemenet különböző helyein. Ezeknek a súlykonfigurációknak a megtanulásához nagyszámú tréningpéldányra lenne szükség, hogy lefedjük a lehetséges variációk terét.
Kisebb memóriaigény
Ugyanebben a hipotetikus esetben, amikor teljesen kapcsolt réteget használunk a jellemzők kinyerésére, a 32×32 méretű bemeneti kép és egy 1000 jellemzőt tartalmazó rejtett réteg 106 együtthatót igényel, ami hatalmas memóriaigényt jelent. A konvolúciós rétegben ugyanazokat az együtthatókat használjuk a tér különböző helyein, így a memóriaigény drasztikusan csökken.
Egyszerűbb és jobb képzés
Még a CNN-nek megfelelő standard neurális hálózatot használva, mivel a paraméterek száma sokkal nagyobb lenne, a képzési idő is arányosan nőne. Egy CNN esetében, mivel a paraméterek száma drasztikusan csökken, a képzési idő is arányosan csökken. Továbbá, tökéletes képzést feltételezve, megtervezhetünk egy szabványos neurális hálózatot, amelynek teljesítménye megegyezne a CNN-ével. A gyakorlati képzés során azonban
a CNN-nek megfelelő standard neurális hálózatnak több paramétere lenne, ami a képzési folyamat során több zaj hozzáadásához vezetne. Ezért a CNN-nek megfelelő standard neurális hálózat teljesítménye mindig rosszabb lesz.
A GTSRB-adatkészlet felismerési algoritmusa
A German Traffic Sign Recognition Benchmark (GTSRB) a 2011-es International Joint Conference on Neural Networks (IJCNN) keretében megrendezett többosztályos, egy képet tartalmazó osztályozási kihívás volt, a következő követelményekkel:
- 51 840 német közlekedési táblákról készült kép 43 osztályban (14. és 15. ábra)
- A képek mérete 15×15 és 222×193 között változik
- A képeket osztály és pálya szerint csoportosították, pályánként legalább 30 képpel
- A képek színes képek (RGB), HOG jellemzők, Haar jellemzők és színhisztogramok formájában állnak rendelkezésre
- A verseny csak az osztályozó algoritmusra vonatkozik; a képkockán belüli érdekes régiót kereső algoritmusra nincs szükség
- A tesztsorozatok időbeli információi nem közösek, így az időbeli dimenzió nem használható az osztályozó algoritmusban
14. ábra: GTSRB ideális közlekedési táblák
15. ábra: GTSRB közlekedési táblák károsodással
Cadence algoritmus a közlekedési táblák felismerésére a GTSRB adathalmazon
Cadence különböző algoritmusokat fejlesztett MATLAB-ban a közlekedési táblák felismerésére a GTSRB adathalmaz felhasználásával, kezdve egy alapkonfigurációval, amely egy ismert, táblák felismeréséről szóló cikken alapul . A 99,24%-os helyes felismerési arány és a táblánkénti közel >50 millió szorzótáblánkénti számítási ráfordítás vastag zöld pontként látható a 16. ábrán. A Cadence az új, saját fejlesztésű hierarchikus CNN megközelítéssel lényegesen jobb eredményeket ért el. Ebben az algoritmusban 43 közlekedési táblát öt családra osztottunk. Összesen hat kisebb CNN-t implementáltunk. Az első CNN eldönti, hogy a kapott közlekedési jel melyik családba tartozik. Miután a jel családja ismert, a felismert családnak megfelelő CNN-t (a fennmaradó öt közül az egyiket) futtatjuk le, hogy eldöntsük, melyik közlekedési jel tartozik az adott családba. Ezzel az algoritmussal a Cadence 99,58%-os helyes felismerési arányt ért el, ami az eddigi legjobb GTSRB-n elért CDR.
Teljesítmény vs. bonyolultság kompromisszum algoritmus
A beágyazott alkalmazásokban a CNN-ek bonyolultságának ellenőrzésére a Cadence egy saját fejlesztésű, sajátérték-dekompozíciót alkalmazó algoritmust is kifejlesztett, amely a betanított CNN-t a kanonikus dimenziójára csökkenti. Ezzel az algoritmussal sikerült drasztikusan csökkenteni a CNN komplexitását teljesítménycsökkenés nélkül, illetve kis mértékű, ellenőrzött CDR-csökkentéssel. A 16. ábra mutatja az elért eredményeket:
16. ábra: Teljesítmény vs. komplexitás diagram különböző CNN-konfigurációkhoz közlekedési táblák észlelésére a GTSRB-adatkészletben
A 16. ábra zöld pontja az alapkonfiguráció. Ez a konfiguráció meglehetősen közel áll a hivatkozásban javasolt konfigurációhoz. Képkockánként 53 MMAC-ot igényel 0,76%-os hibaarány mellett.
- A balról számított második pont 1,47 millió MAC-ot igényel képkockánként 1,03%-os hibaarány mellett, azaz, a hibaarány 0,27%-os növekedése esetén a MAC-szükséglet 36,14-szeresére csökkent.
- A bal szélső pont 0,61 MMAC-ot igényel képkockánként 2,26%-os hibaarány eléréséhez, azaz a MAC-ok száma 86,4-szeresére csökken.
- A kék színű pontok egyszintű CNN-re, míg a piros színűek hierarchikus CNN-re vonatkoznak. A hierarchikus CNN a legjobb esetben 99,58%-os teljesítményt ér el.
CNN-ek beágyazott rendszerekben
Amint az 5. ábrán látható, egy látó alrendszer a CNN mellett sok képfeldolgozást igényel. Ahhoz, hogy CNN-eket futtassunk egy képfeldolgozást támogató, energiaszegény beágyazott rendszeren, annak a következő követelményeknek kell megfelelnie:
- Nagy számítási teljesítmény elérhetősége:
- Nagyobb betöltési/tárolási sávszélesség: Az osztályozáshoz használt, teljesen összekapcsolt réteg esetében minden egyes együtthatót csak egyszer használnak fel a szorzás során. Így a terhelés-tárolási sávszélesség igénye nagyobb, mint a processzor által végrehajtott MAC-ek száma.
- Kis dinamikus teljesítményigény: A rendszernek kevesebb energiát kell fogyasztania. Ennek a problémának a megoldásához fixpontos megvalósításra van szükség, ami azt a követelményt támasztja, hogy a teljesítménykövetelményeket a lehető legkevesebb véges számú bit felhasználásával kell teljesíteni.
- Flexibilitás: Lehetővé kell tenni, hogy a meglévő terv könnyen frissíthető legyen új, jobb teljesítményű tervre.
Mivel a beágyazott rendszerekben a számítási erőforrások mindig korlátot jelentenek, ha a felhasználási eset lehetővé teszi a teljesítmény kis mértékű csökkenését, hasznos, ha olyan algoritmus áll rendelkezésre, amely a számítási komplexitásban hatalmas megtakarítást érhet el a teljesítmény ellenőrzött kis mértékű csökkenése árán. A Cadence által a komplexitás és a teljesítmény közötti kompromisszum elérésére szolgáló algoritmussal kapcsolatos, az előző szakaszban ismertetett munkának tehát nagy jelentősége van a CNN-ek beágyazott rendszerekben történő megvalósítása szempontjából.
CNN-ek a Tensilica processzorokon
A Tensilica Vision P5 DSP egy nagy teljesítményű, alacsony fogyasztású DSP, amelyet kifejezetten kép- és számítógépes látásfeldolgozásra terveztek. A DSP VLIW architektúrával rendelkezik SIMD támogatással. Öt kiadási résszel rendelkezik egy legfeljebb 96 bites utasításszóban, és ciklusonként akár 1024 bites szavakat is képes betölteni a memóriából. A belső regiszterek és műveleti egységek 512 bites és 1536 bites tartományban helyezkednek el, ahol az adatok 16, 32 vagy 64 szelet 8b, 16b, 24b, 32b vagy 48b pixeles adatot reprezentálnak.
A DSP megoldja a CNN-ek beágyazott rendszerekben történő megvalósításának összes, az előző szakaszban tárgyalt kihívását.
- A nagy számítási teljesítmény elérhetősége: A DSP a képjelfeldolgozás megvalósításának fejlett támogatásán túlmenően a CNN-ek minden szakaszához rendelkezik utasítás-támogatással. A konvolúciós műveletekhez nagyon gazdag utasításkészlettel rendelkezik, amely támogatja a 8b x 8b, 8b x 16b és 16b x 16b műveleteket támogató szorzási/multiplikációs-akkumulációs műveleteket az előjeles/előjel nélküli adatokhoz. Egy ciklusban akár 64 8b x 16b és 8b x 8b szorzási/multiplikációs-akkumulációs műveletet és 32 16b x 16b szorzási/multiplikációs-akkumulációs műveletet képes végrehajtani. A max pooling és ReLU funkciókhoz a DSP rendelkezik olyan utasításokkal, amelyekkel egy ciklusban 64 8 bites összehasonlítást végezhet. A véges tartományú nemlineáris függvények, például a tanh és a signum megvalósításához olyan utasításokkal rendelkezik, amelyek egy ciklusban 64 7 bites értéket tartalmazó keresőtáblázatot valósítanak meg. Az esetek többségében az összehasonlítás és a keresőtábla utasításai a szorzási/többszörözési-akkumulációs utasításokkal párhuzamosan kerülnek ütemezésre, és nem vesznek igénybe további ciklusokat.
- Nagyobb betöltési/tárolási sávszélesség: A DSP ciklusonként akár két 512 bites betöltési/tárolási művelet elvégzésére is képes.
- Alacsony dinamikus energiaigény: A DSP egy fixpontos gép. A különböző adattípusok rugalmas kezelésének köszönhetően a 16b és 8b vegyes számítás teljes teljesítmény- és energiaelőnye minimális pontosságveszteség mellett érhető el.
- Flexibilitás: Mivel a DSP egy programozható processzor, a rendszer egyszerűen egy firmware frissítéssel új verzióra fejleszthető.
- Floating Point:
A Vision P5 DSP-t egy teljes körű szoftvereszközkészlettel szállítják, amely magában foglal egy nagy teljesítményű C/C++ fordítót automatikus vektorizációval és ütemezéssel a SIMD és VLIW architektúra támogatására, assembly nyelv írása nélkül. Ez az átfogó eszközkészlet tartalmazza továbbá a linkert, az asszemblert, a hibakeresőt, a profilozót és a grafikus vizualizációs eszközöket. Az átfogó utasításkészlet-szimulátor (ISS) lehetővé teszi a tervező számára a teljesítmény gyors szimulálását és értékelését. Ha nagy rendszerekkel vagy hosszú tesztvektorokkal dolgozik, a gyors, funkcionális TurboXim szimulátor opcióval az ISS-nél 40-szer-80-szor gyorsabb sebességet érhet el a hatékony szoftverfejlesztés és funkcionális ellenőrzés érdekében.
A Cadence egy egyrétegű architektúrájú CNN-t valósított meg a DSP-n a német közlekedési táblák felismeréséhez. A Cadence 99,403%-os CDR-t ért el az adatminták 16 bites kvantálásával és az együtthatók 8 bites kvantálásával minden rétegben ennél az architektúránál. Két konvolúciós réteggel, három teljesen összekapcsolt réteggel, négy ReLU réteggel, három max pooling réteggel és egy tanh nemlineáris réteggel rendelkezik. A Cadence átlagosan 38,58 MACs/ciklus teljesítményt ért el a teljes hálózatra, beleértve az összes max pooling, tanh és ReLU réteg ciklusait is. A Cadence a legjobb esetben 58,43 MAC/ciklus teljesítményt ért el a harmadik réteg esetében, beleértve a tanh és ReLU funkciók ciklusait is. Ez a 600 MHz-en futó DSP egy másodperc alatt több mint 850 közlekedési jelet képes feldolgozni.
A CNN-ek jövője
A neurális hálózatok kutatásának ígéretes területei közé tartoznak a hosszú rövid távú memóriát (LSTM) használó rekurrens neurális hálózatok (RNN). Ezek a területek az idősoros felismerési feladatok, például a beszédfelismerés és a kézírás-felismerés terén a technika jelenlegi állását nyújtják. Az RNN/autoencoderek képesek kézírás/beszéd/képek generálására is bizonyos ismert eloszlással ,,,,.
A mélyhitű hálózatok, egy másik ígéretes hálózattípus, amely korlátozott Boltzman-gépeket (RMB-ket)/autoencodereket használ, mohón, rétegenként egyenként képezhetőek, és így könnyebben képezhetőek a nagyon mély hálózatok ,.
Következtetés
A CNN-ek a legjobb teljesítményt nyújtják a minta/képfelismerési problémákban, és bizonyos esetekben még az embert is felülmúlják. A Cadence a saját fejlesztésű algoritmusokkal és architektúrákkal a CNN-ekkel az iparág legjobb eredményeit érte el. Hierarchikus CNN-eket fejlesztettünk ki a közlekedési táblák felismerésére a GTSRB-ben, és ezzel az eddigi legjobb teljesítményt értük el ezen az adathalmazon. Egy másik algoritmust fejlesztettünk ki a teljesítmény és a komplexitás közötti kompromisszumra, és 86-szoros komplexitáscsökkentést tudtunk elérni kevesebb mint 2%-os CDR-romlás mellett. A Cadence képalkotáshoz és számítógépes látáshoz készült Tensilica Vision P5 DSP a képi jelfeldolgozáshoz szükséges tulajdonságok mellett a CNN-ek megvalósításához szükséges összes funkcióval rendelkezik. Több mint 850 közlekedési tábla felismerése végezhető el a DSP 600 MHz-en történő futtatásával. A Cadence Tensilica Vision P5 DSP-je szinte ideális funkciókkal rendelkezik a CNN-ek futtatásához.”
“Mesterséges neurális hálózat”. Wikipedia. https://en.wikipedia.org/wiki/Artificial_neural_network
Karpathy, Andrej. 2015. “Neurális hálózatok 1. rész: Az architektúra beállítása”. Notes for CS231n Convolutional Neural Networks for Visual Recognition, Stanford University. http://cs231n.github.io/neural-networks-1/
“Convolutional neural network”. Wikipedia. https://en.wikipedia.org/wiki/Convolutional_neural_network
Sermanet, Pierre és Yann LeCun. 2011. “Közlekedési táblák felismerése több skálájú hálózatokkal”. Courant Institute of Mathematical Sciences, New York University. http://ieeexplore.ieee.org/xpl/login.jsp?tp=&arnumber=6033589
Ciresan, Dan, Ueli Meier és Jürgen Schmidhuber. 2012. “Több oszlopos mély neurális hálózatok képosztályozáshoz”. 2012 IEEE Conference on Computer Vision and Pattern Recognition (New York, NY: Institute of Electrical and Electronics Engineers (IEEE)). http://ieeexplore.ieee.org/xpl/login.jsp?tp=&arnumber=6248110
Ciresan, Dan, Ueli Meier, Jonathan Masci, Luca M. Gambardella és Jürgen Schmidhuber. 2011. “Rugalmas, nagy teljesítményű konvolúciós neurális hálózatok képosztályozáshoz”. Proceedings of the Twenty-Second International Joint Conference on Artificial Intelligence-Volume Two: 1237-1242. Retrieved 17 November 2013. http://people.idsia.ch/~juergen/ijcai2011.pdf
Lawrence, Steve, C. Lee Giles, Ah Chung Tsoi és Andrew D. Back. 1997. “Face Recognition: A Convolutional Neural Network Approach (Egy konvolúciós neurális hálózati megközelítés)”. IEEE Transactions on Neural Networks, 8. kötet; 1. szám. http://ieeexplore.ieee.org/xpl/login.jsp?tp=&arnumber=554195
Russakovsky, O. et al. 2014. “ImageNet Large Scale Visual Recognition Challenge (ImageNet nagyszabású vizuális felismerési kihívás)”. International Journal of Computer Vision. http://link.springer.com/article/10.1007/s11263-015-0816-y#
Ovtcharov, Kalin, Olatunji Ruwarse, Joo-Young Kim et al. Feb 22, 2015. “Mély konvolúciós hálózatok gyorsítása speciális hardver használatával”. Microsoft Research. http://research-srv.microsoft.com/pubs/240715/CNN%20Whitepaper.pdf
Stallkamp, J., M. Schlipsing, J. Salmen és C. Igel. “Ember kontra számítógép: Benchmarking Machine Learning Algorithms For Traffic Sign Application (Gépi tanulási algoritmusok összehasonlítása közlekedési táblák alkalmazásához).” IJCNN 2011. http://www.sciencedirect.com/science/article/pii/S0893608012000457
Hochreiter, Sepp és Jürgen Schmidhuber. 1997. “Hosszú rövid távú memória”. Neural Computation, 9(8):1735-1780. ftp://ftp.idsia.ch/pub/juergen/lstm.pdf
Graves, Alex. 2014. “Generating Sequences With Recurrent Neural Networks (Sorozatok generálása rekurrens neurális hálózatokkal)”. http://arxiv.org/abs/1308.0850
Schmidhuber, Jurgen. 2015. “Rekurrens neurális hálózatok”. http://people.idsia.ch/~juergen/rnn.html
Olshausen, Bruno A. és David J. Field. 1996. “Egyszerű sejtek receptív mező tulajdonságainak megjelenése természetes képek ritka kódjának tanulásával”. Nature 381.6583: 607-609. http://www.nature.com/nature/journal/v381/n6583/abs/381607a0.html
Hinton, G. E. és Salakhutdinov, R. R. 2006. “Az adatok dimenzionalitásának csökkentése neurális hálózatokkal”. Science vol. 313 no. 5786 pp. 504-507. http://www.sciencemag.org/content/suppl/2006/08/04/313.5786.504.DC1.
Hinton, Geoffrey E. 2009. “Deep belief networks (Mély hiedelemhálózatok)”. Scholarpedia, 4(5):5947.
http://www.scholarpedia.org/article/Deep_belief_networks