Machinelles Lernen mit ML.NET 1.4 und dem Modell-Generator

Machine Learning für .NET-Entwickler: ML.NET 1.4 ist erschienen
Keine Kommentare

Die Stimmungslage an der Börse auswerten oder Preisvorhersagen für Kunden machen? Mit ML.NET 1.4 können .NET-Entwicklerinnen und -Entwickler mit dem Modell-Generator in Visual Studio automatisiert eine Reihe von Szenarien für maschinelles Lernen als Modell generieren, auch ohne ML-Vorkenntnisse.

Das plattformübergreifende Machine Learning Framework ML.NET ist in der Version 1.4 erschienen. Als neue Features enthält das aktuelle Release eine Erweiterung für .NET Core 3.0, es unterstützt künftig Jupyter Notebooks und natives DNN-Retraining bei der Bildklassifikation mit GPU.

Neuerungen für ML.NET 1.4

ML.NET 1.4 kann nun optional auch in einem Build für .NET Core 3.0 verwendet werden. Dieses Feature war in der vorigen Preview schon enthalten, ist jetzt aber erstmals allgemein verfügbar. ML.NET kann weiterhin auch in älteren .NET-Versionen verwendet werden. Details hierzu stehen auf den Developer Blogs von Microsoft.

Die Bilderklassifikation basiert jetzt auf DNN-Retraining mit GPU-Unterstützung. Dieses Feature ermöglicht dem DNN das Transferlernen mit ML.NET auf der Basis von Bilderdatensets und Bildzuordnungen. Mit diesem Feature kann man ein Bildklassifizierungsmodell generieren. Das niedrigstufige Verfahren über die Tensorflow.NET Library erforderte bislang mehrere hundert Zeilen an Code. ML.NET 1.4 bietet den Vorteil eines hochstufigen API, die man mit einigen Zeilen C#-Code einfach definieren und als Bildklassifikations-Modell anlernen kann. Die APIs einiger vortrainierter TensorFlow Modelle (DNN-Architekturen) sind für .NET nun leichter zugänglich.

Die GPU-Unterstützung für Windows und Linux ist neu. Neuerdings ist optional ein früheres Beenden des Trainings möglich, sobald das Lernziel erreicht ist. Die Zeitplanung für die Lernraten kann jetzt präziser gesteuert werden – mehr zum Terminplaner für die Lernraten auf den Seiten von TensorFlow.

ML.NET 1.4 wird auch von Jupyter Notebooks unterstützt – der neue .NET-Kernel für Jupyter ermöglicht dies. Jupyter Notebooks können jeglichen .NET-Code verarbeiten (C#, F#) und deshalb auch ML.NET-Code. Jupyter Notebook ist eine Open-Source-Webanwendung, mit der man Texte teilen kann, die Live-Code, Visualisierungen und erklärenden Text enthalten. Mehr dazu auf den Seiten von Jupyter.

Die Kernkomponenten von ML.NET 1.4 unterstützen mehr unterschiedliche Prozessor-Architekturen. Auf modernen Prozessoren kann ML.NET schlicht schneller trainieren, weil es mehrere Floating-Point-Prozesse zugleich ausführen kann als im vorherigen C++ Code, der nur SSE-Anweisungen unterstützte. Hardware-intrinsischer C#-Code bringt Vorteile: ML.NET kann als Fallback-Modus mathematische Prozesse Nummer für Nummer ausführen, wenn der Prozessor weder SSE noch AVX unterstützt (was z. B. bei ARM-Chips der Fall ist).

Neuerungen im ML.NET Modell-Generator

Die Vorschauversion des ML.NET Modell-Generators enthält zwei neue Features: Für die Bildklassifikation kann ein Modell mit eigenen Bildern lokal trainiert werden (image classification scenario). Dies geschieht direkt über die Weboberfläche. Kundenspezifische Szenarien könnten zum Beispiel das Erkennen betrügerischer Banktransaktionen, Preisvorhersagen oder die Weiterleitung von Kundenfeedback an das zuständige Team sein. Mit automatisiertem maschinellen Lernen (AutoML) können .NET-Entwicklerinnen und -Entwickler in Visual Studio auch ohne ML-Vorkenntnisse einfache Modelle generieren.

Weiterführende Links, Tipps und Tutorials

Eine illustrierte Anleitung in Einzelschritten zum ML.NET Modell-Generator findet sich auf den Seiten von Telerik. Ein übersichtliches Tutorial für ML.NET steht im .NET-Blog von Microsoft. Aktuell befindet sich der Modell-Generator noch in der Vorschauphase. Der ML.NET Modell-Generator verwendet automatisiertes maschinelles Lernen (AutoML). ML.NET mit dem Modell-Generator kann man auf den Seiten von Visual Studio kostenlos herunterladen. Dort gibt es auch eine Schritt-für-Schritt-Anleitung. Auf den DevBlogs stehen Tipps zum Verbessern der Leistungswerte des gewählten Modells und zum gezielten Trainieren mit Algorithmen. Je größer die Datenbasis, desto präziser fallen die Vorhersagen aus.

Wie man maschinelles Lernen beschleunigt, indem man mit ML.NET die neuen Hardware-intrinsischen APIs von .NET Core 3.0 nutzt, erklärt Brian Lui in seinem Blog. Die Aufstellung sämtlicher Neuerungen und Verbesserungen steht auf den DevBlogs von Microsoft zum Nachlesen.

Unsere Redaktion empfiehlt:

Relevante Beiträge

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu:
X
- Gib Deinen Standort ein -
- or -