Apparaten zoals fitnesstrackers meten continu sensordata zoals je hartslag. Met gepulste neurale netwerken kunnen hierin snel patronen worden gedetecteerd. Neuromorfische chips zoals die van het Nederlandse Innatera Nanosystems doen dat heel energiezuinig.

denkwerk

 

Koen Vervloesem

 

 

 

Onze hersenen dienen al sinds jaar en dag als inspiratie om computers ‘intelligentie’ te geven. Een belangrijke aanpak in machine learning wordt gevormd door (kunstmatige) neurale netwerken. Ze bootsen de werking van ons brein na, dat een biologisch neuraal netwerk vormt: een kluwen van talloze verbindingen tussen neuronen (hersencellen).

Een kunstmatig neuraal netwerk bestaat gewoonlijk uit meerdere lagen: een invoerlaag van neuronen die de invoer van een probleem voorstellen (bijvoorbeeld de pixels in een foto), een uitvoerlaag van neuronen die de oplossing van het probleem voorstellen (bijvoorbeeld: het is een foto van een hond), en een of meerdere tussenliggende (verborgen) lagen die berekeningen uitvoeren (bijvoorbeeld vacht, grootte, aantal poten enzovoort herkennen).

Een neuraal netwerk programmeer je niet door expliciet te beschrijven hoe het een probleem moet oplossen; je ‘traint’ het netwerk door talrijke voorbeelden van een probleem aan te bieden. De parameters van alle neuronen van het neurale netwerk convergeren dan tijdens die training naar de juiste waarden, zodat het de taak leert uit te voeren

neuraal netwerk 2

Een volledig verbonden neuraal netwerk met twee verborgen lagen

Gepulste neurale netwerken

Niet alleen het trainen van neurale netwerken vraagt veel energie, maar ook het uitvoeren (inference) van hun taak. Een deel van de verklaring daarvoor ligt in het feit dat klassieke neurale netwerken ons brein eigenlijk maar oppervlakkig nabootsen. Neuronen in onze hersenen communiceren immers via pulsen.

Gemiddeld sturen neuronen in ons brein één puls per seconde, maar ze zijn niet continu actief. Soms doen ze een seconde niets, en op andere momenten vuren ze tien keer op een seconde. Wanneer ze geen puls sturen, verbruiken ze ook geen energie. Dat aspect van die pulsen hebben de klassieke neurale netwerken altijd genegeerd. Continue wiskundige signalen zijn nu eenmaal wiskundig makkelijker te hanteren dan de discontinue pulsen van onze hersenen.

Toch is er al sinds het begin van de ontwikkeling van AI ook een aanpak geweest om neurale netwerken te modelleren met pulsen. Dat noemen we een ‘gepulst neuraal netwerk’ (spiking neural network). Maar deze netwerken, die dus net zoals biologische neuronen geen energie verbruiken wanneer er niets gebeurt, zijn door hun wiskundige complexiteit nog maar pas doorgebroken.

Media kit SNN 2

     Een gepulst neuraal netwerk vindt patronen in pulsen

In een stroomversnelling

