Pieter Edelman
29 March 2016

IBM heeft een plannetje gelanceerd voor een asic die met resistief geheugen het trainen van diepe neurale netwerken aanzienlijk kan vergemakkelijken. Deze stap is zeer rekenintensief – in tegenstelling tot het toepassen van een eenmaal ingesteld netwerk. Voor het trainen van grote en diepe netwerken moet nu veelal ruimte in een datacentrum geboekt worden. IBM denkt het proces met zijn ontwerp echter met ordegroottes te kunnen versnellen.

Diepe neurale netwerken bestaan uit grote aantallen knooppunten georganiseerd in lagen, waarbij elk knooppunt in de ene laag verbonden is met alle knooppunten in de volgende laag. Tijdens de trainingsfase wordt aan de hand van voorbeelddata bepaald hoe belangrijk elke verbinding is. Aan de basis hiervan ligt het backpropagation-algoritme, dat uit drie stappen bestaat. Eerst wordt het netwerk ‘gewoon’ toegepast op een van de voorbeeld-inputs en bekeken wat de waarde van elk knooppunt wordt. Vervolgens wordt het netwerk achterstevoren doorlopen met de gewenste output om te bepalen wat de waarden voor alle knooppunten zouden moeten zijn. Aan de hand van het verschil tussen waargenomen en gewenste waarden, worden alle verbindingen bijgesteld. Dit proces wordt net zolang herhaald met nieuwe voorbeelden totdat het netwerk fatsoenlijk presteert.

IBM’s voorstel bouwt voort op eerdere ideeën om een geheugenmateriaal met instelbare weerstand te gebruiken voor dit proces, bijvoorbeeld het materiaal in pcm- of rram-geheugens. Dit wordt aangebracht op de kruispunten van een crossbar. De weerstand op elk kruispunt vertegenwoordigt vervolgens de waarde van de verbindingen, en voltages vertegenwoordigen de inputs en outputs. Met deze opstelling kunnen alle onderlinge verbindingen in een keer worden doorgerekend, dus de eerste twee stappen zijn in een vaste tijd uit te voeren.

Het bijwerken van de waardes is normaal echter niet zo makkelijk; de kruispunten moeten een voor een doorlopen worden om de weerstand in te stellen met behulp van het verschil en de inputwaarde. Daardoor gaan tijd- en energiewinst grotendeels verloren. De IBM-onderzoekers stellen daarom voor om een beetje te smokkelen. In plaats elke aanpassing exact te berekenen, willen ze deze benaderen met een stochastisch proces waarbij pulstreinen losgelaten worden op de de rijen en kolommen van de crossbar. De waarschijnlijkheid van een puls op de rijen wordt bepaald door de inputwaarde, en op de kolommen door de waargenomen fout. Bij samenvallende pulsen wordt de waarde met een vast klein getal opgehoogd, bij samenvallende dalen wordt deze juist verlaagd.

Met dit simpele proces zijn alle waarden parallel aan elkaar te updaten. Volgens berekeningen van IBM kan een dergelijk systeem bij zeer grote netwerken tot wel dertigduizend keer sneller trainen dan een krachtige moderne cpu.