Smart City verbonden door IoT (Afbeelding door Tumisu via Pixabay )

Deze blogpost is oorspronkelijk gepubliceerd op de website van Xailient. Het is hier herdrukt met toestemming van Xailient.

Of je nu nieuw bent met computervisie of een expert bent, je hebt waarschijnlijk gehoord dat AlexNet de ImageNet-uitdaging in 2012 won. Dat was het keerpunt in de geschiedenis van computervisie, omdat het aantoonde dat deep learning-modellen taken kunnen uitvoeren die als zeer moeilijk werden beschouwd. voor computers, met een ongekend niveau van nauwkeurigheid.

Maar wist je dat AlexNet 62 miljoen trainbare parameters had?

Interessant toch.

Een ander populair model VGGNet dat in 2014 uitkwam, had zelfs meer, 138 miljoen trainbare parameters.

Dat is meer dan 2 keer dat van AlexNet.

Je denkt misschien… Ik weet dat hoe dieper het model is, hoe beter het zal presteren. Dus waarom benadrukt u het aantal parameters? Dieper het netwerk, is het duidelijk dat er meer parameters zullen zijn.

Complexiteit en nauwkeurigheid van bekende convolutionele neurale netwerknetwerken (CNN). #Parameters en #MACC's zijn in de volgorde van miljoenen in de bovenstaande tabel [8]

Natuurlijk zijn deze diepe modellen benchmarks geweest in de computervisie-industrie. Maar als je een echte applicatie wilt maken, zou je dan voor deze modellen kiezen?

Ik denk dat de echte vraag die we ons hier moeten stellen is: KAN JE DEZE MODELLEN GEBRUIKEN IN JE TOEPASSING?

Houd die gedachte even vast!

Laat me hier even van afwijken, voordat ik bij het antwoord kom. (Maar ga gerust naar het einde.)

Het aantal IoT-apparaten zal naar verwachting in 2030 125-500 miljard bedragen en aangenomen dat 20% van hen camera's zal hebben, is de markt voor IoT-apparaten met camera's een markt van 13-100 miljard eenheden. [9,10,11]

IoT-camera-apparaten zijn onder meer beveiligingscamera's voor in huis (zoals Amazon Ring en Google Nest) die de deur openen wanneer je thuiskomt of je een melding sturen als het een onbekende persoon ziet, camera's op slimme voertuigen die je helpen bij het rijden, of camera's op een parkeerplaats die open de poort bij het binnenkomen of verlaten, om er maar een paar te noemen! Sommige van deze IoT-apparaten maken tot op zekere hoogte al gebruik van AI en andere maken hun achterstand langzaam in.

Smart Home-systeem verbonden met IoT-apparaten (Afbeelding door Gerd Altmann van Pixabay)

Veel toepassingen in de echte wereld vereisen realtime verwerkingsmogelijkheden op het apparaat. Een zelfrijdende auto is daar een perfect voorbeeld van. Om ervoor te zorgen dat auto's veilig over elke weg kunnen rijden, moeten ze de weg in realtime observeren en stoppen als een persoon voor de auto loopt. In zo'n geval moet het verwerken van visuele informatie en het nemen van een beslissing in realtime, op het apparaat gebeuren.

Dus terugkomend op de eerdere vraag: KAN JE DEZE MODELLEN GEBRUIKEN IN JE TOEPASSING?

Als u Computer Vision gebruikt, is de kans groot dat uw toepassing een IoT-apparaat nodig heeft, en als u naar de prognose voor de IoT-apparaten kijkt, bevindt u zich in goed gezelschap.

De grootste uitdaging is dat IoT-apparaten beperkte middelen hebben; ze hebben een beperkt geheugen en een lage rekenkracht. Hoe meer trainbare parameters in een model, hoe groter de omvang. De inferentietijd van een deep learning-model neemt toe samen met de toename van het aantal trainbare parameters. Bovendien hebben modellen met hoge parameters meer energie en ruimte nodig in vergelijking met een kleiner netwerk met minder parameters. Het eindresultaat is dat wanneer de grootte van het model groot is, het moeilijk te implementeren is op apparaten met beperkte middelen. Hoewel deze modellen met succes geweldige resultaten hebben behaald in een laboratorium, zijn ze niet bruikbaar in veel toepassingen in de echte wereld.

In het laboratorium heb je dure en snelle GPU's om dit niveau van prestaties [1], maar als je het in de echte wereld toepast, sluiten de kosten, het vermogen, de hitte en andere problemen de strategie 'gooi er gewoon meer ijzer tegen' uit.

