© Liashko/Shutterstock.com
Mehrdimensionale Arrays für Machine Learning

Daten in den Griff bekommen


Für viele Verfahren im Bereich Datenanalyse und Machine Learning werden mehrdimensionale Arrays benötigt. Da oft mit großen Datenmengen gearbeitet wird, ist es, neben anderen Optimierungen, wünschenswert, eine Arrayimplementierung zu verwenden, die auf hohe Performance und geringen Speicherverbrauch optimiert ist. Viele Frameworks setzen deshalb auf ndarrays von NumPy oder eigene Implementierungen, statt die Standard-Listen- oder Arrayimplementierungen von Python zu verwenden.

Schauen wir uns zunächst den Einsatz von mehrdimensionalen Arrays an. Im Bereich Datenanalyse und Visualisierung wird häufig mit Vektoren, Matrizen und Tensoren – also ein, zwei und mehrdimensionalen Daten –, deren Teilmengen und Kombinationen gearbeitet und es werden Aggregatsfunktionen darauf ausgeführt. Dafür ist es wichtig, Datenstrukturen zu verwenden, die einen einheitlichen Datentyp aller Elemente gewährleisten können, komfortable Funktionen zum Teilen und Kombinieren bereitstellen, und die bereits eine Reihe von Aggregatsfunktionen wie Maximum, Minimum, Mittelwert, Standardabweichung bereitstellen. Extrem werden die Anforderungen im Bereich Deep Learning, beispielsweise beim Einsatz von Convolutional Neural Networks (CNN) im Bereich Bildverarbeitung. Dabei werden die einzelnen Pixel eines Bilds üblicherweise in Farbkanäle gesplittet und auf mehrdimensionale Arrays abgebildet. Bei einem 32 x 32 Pixel großen Bild im RGB-Farbraum ergibt das beispielsweise drei 32 x 32 große Arrays – eines für jede Farbe. Diese Arrays durchlaufen die Verarbeitungslayer der jeweiligen CNN-Architektur – bei der VGG16-Architektur sind es beispielsweise 18 Convolutional und Pooling Layer – und werden dabei in jedem Layer transformiert, bis sie in der letzten Stufe schließlich auf einen Ausgabevektor abgebildet werden. Beim Training eines neuronalen Netzes werden die Layer u. U. von mehreren 10 000 Bildern mehrere Dutzend Male durchlaufen. Abbildung 1 zeigt die Größe der Arrays in den einzelnen Arbeitsschritten eines VGG16 – einer CNN-Standardarchitektur. Da Deep-Learning-Verfahren üblicherweise auf GPUs oder TPUs (Tensor Processing Units von Google) ausgeführt werden, sollten diese entsprechend unterstützt werden.

koppelt_daten_1.tif_fmt1.jpgAbb. 1: Größe der Arrays

Auch für Verfahren im Bereich NLP, wie Word-Embedding-Verfahren, werden Arrays benötigt. In diesen Verfahren werden die Wörter auf numerische Werte abgebildet und weiterverarbeitet.

NumPys ndarray

NumPy [1] ist eine Bibliothek, die mit dem Ziel entwickelt wurde, m...

Neugierig geworden?

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang