LMI-MAG1 DEC 2019 - Magazine - Page 37
L
’apprentissage machine est une discipline complexe. Heureusement, grâce
à des frameworks d’apprentissage machine comme TensorFlow de Google,
la mise en œuvre de modèles qui facilitent le processus d’acquisition de
données, l’entraînement des modèles,
les prédictions et l’affinement des futurs résultats, est devenu beaucoup plus simple. Créé par
l’équipe Google Brain, TensorFlow est une bibliothèque
open source destinée au calcul numérique et à l’apprentissage machine à grande échelle. Ce framework regroupe
une multitude de modèles et d’algorithmes d’apprentissage machine et d’apprentissage profond (aussi appelés
réseaux neuronaux) qu’elle rend utilisables par le biais
d’une métaphore commune. La bibliothèque s’appuie
sur Python pour fournir une API de front-end facilement
utilisable afin de construire des applications avec le
framework, tout en exécutant ces applications dans un
langage C++ très performant.
TensorFlow entraîne et exécute des
réseaux neuronaux profonds pour le
classement des chiffres manuscrits, la
reconnaissance d’images, l’intégration de
mots, les réseaux neuronaux récurrents,
les modèles « Sequence-to-Sequence »
pour la traduction automatique, le traitement du langage naturel et les simulations PDE (équations aux dérivées partielles). Mieux encore, TensorFlow prend
en charge la prédiction de la production à
l’échelle, avec les mêmes modèles utilisés
pour le training.
Fonctionnement de TensorFlow
Cependant, les véritables opérations mathématiques
ne sont pas réalisées en Python. Les bibliothèques des
transformations disponibles via TensorFlow sont écrites
sous forme de binaires C++ hautes performances.
Python ne fait que diriger le trafic entre les pièces, et
fournit des abstractions de programmation de haut
niveau pour les relier entre elles.
Les applications TensorFlow peuvent être exécutées sur
la plupart des cibles disponibles, à savoir, une machine
locale, un cluster dans le cloud, des périphériques iOS et
Android, des CPU ou des GPU. Si vous utilisez le cloud de
Google, vous pouvez exécuter TensorFlow sur son silicium
personnalisé TensorFlow Processing Unit (TPU) pour accélérer le processus. Cependant, les modèles créés par
TensorFlow peuvent être déployés sur la plupart des appareils où ils seront utilisés pour les prédictions.
TensorFlow 2.0, en version bêta depuis le mois de juin
2019, apporte différentes évolutions qui tiennent compte
des commentaires des utilisateurs en vue de faciliter son
usage (par exemple, l’utilisation de l’API
Keras, relativement simple, pour entraîRÉUSSIR UN PROJET D’IA :
ner un modèle) et d’accroitre son effica“LES USAGES PASSENT
cité. L’entraînement distribué est plus
AVANT LA TECHNIQUE”
facile à exécuter grâce à une nouvelle API
Article/Podcast
et la prise en charge de TensorFlow Lite
permet de déployer des modèles sur une
plus grande variété de plateformes. Cependant, le code écrit pour les versions
antérieures de TensorFlow doit être réébit.ly/2QZ5CNj
crit - parfois légèrement, parfois de maSponsorisé par Intel
nière significative - pour tirer le meilleur
parti des nouvelles fonctionnalités de
TensorFlow 2.0.
Grâce à TensorFlow, les développeurs créent des
graphiques de flux de données - des structures qui
décrivent le déplacement des données à travers un
graphique ou une série de nœuds de traitement.
Chaque nœud du graphique représente une opération
mathématique, et chaque connexion ou bord entre les
nœuds est un réseau de données multidimensionnel, ou
tenseur. TensorFlow fournit tout cela au programmeur
via le langage Python. Ce dernier est facile à apprendre
et à utiliser, et offre des solutions pratiques pour
exprimer comment coupler des abstractions de haut
niveau. Les nœuds et tenseurs de TensorFlow sont
des objets Python, et les applications TensorFlow sont
elles-mêmes des applications Python.
L’abstraction est le plus gros avantage de TensorFlow
pour le développement de l’apprentissage machine.
Au lieu de s’occuper de l’implémentation des algorithmes dans les moindres détails ou de chercher des
solutions appropriées pour lier une fonction en sortie
avec une autre fonction en entrée, le développeur peut
se concentrer sur la logique globale de l’application,
TensorFlow s’occupant des détails en coulisses.
TensorFlow présente d’autres avantages pour les développeurs ayant besoin de déboguer et d’intervenir de manière plus approfondie sur les apps TensorFlow. Ainsi,
le mode d’exécution rapide évalue et de modifie chaque
opération graphique séparément et de manière
37