De laatste jaren is het onderzoek naar gepulste neurale netwerken in een stroomversnelling terechtgekomen. Er worden steeds efficiëntere algoritmes ontwikkeld om met de complexiteit ervan om te gaan. En terwijl het voor ontwikkelaars vroeger moeilijk was om gepulste neurale netwerken te trainen, kan dat tegenwoordig al met frameworks waarmee ze al vertrouwd zijn, zoals PyTorch (https://pytorch.org) en TensorFlow (https://www.tensorflow.org).

Uiteindelijk moet je die gepulste neurale netwerken ook in hardware kunnen uitvoeren, net zoals dat bij traditionele neurale netwerken gebeurt. En ook hier is de laatste jaren grote vooruitgang geboekt. Zo introduceerde Intel in 2018 zijn Loihi-chip en in 2021 de opvolger Loihi 2. Die laatste implementeert een gepulst neuraal netwerk met een miljoen neuronen. De Loihi-chips zijn vooral voor onderzoek bedoeld.

Commerciële toepassingen

Ook voor commercieel gebruik worden er al chips geproduceerd die gepulste neurale netwerken kunnen uitvoeren. Zo lanceerde het Australische bedrijf BrainChip (https://brainchip.com) onlangs zijn neuromorfische processor Akida AKD1000 (https://brainchip.com/akida-neural-processor-soc/) en het Zwitserse SynSense (https://www.synsense.ai) deed hetzelfde met zijn chip Xylo (https://www.synsense.ai/products/xylo/). Een andere fabrikant is Innatera Nanosystems (https://innatera.com) uit Rijswijk. We spraken met Sumeet Kumar, de CEO van het bedrijf dat in 2018 werd opgericht als een spin-off van de TU Delft.

Sumeet Kumar portrait 2

          Sumeet Kumar, CEO van Innatera Nanosystems
                                           ( bron: Innatera Nanosystems)

Innatera heeft een Spiking Neural Processor ontwikkeld, de T1 (https://innatera.com/products/spiking-neural-processor-t1), die het later dit jaar in productie brengt. De T1 is een neuromorfische microcontroller voor sensortoepassingen. De chip wordt in een apparaatje vlakbij de sensor gemonteerd en kan vervolgens in realtime de sensordata analyseren en daarin patronen herkennen. “We specialiseren met onze chip in toepassingen waarbij de sensor continu metingen uitvoert en waarbij je geïnteresseerd bent in sporadisch voorkomende patronen. Denk daarbij aan een fitnesstracker die de hele tijd je hartslag meet en een extra overslag van je hart kan detecteren”, zegt Kumar.

Omdat het apparaatje doorgaans met een batterij is gevoed en de chip in deze toepassingen continu data moet verwerken, moet dat heel efficiënt gebeuren, met zo min mogelijk energieverbruik. Bovendien moet dat ook snel kunnen, zodat het apparaatje bijna onmiddellijk op een gedetecteerd patroon kan reageren. “Voor deze toepassingen is doorgaans minder dan 1 mW vermogen beschikbaar en moet de processor in minder dan een milliseconde kunnen reageren”, weet Kumar.

Gepulste neurale netwerken zijn volgens de CEO van Innatera ideaal voor dit soort situaties. Omdat ze werken met pulsen die op nauwkeurig getimede pieken optreden, zijn ze goed uitgerust voor het identificeren van patronen in tijdreeksen. “Dit maakt gepulste neurale netwerken 100 keer kleiner dan traditionele neurale netwerken. De meeste hebben slechts enkele kilobytes nodig.”

Alles in één chip

De T1 is een SoC (System-on-Chip) die bestaat uit verschillende deelchips. Daardoor hebben producenten van apparaatjes maar één chip nodig om met de sensor te communiceren en de data te verwerken. Het hart van de SoC bestaat uit een 32-bits processor van de RISC-V-architectuur met 384 KB SRAM. Deze communiceert met de sensor via standaard interfaces zoals I²C en UART en heeft voldoende rekenkracht om signalen nog na te bewerken.

Het grootste deel van de SoC bestaat uit de neuromorfische chip. Deze beschikt over 500 neuronen en 60.000 verbindingen daartussen om een gepulst neuraal netwerk te implementeren. Verder bevat de SoC ook een versneller voor traditionele convolutionele neurale netwerken (CNN’s). “Sommige hardwareproducenten willen namelijk de uitvoer van een gepulst neuraal netwerk nog verwerken aan de hand van een klassiek neuraal netwerk. De aanwezigheid van die versneller biedt hen de hoogst mogelijke flexibiliteit”, voegt Kumar toe.

SNP T1 2a

De Spiking Neural Processor T1 van Innatera Nanosystems bestaat uit een RISC-V-processor,
een neuromorfische chip voor gepulste neurale netwerken en een versneller voor convolutionele
neurale netwerken

Toepassingen

De T1 is het meest geschikt voor de verwerking of classificatie van sensordata van ruimtelijke, temporele of spatiotemporele vorm. Bij ruimtelijke data gaat het bijvoorbeeld over patronen in radarbeelden. Temporele data zijn bijvoorbeeld elektrocardiogrammen (ECG’s), registraties van de elektrische activiteit van het hart. Bij spatiotemporele data gaat het om het herkennen van patronen of vormen die doorheen de tijd veranderen. In al deze gevallen heeft de verwerking baat bij het minimale energieverbruik van gepulste neurale netwerken.

Innatera heeft de T1 vergeleken met een ultralowpower microcontroller met CNN-versneller voor diverse toepassingen: classificatie van audioscènes, geluidsherkenning (het herkennen van een wakeword voor een stemassistent) en gebaren herkennen met een radarsensor. Het energieverbruik ligt in al deze gevallen rond de honderd keer lager en ook het model is aanzienlijk kleiner. Bovendien is de reactiesnelheid veel korter.

De classificatie van audioscènes is een typische toepassing in koptelefoons. De instellingen van de equalizer moeten variëren naargelang de omgeving waarin je je bevindt, bijvoorbeeld bij je thuis of in een drukke straat. Daarvoor moet continu een algoritme draaien om het geluid te analyseren, de juiste scène te classificeren en vervolgens de equalizer aan te passen. “Dat is een energie-intensieve taak die de batterijduur van je koptelefoon aanzienlijk kan verkorten”, legt Kumar uit. “Met een gepulst neuraal netwerk op onze T1 hebben we honderd keer minder energie nodig en is het model 33 keer kleiner.”

In geluidsherkenning ziet Innatera dezelfde verbetering. Het gaat dan om toepassingen zoals het herkennen van het geluid van brekend glas in een beveiligingscamera, of het herkennen van het geluid van een huilende baby. “De T1 verbruikt 88 keer minder energie dan de microcontroller met CNN-accelerator en het model is vier keer kleiner. Ook de reactietijd is korter.”

De radarsensor is een van de complexere toepassingen. “Bij het herkennen van gebaren gaat het vaak om grotere bewegingen zoals het bewegen van je hand. Maar met een radarsensor kun je ook heel fijne bewegingen zoals het vegen met je vinger herkennen. Onze T1 met een gepulst neuraal netwerk verbruikt 42 keer minder energie, heeft een reactiesnelheid die maar liefst 167 keer lager is en resulteert in een model dat 30 keer kleiner is.”

T1 paper clip 2

De T1 is een hele kleine chip die in draagbare apparaten pas

Softwareontwikkeling

Hardware alleen is niet genoeg, je moet de chip ook kunnen programmeren. Ook op dit gebied heeft Innatera inspanningen verricht. Hun software development kit (SDK) Talamo (https://innatera.com/products/talamo-software-development-kit) voor de Spiking Neural Processor integreert met het populaire machine learning framework PyTorch. “Frameworks zoals PyTorch en TensorFlow hebben veel bijgedragen aan de populariteit van klassieke neurale netwerken. Maar zo’n framework misten we voor gepulste neurale netwerken”, zegt Kumar. “Met Talamo hopen we dezelfde vorm van standaardisatie te bieden en de populariteit van gepulste neurale netwerken een boost te geven.”

Dankzij Talamo kunnen ontwikkelaars dan ook blijven werken met hun vertrouwde framework PyTorch blijven werken. Je traint op je computer je gepulste neurale netwerk op de traditionele manier zoals je al gewoon bent van klassieke neurale netwerken. Talamo’s front-end voor PyTorch compileert dit vervolgens tot een model dat op de neuromorfische hardware van Innatera draait. De ontwikkelaars hoeven daarvoor niets te weten over de onderliggende processorarchitectuur. “Gepulste neurale netwerken waren vroeger moeilijk om te trainen, maar in de afgelopen vijf jaar zijn er enkele betrouwbare methodes ontwikkeld die het trainen eenvoudiger maken,” voegt Kumar toe. “Ik geloof dat gepulste neurale netwerken nu echt wel aan populariteit gaan winnen.”