Un survol des concepts essentiels de TensorFlow

Par yferrani, 11 février, 2024
Neurones

La création de TensorFlow

TensorFlow, développé par Google, est une bibliothèque open source pour l’apprentissage automatique et l’intelligence artificielle. Il a été publié pour la première fois en 2015 sous la licence Apache 2.0. Il est conçu pour fonctionner indépendamment de l’infrastructure informatique de Google, mais bénéficie du soutien financier et des améliorations continues de Google. 

TensorFlow 2.0, sorti en octobre 2019, a été amélioré grâce aux retours des utilisateurs. Il intègre désormais Keras, une API assez simple pour l’entraînement des modèles. De plus, TensorFlow 2.0 facilite le déploiement sur diverses plateformes et offre une meilleure compatibilité.

En tant que projet communautaire, TensorFlow permet à tous les utilisateurs de contribuer et de profiter des avantages de l’IA. 

Où l’utilise-t-on? : Exemples d’utilisation de TensorFlow

Plusieurs entreprises optent pour l'utilisation de TensorFlow en raison de ses nombreux avantages considérables. Voici quelques exemples illustrant son application :

Reconnaissance d'images : Utilisé dans des secteurs tels que la santé, les banques et l'éducation, TensorFlow permet l'analyse des pixels et des motifs pour identifier les images et leurs composants.

Reconnaissance vocale : Employé dans les systèmes de téléphonie mobile, les assistants numériques et les moteurs de recherche, TensorFlow peut convertir la voix humaine en texte ou en code compréhensible par l'ordinateur.

Autres utilisations : Bluetooth, assistants numériques, commandes vocales de Google, les systèmes de gestion de la relation client (CRM) et bien plus. 

Image retirée.

Pourquoi l'utiliser?

TensorFlow a été créé pour simplifier la construction et le déploiement de modèles d’apprentissage automatique dans diverses applications. Il permet d’implémenter des modèles mathématiques d’intelligence artificielle assez rapidement sans pour autant comprendre toute la complexité qu’il y a derrière. Il est devenu très populaire en raison de son écosystème flexible et de sa capacité à s’exécuter sur plusieurs processeurs et cartes graphiques (CPUs et GPUs). 

L’une des principales raisons d’utiliser TensorFlow réside dans sa polyvalence. Voici quelques raisons pourquoi l’utiliser :

  1. Tensorflow peut être utiliser sur différentes plateformes comme des ordinateurs, des serveurs, des appareil mobiles, dans le cloud, etc.
  2. Tensorflow permet de créer des modèles d’apprentissage automatique personnalisés.
  3. Il offre un écosystème riche d’outils, de bibliothèques et de modules pour le développement et la recherche.
  4. Il est optimisé pour l’apprentissage profond et les réseaux de neurones, ce qui lui permet de réaliser des tâches complexes comme le traitement du langage naturel.
  5. Il demeure en constante évolution grâce à la contribution de la communauté. 

L'architecture de TensorFlow

L’architecture de TensorFlow se divise en trois parties : 

  • Préparation des données : Les données sont rassemblées, nettoyées et transformées pour être utilisables.
  • Création du modèle : On construit un schéma qui montre comment les données vont passer à travers le modèle et quelles opérations vont être faites sur lui.
  • Développement et évaluation du modèle : On fait apprendre au modèle à partir des données, on vérifie s’il fonctionne bien et on l’améliore si besoin.
Image retirée.

TensorFlow s’appelle ainsi parce qu’il prend des données sous forme de tenseurs, qui sont comme des tableaux à plusieurs dimensions. Les données entrent d’un côté, passent par un système d’actions variées et sortent de l’autre côté comme résultat. TensorFlow est donc comme un tuyau où un tenseur entre, traverse une série de processus et finit par en sortir.

Les concepts clés

Il est important de comprendre les rôles essentiels des concepts clés de TensorFlow dans le domaine de l’apprentissage automatique et de l’intelligence artificielle. Ces concepts sont les fondations sur lesquelles nous construisons des modèles performants et innovants.

Tensors

Au cœur de TensorFlow se trouvent les tensors, qui sont des tableaux multidimensionnels représentant les données. Les tensors sont des vecteurs ou des matrices n-dimensionnels qui peuvent représenter toutes les formes de données. Chaque valeur dans un tensor a le même type de données et une forme connue. Les dimensions des matrices ou des tableaux correspondent à la forme des données.

Dans tensorflow, le tensor est donc un tableau à n dimension. Dans cette exemple, tensorflow représente la matrice 2x3 avec des valeurs 1 à 6 :  

