Deep Neural Networks und GPUs

Eine erste online Suche den Themen "Künstliche Intelligenz (KI oder AI, für "Artificial Intelligence")" oder "Deep Learning (DL)" liefert erstaunliche Resultate zutage. Der Begriff "Deep Learning" impliziert den Einsatz von Deep Neural Networks (DNN). Diese DNN sind die Grundlage von KI Systemen und ermöglichen die kürzlich in den Schlagzeilen zu findenden Ergebnisse.

Hier einige Beispiele von bahnbrechenden Ergebnissen, die mit auf DNN basierten Technologien erzielt wurden:

Deep Neural Networks - MNIST & CIFAR 10
MNIST & CIFAR 10

Bild- und Zeichenerkennung

Der Standard Benchmark für Zeichenerkennung ist der MNIST Datensatz. Dieser enthält 60000 handgeschriebene Ziffern 0 bis 9, die als 28x28 Pixel Graustufenbilder gescannt wurden. Die besten DNN Topologien erreichen bei MNIST inzwischen eine dem Menschen überlegene (superhuman) Erkennungsrate. Der CIFAR 10 Bilderkennungsbenchmark stößt mit mindestens zwei Netzwerken ebenfalls in den "superhuman" Bereich vor.

Hautkrebserkennung in der Dermatologie
Hautkrebserkennung in der Dermatologie

Medizinische Diagnostik

Im Bereich der medizinischen Diagnostik erreichen DNN-basierte Bilderkennungssysteme die Qualität von menschlichen Experten. Dies läutet eine Revolution in der automatisierten Klassifizierung der medizinischen Bildauswertung ein.

NVIDIA BB8 - Ein Versuchsfahrzeug für autonomes Fahren
NVIDIA BB8 - Ein Versuchsfahrzeug für autonomes Fahren

Autonomes Fahren

Autonome Fahrzeuge sind in zahlreichen Schlagzeilen zum Thema AI zu finden. Dabei sind Landfahrzeuge, Flugzeuge und Schiffe gleichermaßen mit einbezogen, wobei das selbstfahrende Auto den größten Anteil einnimmt. Der klassische programmatische Ansatz zur Lösung dieser Aufgabe stößt sehr schnell an seine Grenzen, da der Programmierer nicht alle möglichen Situationen antizipieren kann, denen sich ein autonomes Fahrzeug im täglichen Betrieb ausgesetzt sieht. Aus diesem Grund wird zur Zeit intensiv am Einsatz von DNN in diesem Bereich geforscht. Das Nvidia BB8 Versuchsfahrzeug ist eine dieser Entwicklungen. Das Fahrzeug wird in einem Trainingsmodus alltäglichen Fahrsituationen ausgesetzt und lernt, wie ein menschlicher Fahrer diese Situationen bewältigt. Es nutzt dabei die im Fahrzeug eingebauten Sensoren auf sehr effiziente Weise und hat bereits Strecken mit komplexen Hindernissen, Baustellen etc. gemeistert.

Quelle


Künstliche neuronale Netzwerke sind von biologischen Nervengeweben bestehend aus Neuronen und Synapsen inspiriert. In der Literatur wird das Adjektiv "künstlich" dabei meist weggelassen. Diese Netzwerke haben einen hohen Grad der Parallelisierung. Sie bestehen aus einzelnen Schichten an Neuronen, die mit vor- und nachgelagerten Schichten verbunden sind. In einer DNN Topologie können einige Dutzend bis über 100 Schichten (Layer) zum Einsatz kommen. Die Synapsen von biologischen Neuronen werden im Modell nur durch skalare Gewichtungsfaktoren dargestellt, was eine äußerst rudimentäre Umsetzung darstellt. Eine biologisch realistische Simulation, wie im Hodgkin-Huxley Modell, würde eine Leistung verlangen, die vorhandene und mittelfristig absehbare Hardwareperformance weit übersteigt.

Das DNN wird so trainiert, dass die als Matrix dargestellten Gewichtungsfaktoren Werte annehmen, mit denen der Fehler des Outputs des DNN mit Trainingsdaten als Input minimiert wird.

Deep Neural Networks - Artificial Neural Network

Das Training eines DNN verlangt sehr hohe Rechenleistungen, insbesondere im Floating Point Bereich. Jeder Durchlauf über den kompletten Trainingsdatensatz wird als Epoche bezeichnet. Ein sinnvolles Training eines DNN kann mehrere hundert Epochen in Anspruch nehmen, um den Fehler auf einen gewünschten Wert zu reduzieren. Ein typisches Dual CPU System mit 16 bis 44 Cores stellt sich schnell als unzureichend für ein Training mit einem umfangreichen Datensatz heraus. Als Beispiel seien hier hochaufgelöste Bilder von Kameras in Prototypen von autonomen Fahrzeugen genannt.

Diese Beschränkungen haben zur Entwicklung von DNN Programmcodes geführt, die den Nvidia CUDA Softwarestack benutzen. Dabei werden insbesondere Operationen aus der linearen Algebra optimiert auf GPUs ausgelagert. Der korrekte Begriff lautet GPGPU, für "General Purpose Graphical Processing Unit", aber in der Regel wird nur von einer GPU gesprochen.


Der CUDA Softwarestack wurde in letzter Zeit um spezielle Bibliotheken für DNN erweitert. Die parallele Topologie von DNN erlaubt ein effizientes Mapping der Rechenaufgaben auf die Architektur einer GPU, mit ihren tausenden von Recheneinheiten. Die Rechenleistung gegenüber einer typischen Dual CPU Konfiguration kann sich dabei um den Faktor 10 bis 50 verbessern. High-End Dual CPU Server können heute 4 bis 8 GPUs der Nvidia Pascal basierten Tesla oder GeForce Karten aufnehmen. Damit werden Single Precision (32bit) Floating Point Leistungen bis 100 TFlops in einem System möglich. 

Die marktbeherrschende Stellung von Nvidia im Bereich des GPU Computing wird bald durch die Ankündigung der "Instinct" GPU Serie von AMD herausgefordert. Diese GPUs sollen noch 2017 auf den Markt kommen. 

Die nächste Generation von Intels Xeon Phi CPU namens "Knights Landing" verfügt über 76 Atom "Silvermont" Cores auf einem Chip. Eine Sockel-Version ist neben der PCIe Karte verfügbar und ersetzt die sonst übliche Xeon CPU auf dem Mainboard. Diese Version für den LGA 3647 Sockel  bietet den großen Vorteil, dass alle DIMM Steckplätze des Mainboards dem Xeon Phi zur Verfügung stehen. Dies ermöglicht einen Ausbau auf bis zu 384 GB Arbeitsspeicher. Dies umgeht die Beschränkung der Speichergröße bei PCIe Karten, die im Bereich von 12GB bis 24GB liegt.

Deep Neural Networks - NVIDIA Deep Learning SDK
NVIDIA Deep Learning SDK

Eine weitere Entwicklung ist der Einsatz von FPGAs (Field Programmable Gate Array) für DNN. FPGAs können per Software konfiguriert werden. Damit ermöglichen sie den Einsatz von Topologien, die speziell an eine DNN Aufgabe angepasst sind. Die Akquise von Altera durch Intel trägt erste Früchte in Xeon CPUs, die als Multichip Package ein FPGA eingebaut haben.

Die großen Cloud Service Provider wie Google und Microsoft entwickeln ihre eigenen DNN Beschleuniger, basierend auf FPGAs oder ASICs. Die "Tensor Processing Unit" (TPU) von Google ist ein Beispiel hierfür. Diese speziell für DNN ausgelegten Beschleuniger ermöglichen die Optimierung der für große Rechenzentren wichtigen Metrik "Performance pro Watt". Am anderen Ende des Spektrums können FPGAs bei Anwendungen im Embedded- und Sensor - Bereich punkten, um die Batterielaufzeit zu optimieren. Hiervon profitiert speziell der IoT Bereich, da DNN in Endpoints zusammen mit Sensoren verbaut warden können. So ist eine erste Verarbeitung unmittelbar der Sensorebene nachgeschaltet. 

Diese Trends werden 2017 durch das steigende Interesse in DNN noch deutlicher zum Ausdruck kommen.

Verwandte Themen

Der Bedarf an Rechenleistung in der wissenschaftlichen und industriellen Forschung steigt ständig weiter an. Gleichzeitig benötigen Hochleistungscomputer für ihren Betrieb sehr viel Energie ...

Das Thema "Machine Learning" umfasst heute eine große Anzahl verschiedener Techniken, die ihre Wurzeln in der Statistik, Neurobiologie und der Informatik haben.

Kann ich Ihnen weiterhelfen?

Sales

Deutschland

Tel.: +49(0)7121/2678400
Fax: +49(0)7121/267890400