Expérimentations en Deep Learning
Pendant mon apprentissage du deep learning, j’ai suivi la formation en ligne Le Deep Learning de A à Z sur Udemy.
Elle proposait plusieurs études de cas permettant de construire progressivement différents types de réseaux de neurones avec Keras : classification de données tabulaires, reconnaissance d’images, séries temporelles et détection d’anomalies.
Les jeux de données et les scénarios étaient fournis avec la formation. Mon travail consistait principalement à préparer les données, implémenter les modèles, tester différentes configurations et interpréter leurs résultats.
Prédire l’attrition des clients d’une banque
La première étude de cas portait sur une banque cherchant à identifier les clients les plus susceptibles de partir chez un concurrent.
Le jeu de données contenait plusieurs informations anonymisées : ancienneté, nombre de produits détenus, activité du compte, solde ou encore score de crédit. Une colonne indiquait si le client avait quitté la banque.
Après le nettoyage des données, l’encodage des variables catégorielles et leur standardisation, j’ai construit un réseau dense avec Keras :
- 11 variables en entrée
- deux couches cachées de 6 neurones
- un neurone de sortie avec une activation sigmoïde
L’objectif de l’exercice ne consistait pas seulement à entraîner le modèle, mais aussi à découvrir plusieurs méthodes permettant de mieux l’évaluer et de l’ajuster :
- séparation entre données d’entraînement et de test
- matrice de confusion
- validation croisée
- régularisation par dropout
- recherche d’hyperparamètres avec Grid Search
- ajustement du seuil de décision
L’exercice demandait d’améliorer progressivement l’accuracy jusqu’à dépasser l’objectif donné de 90 %. J’y suis parvenu en combinant ces différentes méthodes.
L’accuracy seule est toutefois insuffisante pour juger ce type de modèle. Dans un problème d’attrition, il est également important d’observer la capacité du modèle à détecter les clients réellement susceptibles de partir, à l’aide d’autres métriques comme le rappel, la précision par classe et la matrice de confusion.
Cette première étude de cas m’a surtout permis de comprendre que l’évaluation d’un modèle ne se résume pas au score affiché à la fin de l’entraînement.
Reconnaître des chiens et des chats avec un CNN
La deuxième étude demandait d’entrainer un modèle permettant de catégoriser des images de chiens et de chats à partir d’un jeu de 10 000 images, réparties de manière équilibrée.
J’ai donc construit un réseau convolutionnel en utilisant la bibliothèque Keras :
- une couche de convolution
- une couche de max pooling
- une étape d’aplatissement
- une couche dense
- une sortie binaire

Les images étaient redimensionnées avant leur passage dans le réseau. Pour limiter le surapprentissage, j’ai utilisé l’augmentation d’images proposée par Keras : rotations légères, zooms, translations et retournements horizontaux.
Cette première architecture obtenait des résultats nettement meilleurs sur les données d’entraînement que sur les images de test. J’ai donc expérimenté plusieurs ajustements, notamment l’ajout de couches de convolution et de pooling, ce qui a permis d’améliorer la généralisation du modèle mais pas de supprimer totalement l’écart sur des données inconnues.
Ce projet m’a permis d’aborder concrètement plusieurs notions propres à la vision par ordinateur :
- convolution et extraction de caractéristiques
- réduction de dimension par pooling
- préparation d’un dataset d’images
- augmentation artificielle des données
- diagnostic du surapprentissage
- influence de l’architecture sur le temps d’entrainement et la qualité des résultats obtenus
Il m’a aussi appris qu’ajouter des couches ne constitue pas automatiquement une solution : la diversité des données, leur quantité, qualité et la stratégie d’évaluation restent déterminantes.
Expérimenter les LSTM sur des séries temporelles
La troisième partie de la formation portait sur les réseaux récurrents et plus particulièrement les LSTM.
L’étude de cas utilisait cinq années d’historique du cours d’ouverture de l’action Google, entre 2012 et 2016. L’objectif était de produire une estimation pour le mois de janvier 2017.
Les valeurs ont été normalisées, puis transformées en séquences : pour chaque prédiction, le modèle recevait les 60 observations précédentes, soit environ trois mois de cotations.
Le réseau comportait quatre couches LSTM de 64 unités, avec une régularisation par dropout entre les couches, puis un neurone de sortie. Il était entraîné avec l’erreur quadratique moyenne comme fonction de coût.

