ML.NET – Machine Learning Framework für .NET-Entwickler

Karl Gorman
ML.NET

Maschinelles Lernen und künstliches Lernen sind schon lange nicht mehr die Neulinge auf dem Block. Sie sind überraschenderweise zu den beliebtesten Typen in der Stadt geworden und es scheint, dass sie hier sind, um den gesamten Globus zu übernehmen. Wenn wir über maschinelles Lernen sprechen, dürfen wir eine großartige Ergänzung der Entwicklungswelt in Form von ML.NET nicht verpassen, einem Framework für maschinelles Lernen, das für .NET-Entwickler entwickelt wurde. ML.NET wurde von Microsoft entwickelt und ist ein kostenloses, quelloffenes und plattformübergreifendes Framework mit eingebauten Funktionen für maschinelles Lernen, die auf der von Entwicklern verwendeten .NET-Plattform zugänglich sind.

Wir werden eine Technologie kennenlernen, die mit inhärenten Fähigkeiten ausgestattet ist, um maschinelle Lernmodule mit C# und F# einfach zu erstellen, zu trainieren, zu erstellen und zu versenden. Eine solche Einstellung funktioniert für eine breite Palette von maschinellen Lernvorgängen. Mit eingebauten Features und Funktionen, die automatisiertes maschinelles Lernen, TensorFlow usw. umfassen, wodurch die Integration von maschinellen Lernfähigkeiten in eine Software oder Anwendung einfacher und effizienter wird.

Auf der Suche nach den .NET Entwicklern für Ihr Projekt?

Was ist ein Machine Learning Framework?

Sie fragen sich, was ein Framework für maschinelles Lernen ist? Einfach ausgedrückt sind Frameworks für maschinelles Lernen spezialisierte Umgebungen mit integrierten Funktionen, die bei der Erstellung von Modellen für maschinelles Lernen mit hoher Geschwindigkeit und höherer Genauigkeit helfen. Mit eingebauten Algorithmen für maschinelles Lernen gibt ein solches Framework einem Ingenieur für maschinelles Lernen mehr Möglichkeiten, die erforderlichen Modelle zu erstellen und einzusetzen. Microsoft ML.NET ist eines von vielen Frameworks, die es einem Ingenieur für maschinelles Lernen, Datenwissenschaftler und Entwickler ermöglichen, den ML-Lebenszyklus zu vervollständigen.

Durch die Arbeit mit einem Framework für maschinelles Lernen können Entwickler und Geschäftsinhaber ihre Bemühungen, ML-Funktionen in ihre Arbeit zu integrieren, beschleunigen. Sie können die richtigen und anpassungsfähigen Aspekte des maschinellen Lernens in ihre digitalen Lösungen einbauen und die Vorteile nutzen, die mit der Einbeziehung des maschinellen Lernens in den Geschäftsalltag einhergehen. Darüber hinaus können Unternehmen, die ein Framework für maschinelles Lernen wie ML.NET und andere verwenden, die Geschwindigkeit ihres Projekts erhöhen. Das bedeutet, dass sie in einer wettbewerbsintensiven Branche ihre Markteinführungszeit erheblich verkürzen und ihren Benutzern dennoch eine fortschrittliche Anwendung zur Verfügung stellen können. Im weiteren Verlauf unserer Diskussion darüber, was Microsoft ML.NET ist, werden wir über die verschiedenen Merkmale des Frameworks, seine Funktionen und seine Vorteile sprechen.

Leistungsfähigkeit

ML.NET macht es einfacher, die Modelle für maschinelles Lernen in kleine bis große Unternehmensanwendungen einzubinden, indem es ihnen den Übergang zu einer gut ausgebauten und modernen Plattform mit kreativen Möglichkeiten erleichtert. In Bezug auf die Leistung untersuchte eine Gruppe von Wissenschaftlern die leistungsbezogenen Fähigkeiten eines Frameworks wie ML.NET, um maschinelle Lernmodelle in den Anwendungsentwicklungsprozess zu liefern. In diesem Experiment setzten die Wissenschaftler das Framework für maschinelles Lernen von Microsoft großen Datensätzen aus, die eine numerische Matrix mit einer Hash-Funktion enthielten.

Experimentelle Ergebnisse für den Amazon-Datensatz

Die obige Abbildung stammt aus der gleichen Studie und zeigt die Leistung von ML.NET, die Datensatzanalyse in der kürzest möglichen Zeit abzuschließen. In diesem Vergleich hat die Studie auch den gleichen Test mit anderen ähnlichen Frameworks durchgeführt. Diese Leistungsstudie zeigt, dass ML.NET die Kernelemente der modernen Anwendungsentwicklung anspricht und die für die Zukunft relevanten und relevanten Konzepte bereits heute beinhaltet.

Model Builder

Das Microsoft AI ML.NET Framework bringt die Möglichkeit, mit maschinellem Lernen in Visual Studio zu arbeiten. In einem kleinen ML.NET-Tutorial erfahren Sie, wie Sie die Module und API-Modelle des maschinellen Lernens integrieren und über Visual Studio rendern können. Microsoft bietet mit dem Model Builder eine bequeme und schnellere visuelle Schnittstelle, um maßgeschneiderte Modelle des maschinellen Lernens zu erstellen, zu trainieren und in der Anwendung einzusetzen. Mit anderen Worten: Für die Arbeit mit dem ML.NET Model Builder muss niemand Fachwissen über maschinelles Lernen erwerben.

Darüber hinaus verfügt der Model Builder auch über eine automatische Einstellung, um die richtigen Einstellungen für maschinelles Lernen für Ihre Anwendung zu finden. Mit Hilfe von AutoML hilft Ihnen der ML.NET Machine Learning Framework Model Builder automatisch, die perfekten Einstellungen und Module zu integrieren, die für Ihr Produkt erforderlich sind.

Erklärbarkeit des Modells

Das Konzept der Entscheidungsfindung im Bereich des maschinellen Lernens und der künstlichen Intelligenz ist seit langem ein umstrittenes Thema, das weltweit diskutiert wird. Da maschinelle Lernmodelle als undurchsichtige Boxen fungieren, bei denen wir wissen, was vor sich geht und was herauskommt, ist es ziemlich faszinierend, diese Modelle in unserem täglichen Leben zu implementieren, ohne die Zwischenschritte zu kennen. Ein einfaches Beispiel dafür ist eine Maschine oder ein Roboter, der Entscheidungen im Gesundheitswesen auf der Grundlage der ihm zugeführten Daten trifft. Aber die menschlichen Ärzte müssen verstehen, wie der Roboter zu seiner Entscheidung gekommen ist und welche Faktoren dabei berücksichtigt wurden. Die Erklärbarkeit des Modells wird in diesem Framework für maschinelles Lernen mit Permutation Feature Importance (PFI) angesprochen. Mit PFI liefert ML.NET ein ImmutableArray von RegressionMetricsStatistics.

Die PFI-Technik dient zur Erklärung der Klassifizierungs- und Regressionsmodelle, die aus Breimans Random Forests stammen. Mit Hilfe dieser Regressionsmodelle mischt ML.NET den gesamten Datensatz und berechnet die Intensität der Änderung in der Leistungsmetrik. Eine größere Änderung in der Leistungsmetrik bedeutet, dass ein bestimmtes Merkmal wichtiger ist und umgekehrt. Nehmen wir noch einmal die Gesundheitsdiagnose heraus, so wird ein maschinelles Lernframework alle Faktoren berücksichtigen, die zu dem aktuellen Zustand führen könnten. Indem sie eine Zunahme und Abnahme der Faktoren bewirkt, wird die ML.NET-gestützte Lösung dann die Faktoren entdecken, die die größte Rolle beim Herbeiführen dieser Veränderung hatten.

Infer.NET