Het implementeren van deep learning-modellen in de cloud is een optie omdat het een hoge reken- en opslagbeschikbaarheid kan bieden. Het zal echter slechte responstijden hebben vanwege netwerklatentie, wat onaanvaardbaar is in veel real-time toepassingen (en laat me niet beginnen over de impact van de netwerkconnectiviteit op de algehele betrouwbaarheid of privacy!).

Kortom, AI moet dicht bij de gegevensbron verwerken, bij voorkeur op het IoT-apparaat zelf!

Dat laat ons nog één optie: Verkleining van het model.

Het maken van een kleiner model dat kan werken onder de beperkingen van de edge-apparaten is een belangrijke uitdaging. En dat ook zonder concessies te doen aan de nauwkeurigheid. Het is gewoon niet genoeg om een ​​klein model te hebben dat kan draaien op apparaten met beperkte middelen. Het zou goed moeten presteren, zowel in termen van nauwkeurigheid als inferentiesnelheid.

Dus hoe plaats je deze modellen op beperkte apparaten? Hoe maak je ze bruikbaar in toepassingen in de echte wereld?

Hier zijn een paar technieken die kunnen worden gebruikt om de modelgrootte te verkleinen, zodat u ze op uw IoT-apparaat kunt implementeren.

Pruning

Pruning vermindert het aantal parameters door overbodige, onbelangrijke verbindingen die niet prestatiegevoelig zijn. Dit helpt niet alleen de totale modelgrootte te verkleinen, maar bespaart ook rekentijd en energie.

Snoeien (Bron: Intel)

Voors:

  • Kan tijdens of na de training worden toegepast.
  • Kan de inferentietijd/modelgrootte versus nauwkeurigheid voor een bepaalde architectuur verbeteren [12]
  • Kan worden toegepast op zowel convolutionele als volledig verbonden lagen

Nadelen:

  • Over het algemeen helpt het niet zoveel als overstappen naar een betere architectuur [12]
  • Implementaties die latentie ten goede komen, zijn zeldzaam omdat TensorFlow alleen voordelen biedt voor de modelgrootte

Snelheid en grootte compromis voor originele en gesnoeide modellen [13]

Kwantisering

In DNN worden gewichten opgeslagen als 32-bits getallen met drijvende komma. Kwantisering is het idee om deze gewichten weer te geven door het aantal bits te verminderen. De gewichten kunnen worden gekwantiseerd naar 16-bit, 8-bit, 4-bit of zelfs met 1-bit. Door het aantal gebruikte bits te verminderen, kan de omvang van het diepe neurale netwerk aanzienlijk worden verminderd.

INSERT GRAPHIC
Kwantisering (bron: Intel)

Voors:

  • Kwantisering kan zowel tijdens als na de training worden toegepast
  • Kan worden toegepast op zowel convolutionele als volledig verbonden lagen

Nadelen:

  • Gekwantificeerde gewichten maken het moeilijker om neurale netwerken te convergeren. Er is een kleinere leersnelheid nodig om ervoor te zorgen dat het netwerk goede prestaties levert. [13]
  • Gekwantificeerde gewichten maken terug-propagatie onhaalbaar omdat gradiënt niet terug kan propageren door discrete neuronen. Er zijn benaderingsmethoden nodig om de gradiënten van de verliesfunctie te schatten met betrekking tot de input van de discrete neuronen [13]
  • De quantize-aware training van TensorFlow doet geen kwantisering tijdens de training zelf. Tijdens de training worden alleen statistieken verzameld en deze worden gebruikt om de post-training te kwantificeren. Dus ik weet niet zeker of bovenstaande punten als nadelen moeten worden opgenomen

Kennisdistillatie

Bij kennisdestillatie wordt een groot, complex model getraind op een grote dataset. Wanneer dit grote model kan generaliseren en goed kan presteren op onzichtbare gegevens, wordt het overgebracht naar een kleiner netwerk. Het grotere model staat ook bekend als het docentenmodel en het kleinere netwerk staat ook bekend als het studentennetwerk.

Kennisdistillatie (Bron: Towards Data Science)

Selectieve aandacht

Selectieve aandacht is het idee om te focussen op objecten of interessante elementen, terwijl de andere (vaak achtergrond- of andere taak-irrelevante objecten) worden weggegooid. Het is geïnspireerd op de biologie van het menselijk oog. Als we naar iets kijken, focussen we ons slechts op één of enkele objecten tegelijk, en andere gebieden vervagen.

Selectieve aandacht

Dit vereist het toevoegen van een selectief aandachtsnetwerk stroomopwaarts van uw bestaande AI-systeem of het op zichzelf gebruiken als het uw doel dient. Het hangt af van het probleem dat u probeert op te lossen.

