© Zapp2Photo/shutterstock.com
Wie sich Machine Learning in modernen Apps nutzen lässt

AutoML in UWP: Ja oder Nein?


Das Machine-Learning-Portfolio für Entwickler ist breit und komplex und bietet neben klassischen Algorithmen auch die Möglichkeit, neuronale Netzwerke bei der Lösungsfindung zu nutzen. Eine ebenfalls neue Möglichkeit für Entwickler gibt es im Bereich Oberflächengestaltung. Mit Windows 10 hat Microsoft die Universal Windows Platform (UWP) eingeführt. Kann man nun ML und UWP auch sinnvoll zusammenbringen?

Das ML.NET Framework von Microsoft kennt allein zehn Algorithmen für Klassifizierungen mit mehreren möglichen Werten (Multiclass) [1]. FastTree, LightGBM und Fast Forest: Welcher Algorithmus ist für die vorliegenden Daten am besten geeignet? Welcher kommt mit mehr Daten zurecht, welcher kommt mit wenigen aus? Welcher kann meine komplexen oder einfachen Datenstrukturen am besten interpretieren? Um diese Fragen zu beantworten, kann man entweder den Algorithmus dahinter studieren oder – was naheliegender ist – es ausprobieren. Genau das macht AutoML. Als Teil von ML.NET nimmt es eine Datenstruktur, trainiert mehrere Modelle damit, misst, welcher Algorithmus am besten funktioniert, und liefert diesen dann an den Entwickler und die Entwicklerin zurück.

Eine weitere neue Möglichkeit eröffnet sich den Entwicklern im Bereich Oberflächengestaltung. Mit Windows 10 hat Microsoft die Universal Windows Platform (UWP) eingeführt. UWP ermöglicht es nach Jahrzehnten der Windows Forms Executables, Software in einem festen Rahmenwerk an den Nutzer zu bringen [2]. Die eigene App oder das eigene Spiel können dann auf all denjenigen Geräten genutzt werden, die Windows 10 als Basisbetriebssystem nutzen: Desktop-PCs, Smartphones, VR-Brillen (HoloLens), Konsolen (Xbox) und Windows-IoT-Geräte. Durch konsolidierte APIs und strenge Regeln im Zusammenspiel von App und Betriebssystem können UWP-Apps durch den Windows-Store komfortabel auf eine Vielzahl von Geräten verteilt werden [3]. Zur Definition der Oberfläche nutzen UWP-Apps die schon von der Windows Presentation Foundation (WPF) bekannte Extensible Application Markup Language (XAML). Im Vergleich zur Windows-Forms-Programmierung ist die Erstellung von auflösungsunabhängigen Oberflächen hiermit einfacher [4]. Programmieren mit XAML ist ein wichtiger Baustein für die Plattformunabhängigkeit von Apps. UWP unterstützt neben der klassischen Eingabe per Maus und Tastatur auch modernere Eingabeformen wie Spracheingabe, Kamerabild und Gesten. Abbildung 1 zeigt den Windows-Taschenrechner im neuen UWP-Design. Hier ist der Hintergrund zum Beispiel semitransparent – in UWP-Apps ist das eine einfache, aber effektive Farbeinstellung.

caasen_automl_uwp_1.tif_fmt1.jpgAbb. 1: UWP-Layout mit Transparenzeffekt (Quelle: adesso)

Die Möglichkeiten im Überblick

Wie bringt man einen neuartigen App-Lifecycle mit einem modernen Layout und dem genau passenden Algorithmus für ein neuronales Netz zusammen? Die Antwort auf diese Frage ist das NuGet-Paket Microsoft.ML. Das plattformunabhängige Paket funktioniert auf .NET Framework, .NET Core sowie .NET Standard und kann dadurch neben Windows auch auf Linux genutzt werden. Doch bevor ich auf die Details der AutoML-Möglichkeiten eingehe, nehmen wir zunächst eine Einordnung in das KI-Ökosystem von Microsoft vor.

Das älteste heute genutzte Framework von Microsoft ist das 2014 veröffentlichte Microsoft Cognitive Toolkit (CNTK). Zunächst startete es als C++-Bibliothek – heutzutage bietet es auch Wrapper für C#, Java und Python. Die schnellsten Erfolge feiern Entwickler dagegen in der Regel be...

Neugierig geworden? Wir haben diese Angebote für dich:

Angebote für Gewinner-Teams

Wir bieten Lizenz-Lösungen für Teams jeder Größe: Finden Sie heraus, welche Lösung am besten zu Ihnen passt.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang