Maschinelles Lernen: Neuester Stand und praktische Anwendung
Neuronale Netze versprechen schon lange viel, kamen aber nie der Nische heraus. Doch nun gibt es entscheidende Weiterentwicklungen für den praktischen Einsatz.
by Jürgen DiercksWer sich anfängt, mit der KI-Praxis zu beschäftigen, muss einiges an Begrifflichkeiten aufholen: Denn rekurrente neuronale Netze (RNN) sind eine Weiterentwicklung der schon etwas in die Jahre gekommenen neuronalen Netze, deren mathematischen Grundlagen schon in den 50er-Jahren gelegt wurden. Damals hatte man sich von der Hirnforschung inspirieren lassen, was sich immer noch in den Begrifflichkeiten zeigt. Rückkopplungen zwischen Neuronen, die hier einfach einen Bestandteil des RNN bezeichnen, greifen bei Entscheidungen auf vorher Gelerntes zurück. Damit erweitern sie ihre Vorläufer um einen entscheidenden Aspekt.
In kommerziellen Anwendungsbereichen wie der maschinellen Übersetzung werkeln die RNNs schon seit geraumer Zeit. Trotzdem steht die Entwicklung noch am Anfang – sie ist allerdings gerade dabei, richtig Fahrt aufzunehmen. Bei RNNs handelt es sich um eine Gattung neuronaler Netze, die sich besonders für das Verarbeiten von Daten eignet, bei denen es auf die Reihenfolge der einzelnen Elemente ankommt. Ein RNN erhält neben dem aktuellen Input auch immer den Output des letzten Durchlaufs. Dadurch erinnert es sich an Vergangenes: Seine Entscheidungen basieren also auf dem Gelernten. Die Untergattung Long-Short-Term-Memory-Netze kann zudem lernen, welche historischen Daten heute noch wichtig sind und welche nicht.
Umsetzung in die Praxis
Was immer noch sehr theoretisch klingt, lässt sich jedoch durchaus schon praktisch anwenden. Ein dreiteiliges Tutorial in der neuen iX 6/2020 beschreibt, wie sich ein Deep-Learning-Modell für den eigenen Einsatzzweck anpassen und trainieren lässt, und wie man es auf Embedded-Hardware wie NVIDIAs Entwicklerboard Jetson Nano zum Erkennen von Objekten einsetzen kann.
Die Entwicklung eines Deep-Learning-Modells, das nicht nur irgendwelche, sondern die eigenen Objekte erkennt, ist mit vielen Fragen technischer Art verbunden: Welche Plattform oder Umgebung eignet sich? Was ist die favorisierte Programmiersprache? Wo soll das Modell liegen, in der Cloud oder lokal? Welches Framework passt am besten? Auf welchem Zielsystem soll das trainierte Modell später laufen? Benötigt es einen leistungsstarken Server oder muss es mit beschränkten Hardwareressourcen auf einem Mobiltelefon oder einem anderen Embedded-Device zurechtkommen?
Das Tutorial zeigt im ersten Teil, wie ein mehrschichtiges Convolutional Neural Network (CNN) Filter erstellt, mit denen sich Objekte auf Bildern erkennen lassen. Jedes Bildmaterial lässt sich mit Techniken wie Data Augmentation variieren und vervielfältigen. Und Bounding Boxes umrahmen und benennen in jedem Bild die zu erkennenden Objekte.
Siehe dazu auch:
- Deep Learning: Deep-Learning-Tutorial, Teil 1: Bilder für das Modelltraining aufbereiten; iX 6/2020, S. 40
- Machine Learning: Maschinelles Lernen mit Recurrent Neural Networks; iX 6/2020, S. 46
(fo)