Les prédictions obtenues suivent globalement la direction de la courbe réelle, mais avec deux caractéristiques visibles :
- elles sont plus lisses
- elles réagissent avec un léger retard
Ce graphique est intéressant pour comprendre le comportement du modèle, mais il ne suffit pas à démontrer une capacité réelle de prévision des marchés. Le réseau ne disposait que du cours d’ouverture passé, sans volume, indicateurs économiques, actualités ni autres variables susceptibles d’influencer le prix.
L’objectif de l’exercice était surtout de manipuler des séquences temporelles et de comprendre comment préparer les entrées d’un LSTM, pas de construire un système de trading.
Signaler des profils atypiques avec une SOM
La dernière étude de cas portait sur un formulaire bancaire anonymisé contenant 690 dossiers et 14 variables descriptives, auxquelles s’ajoutait un identifiant.
La banque disposait déjà d’une vérification manuelle des demandes. Il n’existait donc pas suffisamment de fraudes confirmées pour entraîner directement un modèle supervisé fiable.
L’approche retenue reposait sur une carte auto-organisatrice, ou Self-Organizing Map.
Une SOM projette des observations décrites par de nombreuses variables sur une carte en deux dimensions. Les dossiers présentant des caractéristiques proches sont regroupés autour des mêmes neurones, tandis que les profils plus atypiques apparaissent dans des zones éloignées du reste de la carte.

Sur la visualisation :
- les zones les plus claires correspondent aux neurones présentant une forte distance moyenne avec leur voisinage
- les carrés verts représentent les demandes acceptées manuellement
- les cercles rouges représentent les demandes refusées
La carte permettait ainsi de repérer certains cas intéressants à réexaminer : par exemple une demande acceptée située dans une zone très atypique, ou une demande refusée au milieu de profils pourtant courants.
Il est cependant important de ne pas interpréter directement ces anomalies comme des fraudes. La SOM ne permet que d’identifier une liste de dossiers suspects à transmettre à la banque pour une analyse approfondie. Cette analyse permettrait ensuite d’adapter les critères de choix des neurones aberrants pour réduire le nombre de vérification manuelles
La formation évoquait ensuite la possibilité d’utiliser ces résultats pour alimenter un réseau supervisé et ordonner les dossiers selon leur probabilité de fraude. Cette partie était cependant hors du périmètre de cette étude cas en raison des données limitées qui ne permettaient pas un entraînement et une évaluation suffisamment solide du modèle.
Ce que ces exercices m’ont appris
Ces quatre études de cas m’ont permis de découvrir plusieurs architectures de réseaux de neurones, mais leur apport principal a surtout été méthodologique.
J’y ai appris à :
- préparer différents types de données
- construire et entraîner des modèles avec Keras
- sélectionner une fonction de coût adaptée au problème
- utiliser la validation croisée et la recherche d’hyperparamètres
- appliquer des techniques de régularisation
- identifier le surapprentissage
- distinguer anomalie statistique et décision métier
- remettre en question un résultat même lorsque sa visualisation paraît convaincante
Ils m’ont également montré que la complexité d’un réseau n’est qu’une partie du problème. La qualité des données, la stratégie de validation et l’interprétation des erreurs sont souvent plus importantes que le nombre de couches.
Ces expérimentations ont constitué une première base avant ma spécialisation en data science et mes projets plus appliqués autour du NLP, de l’OCR et des séries temporelles.
commentaires fournis par Disqus