Infer.NET unterscheidet sich von ML.NET in den Anforderungen, Anwendungsfällen und Funktionen. Obwohl es auch ein Framework für maschinelles Lernen ist, unterstützt Infer.NET die grafischen Modelle für Bayes’sche Inferenz. Wir können Infer.NET für probabilistische Programmierung durch einen Ingenieur für maschinelles Lernen verwenden, um automatisierte Inferenz für die probabilistischen Modelle durchzuführen. Das ML.NET-Framework für maschinelles Lernen ist anders als Infer.NET. Es ist jedoch so erweiterbar, dass die Fähigkeiten von Infer.NET genutzt werden können, wodurch ML.NET einen besseren und umfassenden Zugriff auf verschiedene Arten von Modulen wie Bildklassifizierung, Objekterkennung usw. erhält. Zusammen mit Infer.NET umfasst die Erweiterbarkeit von ML.NET auch ONNX Model Integration und TensorFlow Model Integration. Mit ONNX können die Entwickler jede Art von vortrainiertem ONNX-Modell in Microsoft AI ML.NET ausführen, um die perfekte Lösung zu erstellen. Mit der TensorFlow-Integration können die Entwickler auf eine weithin anerkannte Deep-Learning-Bibliothek zugreifen und erhalten Zugriff auf Funktionen wie die Bildklassifizierung.

NimbusML Python Support

NimbusML ist ein Python-Modul, das in das ML.NET-Framework für maschinelles Lernen integriert ist, um die Python-Bindungen für Microsofts ML.NET weiterzuleiten. Der Zweck des Aufbaus von NimbusML ist es, den Datenwissenschaftlern, die es gewohnt sind, mit Python zu arbeiten, zu helfen, die Möglichkeiten und funktionalen Aspekte, die ML.NET bietet, zu nutzen. Microsoft hat verstanden, dass die Arbeit der Datenwissenschaftler zunimmt, wenn sie zwischen Python und .NET hin- und herpendeln müssen. Daher haben sie ML.NET so erweiterbar gemacht, dass sie die von den Entwicklern, Ingenieuren für maschinelles Lernen und Datenwissenschaftlern auf Python erstellten Module in ML.NET einbinden können.

ML.NET Versionsverlauf

Nun, da wir verstanden haben, was ML.NET ist und wie es im Zusammenhang mit anderen Plattformen funktioniert, lassen Sie uns kurz die Geschichte des Frameworks durchgehen, um mit seiner Reise bis zur letzten stabilen Version zu berichten. ML.NET wurde am 7. Mai 2018 auf der Build 2018 mit einer begrenzten Anzahl von Erweiterungen (Accord.NET und CNTK) eingeführt und über die ML.NET-API nutzbar gemacht. Während der Markteinführung waren die ML.NET-Anforderungen nicht zu umfangreich, da die Benutzer nur das Framework NuGet über die CLI installieren mussten;

dotnet add package Microsoft.ML

Ursprünglich verwendete Microsoft ML.NET nur für den internen Betrieb und die eigenen Produkte, einschließlich Bing Ads, Office, Windows, Azure, etc. Als es für den internen Betrieb arbeitete, erhielt Microsoft AI ML.NET monatliche Updates bis zur öffentlichen Veröffentlichung mit ML.NET 1.0 als Basisversion im Mai 2019. Nach der Basisversion gab es regelmäßige Updates für das Framework, die neue Möglichkeiten im Bereich des maschinellen Lernens und seiner Verwendung bei der Entwicklung digitaler Lösungen schaffen.

Hier sind ein paar wichtige Funktionen, die diesem Framework für maschinelles Lernen im Vergleich zur Release-Version hinzugefügt wurden.

Freigabe Version Zusätzliche Funktionen
ML.NET v1.1.0 Unterstützung für In-Memory-Bilder
Anomalie-Detektor mit Super-Resolution
ML.NET v1.2.0 Strukturbasierte Featurierung
Unterstützung für Microsoft-Erweiterungen
ML.NET v1.3.1 Eingeführtes tiefes neuronales Netzwerk-Training
ML.NET v1.4.0 Bildklassifizierungs-API-Integration mit Microsoft.ML.Vision
ML.NET v1.5.0 Export nach ONNX und die damit verbundenen Fehlerbehebungen
Neues System zur Erkennung von Anomalien
ML.NET v1.5.2 Neue API-Module und Algorithmen für Zeitreihendaten
ONNX-Erweiterungen

