Im vergangenen Jahr hat Apple Core ML-a in die Welt des maschinellen Lernens für Apple-Entwickler eingeführt. Zuvor nutzten wir bereits maschinelles Lernen mit Technologien wie AutoCorrect, Siri und einer vorhersagenden Tastatur, aber Core ML brachte den Entwicklern ein neues Maß an Leistung und Flexibilität. Während der WWDC 18 kündigte Apple Core ML 2 an. In diesem Artikel erfahren Sie, was es Neues gibt.
Bevor wir uns mit den Änderungen von Core ML 2 beschäftigen, wollen wir kurz besprechen, was Core ML wirklich ist. Lassen Sie uns genauer ein wenig über die Nuancen des maschinellen Lernens lernen. Core ML ist ein Framework, mit dem iOS- und MacOS-Entwickler maschinelles Lernen einfach und effizient in ihre Apps implementieren können.
Maschinelles Lernen ist die Verwendung statistischer Analysen, um Computer bei Entscheidungen und Vorhersagen zu unterstützen, die auf den in diesen Daten gefundenen Merkmalen basieren. Mit anderen Worten, es ist der Vorgang, bei dem ein Computer ein abstraktes Verständnis eines vorhandenen Datensatzes (als "Modell" bezeichnet) bildet und dieses Modell zur Analyse neuerer Daten verwendet.
Mit Core-Technologien auf Apple-Plattformen kann Core ML schnelle und effiziente Tools zum maschinellen Lernen anbieten, die in Apps implementiert werden können. Dies funktioniert durch die Verwendung von Metal und Accelerate, um die GPU und die CPU des Geräts voll auszunutzen und eine nahtlose Geschwindigkeit zu erzielen. Dies ermöglicht auch maschinelles Lernen, um auf dem Gerät zu arbeiten, anstatt für jede Anforderung einen Internetzugang zu benötigen.
Prognostiziert die Ausgabe-Feature-Werte aus einem gegebenen Stapel von Eingabe-Feature-Werten.-Apple-Dokumentation
Die Batch-Vorhersage ist erwähnenswert, da Apple es in der ersten Version von Core ML nicht hatte. Auf einen Blick ermöglicht die Batch-Vorhersage, dass Sie Ihr Modell mit einer Reihe von Daten ausführen und eine Reihe von Ausgaben erhalten.
Wenn Sie ein Core-ML-Modell zum Klassifizieren von Bildern nach Blumen oder Bäumen hätten und mehrere Bilder klassifizieren möchten, beispielsweise 300, müssen Sie ein schreiben for-Schleife
Durchlaufen Sie jedes der Bilder und klassifizieren Sie es regelmäßig anhand Ihres Modells.
In Core ML 2 bekommen wir jedoch das, was Apple das nennt Batch Predict API. Dadurch können wir mehrere Vorhersagen für einen Datensatz treffen, ohne for-Schleifen verwenden zu müssen. Wenn Sie es verwenden möchten, rufen Sie einfach an:
modelOutputs = model.prediction (aus: modelInputs, Optionen: Optionen)
modelInputs
, In diesem Beispiel handelt es sich um die Menge der Eingaben, für die Sie Ihr Modell ausführen möchten, aber wir werden nicht darüber sprechen, was das ist Optionen
sind in diesem Artikel. Wenn Sie mehr über die Verwendung der Batch Predict-API erfahren möchten, lesen Sie die Apple-Dokumentation. Dies mag zwar zunächst keine große Sache sein, verbessert aber tatsächlich die Leistung des Modells um satte 30%.!
Verwenden Sie Create ML mit bekannten Tools wie Swift und MacOS-Spielplätzen, um auf Ihrem Mac benutzerdefinierte Modelle für das maschinelle Lernen zu erstellen und zu trainieren. Sie können Modelle trainieren, um Aufgaben wie das Erkennen von Bildern, das Extrahieren von Bedeutungen aus Text oder das Finden von Beziehungen zwischen numerischen Werten zu trainieren.-Apple-Dokumentation
Während Core ML schon immer eine leistungsstarke Plattform war, war es nicht immer einfach, eigene Modelle zu erstellen. In der Vergangenheit war es fast notwendig, mit Python vertraut zu sein, um selbst die grundlegendsten Modelle erstellen zu können. Mit Core ML 2 haben wir auch Create ML geschaffen, eine einfache Möglichkeit, eigene Core ML-Modelle zu erstellen.
Das Erstellen von ML ist jedoch nicht nur auf bildbasierte Modelle beschränkt. Ohne auch nur ein echtes Xcode-Projekt erstellen zu müssen, können Sie verschiedene Arten von Modellen auf einem Spielplatz trainieren. Darüber hinaus können Sie diese Modelle auch testen und für die Verwendung in jeder Anwendung exportieren.
Mit einem Muster wie einem Faltungs-Neuronalen Netzwerk können Sie mit ML erstellen einen benutzerdefinierten Bildklassifikator erstellen, um bestimmte Merkmale eines bestimmten Bildes zu identifizieren. Sie können es beispielsweise trainieren, um zwischen einem Baum und einer Blume zu unterscheiden.
Oder Sie könnten es für komplexere Anwendungen verwenden, z. B. zur Bestimmung der Pflanzentype oder einer bestimmten Hunderasse. Je nach Anzahl der Bilder erhöht sich die Genauigkeit wie bei jedem maschinellen Lernmodell.
In Envato Tuts + erfahren Sie, wie Sie in Create ML einen Image-Klassifikator erstellen.
Mit Create ML können Sie nicht nur ein Werkzeug zur Bildklassifizierung sein, sondern auch beim Erstellen textbasierter maschineller Lernmodelle. Sie können beispielsweise ein Modell erstellen, das Ihnen das Gefühl in einem bestimmten Satz zeigt. Oder Sie können einen Spam-Filter erstellen, der die Textmerkmale (d. H. Die verwendeten Wörter) verwendet, um zu prüfen, ob eine Zeichenfolge "Spam" oder "Kein Spam" ist..
Manchmal können mehrere Datenpunkte oder Funktionen hilfreich sein, wenn Sie versuchen, Daten zu klassifizieren. Tabellenkalkulationen sind ein sehr gutes Beispiel dafür, und mit ML erstellen lassen sich Core-ML-Modelle auf der Grundlage erstellen CSV Dateien auch.
Jetzt können Sie mit Ihren Excel-Tabellen ein Modell erstellen, das den Aktienmarkt anhand von Kauf- und Verkaufsmustern vorhersagt. oder vielleicht sagt er das Genre des Buches basierend auf dem Namen des Autors, dem Titel und der Seitenzahl voraus.
Durch die Bündelung Ihres maschinellen Lernmodells in Ihrer App ist der einfachste Einstieg in Core ML möglich. Wenn Modelle weiterentwickelt werden, können sie groß werden und viel Speicherplatz beanspruchen. Berücksichtigen Sie bei einem auf einem neuronalen Netzwerk basierenden Modell die Reduzierung des Footprints, indem Sie für die Gewichtsparameter eine niedrigere Genauigkeit verwenden
Mit der Einführung von Core ML 2 und iOS 12 können Entwickler die Größe ihrer bereits trainierten Modelle jetzt um über 70% gegenüber der Originalgröße reduzieren. Die Modellgröße kann ein echtes Problem sein - Sie haben möglicherweise festgestellt, dass einige Ihrer Apps mit jedem Update größer werden!
Dies ist keine Überraschung, da die Entwickler ihre Modelle für maschinelles Lernen ständig verbessern, und wie in der Entwicklerdokumentation beschrieben, benötigen fortgeschrittenere Modelle mehr Speicherplatz, wodurch die eigentliche App größer wird. Wenn die App zu groß wird, können einige Benutzer das Herunterladen von Updates beenden und die Verwendung dieser Apps beenden.
Glücklicherweise haben Sie jetzt die Fähigkeit dazu quaGröße Ein Modell, bei dem die Größe je nach Qualität, die Sie aufgeben möchten, erheblich abnimmt. Quantisierung ist nicht der einzige Weg; Es gibt auch andere Möglichkeiten!
Core ML Tools bietet Entwicklern die Möglichkeit, die Gewichte auf die halbe Größe zu reduzieren. Wenn Sie nicht wissen was Gewichte sind schon, es ist okay; Sie müssen nur wissen, dass sie in direktem Zusammenhang mit der Genauigkeit des Modells stehen. Wie Sie vielleicht schon erraten haben, entspricht die halbe Größe der halben Genauigkeit.
Modelle vor Core ML 2 hatten nur die Option, mit 32 Bit dargestellt zu werden, was für die Genauigkeit großartig ist, aber nicht ideal für die Speichergröße. Halbpräzise reduziert diese Zahl auf nur 16 Bit und kann die Größe des Modells erheblich reduzieren. Wenn Sie dies für Ihre Modelle tun möchten, finden Sie in der Dokumentation einen umfassenden Leitfaden.
Es ist großartig, Ihre Modelle auf Ihrem Gerät zu haben, da dies zu mehr Sicherheit und Leistung führt und nicht von einer festen Internetverbindung abhängt. Wenn Ihre App jedoch mehrere Modelle verwendet, um eine nahtlose Benutzererfahrung zu erzielen, sind möglicherweise nicht alle diese Modelle gleichzeitig erforderlich.
Sie können diese Modelle auch nach Bedarf herunterladen und vor Ort kompilieren, anstatt sie mit Ihrer App zu bündeln und den Platz zu erhöhen, den Ihre App auf dem Gerät Ihres Benutzers belegt. Sie können diese Modelle sogar herunterladen und vorübergehend auf dem Gerät Ihres Benutzers speichern, um zu vermeiden, dass dasselbe Modell mehrmals heruntergeladen wird.
In diesem Artikel haben Sie die neuesten und besten Technologien in Core ML kennengelernt und erfahren, wie sie sich mit der API-Version des Vorjahres vergleichen lassen. Während Sie hier bei Envato Tuts + sind, finden Sie einige unserer weiteren großartigen Inhalte zum maschinellen Lernen!