L'année dernière, Apple a lancé Core ML-a segue dans le monde de l'apprentissage automatique pour les développeurs Apple. Auparavant, nous utilisions déjà l'apprentissage automatique avec des technologies telles que la correction automatique, Siri et un clavier prédictif, mais Core ML apportait un nouveau niveau de puissance et de flexibilité aux développeurs. Au cours de la WWDC 18, Apple a annoncé le lancement du Core ML 2 et, dans cet article, vous en apprendrez plus sur les nouveautés..
Avant de plonger dans les changements apportés par le Core ML 2, discutons brièvement de ce qu’est réellement le Core ML. Plus spécifiquement, apprenons un peu plus sur les nuances de l'apprentissage automatique. Core ML est un framework qui permet aux développeurs iOS et macOS de mettre en œuvre facilement et efficacement l'apprentissage automatique dans leurs applications..
L'apprentissage automatique consiste à utiliser l'analyse statistique pour aider les ordinateurs à prendre des décisions et à établir des prévisions en fonction des caractéristiques trouvées dans ces données. En d’autres termes, c’est le fait de disposer d’un ordinateur qui forme une compréhension abstraite d’un ensemble de données existant (appelé "modèle") et d’utiliser ce modèle pour analyser de nouvelles données..
En utilisant des technologies de bas niveau sur les plateformes Apple, Core ML est en mesure d’offrir des outils d’apprentissage automatique rapides et efficaces à mettre en œuvre dans vos applications. Cela fonctionne en utilisant Metal et Accelerate pour tirer pleinement parti du processeur graphique et du processeur de l'appareil, assurant ainsi une vitesse homogène. Cela permet également à l’apprentissage automatique de fonctionner sur le périphérique au lieu d’avoir besoin d’un accès à Internet pour chaque requête..
Prédit les valeurs d'entité en sortie à partir d'un lot donné de valeurs d'entité en entrée.-Documentation Apple
Il est intéressant de noter la prédiction par lot, car Apple ne l'avait pas dans la première version de Core ML. La prédiction par lots vous permet d’exécuter votre modèle sur un ensemble de données et d’obtenir un ensemble de sorties..
Si vous aviez un modèle Core ML pour classer les images, qu’elles contiennent des fleurs ou des arbres et que vous vouliez classifier plusieurs images, par exemple 300, vous devrez écrire un pour-boucle
parcourir différentes images et les classer régulièrement à l'aide de votre modèle.
Dans le noyau ML 2, cependant, nous obtenons ce que Apple appelle le API de prédiction par lot. Cela nous permet de faire plusieurs prédictions sur un ensemble de données sans avoir à utiliser de boucles for-lo. Si vous voulez l'utiliser, il vous suffit d'appeler:
modelOutputs = model.prediction (from: modelInputs, options: options)
modelInputs
, dans cet exemple, est l'ensemble des entrées sur lesquelles vous souhaitez exécuter votre modèle, mais nous ne couvrirons pas ce que le options
sont dans cet article. Si vous souhaitez en savoir plus sur l'utilisation de l'API Batch Predict, n'hésitez pas à vous reporter à la documentation d'Apple. Bien que cela ne semble pas être un gros problème au début, cela améliore de 30% les performances du modèle.!
Utilisez Create ML avec des outils familiers tels que les aires de jeux Swift et macOS pour créer et former des modèles d’apprentissage automatique personnalisés sur votre Mac. Vous pouvez former les modèles à effectuer des tâches telles que la reconnaissance d'images, l'extraction de signification d'un texte ou la recherche de relations entre des valeurs numériques.-Documentation Apple
Bien que Core ML ait toujours été une plate-forme puissante, il n'a pas toujours été facile de créer vos propres modèles. Dans le passé, il était presque nécessaire de se familiariser avec Python pour pouvoir créer les modèles les plus élémentaires. Avec Core ML 2, nous avons également Create ML, un moyen facile de créer vos propres modèles Core ML.
Créer une ML ne se limite toutefois pas aux modèles basés sur des images. Sans même créer un vrai projet Xcode, vous pouvez former différents types de modèles sur un terrain de jeu. En outre, vous pouvez également tester ces modèles et les exporter pour les utiliser dans n’importe quelle application..
Avec un modèle tel qu'un réseau de neurones à convolution, Create ML peut vous aider à créer un classificateur d'image personnalisé pour identifier certaines caractéristiques d'une image donnée. Par exemple, vous pouvez l’entraîner à distinguer entre un arbre et une fleur.
Vous pouvez également l'utiliser pour des applications plus complexes telles que l'identification du type de plante ou d'une race spécifique de chien. En fonction du nombre d'images, la précision augmente, comme avec tout modèle d'apprentissage automatique..
Découvrez mon article ici sur Envato Tuts + pour savoir comment créer un classificateur d'images dans Create ML.
En plus d’être un outil de classification d’images, Create ML peut également vous aider à créer des modèles d’apprentissage automatique basés sur du texte. Par exemple, vous pouvez créer un modèle qui vous indique le sentiment dans une phrase particulière. Vous pouvez également créer un filtre anti-spam qui utilise les caractéristiques du texte (c'est-à-dire les mots utilisés) pour vérifier si une chaîne est "spam" ou "non spam"..
Parfois, plusieurs points de données ou fonctionnalités peuvent être utiles lorsque vous essayez de classer des données. Les feuilles de calcul en sont un très bon exemple. Create ML peut créer des modèles Core ML basés sur CSV fichiers aussi bien.
Désormais, vos feuilles de calcul Excel peuvent être utilisées pour créer un modèle qui prédit le marché boursier en fonction de modèles d’achat et de vente; ou peut-être, il prédit le genre du livre en fonction du nom de l'auteur, du titre et du nombre de pages.
Regrouper votre modèle d'apprentissage automatique dans votre application est le moyen le plus simple de démarrer avec Core ML. À mesure que les modèles évoluent, ils peuvent devenir volumineux et occuper beaucoup de place. Pour un modèle basé sur un réseau neuronal, envisagez de réduire son empreinte en utilisant une représentation de précision inférieure pour ses paramètres de pondération.-Documentation Apple.
Avec l'introduction de Core ML 2 et iOS 12, les développeurs sont désormais en mesure de réduire de plus de 70% la taille de leurs modèles déjà formés par rapport à la taille d'origine. La taille du modèle peut être un problème réel. Vous avez peut-être remarqué que certaines de vos applications deviennent de plus en plus grandes à chaque mise à jour.!
Cela n’est pas surprenant, car les développeurs améliorent constamment leurs modèles d’apprentissage automatique. Bien entendu, comme indiqué dans la documentation destinée aux développeurs, des modèles plus avancés occupent plus d’espace de stockage, ce qui rend l’application réelle plus grande. Si l'application devient trop volumineuse, certains utilisateurs peuvent arrêter de télécharger les mises à jour et cesser d'utiliser ces applications..
Heureusement, vous avez maintenant la possibilité de en tant quentize un modèle qui permet à sa taille de diminuer de manière significative, en fonction de la quantité de qualité que vous êtes prêt à abandonner. La quantification n'est pas la seule solution; il y a aussi d'autres moyens!
Core ML Tools fournit aux développeurs un moyen de réduire les poids à une demi-taille. Si vous ne savez pas quoi poids sont encore, c'est bon; tout ce que vous devez savoir, c'est qu'ils sont directement liés à la précision du modèle. Comme vous l'avez peut-être deviné, une demi-taille équivaut à une demi-précision.
Les modèles antérieurs au Core ML 2 pouvaient uniquement être représentés avec 32 bits, ce qui est excellent pour la précision, mais pas idéale pour la taille de stockage. La demi-précision réduit cela à seulement 16 bits et peut considérablement réduire la taille du modèle. Si vous souhaitez appliquer cela à vos modèles, consultez la documentation pour un guide complet..
Il est bon d’avoir vos modèles sur votre appareil car il en résulte une sécurité et des performances accrues et ne dépend pas d’une connexion Internet solide. Toutefois, si votre application utilise plusieurs modèles pour créer une expérience transparente pour l'utilisateur, tous ces modèles peuvent ne pas être nécessaires en même temps..
Vous pouvez également télécharger ces modèles selon vos besoins et les compiler sur place au lieu de les regrouper avec votre application et d'augmenter ainsi l'espace occupé par votre application sur le périphérique de votre utilisateur. Vous pouvez même télécharger ces modèles et les stocker temporairement sur le périphérique de votre utilisateur pour éviter de télécharger plusieurs fois le même modèle..
Dans cet article, vous avez découvert les technologies les plus récentes et les plus performantes de Core ML et comment elles se comparent à la version précédente de l'API. Pendant que vous êtes sur Envato Tuts +, découvrez certains de nos autres excellents contenus d’apprentissage automatique.!