Voors:

  • Sneller gevolgtrekking
  • Kleiner model (bijv. een gezichtsdetector en bijsnijder van slechts 44 KB!)
  • Nauwkeurigheidswinst (door stroomafwaartse AI te focussen op alleen de regio's/objecten van belang)

Nadelen:

  • Ondersteunt alleen training vanaf het begin

Lage factorisatie

Maakt gebruik van matrix/tensor-decompositie om de informatieve parameters te schatten. Een gewichtsmatrix A met afmeting m x n en een rangorde r wordt vervangen door matrices met kleinere afmetingen. Deze techniek helpt bij het ontbinden van een grote matrix in kleinere matrices.

Factorisatie van lage rang (bron: ResearchGate)

Voors:

  • Kan tijdens of na de training worden toegepast
  • Kan worden toegepast op zowel convolutionele als volledig verbonden lagen
  • Kan de trainingstijd verkorten wanneer toegepast tijdens de training

Het beste is dat alle bovenstaande technieken complementair zijn aan elkaar. Ze kunnen als zodanig worden toegepast of gecombineerd met één of meerdere technieken. Door gebruik te maken van een drietraps pijplijn; snoeien, kwantiseren en Huffman-codering om de omvang van het vooraf getrainde model te verkleinen, werd het VGG16-model dat was getraind op de ImageNet-dataset teruggebracht van 550 naar 11,3 MB. De meeste van de hierboven besproken technieken kunnen worden toegepast op vooraf getrainde modellen, als een nabewerkingsstap om uw modelgrootte te verkleinen en de inferentiesnelheid te verhogen. Maar ze kunnen ook tijdens de training worden toegepast. Kwantisering wint aan populariteit en is nu ingebakken in machine learning-frameworks. We kunnen verwachten dat snoeien binnenkort in populaire kaders zal worden ingebakken.

In dit artikel hebben we gekeken naar de motivatie voor het implementeren van op deep learning gebaseerde modellen op apparaten met beperkte middelen, zoals IoT-apparaten, en de noodzaak om de modelgrootte te verkleinen zodat ze passen zonder afbreuk te doen aan de nauwkeurigheid. We hebben ook de voor- en nadelen besproken van enkele moderne technieken om deep-learningmodellen te comprimeren. Ten slotte kwamen we op het idee dat elk van de technieken afzonderlijk kan worden toegepast of gecombineerd kan worden.

Zorg ervoor dat u alle technieken voor uw model onderzoekt, zowel na de training als tijdens de training en ontdek wat het beste voor u werkt.

Referenties:

  1. https:///towardsdatascience.com/machine-learning-models-compression-and-quantization-simplified-a302ddf326f2
  2. Buciluǎ, C., Caruana, R., & Niculescu-Mizil, A. (2006, augustus). Modelcompressie. In Proceedings van de 12e ACM SIGKDD internationale conferentie over kennisontdekking en datamining (pp. 535–541).
  3. Cheng, Y., Wang, D., Zhou, P., & Zhang, T. (2017). Een overzicht van modelcompressie en -versnelling voor diepe neurale netwerken. arXiv preprint arXiv:1710.09282.
  4. http://mitchgordon.me/machine/learning/2020/01/13/do-we-really-need-model-compression.html
  5. https://software.intel.com/content/www/us/en/develop/articles/compression-and-acceleration-of-high-dimensional-neural-networks.html
  6. https://towardsdatascience.com/the-w3h-of-alexnet-vggnet-resnet-and-inception-7baaaecccc96
  7. https://www.learnopencv.com/number-of-parameters-and-tensor-sizes-in-convolutional-neural-network/
  8. Véstias, M. P. (2019). Een overzicht van convolutionele neurale netwerken aan de rand met herconfigureerbare computing. Algoritmen, 12(8), 154.
  9. https://technology.informa.com/596542/number-of-connected-iot-devices-will-surge-to-125-billion-by- 2030-ihs-markit-says
  10. https://www.cisco.com/c/dam/en/us/products/collateral/se/internet-of-things/at-a-glance- c45-731471.pdf
  11. Mohan, A., Gauen, K., Lu, Y.H., Li, W.W., & Chen, X. (2017, mei). Internet of video things in 2030: een wereld met veel camera's. In 2017 IEEE International Symposium on Circuits and Systems (ISCAS) (pp. 1-4). IEEE.
  12. Blalock, D., Ortiz, JJG, Frankle, J., & Guttag, J. (2020). Wat is de staat van het snoeien van neurale netwerken?. arXiv preprint arXiv:2003.03033.
  13. Guo, Y. (2018). Een onderzoek naar methoden en theorieën van gekwantiseerde neurale netwerken. arXiv preprint arXiv:1808.04752.

Sabina Pokhrel
Customer Success AI Engineer, Xailient

0

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *