c't 22/2019
S. 182
Wissen
Neuronale Netze mit 8-Bit-Integern
Aufmacherbild
Bild: Albert Hulm

Byte-Intelligenz

Neuronale Netze für TensorFlow-Lite auf 8-Bit-Integer umrechnen

Neuronale Netze rechnen mit Millionen von 32 Bit langen Zahlen. Baut man sie so um, dass sie stattdessen mit 8-Bit-Zahlen rechnen, spart das drei Viertel des Speicherplatzes und sie begnügen sich mit kleineren Rechenwerken im Chip. Mit den richtigen Parametern erledigt Googles Framework TensorFlow diesen Umbau vollautomatisch.

Neuronale Netze rechnen üblicherweise in Gleitkommazahlen mit 32 Bit. Die Gewichte der Synapsen, mit denen das neuronale Netz Schicht für Schicht seine Eingabedaten multipliziert, nehmen dabei oft sehr kleine positive und negative Werte an, die eine Gleitkommazahl dank ihres Exponenten mit hoher Genauigkeit kodiert. Zu Beginn des Trainings initialisieren viele KI-Forscher ihre Netze bewusst mit Zufallszahlen nahe 0. Der Trainingsalgorithmus passt dann diese Zahlen so an, dass die Ausgaben des Netzes besser zu den Trainingsdaten passen, geht dabei aber in sehr kleinen Schritten vor. Sollte ein solcher Schritt kleiner ausfallen, als die Gleitkommazahl für dieses Gewicht kodieren kann, lernt das Netz an dieser Stelle nichts.