Machine Learning¶
Maschinelles Lernen ist omnipresent und in aller Munde. Wer mit Daten zu tun hat, kommt nicht mehr um dieses Konzept herum.
TensorFlow¶
Ein beliebtes und weitverbreitetes Framework im Bereich Maschinelles Lernen ist TensorFlow. Über Python-Programme wird in der Regel das Lernen realisiert. Es gibt mittlerweile auch eine Javascript basierte Version: nämlich TensorFlow.js. Damit kann man Maschinelles Lernen direkt im Browser ausführen lassen.
CUDA Installation¶
Damit man die Grafikkarte in seinem Rechner für ML verwenden möchte, so müssen einige Voraussetzungen gegeben sein.
Zunächst braucht man eine GPU von NVIDIA, die CUDA unterstützt. Des Weiteren sind einige Programme notwendig. Beispielsweise findet man in der NVIDIA Dokumentation eine Anleitung.
Nach der Installation der notwendigen Komponenten, kann man in der Konsole testen, ob die Installation korrekt verlief.
Im Verzeichnis der mitgelieferten Beispiele kann man sich die Solution deviceQuery in Visual Studio erstellen und anschließend in der Konsole ausführen lassen. Wichtig hierbei ist, dass Result = PASS ausgegeben wird.
Zudem kann man analog zum obigen Vorgehen das Projekt bandwidthTest aufrufen lassen, um die Bandbreite der GPU ausgeben zu lassen.
Zu guter Letzt kann man noch die Solution particles ausführen lassen.
Im Task Manager kann man die Auslastung der GPU sehen.
Auch der MSI Afterburner zeigt die Tätigkeit der Grafikkarte bei Ausführung der Partikel-Anwendung.
GPU für ML mit TensorFlow unter Windows¶
Für Windows ist es vergleichsweise schwierig, eine Entwicklungsumgebung zu kreieren, in der man mit TensorFlow auf die GPU zurückgreifen kann.
Eine gute und vor allem prägnante Anleitung für die TensorFlow Installation gibt thehardwareguy.
Hierfür wird ein eigenes Kernel für ein Jupyter Notebook definiert. Die obige Anleitung beschreibt die einzelnen Schritte für das Aufsetzen. Nun kann man geschriebenen Python-Code ausführen:
Im MSI Afterburner kann man die Aktivität während der Ausführung des Skriptes beobachten.
Beispiele¶
Vorhersage anhand von stetigen Merkmalen¶
Dieses Beispiel orientiert sich am folgenden Codelab und demonstriert wie ein Modell trainiert werden kann, um für numerische Daten Vorhersagen zu machen:
Hinweis
Die verlinkte Demo1 zeigt das beschriebene Beispiel. Nach etwa 30 Sekunden sind die Visualisierung fertig gestellt.
Zunächst sollte man die Daten visualisieren, um zu sehen, ob ein Zusammenhang zwischen den Merkmalen bestehen könnte.
Beim Trainieren dieses Modells sollte der loss und mse Wert geringer werden.
Über eine lineare Regression wird das Modell trainiert, welche die vorhergesagten Werte im Diagramm ausgibt.
In diesem Beispiel wird ausgehend vom Merkmal "Pferdestärke" das Merkmal "Hubraum" eines Fahrzeuges vorhergesagt. Weist ein Auto z.B. eine Pferdestärke von 150 auf, so wird ein Hubraum von etwa 298 prognostiziert.
Erkennen von handgeschriebenen Ziffern mit CNNs¶
Ein gutes Google-Codelab2 demonstriert, wie maschinelles Lernen mit einem Convolutional Neural Network (CNN) handgeschriebene Zahlen erkennen und zuordnen kann.
Hinweis
Die verlinkte Demo2 zeigt das beschriebene Beispiel. Nach etwa 60 Sekunden sind die Visualisierung fertig gestellt.
Das Beispiel zeigt, dass CNNs gut geeignet sind, Aufgaben mit Bildern zu realisieren. Wichtig hierbei ist immer das Modell zu evaluieren, nachdem es trainiert wurde, um die Akkuratheit einschätzen zu können.