ML.NET C# und F# werden kontinuierlich weiterentwickelt und um neue Features ergänzt, um die Funktionalität und den Kreis der Möglichkeiten zu erweitern.

ML.NET Eigenschaften

Wenn Sie die Verwendung von ML.NET auf dem .NET-Framework lernen, ist es wichtig, die Kernfunktionen der Plattform zu identifizieren. Es wird Ihnen helfen, futuristische Produkte zu erstellen, die neu definieren, was eine Anwendung tun und leisten kann. Hier sind also ein paar Funktionen des Frameworks, die Sie kennen sollten.

  • Open Source und Kostenlos

Beginnen wir mit dem erstaunlichsten Aspekt: Microsoft AI ML.NET ist ein kostenloses und quelloffenes, plattformübergreifendes Framework. Das bedeutet, dass Sie dieses Framework in jeder Umgebung und auf jedem Gerät ausführen können. Sei es auf Azure, On-Premises oder in einer beliebigen Cloud; Sie können auf ML.NET-Tutorials und Model Builder zugreifen und die Erweiterungen nutzen, um die Entwicklungsumgebung zu verbessern. Darüber hinaus können Sie die erforderliche digitale Lösung auch auf Windows, Linux und macOS erstellen.

  •  AutoML

Eine der mit Abstand bemerkenswertesten Fähigkeiten von ML.NET ist AutoML. Der Zweck des Hinzufügens besteht darin, benutzerdefinierte ML-Modelle in der Schnittstelle zu erstellen, um den Aufbau von leistungsstarken Varianten zu automatisieren. Das bedeutet, dass in jedem Szenario des maschinellen Lernens oder dort, wo Sie auf die Möglichkeiten von ML zugreifen müssen, AutoML das leistungsfähigste Modell für das gewünschte Szenario vorschlägt. Ihre Aufgabe beschränkt sich darauf, AutoML mit den Daten zu füttern, und es modelliert automatisch den Erstellungsprozess. Für einen Ingenieur für maschinelles Lernen ist diese Funktion nicht weniger als Magie, da er auf die bestmögliche Kombination von Lösungen zugreifen kann, ohne dass er irgendwelche Laufarbeit leisten muss.

  • ML.NET CLI

Wir haben bereits über den Model Builder gesprochen, mit dem die Entwickler und Ingenieure die erforderlichen Modelle automatisch erstellen können. Ingenieure für maschinelles Lernen, die Visual Studio nicht verwenden oder keinen Zugriff auf eine Windows-basierte Plattform haben, können die AutoML-Funktionen mit ML.NET CLI nutzen. Dazu müssen Sie das ML.NET CLI-Tool installieren und es in der Eingabeaufforderung ausführen. Dies hilft bei der Generierung von qualitativ hochwertigen Machine-Learning-Modellen in Abhängigkeit von den von Ihnen bereitgestellten Datensätzen. Ähnlich wie Model Builder generiert die CLI auch den ML.NET C#-Beispielcode, der dann zum Erstellen und Trainieren der erforderlichen Funktion verwendet werden kann.

Zusammenfassung

ML.NET wurde von Microsoft als Framework für maschinelles Lernen entwickelt, um Entwicklern, Datenwissenschaftlern und Ingenieuren für maschinelles Lernen zu helfen, KI/ML zu nutzen, um fortschrittliche Lösungen zu erstellen, indem sie auf Dot Net mit C# und F# arbeiten.

Sie können das Microsoft ML.NET-Framework und seine eingebauten Funktionen wie AutoML verwenden, um benutzerdefinierte ML-Modelle innerhalb des .NET-Ökosystems zu erstellen. Außerdem können Sie neue Ergänzungen für Ihre Website, Anwendung, Spiele und IoT-Lösungen erstellen.Kontaktieren Sie uns noch heute, um Ihre Verwirrung auszumerzen.