Image retirée.

Un tf.tensor est un objet ayant 3 propriétés : Un nom, une forme (scalaire, matrice 3x3, matrice 4x2, vecteur …) et un type de données (float32, int32, string, ... )

Graphe (également appelé graphe de calcul ou graphe de flux de données)

Toutes les opérations dans TensorFlow sont exécutées à l’intérieur d’un graphique de calcul. Ce graphique est une séquence de calculs qui se déroule dans un ordre spécifique. Chaque opération est représentée par un nœud (ou opération) dans le graphique, et les arêtes (représentant les Tensors) relient ces nœuds entre eux.

Image retirée.

Le graphique décrit les opérations et les relations entre les nœuds, mais les valeurs ne sont pas affichées. Les bords des nœuds représentent les tenseurs, qui fournissent les données aux opérations. Les tensors sont stockés dans le graphique en tant que constantes ou variables.

Sessions

Une session est l’environnement d’exécution dans lequel les opérations sont évaluées. Elle gère les ressources et optimise l’exécution du graphique. On doit exécuter les graphes dans une session TensorFlow. Les sessions permettent de calculer les valeurs des tensors et d’effectuer des opérations sur les variables.

Image retirée.

Au début de la session, il ne faut pas oublier d’initialiser les opérations tf.Variable grâce à tf.global_variables_initializer. 

Constantes

Les constantes correspondent aux Tensors de valeur fixe. On utilise l’opérateur tf.constant pour définir une constante. 

Image retirée.

Variables

Les variables sont des tensors persistants qui peuvent être modifiés pendant l’entraînement d’un modèle. Elles sont utilisées pour stocker les paramètres du modèle et sont essentielles pour l’apprentissage automatique. Les variables sont créées via la classe tf.Variable.

Image retirée.

Placeholders

Les placeholders sont des variables spéciales utilisées pour fournir des données au tensor. Ils sont utilisés pour initialiser des données circulant à l’intérieur des tensors. Les placeholders sont définis via tf.placeholder.

Image retirée.

Nœuds 

Les nœuds dans TensorFlow représentent des instances d’opérations mathématiques.

Image retirée.

TensorBoard

TensorFlow propose un outil appelé TensorBoard qui permet de visualiser ce qui se passe dans un graphique. TensorBoard est une page web qui permet de déboguer un graphique en vérifiant ses paramètres, ses connexions de nœuds, etc. Pour utiliser TensorBoard, on doit étiqueter les graphiques avec les paramètres que l'on souhaite examiner, tels que la valeur de perte (loss). 

Image retirée.

L'importance de ces concepts

Les concepts clés de TensorFlow sont essentiels pour plusieurs raisons lors de la création et de l’utilisation de modèles d’apprentissage automatique :

Prétraitement des données : Avant d’entraîner un modèle, il est essentiel de prétraiter les données. Le flux de données est utilisé pour nettoyer, normaliser et transformer les données brutes en un format adapté à l’entraînement.

Création de modèles : Les tenseurs, les graphiques de calcul et les nœuds sont utilisés pour construire des modèles d’apprentissage automatique. Ex. : Création d’un réseau de neurones en reliant des couches de nœuds dans un graphique de calcul.

Entraînement des modèles : Les variables et les placeholders sont utilisés pendant l’entraînement des modèles. Les variables stockent les paramètres du modèle (comme les poids), et les placeholders fournissent les données d’entraînement.

Déploiement des modèles : Une fois que le modèle est entraîné, il peut être déployé dans des applications, des services web, des applications mobiles, etc. Les sessions permettent d’exécuter le modèle.

Visualisation et débogage : TensorBoard permet de visualiser le graphique du modèle, de suivre des métriques, visualiser les distributions de tenseurs, et plus encore.

Comprendre par la pratique

Après avoir abordé les notions essentielles de TensorFlow, pourquoi ne pas poursuivre votre exploration en effectuant vos propres recherches et en pratiquant par vous-même ? Voici deux liens qui vous permettront de mieux comprendre TensorFlow de manière interactive :

  1. Introduction à TensorFlow 2.0
  2. Formation d'un modèle d'apprentissage automatique

Bonne pratique et à la semaine prochaine!

Ressources

Commentaires1

etruong

il y a 11 mois

Bonjour!

Je voulais vous dire que tout d'abord, votre article est bien expliqué et clair! C'est la première fois que j'entends parler de cette bibliothèque et cela a l'air fascinant. 

Je me demandais si vous avez des exemples de produits et d'entreprises qui ont utilisés cette bibliothèque?