Binaire neurale netwerken (BNN)

Terwijl neurale netwerken steeds krachtiger worden en meer en meer toepassingen vinden, stijgt ook de vraag naar eenvoudige varianten die op een beperkte hardware kunnen draaien (edge devices, ASIC’s…). Binaire neurale netwerken (BNN) bieden hierop een antwoord, al vragen ze wel om een specifieke benadering bij het trainen ervan.

De komst van krachtige CPU’s, en eigenlijk vooral GPU’s (Graphics Processing Unit), is cruciaal geweest voor de doorbraak van deep learning – de discipline in artificiële intelligentie die gebruikmaakt van neurale netwerken.

Grafische kaarten lenen zich uitstekend voor het parallel uitvoeren van het rekenwerk dat zo typisch is voor neurale netwerken. In een neuraal netwerk wordt een “organisch algoritme” tot stand gebracht door opeenvolgende lagen van nodes berekeningen te laten doen op de output van de nodes in de vorige laag en hun resultaten weer door te geven aan de volgende laag. De berekening in een node komt typisch neer op het maken van een soort gewogen gemiddelde van outputs in de vorige laag. De training van een netwerk kan gezien worden als het zoeken naar de juiste parameters voor deze berekeningen.

Voor complexe toepassingen zoals beeldherkenning is al snel een omvangrijk netwerk en dus ook veel rekenkracht vereist. Toch zijn er ook heel wat toepassingen van AI – zoals het detecteren van anomalieën in een real-time signaal – die even goed op een compacte hardware uitgevoerd kunnen worden. Het is dan zaak om een neuraal netwerk zodanig te optimaliseren dat de vereiste rekenkracht beperkt kan worden.

Zwevendekommagetallen

Een van de methodes die gebruikt worden in het optimaliseren van neurale netwerken is het zoeken en elimineren van nodes waarvan de output nauwelijks bijdraagt tot het eindresultaat. Met andere woorden: indien een neuraal netwerk na het trainen slechts een beperkt gewicht toegekend heeft aan de output van een bepaalde node maakt het niet zoveel verschil wanneer men de berekening in die node simpelweg vervangt door een constante waarde.

Een andere methode om het nodige rekenwerk te reduceren bestaat erin om de gewichten en andere variabelen in het netwerk minder nauwkeurig te maken. Traditioneel worden in neurale netwerken 32-bits zwevendekommagetallen (wat een woord hé) gebruikt maar voor heel wat toepassingen volstaan lichtere datatypes die dan ook minder rekencapaciteit vergen. Net als bij de eliminatie van nodes gaat dit onvermijdelijk ten koste van de betrouwbaarheid van het eindresultaat, waarbij dus per toepassing bekeken moet worden hoe ver men daar in kan gaan.

Het gebruik van lichtere datatypes kan men doortrekken tot men finaal eindigt bij binaire data en zo komen we bij binaire neurale netwerken (BNN). In zo een netwerk geeft elke node -1 of +1 als output en ook voor de gewichten bij het berekenen van de volgende laag worden alleen deze waarden gebruikt. Qua vereiste rekenkracht is zo een netwerk a walk in the park voor alles wat zich ook maar enigszins CPU noemt.

Bayesiaanse interferentie

De keuze voor binaire netwerken is een goede oplossing om AI naar het niveau van controllers en embedded systemen te brengen, ten minste voor het runnen van een applicatie (wat men in de wereld van neurale netwerken “inference” noemt). Het trainen van het netwerk is een apart verhaal, dat in het geval van binaire netwerken ook een heel aparte benadering vraagt.

In een “klassiek” neuraal netwerk bestaat het trainen er in om met gelabelde data (een verzameling van inputs waarvan telkens de verwachte output gekend is) op zoek te gaan naar de paramaters met het beste resultaat. Dat doet men door de parameters bij elke nieuwe dataset lichtjes aan te passen tot het netwerk in staat is om te doen wat het moet doen.

Bij een binair netwerk is het lichtjes aanpassen van de parameters echter niet mogelijk. Een oplossing hiervoor is dat men de klassieke manier van trainen toepast, met een netwerk met reële getallen en dat men dat netwerk na het trainen vertaalt naar een binair netwerk dat in de inference fase gebruikt kan worden. Het trainen kan dan wel niet in situ op de beperkte hardware gebeuren.

Een andere oplossing is het toepassen van Bayesiaanse interferentie om de binaire parameters te bepalen. Het is een methode die in de statistiek gebruikt wordt om de waarschijnlijkheid voor een bepaalde hypothese bij te werken telkens wanneer zich nieuwe, bijkomende informatie aandient. En dat is nu net wat er bij het trainen van een neuraal netwerk gebeurt. Bayesiaanse interferentie komt er in feite op neer dat de black box benadering van neurale netwerken vervangen wordt door een eerder deterministische methode om de parameters in een netwerk te bepalen. Je zou de vraag kunnen stellen of het dan nog deep learning moet heten, maar dat hoeft voor de toepassing uiteraard geen verschil te maken.

© Productivity.be


Feel free to share

Newsletter

News

Emerson’s New Comprehensive Automation Platform Empowers Decisive Action from Plant to Enterprise

Three trends set to drive cyber-attacks in 2024

Apptronik and Mercedes-Benz Enter Commercial Agreement

The All Electric Society Arena points the way to a carbon-neutral industrial society

Machine manufacturers showcasing security solutions for digital grinding processes at GrindingHub

New Level and Flow Controller Reduces Complexity in Water and Wastewater Applications


Agenda

27/03 - 28/03: Design to Manufacturing (D2M), Kortrijk Xpo (B)

15/04 - 19/04: Wire/Tube, Düsseldorf (D)

22/04 - 26/04: Hannover Messe, Hannover (D)

14/05 - 16/05: Advanced Manufacturing, Antwerp Expo (B)

15/05 - 16/05: Advanced Engineering, Antwerp Expo (B)

15/05 - 16/05: Food Tech Event, Brabanthallen, 's-Hertogenbosch (Nl)

28/05: Industrie & Maintenance, Namur Expo (B)

05/06 - 06/06: Vision, Robotics & Motion, Brabanthallen, 's-Hertogenbosch

10/06 - 14/06: ACHEMA, Frankfurt am Main (D)

18/09 - 19/09: Kunststoffen, Brabanthallen 's-Hertogenbosch (Nl)

08/10 - 11/10: Motek, Stuttgart (D)

15/09/25 - 19/09/25: Schweissen & Schneiden, Messe Essen (D)

08/10/25 - 15/10/25: K, Düsseldorf (D)