Android Machine Learning
Comme vous le savez, un intérêt croissant pour l’apprentissage automatique a forcé les entreprises à s’y intéresser et à y investir. Le Machine Learning (ML) est la majeure partie de la science informatique, qui se concentre sur l’analyse et l’interprétation des modèles et des structures dans les données pour permettre l’apprentissage, le raisonnement et la prise de décision en dehors de l’interaction avec l’être humain. En outre, l’apprentissage automatique est une approche de programmation qui donne à vos applications Android la capacité d’apprendre et de s’améliorer automatiquement à partir d’expériences antérieures. En conséquence, Google a conçu et mis en œuvre un certain nombre de fonctionnalités et d’outils avancés pour l’apprentissage automatique d’Android. Cet article vise à discuter de certains concepts principaux et des fonctionnalités avancées qui ont été recommandées pour les développeurs Android.
- Introduction et aperçu
- La définition de l’apprentissage automatique (ML)
- L’apprentissage automatique dans le développement Android
- Lignes directrices pour la conception d’applications Android
- La décision clé dans le développement Android
- Kit ML pour les développeurs d’applications
- TensorFlow Lite
- AutoML Vision Edge
- En conclusion
Introduction et aperçu
Basiquement, l’apprentissage automatique (ML) est une approche de programmation qui fournit à vos applications Android la capacité d’apprendre et d’améliorer automatiquement à partir de l’expérience sans être explicitement programmé pour le faire. Récemment, Android dispose d’une large gamme d’outils d’apprentissage automatique qui sont disponibles pour tout le monde : les concepteurs, les chefs de produit aux ingénieurs, les développeurs mobiles et les experts en apprentissage automatique. Android est une plateforme, et l’une des façons de mesurer le succès d’une plateforme est de voir les grandes réalisations qu’elle permet de construire. Aujourd’hui, Android fonctionne sur 2,5 milliards d’appareils, et un certain nombre d’entre eux utilisent déjà l’apprentissage automatique sur l’appareil. De plus, l’apprentissage automatique sur appareil n’est plus une technologie du futur, car elle est accessible dès maintenant. Par exemple, il a été mentionné que plus de 25 000 applications sur Android et iOS utilisent les fonctionnalités du kit ML.
En d’autres termes, les téléphones mobiles modernes ont une capacité de traitement suffisante pour atteindre celle des ordinateurs traditionnels, et nos téléphones et tablettes sont suffisamment puissants pour exécuter des applications, qui peuvent apprendre et interagir en temps réel. L’apprentissage automatique (ML) nous aide à créer des applications intelligentes. Par exemple, la prédiction par Google Apps des prochaines applications que vous êtes susceptible d’utiliser, et une application mobile qui résout le plus grand problème du monde pour trouver l’emoji parfait. En outre, les assistants intelligents, les filtres Snapchat, les réponses intelligentes et les lentilles Google sont quelques-uns des autres produits de l’apprentissage automatique sur les appareils. Il existe un certain nombre de kits de développement logiciel (SDK) sur les téléphones mobiles qui permettent d’exécuter l’apprentissage automatique sur les appareils mobiles. Certains d’entre eux comprennent des kits de développement logiciel développés par des entreprises populaires telles qu’Amazon, Intel et Microsoft, et Google a également développé le ML Kit. Les sections suivantes de cet essai examineront certains concepts principaux et de nouvelles fonctionnalités qui ont été recommandés par Google pour le développement d’Android.
La définition de l’apprentissage automatique (ML)
En fait, le majeur de l’apprentissage automatique est concerné par la question de savoir comment construire des programmes informatiques qui s’améliorent automatiquement avec les expériences. Ainsi, votre réponse se trouve dans vos données. En bref, l’apprentissage automatique est considéré comme un sous-ensemble de l’IA, qui utilise des méthodes statistiques pour permettre aux machines de s’améliorer avec l’expérience. Il permet à un système informatique de prendre des décisions pour effectuer une certaine tâche. Ces programmes ou algorithmes sont conçus de telle manière qu’ils peuvent apprendre et s’améliorer au fil du temps en observant de nouvelles données. L’objectif principal de l’apprentissage automatique est de tirer du sens des données. Par conséquent, les données sont la clé pour déverrouiller l’apprentissage automatique. Plus le ML dispose de données qualifiées, plus l’algorithme du ML devient précis.
L’apprentissage automatique (ML) est la science des algorithmes informatiques qui s’améliorent automatiquement grâce aux expériences passées.
Pour faire des prédictions ou prendre des décisions sans être explicitement programmés, les algorithmes d’apprentissage automatique construisent un modèle basé sur des exemples que l’on appelle des données d’entraînement.
L’apprentissage automatique est l’extraction de connaissances à partir de données.
En outre, il existe certaines différences entre l’intelligence artificielle et l’apprentissage automatique. L’objectif de l’intelligence artificielle est de créer une machine capable d’imiter l’esprit humain, et elle nécessite également des capacités d’apprentissage. Cependant, il ne s’agit pas seulement d’apprentissage, mais aussi de représentation des connaissances, de raisonnement et de pensée abstraite. En revanche, l’apprentissage automatique se concentre uniquement sur la création de logiciels capables d’apprendre à partir d’expériences passées. En outre, l’apprentissage automatique est plus étroitement lié à l’exploration de données et aux statistiques qu’à l’intelligence artificielle.
L’apprentissage automatique nous permet de résoudre certains types de problèmes de manière très élégante. Le point important est de savoir pourquoi nous utilisons l’apprentissage automatique dans la pratique. Par exemple, vous avez dû écrire du code pour détecter si quelqu’un marchait. De plus, si vous aviez accès à sa vitesse, vous devez écrire un bout de code assez simple pour spécifier une métrique de la vitesse qui montre la marche dans la réalité. Étendre cette situation à la course semble assez simple. En outre, si nous voulions couvrir le vélo, il nous suffirait d’ajouter une autre condition limite à notre code. Pour l’instant, la question est de savoir ce qu’il en est des autres types d’activités, par exemple, le golf ?
En fait, le golf comprend beaucoup de marche, mais il y a aussi le fait de porter et de balancer un tas de clubs. Alors, comment expliquer cet état ? C’est là que l’apprentissage automatique peut nous aider efficacement. Dans la programmation traditionnelle, nous exprimons des règles dans des langages tels que Kotlin ou Java. Ensuite, nous appliquons ces règles au problème qui nous intéresse. Dans l’apprentissage automatique, le paradigme est quelque peu différent. Au lieu d’écrire un tas de règles, nous prenons un grand nombre de données d’étiquetage comme des photos de personnes engagées dans différents types d’activités avec des étiquettes correspondantes pour ces activités. En outre, si nous alimentons notre réseau neuronal avec ces données, il apprendra les règles de gestion pour nous sans avoir à les définir. En bref, l’apprentissage automatique s’est avéré remarquablement efficace pour résoudre un certain nombre de problèmes de différents types comme la détection d’activités.
L’apprentissage automatique dans le développement Android
Comme vous l’avez remarqué, l’apprentissage automatique est une approche de programmation qui fournit à vos applications Android la capacité d’apprendre et de s’améliorer automatiquement à partir de l’expérience sans être explicitement programmées pour le faire. De plus, cette approche est bien adaptée aux applications Android qui utilisent des données non structurées comme des images et du texte, ou des problèmes avec un grand nombre de paramètres comme la prédiction de l’équipe sportive gagnante. Actuellement, Android offre une grande variété d’outils et de méthodes d’apprentissage automatique : Les guides de conception ML, le kit SDK d’apprentissage automatique clé en main de Google ML Kit, TF Hub pour trouver des modèles de pointe préconstruits, TF Lite Model Maker pour entraîner un modèle existant avec vos propres données, et les modèles personnalisés ML Kit et Android Studio pour intégrer ces modèles dans votre application Android de manière appropriée.
Pour développer des applications ML pour Android, vous serez confronté aux quatre tâches principales suivantes :
- Conception : identifier les objectifs du produit et fournir des modèles de conception ML pour les atteindre.
- Construire et entraîner : construire le modèle ML, ou entraîner le modèle pré-entraîné de Google.
- Inférence : le processus d’utilisation d’un modèle d’apprentissage automatique, qui a déjà été entraîné pour accomplir une certaine tâche.
- Déployer : Installation et mise à jour des modèles ML pour votre application Android.
Lignes directrices pour la conception d’applications Android
Initialement, il n’y a pas de différence par rapport aux autres technologies avancées. Vos concepteurs de produits et l’ingénierie ont tous combiné pour décider quel type de problème nous essayons de résoudre avec notre produit. Donc, ce n’est pas un effort unique. C’est un processus extrêmement itératif lorsque vous avez une nouvelle technologie. Vous voulez tester les limites, et vous voulez collaborer. En outre, vous voulez observer comment l’utilisateur utilise réellement votre produit. Cela signifie que la conception, la gestion des produits et l’ingénierie logicielle jouent un rôle clé dans ce processus. Google a produit deux guides dans ce domaine d’étude comme suit:
- The People + AI Guidebook : Dans ce guide, il y a six sections différentes pour vous aider à structurer votre conversation avec vos concepteurs et vos gestionnaires de produits. Dans l’ensemble, il offre des meilleures pratiques pour aider votre équipe à prendre des décisions de produits d’IA centrées sur l’humain.
2. The Material Design for Machine Learning spec : cette ligne directrice comprend des sections suivantes :
Premièrement, de nouvelles directives de Material Design pour les cas d’utilisation ML sur mobile.
Deuxièmement, permettre une grande UX mobile de bout en bout alimentée par ML.
Troisièmement, code source disponible pour la détection et le suivi d’objets et la lecture de codes à barres.
La décision clé dans le développement Android
En fait, une décision clé que vous devriez aborder dans le développement Android est l’inférence s’exécutera sur le périphérique, ou utilisera un service cloud qui serait accessible à distance. Pour prendre cette décision avec précision, vous devez considérer certains paramètres comme des avantages ou des inconvénients. Par exemple, pour l’approche sur l’appareil, vous serez confronté à certains avantages comme suit :
- Confidentialité : Dans de nombreux cas, il est plus approprié de simplement tout garder sur l’appareil. Par conséquent, nous n’avons pas à nous soucier de la façon dont les données sont traitées dans le cloud.
2. Hors ligne : l’apprentissage automatique sur l’appareil fonctionne lorsqu’il n’y a pas de connectivité, ou lorsque le réseau est inégal. Par exemple, si vous passez du temps dans les trains souterrains, vous saurez que cela peut être utile.
3. Faible latence : en exécutant notre traitement sur l’appareil, nous pouvons être en mesure de supprimer complètement la latence du réseau de l’équation. De plus, en couplant cela avec les dernières avancées en matière d’accélération matérielle, nous pouvons offrir aux utilisateurs des expériences véritablement en temps réel sur un large éventail d’appareils Android.
Kit ML pour les développeurs d’applications
En fait, le SDK ML Kit est un nouveau produit de Google, qui a été présenté en 2018. ML Kit est un kit de développement logiciel qui permet aux développeurs de simplifier l’intégration de modèles d’apprentissage automatique dans leurs apps mobiles. En outre, même un développeur junior peut s’attaquer à cette tâche facilement. Un autre point est qu’il rend vos apps iOS et Android beaucoup plus engageantes, personnalisées et utiles grâce à des solutions optimisées pour fonctionner sur le périphérique. Comme il a été mentionné, plus de 25 000 apps sur Android et iOS utilisent les fonctionnalités de ML Kit.
Un nouveau SDK qui apporte l’expérience de l’apprentissage automatique de Google aux développeurs mobiles dans un package puissant et facile à utiliser sur Firebase.
ML Kit a quelques fonctionnalités qui peuvent être classées en trois sections:
- Vision : API d’analyse vidéo et d’image pour étiqueter les images et détecter les codes-barres, le texte, les visages et les objets.
- Langage naturel : API de traitement du langage naturel pour identifier et traduire entre 58 langues et fournir des suggestions de réponse.
- Personnalisé : Construisez vos propres modèles à l’aide d’AutoML Vision Edge, ou apportez vos propres modèles TensorFlow Lite, effectuez des expériences et déployez-les en production avec ML Kit.
Chaque catégorie possède certaines fonctionnalités. Par exemple, la vision a certaines fonctionnalités comme API de base : Lecture de codes à barres, Détection de visages, Étiquetage d’images, Détection d’objets, Détection de points de repère et Détection de texte.
TensorFlow Lite
Basiquement, TensorFlow Lite est un ensemble d’outils pour aider les programmeurs à exécuter les modèles TensorFlow sur les appareils mobiles, embarqués et IoT de manière appropriée. En fait, il fournit une inférence d’apprentissage machine sur l’appareil avec une faible latence et une petite taille binaire. En d’autres termes, TensorFlow Lite est conçu pour faciliter l’exécution de l’apprentissage automatique sur les appareils, à la périphérie du réseau, au lieu d’envoyer des données dans les deux sens depuis un serveur. TensorFlow Lite comprend deux composants principaux :
- L’interpréteur TensorFlow Lite : il s’exécute (modèles optimisés) sur de nombreux types de matériel différents, tels que les téléphones mobiles et les microcontrôleurs.
2. Le convertisseur TensorFlow Lite : il convertit les modèles TensorFlow en une forme productive pour une utilisation par l’interpréteur, et peut être en mesure d’introduire des optimisations pour améliorer la taille et les performances du binaire.
Enfin, les étapes pour utiliser TensorFlow Lite contient des étapes suivantes brièvement :
- Choisir un modèle
- Convertir le modèle
- Déployer sur votre appareil
- Optimiser votre modèle
AutoML Vision Edge
Cette nouvelle fonctionnalité de Google permet de construire des modèles de classification d’images personnalisés à partir de vos propres données d’entraînement. En fait, si vous envisagez de reconnaître le contenu d’une image, une option pourrait utiliser l’API d’étiquetage d’image sur appareil de ML Kit. Toutefois, si vous avez besoin d’un modèle d’étiquetage d’images plus spécialisé, vous pouvez utiliser Firebase ML et AutoML Vision Edge pour entraîner un modèle avec vos propres images et catégories. Par exemple, un modèle permettant de distinguer les espèces de fleurs ou les types d’aliments. Le modèle personnalisé est formé dans Google Cloud, puis il peut être utilisé pleinement sur l’appareil.
En conclusion
En un coup d’œil, l’apprentissage automatique est une approche de programmation qui fournit à vos applications Android la capacité d’apprendre et d’améliorer automatiquement à partir de l’expérience précédente. En conséquence, Google a conçu et mis en œuvre un certain nombre de fonctionnalités et d’outils avancés pour le développement Android. Cet article a examiné certains des principaux concepts et fonctionnalités avancées qui ont été suggérés aux développeurs Android par Google.