À plus d'une occasion, nous avons prouvé que l'utilisation de la
bibliothèque Keras pour résoudre un problème de classification de texte
est le meilleur choix pour construire rapidement un modèle de Deep
Learning solide et efficace.
Aujourd'hui, à la suite de notre
réflexion sur les défis de la classification de textes, nous souhaitons faire connaître l'utilité de Keras pour répondre aux
besoins de nos clients en matière d'apprentissage automatique et les
avantages de son utilisation par rapport à d'autres bibliothèques de réseaux
de neurones bien connues comme Tensorflow.
Keras est une bibliothèque python qui offre, presque directement, des modèles d'apprentissage profond notoires. Elle a été développée de manière à ce que la bibliothèque soit facile à apprendre et à utiliser. L'idée de l'équipe de Keras derrière son travail est de faciliter la recherche sur l'apprentissage automatique, car elle déclare que l'objectif est de : "Pouvoir passer de l'idée au résultat avec le moins de retard possible est essentiel pour faire de bonnes recherches".
Depuis TensorFlow 2.0, Keras est intégré à TensorFlow et est recommandé comme API de haut niveau.
Les avantages que nous offre Keras
L'un des aspects pratiques de l'utilisation de Keras est le fait qu'il offre des API pour chaque étape de notre parcours de prédiction, du prétraitement à la prédiction et à l'évaluation (voir la figure 1 pour les étapes de prédiction).
En outre, nous avons le choix entre l'API de modèle séquentiel pour construire des réseaux neuronaux sous la forme d'une pile de couches, l'API fonctionnelle pour gérer des modèles complexes à entrées et sorties multiples ou l'API de sous-classement de modèle pour obtenir un modèle entièrement personnalisable.
En résumé, l'API est très conviviale et offre le niveau d'abstraction nécessaire.
Quels types de défis peuvent être relevés avec Keras ?
Dans le cas de l'un de nos clients, nous étions en possession de données non structurées, à savoir du texte au format libre, essentiellement étiqueté. Comme les meilleures performances observées pour la classification de textes ont été réalisées avec l'algorithme d'apprentissage profond https://nlpprogress.com/english/text_classification.html, nous avons décidé d'explorer l'utilisation des algorithmes CNN (Convolutional Neural Networks) et LSTM (Long-Short Term Model).
Pour éviter les étapes de prétraitement intensives telles que la suppression des mots vides ou la lemmatisation des mots, nous nous sommes appuyés sur les capacités des réseaux neuronaux pour éliminer le bruit. Les réseaux neuronaux doivent inférer les variables latentes du texte qui apprennent les mots ayant une forte influence sur le résultat de la classification.
Nous devions encore effectuer une tâche de prétraitement nécessaire pour transformer notre ensemble de données textuelles d'entrée en une matrice de séquences codées et pour codifier également les données de sortie. Pour la transformation d'entrée, nous avons utilisé la fonction Keras "text_to_sequences" suivie de la fonction "pad_sequences" afin d'obtenir des entrées de longueur égale. La codification des étiquettes de sortie était basée sur l'attribution d'un code différent à chaque classe possible.
L'ensemble de données était alors prêt à être traité par des algorithmes d'apprentissage automatique, et nous avons pu façonner notre modèle de classification avec l'API séquentielle de Keras. Les modèles très simples ne nécessitent pas plus de 2 lignes de code pour être définis. En fait, notre algorithme de base peut être composé d'une couche dense qui définit les neurones apprenant les paramètres à partir des données d'entrée et d'une couche d'activation donnant la classe de sortie.
Les deux dernières étapes pour obtenir nos premiers résultats sont la compilation du modèle avec la bonne fonction de perte et une bonne fonction d'optimisation puis l'ajustement du modèle avec les données d'entrée et de sortie.
Grâce à une approche itérative, nous avons obtenu les résultats impressionnants décrits dans ce cas client(https://openwt.com/fr/cases/automatisation-des-specifications-de-produits-grace-a-lintelligence-artificielle/). En fait, à partir de la description du fabricant du produit, nous avons réussi à classer la marque et les attributs du produit, ce qui a permis à notre client de rationaliser le placement de ses produits en ligne sur sa plateforme de commerce électronique.
Vous pouvez en savoir plus sur le cas d'utilisation de l'apprentissage automatique : Classification de textes et classification d'e-mails par l'IA