Modélisation du contexte à l'aide de transformateurs : reconnaissance des aliments

Par : Mohammadreza Dorkhah, Sayema Mashhadi et Shannon Lo, Statistique Canada

Introduction

Notre équipe de chercheurs de la Division de la science des données et du Centre de données sur la santé de la population (CDSP) de Statistique Canada a mené un projet de validation de principe permettant de distinguer des aliments dans des images et de chercher une autre façon de recueillir des données sur la nutrition.

Étant donné que ce projet était le premier du genre à Statistique Canada, les équipes qui ont participé à la création de cette validation de principe devaient utiliser exclusivement des ensembles de données d'images d'aliments accessibles au public. Par conséquent, nous avons constitué un ensemble de données définitif contenant des images et des étiquettes qui correspondaient aux aliments et aux boissons consommés par les Canadiens à partir de trois autres ensembles de données. L'ensemble de données qui en a résulté a servi à concevoir un modèle d'apprentissage profond de reconnaissance des aliments qui peut prédire 187 catégories différentes d'aliments ou de boissons et discerner plusieurs produits dans une seule image.

Le modèle d'apprentissage profond de reconnaissance des aliments s'appuie sur un transformateur de vision à la fine pointe de la technologie comme encodeur, appelé « transformateur de segmentation » (segmentation transformer, ou SETR), et un modèle image-texte multimodal pour la modélisation du contexte, appelé « module d'apprentissage de recettes » (Recipe Learning Module, ou ReLeM). Dans le cadre du projet, les membres de l'équipe du CDSP ont testé et vérifié manuellement le rendement des modèles SETR et ReLeM, que nous expliquerons plus loin dans le présent article.

Ensembles de données

Les trois ensembles de données publiques que nous avons utilisés pour concevoir notre ensemble de données définitif convenaient à notre objectif de segmentation sémantique au niveau des ingrédients pour les images d'aliments. Cependant, étant donné que chaque ensemble de données comporte un ensemble différent de catégories d'aliments, nous avons dû les mettre manuellement en correspondance avec des catégories dérivées d'un guide de nutrition (Valeur nutritive de quelques aliments usuels). Les figures 1, 2 et 3 montrent des exemples d'images et de leurs étiquettes pour chacun des trois ensembles de données. Les étiquettes sont des masques de segmentation d'images utilisés pour annoter chaque pixel et distinguer des éléments tels que l'eau, le pain et d'autres aliments.

FoodSeg103

  • 7,118 images (4,983 images d'entraînement, 2,135 images de validation
  • 102 catégories d'aliments
Exemple d'image et de résultat tirés de l'ensemble de données FoodSeg103
Figure 1 : Exemple d'image et de résultat tirés de l'ensemble de données FoodSeg103

Une image d'un gâteau et de fraises tranchées à gauche. L'image de sortie à droite représente la forme du gâteau et des fraises dans leurs propres couleurs.

Résultat tirés de l'ensemble de données FoodSeg103
Couleur Nom de Colour Catégorie initiale Guide de nutrition
L'arrière-plan de la cellule du tableau est coloré "Saumon clair" Saumon clair Gâteau Gâteau
L'arrière-plan de la cellule du tableau est coloré "Magenta" Magenta Fraise Fraise

UECFoodPIX

  • 10,000 images (9,000 images d'entraînement, 1,000 images de validation)
  • 102 catégories d'aliments
Exemple d'image et de résultat tirés de l'ensemble de données UECFoodPIX
Figure 2 : Exemple d'image et de résultat tirés de l'ensemble de données UECFoodPIX.

Une image d'aliments composée de saumon, d'une omelette, de riz, d'une soupe et d'autres aliments à gauche. L'image de sortie à droite représente les formes des images d'aliments dans leurs couleurs correspondantes.

Résultat tirés de l'ensemble de données FoodSeg103
Couleur Nom de Colour Catégorie initiale Guide de nutrition
L'arrière-plan de la cellule du tableau est coloré "Lime" Lime Autres Autres
L'arrière-plan de la cellule du tableau est coloré "Bleu royal" Bleu royal Riz mélangé Céréales, riz
L'arrière-plan de la cellule du tableau est coloré "Bleu ardoise" Bleu ardoise Soupe de miso Soupe
L'arrière-plan de la cellule du tableau est coloré "Bleu ardoise moyen" Bleu ardoise moyen Boisson Boisson
L'arrière-plan de la cellule du tableau est coloré "Brique de feu" Brique de feu Saumon grillé Poisson
L'arrière-plan de la cellule du tableau est coloré "Lime" Lime Autres Autres

MyFoodRepo

  • 58,157 images (54,392 images d'entraînement, 946 images de validation et 2,819 images d'essai)
  • 323 catégories d'aliments
  • Nous avons utilisé des techniques de raffinement pour pallier le problème lié aux masques grossiers.
Exemples d'images tirés de l'ensemble de données MyFoodRepo
Figure 3 : Exemples d'images tirés de l'ensemble de données MyFoodRepo.

Une image d'aliments composée de pâtes à la crème, garnies de persil et de tomates à gauche. Deux images de sortie à droite représentent les formes des images d'aliments dans leurs couleurs correspondantes, l'une pour le masque initial et l'autre pour le masque raffiné.

l'ensemble de données MyFoodRepo.
Couleur Nom de Colour Catégorie initiale Guide de nutrition
L'arrière-plan de la cellule du tableau est coloré "Bleu acier clair" Bleu acier clair Sauce à la crème Sauce
L'arrière-plan de la cellule du tableau est coloré "Violet" Violet Persil Persil
L'arrière-plan de la cellule du tableau est coloré "Saumon foncé" Saumon foncé Tomate Tomate

Certaines catégories se chevauchent dans chaque ensemble de données étiquetées et ont été combinées en une seule dans notre ensemble de données définitif. Après la suppression de quelques étiquettes en raison du nombre insuffisant d'exemples d'images et après le regroupement d'autres étiquettes afin d'obtenir des groupes cohérents de types d'aliments similaires, 187 types différents d'aliments et de boissons ont été établis au total.

Segmentation d'images

La segmentation d'images constitue la base de nombreuses tâches de vision par ordinateur en aval, comme la détection d'objets et la classification d'images. C'est une méthode qui consiste à diviser une image en sous-groupes. Cette division s'effectue habituellement en fonction du contour ou des limites visibles des objets dans une image afin d'en réduire la complexité. La segmentation peut également signifier l'attribution d'étiquettes à chaque pixel d'une image dans le but de définir les éléments importants. La segmentation d'images a plusieurs utilités dans les domaines des véhicules autonomes, de l'analyse d'images médicales et d'images satellites, de la vidéosurveillance et d'autres tâches de reconnaissance et de détection. La segmentation d'images est également utilisée en imagerie médicale, comme l'indique un récent article du Réseau de la science des données intitulé « Segmentation d'images en imagerie médicale ». Les modèles de segmentation d'images basés sur un réseau neuronal contiennent presque toujours un encodeur et un décodeur. L'encodeur sert à l'apprentissage de la représentation des caractéristiques, et le décodeur sert à la classification en pixels des représentations des caractéristiques.
Trois grands types de techniques de segmentation d'images sont utilisés couramment dans le domaine de la vision par ordinateur :

  • Segmentation sémantique : Elle permet d'associer chaque pixel d'une image à une étiquette de catégorie, comme une voiture, un arbre, un fruit ou une personne. Elle traite plusieurs objets de la même catégorie comme une seule entité.
  • Segmentation d'instance : Elle ne permet pas d'associer chaque pixel d'une image à une étiquette de catégorie. Elle traite plusieurs objets de la même catégorie en tant qu'instances individuelles distinctes, sans nécessairement reconnaître les instances individuelles. Par exemple, la voiture 1 et la voiture 2 sont représentées par des couleurs différentes dans une image.
  • Segmentation panoptique : Elle permet de combiner les concepts de segmentation sémantique et de segmentation d'instance, et d'attribuer deux étiquettes à chaque pixel d'une image, à savoir l'étiquette sémantique et l'identificateur d'instance.
Exemple de segmentation sémantique, de segmentation d'instance et de segmentation panoptique à partir d'une seule image d'entrée.
Figure 4 : Exemple de segmentation sémantique, de segmentation d'instance et de segmentation panoptique à partir d'une seule image d'entrée.

Quatre images représentant une image d'entrée et trois types de segmentation utilisés sur l'image, à savoir la segmentation sémantique, la segmentation d'instance et la segmentation panoptique.

Pipeline de segmentation d'images d'aliments

Les modèles de segmentation sémantique ont été jugés appropriés pour notre modèle de reconnaissance des aliments. Cela s'explique principalement par la capacité du modèle à reconnaître le type de nourriture ou de boisson, puisque c'était le principal objectif de l'exercice. Les réseaux entièrement convolutifs (REC) sont des choix populaires pour la segmentation sémantique. Cependant, les modèles d'encodeurs basés sur la résolution spatiale des images d'entrée par sous-échantillonnage du REC entraînent la création de mises en correspondance des caractéristiques à basse résolution. Dans l'article intitulé « Rethinking Semantic Segmentation from a Sequence-to-Sequence Perspective with Transformers », les auteurs ont proposé un nouveau modèle de segmentation basé sur l'architecture de transformateur pur, appelé « transformateur de segmentation » (SEgmentation TRansformer, ou SETR). Un encodeur SETR traite une image d'entrée comme une séquence de morceaux d'image représentés par la vectorisation de morceaux d'image acquis, puis transforme la séquence au moyen de la modélisation par autoattention globale pour l'apprentissage de la représentation discriminante des caractéristiques. Ce modèle a fourni davantage de contexte pour la tâche de reconnaissance des aliments à l'aide du module ReLeM, comme l'ont proposé les auteurs du rapport intitulé « A Large-Scale Benchmark for Food Image Segmentation ». Les modules SETR et ReLeM sont expliqués plus en détail ci-dessous.

Figure 5 : Diagramme du pipeline de segmentation d'images d'aliments. Source : A Large-Scale Benchmark for Food Image Segmentation.
Figure 5 : Diagramme du pipeline de segmentation d'images d'aliments. Source : A Large-Scale Benchmark for Food Image Segmentation.

Le diagramme du pipeline de segmentation d'images d'aliments montre l'interaction entre le module d'apprentissage de recettes et le module de segmentation d'images.

Texte dans l'image : Encodeur de vision, ec perte cosinoïdale/perte sémantique ec, Encodeur de texte, Ingrédients : ½ tasse A.1. Marinade classique, 1 bifteck de surlonge désossé. Instructions : Verser la marinade sur le bifteck dans un sac en plastique refermable. Sceller le sac : retourner le sac pour enrober uniformément le bifteck de marinade. Encodeur de vision (partage des poids), Décodeur de vision

Encodeur de vision (partage des poids) à Décodeur de vision

Module d'apprentissage de recettes

Le module ReLeM fournit des modèles contenant des renseignements contextuels sur les ingrédients tirés de recettes de cuisine. Dans l'article intitulé « A Large-Scale Benchmark for Food Image Segmentation », les auteurs décrivent le module ReLeM comme [traduction] « une approche de préentraînement multimodal […] qui permet de doter de manière explicite un modèle de segmentation de connaissances riches et sémantiques sur les aliments ».

Le module a été entraîné à l'aide d'un ensemble de données Recipe1M (voir Learning Cross-Modal Embeddings for Cooking Recipes and Food Images). Cet ensemble de données contient plus de 1 million de recettes et 800 000 images d'aliments. En étant exposé à des recettes et à des images d'aliments, le module ReLeM forme des associations entre les ingrédients, un peu comme les humains comprennent quels aliments se trouvent généralement ensemble.

Lors de l'entraînement d'un modèle de classification des images d'aliments, il est important d'utiliser des recettes comme données d'entraînement. Cela permet au module de créer des associations entre des ingrédients qui peuvent varier visuellement lorsqu'ils sont préparés différemment. Le module ReLeM apprend également les instructions de préparation des aliments dans des recettes. Par exemple, les aubergines en purée diffèrent visuellement des aubergines frites. En revanche, il peut y avoir différents ingrédients qui se ressemblent, comme le lait et le yogourt. Le module ReLeM a établi des associations entre les ingrédients et les aliments qui apparaissent souvent ensemble, ce qui est utile dans ces scénarios. Par exemple, si un verre contenant une substance blanche et une assiette de biscuits aux pépites de chocolat figurent dans l'image, le module ReLeM pourrait déduire que la substance blanche est plus probablement du lait que du yogourt, puisqu'il y a une association connue entre le lait et les biscuits. Le module ReLeM s'appuie sur la perte sémantique et cosinoïdale pour déterminer la similitude entre les aliments.

Modèle de transformateur de segmentation

Les transformateurs et les modèles d'autoattention ont permis d'améliorer la compréhension et le rendement du traitement du langage naturel. Les modèles GPT-3 (transformateur génératif préentraîné de troisième génération) et BERT (représentations de l'encodeur bidirectionnel à partir de transformateurs), très populaires dans le domaine du traitement du langage naturel, sont basés sur l'architecture du transformateur. La même architecture peut être utilisée pour les images, mais cet apprentissage de séquence à séquence suppose des séquences 1D en entrée. Le modèle d'encodeur SETR de pointe prétraite les images 2D avant de les alimenter dans l'architecture du transformateur. L'image 2D est décomposée en petits morceaux de taille fixe, puis chaque morceau est converti en une séquence 1D. Cette séquence de morceaux d'image est représentée par la vectorisation de morceaux d'images acquis dont il a été question dans le document mentionné précédemment sur la segmentation sémantique. Une fois cette séquence de vectorisation des caractéristiques fournie à l'entrée, le transformateur apprend la représentation discriminante des caractéristiques qui sont retournées à la sortie de l'encodeur SETR. Le modèle de l'encodeur est plus complexe que le modèle du décodeur, puisqu'il doit apprendre et produire une représentation de caractéristiques complexes pour différencier chaque catégorie avec précision.

Figure 6 : Encodeur SETR tiré de l'article « Rethinking Semantic Segmentation from a Sequence-to-Sequence Perspective with Transformers »
Figure 6 : Encodeur SETR tiré de l'article « Rethinking Semantic Segmentation from a Sequence-to-Sequence Perspective with Transformers »

Le diagramme illustre la conception du transformateur de segmentation (SETR).

Texte dans l'image : Vectorisation des morceaux d'image et Vectorisation de positions, Normalisation de la couche, Attention à plusieurs têtes, Perceptron multicouche. Projection linéaire, 24x, Couche du transformateur, Décodeur

Un décodeur est ensuite utilisé pour récupérer la résolution d'image d'origine au moyen d'une classification à l'échelon des pixels. Dans notre cas, nous avons utilisé le décodeur d'agrégation de caractéristiques à plusieurs niveaux (multi-level feature aggregation, ou MLA). Le décodeur MLA accepte les représentations des caractéristiques de chaque couche du SETR. Toutes ces représentations de caractéristiques ont en commun la même résolution (aucune perte de résolution comme au moyen d'un REC) et passent par une série de remodelage et de suréchantillonnage pour obtenir les étiquettes de pixels.

Figure 7 : Décodeur MLA tiré de l'article « Rethinking Semantic Segmentation from a Sequence-to-Sequence Perspective with Transformers »
Figure 7 : Décodeur MLA tiré de l'article« Rethinking Semantic Segmentation from a Sequence-to-Sequence Perspective with Transformers »

Le diagramme illustre l'agrégation des caractéristiques à plusieurs niveaux. Plus précisément, une variante de type SETR-MLA.

Texte dans l'image : Z24, Z18, Z12, Z6, remodelage-conv, conv-conv-4x, conv-4x

Résultats

Voici les résultats de validation fondés sur les mesures de la moyenne de l'intersection sur l'union (MIoU), de l'exactitude moyenne (mAcc) et l'exactitude globale (aAcc) :

Voici les résultats de validation fondés sur les mesures de la moyenne de l'intersection sur l'union (MIoU), de l'exactitude moyenne (mAcc) et l'exactitude globale (aAcc) :
Mesure Valeur
MIoU 40,74 %
mAcc 51,98 %
aAcc 83,21 %

Résultats de tests basés sur les mesures de la précision, du rappel et du score F1 :

Résultats de tests basés sur les mesures de la précision, du rappel et du score F1 :
Mesure Valeur
Précision 81,43 %
Rappel 80,16 %
Score F1 80,79 %

Sans l'initialisation de l'encodeur de vision selon les poids ReLeM entraînés :

Figure 8 : Exemple d'un masque prédit sans l'initialisation de l'encodeur de vision selon les poids ReLeM entraînés
Figure 8 : Exemple d'un masque prédit sans l'initialisation de l'encodeur de vision selon les poids ReLeM entraînés.

Une image de muffins à gauche et un exemple d'un masque prédit à droite sans initialisation de l'encodeur de vision selon les poids ReLeM entraînés.

Exemple d'un masque prédit sans l'initialisation de l'encodeur de vision selon les poids ReLeM entraînés.
Couleur Nom de Colour Catégorie prédite
L'arrière-plan de la cellule du tableau est coloré "Jaune Vert" Jaune Vert Pain, grains entiers (blé entier)
L'arrière-plan de la cellule du tableau est coloré "Turquoise" Turquoise Thé
L'arrière-plan de la cellule du tableau est coloré "Saumon foncé" Orchidée Pomme
L'arrière-plan de la cellule du tableau est coloré "Orchidée moyenne" Orchidée moyenne Patate douce
L'arrière-plan de la cellule du tableau est coloré "Magenta" Magenta Boulette de pâte (dumpling)

Au moyen de l'initialisation de l'encodeur de vision selon les poids ReLeM entraînés :

Figure 9 : Exemple d'un masque prédit au moyen de l'initialisation de l'encodeur de vision selon les poids ReLeM entraînés.
Figure 9 : Exemple d'un masque prédit au moyen de l'initialisation de l'encodeur de vision selon les poids ReLeM entraînés.

Une image de muffins à gauche et un exemple d'un masque prédit à droite au moyen de l'initialisation de l'encodeur de vision selon les poids ReLeM entraînés.

Exemple d'un masque prédit au moyen de l'initialisation de l'encodeur de vision selon les poids ReLeM entraînés.
Couleur Nom de Colour Catégorie prédite
L'arrière-plan de la cellule du tableau est coloré "Turquoise" Turquoise Gâteau
L'arrière-plan de la cellule du tableau est coloré "Vert foncé" Vert foncé Banane

Conclusion

Le modèle de reconnaissance des aliments permet de prédire avec exactitude plusieurs aliments et boissons figurant dans une image en moins d'une seconde, et il permet d'obtenir systématiquement de bons résultats avec certaines catégories, comme le pain. Cependant, il a plus de difficultés avec des catégories d'apparence semblable, comme le bœuf et l'agneau. Le rendement peut être amélioré en ajoutant plus de données étiquetées pour des catégories minoritaires, en effectuant une ronde supplémentaire de reclassification des aliments d'apparence semblable et en utilisant des techniques contre le déséquilibre des catégories.

Rencontre avec le scientifique des données

Inscrivez-vous à la présentation Rencontre avec le scientifique des données

Si vous avez des questions à propos de mon article ou si vous souhaitez en discuter davantage, je vous invite à une Rencontre avec le scientifique des données, un événement au cours duquel les auteurs rencontrent les lecteurs, présentent leur sujet et discutent de leurs résultats.

Mardi, le 17 janvier
14 h 00 à 15 h 00 HE
MS Teams – le lien sera fourni aux participants par courriel

Inscrivez-vous à la présentation Rencontre avec le scientifique des données. À bientôt !

Abonnez-vous au bulletin d'information du Réseau de la science des données pour la fonction publique fédérale pour rester au fait des dernières nouvelles de la science des données.

Date de modification :

Prévisions en matière de consommation d'énergie dans les collectivités éloignées du Nord canadien

Par : Alireza Rahimnejad Yazdi, Lingjun Zhou et Zarrin Langari, l'Accélérateur numérique, Ressources naturelles Canada; Ryan Kilpatrick, CanmetÉNERGIE Ottawa, Ressources naturelles Canada

Introduction

Ressources naturelles Canada (RNCan) aide les collectivités du Nord et des régions éloignées du Canada à effectuer la transition de l'énergie traditionnelle produite à partir de combustibles fossiles à l'énergie renouvelable et verte. La plupart de ces collectivités sont géographiquement isolées et alimentées par des génératrices à combustibles fossiles. Pour appuyer cette initiative, les chercheurs de RNCan devaient prévoir avec précision la consommation d'énergie annuelle de ces collectivités afin de déterminer le type d'énergie renouvelable qui serait le mieux adapté pour soutenir ces collectivités. Pour ce faire, ils ont utilisé des données historiques sur la consommation d'énergie par heure, ainsi que des données démographiques et météorologiques. En établissant un profil horaire type de consommation d'énergie pour n'importe quelle collectivité, nous pouvons raisonnablement estimer la consommation horaire d'énergie pour les collectivités qui ne disposent pas de données historiques.

Grâce aux données accessibles au public fournies par son client, CanmetÉNERGIE Ottawa (CE-O) de RNCan, l'équipe de l'Accélérateur numérique s'est concentrée sur l'analyse des données de consommation d'énergie de 11 collectivités éloignées situées dans la région du Nunavik, dans le nord du Québec. Les données ont été présentées selon un niveau de précision horaire pour les années 2013, 2014 et 2015. Étant donné que cette approche analytique repose sur la consommation d'énergie moyenne pour ces trois années disponibles, les données sur la consommation d'énergie d'une année donnée s'infiltrent donc dans le modèle utilisé pour faire une prédiction pour cette année, et cette fuite de données mine la validité de toute mesure de rendement effectuée.

Nous considérons que la consommation d'électricité dans les collectivités éloignées a une relation non linéaire avec des variables comme la météo, la population, l'âge et l'efficacité des appareils, l'âge du bâtiment et, dans le cas du chauffage électrique, avec les taux d'occupation et les habitudes. Cependant, comme la plupart des méthodes de prédiction traditionnelles ne comportent pas de mécanisme d'apprentissage, il est difficile de décrire la relation non linéaire entre la consommation d'électricité et les variables exerçant une influence, ce qui entraîne des prévisions à faible précision.

Notre analyse permettra de déterminer si les techniques d'apprentissage automatique (AA) peuvent produire une prédiction plus précise des charges électriques dans les collectivités éloignées par rapport à l'approche analytique de CE-O, ainsi que de déterminer quel type de techniques d'AA est le plus approprié pour cette application. Nous espérons également appliquer la technique d'AA choisie pour créer des profils typiques horaires de charge électrique synthétique produite par diesel à l'ensemble des collectivités éloignées pour lesquelles des données granulaires de consommation horaire d'énergie ne sont pas disponibles.
Avant d'effectuer l'analyse, nous avons supposé ce qui suit :

  • Les populations des collectivités demeurent constantes tout au long de l'année, ce qui signifie qu'en tout temps, une maison a le même nombre d'occupants et n'abrite pas de voyageurs hivernants, par exemple.
  • Il n'y a pas de fluctuations majeures de la température. Compte tenu de l'avènement du changement climatique, des phénomènes météorologiques extrêmes, comme de brèves périodes d'extrême chaleur ou d'extrême froid, pourraient conduire à une modélisation inexacte.
  • Il n'y a pas de changements majeurs dans les variables latentes qui pourraient contribuer à la consommation d'énergie qui ne sont pas incluses dans l'ensemble de données. Il s'agit d'une exigence très stricte, étant donné que nous ne savons pas quelles sont ces variables latentes.

Prétraitement des données et analyse exploratoire des données

Une analyse exploratoire des données (AED) a été effectuée pour étudier les données en découvrant des tendances, en repérant des anomalies et en vérifiant l'absence de certaines données à l'aide de statistiques sommaires et de représentations graphiques. Nous avons également cerné les caractéristiques typiques de la consommation d'énergie pour toute collectivité pendant l'AED afin d'aider à estimer la consommation d'énergie granulaire dans les collectivités qui ne disposent que de données sur la consommation d'énergie annuelle ou totale.

Divers modèles, comme la régression linéaire, LightGBM (light gradient-boosting machine), XGBoost, Theta Forecaster, Ensemble Forecaster, Auto-ARIMA, Auto-ETS, la prévision naïve, la transformation de Fourier rapide et les réseaux de neurones, ont été utilisés pour faire des prévisions et leurs performances ont été comparées.

Dans le cadre de la préparation des données, les données sur la population et la consommation d'énergie ont été combinées en calculant la consommation d'énergie par habitant. Ensuite, les données sur la consommation d'énergie par habitant ont été tracées au fil du temps. Les données sur la consommation d'énergie comportent trois composantes : les tendances, la saisonnalité et le bruit. On a supposé que les caractéristiques des données avaient une certaine puissance prédictive et on a donc choisi de les utiliser dans le modèle définitif.

Les renseignements sur la latitude et la longitude variaient trop peu pour fournir une contribution utile et ont été rejetés pour cette étape. Les représentations visuelles ont révélé les renseignements suivants :

Figure 1. L'axe des x pour les deux tracés ci-dessous correspond à la date et l'heure, la première heure étant minuit en date du 1er janvier 2013

Diagrammes à deux lignes illustrant la consommation d'énergie par habitant par rapport à la date et l'heure ainsi que la température par rapport à la date et l'heure. La consommation d'énergie par habitant connaît une baisse évidente durant les mois les plus chauds, comme le mois de juillet, et des sommets durant les mois les plus froids, comme en janvier. La température et la consommation d'énergie par habitant sont corrélées négativement.

Figure 2. Veuillez prendre note que l'axe des x ci-dessus représente l'heure, où minuit du 1er janvier 2013 est la première heure et 23 h du 31 décembre 2015 est la dernière heure.

Les calculs d'autocorrélation et d'autocorrélation partielle pour les données sur la consommation d'énergie par habitant. Les tracés d'autocorrélation et d'autocorrélation partielle montrent des sommets toutes les 24 heures, ce qui indique une forte corrélation toutes les 24 heures. Cela signifie qu'exactement la même heure d'une journée précédente et celle d'une journée en cours partagent des consommations d'électricité semblables.

Une période de trois ans comprend au total 26 280 heures. Tant l'autocorrélation (ACF) que l'autocorrélation partielle (PACF) montrent qu'il y a une forte corrélation toutes les 24 heures. Cela est logique parce que la consommation quotidienne d'énergie suit généralement une tendance répétitive. La PACF est l'ACF pour laquelle les corrélations intermédiaires ont été supprimées. Par exemple, la PACF du décalage 3 correspond à l'ACF du décalage 3 moins la PACF des décalages 1 et 2. L'autocorrélation et l'autocorrélation partielle dans les données des séries chronologiques (en anglais seulement) produisent une analyse détaillée de leurs différences. Grâce à la PACF, nous pouvons voir clairement que la consommation d'électricité est fortement corrélée avec sa propre valeur enregistrée 24 heures auparavant.

Figure 3. Une version agrandie des données historiques sur la consommation d'énergie. Ici, l'axe des x correspond à la date et l'heure, avec la précision des heures.

Une version agrandie de la consommation d'énergie par habitant par rapport à la date et l'heure. Nous pouvons voir un sommet dans la consommation environ toutes les 24 heures.

Voici un résumé des tendances que nous avons observées dans les images ci-dessus :

  • Il existe une relation inverse entre la température normalisée et la consommation d'énergie par habitant.
  • Il existe une faible tendance à la hausse de la consommation d'énergie, mais dans l'ensemble, il y a un modèle annuel répétitif.
  • En l'espace d'un an, l'utilisation d'électricité augmente pendant les mois froids et diminue pendant les mois chauds. Il convient de mentionner que l'ampleur de l'augmentation de l'électricité consommée pendant les mois froids et de sa diminution pendant les mois chauds diffère d'une collectivité à l'autre.
  • En l'espace d'une journée, la consommation d'énergie est plus élevée pendant les heures d'éveil que pendant les heures de sommeil, un sommet étant observé autour de midi. Il convient de mentionner que la valeur de pointe diffère d'une collectivité à l'autre.

Résultats

L'image suivante est une prévision fondée sur les réseaux de neurones. Les prévisions tirées d'autres algorithmes ont des apparences semblables.

Figure 4. L'axe des x représente les heures, à partir de minuit le 1er janvier 2013.

Une prévision simulée de la consommation d'énergie par habitant pour l'année suivante (en orange) comparée aux données réelles de la consommation d'énergie par habitant de l'année suivante (en bleu). Nous pouvons voir que la consommation d'énergie simulée correspond presque à la consommation d'énergie réelle.

Après avoir comparé le rendement de divers algorithmes avec l'erreur moyenne en pourcentage absolu (EMPA), nous avons obtenu les résultats indiqués dans le tableau ci-dessous.

Collectivité EMPA du réseau de neurones EMPA de LightGBM EMPA Linéaire EMPA Linéaire EMPA naïve Approche manuelle
2013 2014 2015
Inukjuak 7,1% 6,7% 6,5% 8,2% 7,7% 12,9% 7,5% 4,9%
Salluit 6,2% 6,8% 6,7% 6,7% 6,1% 7,7% 6,0% 5,0%
Quaqtaq 10,7% 8,8% 8,3% 11,5% 12,2% 16,1% 11,7% 5,7%
Aupaluk 7,9% 8,8% 8,8% 13% 7,8% 10,2% 9,5% 8,6%
Ivujivik 12,9% 14,9% 14,9% 14,9% 13,9% 14,3% 6,3% 6,3%
Kuujjuaq 4,4% 5,3% 5,4% 7,4% 5,4% 5,0% 4,7% 5,4%
Kangirsuk 8,1% 11,0% 10,8% 9,0% 8,8% 8,4% 8,4% 7,8%
Umiujaq 5,4% - - - - 10,9% 9,3% 7,1%
Kuujjuarapik 6,6% 4,8% 4,8% 4,9% 5,2% 98,9% 6,6% 7,4%
Kangiqsualujjuaq 7,9% 7,4% 7,5% 11,7% 7,1% 8,1% 9,0% 8,4%
Puvirnituq 6,2% - - - - 12,5% 7,5% 5,5%
  • Toutes les approches ci-dessus ont des procédures similaires. Nous avons d'abord effectué une séparation temporelle des données pour produire un ensemble de données d'essai et de données d'apprentissage. Ensuite, nous avons entraîné les modèles d'apprentissage automatique en utilisant les données d'apprentissage et mesuré le rendement au moyen de trois mesures différentes qui sont couramment utilisées pour les problèmes de régression : l'EMA (l'erreur moyenne absolue), la RCEQM (la racine carrée de l'erreur quadratique moyenne) et l'EMPA. Enfin, nous avons ajusté les hyperparamètres pour atteindre les meilleures performances pour chaque modèle.
  • Le modèle de réseau de neurones comporte quatre couches. Les trois premières couches ont 32 unités avec activation RELU (unité linéaire rectifiée) et la dernière couche a une unité avec activation linéaire. La fonction de perte et l'optimiseur sont les propagations EMQ (erreur quadratique moyenne) et RQM (racine quadratique moyenne), respectivement. Lors d'un arrêt anticipé, la perte de validation était utilisée pour arrêter l'entraînement et éviter le surapprentissage. Une EMAP de moins de 10 % a été atteinte dans 9 des 11 collectivités.
  • Pour les modèles de prévision LightGBM, linéaire et Theta, nous avons d'abord décomposé les données en supprimant la saisonnalité et la tendance pour arriver au résidu, puis avons entraîné le modèle en utilisant le résidu et inversé le processus pour arriver à une prédiction.
    • La différence :
      • LightGBM est un modèle basé sur un arbre de décision et permet un apprentissage rapide.
      • Le modèle linéaire est un modèle de régression linéaire et sa vitesse d'apprentissage est aussi rapide que celle du LightGBM.
      • Theta est un modèle de lissage exponentiel et son apprentissage prend un certain temps.
  • Pour les prévisions naïves, nous avons simplement déplacé la consommation d'énergie de l'année précédente et l'avons utilisée comme prédiction de la consommation d'énergie de l'année en cours.
  • La dernière colonne montre l'approche manuelle utilisée par CE-O qui illustre la différence entre les consommations d'énergie prévues et celles mesurées pour les années 2013, 2014 et 2015, respectivement. La raison pour laquelle il y a trois valeurs est liée à la façon dont fonctionne l'approche manuelle.

Voici nos observations fondées sur les résultats :

  • Dans plusieurs collectivités, les diverses approches et les divers modèles d'apprentissage automatique fournissent une précision semblable. Le modèle complexe de réseau de neurones n'est que légèrement meilleur; il ne donne pas des résultats nettement supérieurs à ceux de modèles plus simples comme LightGBM ou la régression linéaire.
  • Les prévisions naïves, c'est-à-dire l'utilisation du dossier de consommation d'énergie de l'année précédente pour la prévision de la consommation d'énergie de l'année en cours, peuvent donner un tout aussi bon résultat que tout autre modèle. Cela ne fonctionnerait pas si la tendance à la hausse était plus forte. Les prévisions naïves sont étonnamment difficiles à devancer. Cela est courant pour la prédiction des séries chronologiques et découle de l'observation qu'il existe une tendance annuelle répétitive évidente dans la consommation d'énergie.
  • Il existe d'autres algorithmes potentiellement utiles comme l'analyse de Fourier, MLCT (les réseaux de mémoire à long ou à court terme), Auto-ARIMA, mais ils sont tous inefficaces et coûteux en matière de calcul pour cerner les tendances reproductibles nécessaires pour produire des résultats significatifs. À un moment donné, les auteurs ont essayé d'utiliser Auto-ARIMA pour simuler la série chronologique, mais le processeur graphique de notre poste de travail spécialisé a planté après cinq heures et demie de calcul intense. Il y avait 260 G de mémoire vive qui étaient utilisés alors que l'UCT (unité centrale de traitement) fonctionnait à 100 %.

Ce que nous avons découvert

Comparativement à l'approche manuelle, les prévisions de l'AA et les prévisions naïves peuvent, en moyenne, obtenir des résultats qui sont de 2 % à 3 % supérieurs.

Le risque d'erreurs importantes découlant de l'approche manuelle (16,1 % et 98,9 %) est considérablement réduit. Les approches d'apprentissage automatique semblent être plus stables. Étant donné que les prévisions naïves peuvent être tout aussi efficaces qu'un algorithme d'apprentissage automatique, il serait sans doute plus efficace de considérer l'utilisation de la consommation d'énergie d'une année précédente comme notre prévision pour l'avenir. Cependant, nous devons nous assurer qu'il y a un modèle annuel reproductible dans les données en effectuant une AED approfondie.

L'objectif ultime est de créer un profil horaire «  typique  » de la consommation d'énergie pour les collectivités dont les seuls antécédents disponibles sont des variables externes, comme l'historique des données météorologiques. Par profil de consommation d'énergie «  typique  », nous entendons les résultats normalisés une fois que les variables externes sont données. Par exemple, si deux collectivités ont les mêmes données climatiques, elles auraient alors la même consommation d'énergie par habitant pour chaque heure de l'année. Nous n'avons pas pu atteindre cet objectif pour certaines raisons :

  • Nous remarquons que la consommation d'énergie par habitant s'affiche dans le même ordre de chiffres (entre 0,5 kW et 1,9 kW). Cependant, une personne moyenne de certaines collectivités utilise encore plus d'énergie que celles d'autres collectivités. Il sera difficile de créer un profil de consommation d'énergie «  typique  » pour un utilisateur moyen dans une collectivité «  typique  ». Une certaine normalisation pourrait être nécessaire.
  • Dans la collectivité d'Ivujivik, la consommation d'énergie pour l'année 2014 ne correspond pas aux tendances que nous avons déterminées en utilisant l'AED. Elle fluctue considérablement tout au long de l'année et ne correspond pas à la tendance de faible consommation d'énergie pendant les mois plus chauds et de forte consommation d'énergie pendant les mois plus froids. Une attention supplémentaire est nécessaire pour déterminer la raison pour laquelle cette anomalie existe.

L'avenir du présent projet

Le présent projet pourrait être élargi. Si nous décidons d'aller de l'avant, une nouvelle entente sera mise en place afin d'obtenir des données plus récentes auprès de collectivités plus diversifiées provenant d'un plus grand nombre de géolocalisations et de types de climat ou de régions climatiques, ainsi que pour recueillir des données plus détaillées et pour cerner les tendances universelles dans un plus grand nombre d'ensembles de données. Si un ensemble de données plus riche et plus diversifié était possible, nous tenterions d'élaborer de nouveaux modèles qui peuvent prédire la consommation d'énergie pour les collectivités qui ne disposent pas de dossiers sur la consommation d'énergie. Nous pourrions étudier la relation entre la consommation d'énergie et les variables externes.

Rencontre avec le scientifique des données

Inscrivez-vous à la présentation Rencontre avec le scientifique des données

Si vous avez des questions à propos de mon article ou si vous souhaitez en discuter davantage, je vous invite à une Rencontre avec le scientifique des données, un événement au cours duquel les auteurs rencontrent les lecteurs, présentent leur sujet et discutent de leurs résultats.

Mardi, 17 janvier
De 14 h à 15 h, HE
MS Teams – le lien sera fourni aux participants par courriel

Inscrivez-vous à la présentation Rencontre avec le scientifique des données.
À bientôt!

Abonnez-vous au bulletin d'information du Réseau de la science des données pour la fonction publique fédérale pour rester au fait des dernières nouvelles de la science des données.

Date de modification :

Technologies liées à la protection de la vie privée, partie trois : Analyse statistique confidentielle et classification de texte confidentiel fondées sur le chiffrement homomorphe

Par : Benjamin Santos et Zachary Zanussi, Statistique Canada

Introduction

Qu'est-ce qui est possible dans le domaine du chiffrement et quels cas d'utilisation peuvent être visés par le chiffrement homomorphe? Le premier article du Réseau de la science des données dans la série sur la protection de la vie privée, Une brève enquête sur les technologies liées à la protection de la vie privée, présente les technologies d'amélioration de la confidentialitéNote de bas de page 1 (TAC) et la façon dont elles permettent l'analyse tout en protégeant la confidentialité des données. Le deuxième article de la série, Technologies liées à la protection de la vie privéepartie deux : introduction au chiffrement homomorphe, a abordé plus en profondeur une des TAC, plus précisément le chiffrement homomorphe (CH). Dans cet article, nous décrivons les applications étudiées par les scientifiques des données de Statistique Canada en matière de traitement informatique à partir de données chiffrées.

Le CH est une technique de chiffrement qui permet d'effectuer des traitements informatiques à partir de données chiffrées ainsi que plusieurs paradigmes pour les traitements informatiques sécurisés. Cette technique comprend le traitement informatique sécurisé à l'externe, selon lequel un détenteur de données permet à un tiers (peut-être le nuage) d'effectuer des traitements informatiques à partir de données de nature délicate, tout en s'assurant que les données d'entrée sont protégées. En effet, si le détenteur de données veut que le nuage calcule une fonction f (polynomiale) à partir de ses données v, il peut les chiffrer sous forme de cryptogrammes, désignés [v], les envoyer de façon sécuritaire sur le nuage qui calcule f de façon homomorphe pour obtenir [f(v)] et renvoie les résultats au détenteur de données, qui peut déchiffrer et visualiser f(v). Le nuage n'a aucun accès aux valeurs des données d'entrée, de sortie ou intermédiaires.

Figure 1 : Illustration d'un flux de travail typique du CH
Figure 1 : Illustration d'un flux de travail typique du CH.

Une illustration d'un flux de travail typique du CH. Les données,v, sont chiffrées, donc elles sont placées dans une boîte verrouillée [v]. Cette valeur est envoyée au tiers qui effectuera le traitement informatique (le nuage). Les engrenages tournent et le chiffrement d'entrée[v] se transforme en chiffrement de sortie, [f(v)], comme souhaité. Ce résultat est renvoyé au propriétaire, qui peut le sortir de la boîte verrouillée et le visualiser. Le nuage n'a pas accès aux valeurs d'entrées, de sortie ou intermédiaires.

Des groupes internationaux envisagent actuellement la normalisation du CH. Le gouvernement du Canada ne recommande pas le CH ou l'utilisation des techniques cryptographiques avant que ce soit normalisé. Même si le CH n'est pas encore prêt à être utilisé sur des données de nature délicate, c'est un bon moment pour explorer ses capacités ainsi que d'éventuels cas d'utilisation.

Données de lecteurs optiques

Statistique Canada recueille des données en temps réel auprès des grands détaillants sur divers produits d'information. Ces données décrivent les opérations quotidiennes effectuées comme une description du produit vendu, le prix de vente et les métadonnées au sujet du détaillant. Ces données sont appelées « données de lecteurs optiques », d'après les lecteurs optiques utilisés lorsque les clients passent à la caisse. Une des utilisations des données optiques est d'augmenter la précision de l'Indice des prix à la consommation, qui mesure l'inflation et la vigueur du dollar canadien. Cette précieuse source de données est traitée comme des données de nature délicate – nous respectons la confidentialité des données et des détaillants qui les fournissent.

La première étape dans le traitement de ces données consiste à classer les descriptions de produits dans un système classificatoire normalisé de codification à l'échelle internationale, à savoir le Système de classification des produits de l'Amérique du Nord (SCPAN) Canada 2017 version 1.0. Ce système hiérarchique de codes à sept chiffres est utilisé pour classer les différents types de produits aux fins d'analyse. Il y a un code, par exemple, pour le café et ses produits. Chaque entrée de données scanographiques doit recevoir un de ces codes en fonction de la description du produit fournie par le détaillant. Ces descriptions ne sont toutefois pas normalisées et peuvent être très différentes d'un détaillant à l'autre ou d'une marque à l'autre de produits semblables. Ainsi, la tâche souhaitée est la conversion de ces descriptions de produit, qui comprennent souvent des abréviations et des acronymes, en codes correspondants.

Après avoir été classées, les données sont regroupées en fonction de leur code du SCPAN et les statistiques sont calculées à partir de ces groupes. Cela nous permet d'avoir une idée du montant dépensé pour chaque type de produit dans l'ensemble du pays, et de la façon dont cette valeur change au fil du temps.

Figure 2 : Aperçu de haut niveau du flux de travail des données de lecteurs optiques avec des données-échantillons
Figure 2 : Aperçu de haut niveau du flux de travail des données de lecteurs optiques avec des données-échantillons.

Aperçu de haut niveau du flux de travail des données de lecteurs optiques. D'abord, les descriptions de produit sont classées selon les codes du SCPAN. Des exemples sont fournis : « bonbons mochi à la crème glacée » se voit attribuer le code du SCPAN 5611121, alors que « sauce barbecue chipotle » se voit attribuer le code 5611132. L'application 2 consiste à attribuer ces codes aux descriptions. Les descriptions de produits sont liées à quelques identificateurs et à une valeur de prix. L'application 1 consiste à classer les données selon ces codes et identificateurs, et à calculer des statistiques sur les valeurs de prix.

Exemple d'ensembles de données 1
Description ID1 ID2 Valeur
« bonbons mochi à la crème glacée » 054 78 5.31 $
« sauce barbecue chipotle » 201 34 3.80 $

Application 2

Exemple d'ensembles de données 2
SCPAN ID1 ID2 Valeur
5611121 054 78 5.31 $
5611132 201 34 3.80 $

Application 1

Statistics (total, moyenne, variance)

Étant donné l'importance et la nature délicate des données, nous les avons ciblées comme domaine potentiel pour lequel les TAC pourraient préserver notre flux de travail des données tout en maintenant le niveau élevé de sécurité requis. Les deux tâches ci‑dessus ont, jusqu'à maintenant, été effectuées dans l'infrastructure sécurisée de Statistique Canada, où nous pouvons nous assurer que les données sont en sécurité au moment de l'ingestion et tout au long de leur utilisation. En 2019, quand nous avons commencé à étudier les TAC au sein de l'organisme, nous avons décidé de tenter d'utiliser le nuage à titre de ressource tierce de traitement informatique, sécurisé par le CH.

Nous avons créé un modèle infonuagique semblable à un tiers semi-honnête, ce qui signifie qu'il suivra le protocole que nous lui avons attribué, mais il essaiera de déduire tout ce qu'il peut au sujet des données pendant le processus. Cela signifie qu'il faut que les données de nature délicate soient toujours chiffrées ou masquées. Dans notre validation de principe, nous avons remplacé ces données par une source de données synthétiques, ce qui nous permet de procéder à des expériences sans craindre de nuire à la sécurité des données.

Application 1 : Analyse statistique confidentielle

Notre première tâche était de réaliser la dernière partie du flux de travail des données de lecteurs optiques – l'analyse statistique. Nous avons créé une version synthétique des données de lecteurs optiques pour assurer leur confidentialité. Ces données de lecteurs optiques fictives consistaient en 13 millions d'enregistrements, chacun comprenant un code du SCPAN, un prix de transaction et certains identificateurs. Cela représente environ une semaine de données de lecteurs optiques d'un seul détaillant. La tâche consistait à trier les données en listes, à les chiffrer, à les envoyer au nuage et à demander au nuage de calculer les statistiques. Le nuage nous enverrait ensuite les résultats toujours chiffrés, pour que nous puissions les déchiffrer et les utiliser aux fins d'analyse plus approfondie.

Supposons que notre ensemble de données est classé en listes ayant la forme v=(v1,,vl). Il est relativement simple de chiffrer chaque valeur vi en cryptogramme [vi], puis d'envoyer la liste de cryptogrammes ([v1],,[vl]) sur le nuage. Le nuage peut utiliser l'addition et la multiplication homomorphes pour calculer le total, la moyenne et la variance et nous retourner ces cryptogrammes (nous verrons de quelle façon la division est gérée pour la moyenne et la variance plus tard dans le présent article). Nous faisons cela pour chaque liste, puis déchiffrons et visualisons nos données. C'est simple, n'est-ce pas?

Le problème avec une mise en œuvre naïve de ce protocole est l'élargissement des données. Un seul cryptogramme CKKSNote de bas de page 2 représente une paire de polynômes de degré 214 avec des coefficients de 240-octets. Ensemble, cela peut prendre 1 Mo pour stocker un seul enregistrement. Pour l'ensemble de données complet de 13 millions, cela devient 13 To de données! La solution à ce problème s'appelle la mise en paquet.

Mise en paquet

Les cryptogrammes sont gros et nous avons beaucoup de petits éléments de données. Nous pouvons utiliser la mise en paquet pour stocker une liste complète de valeurs en un seul cryptogramme, et le procédé CKKS nous permet d'effectuer des opérations de type SIMD (instruction unique, données multiples) sur ce cryptogramme, donc nous pouvons calculer plusieurs statistiques en même temps! Cela représente une augmentation massive de l'efficacité pour de nombreuses tâches de CH, et une structure intelligente de mise en paquet des données peut faire la différence entre un problème insoluble et une solution pratique.

Supposons que nous avons une liste de valeurs l, v=(v1,v2,,vl). En utilisant la mise en paquet CKKS, nous pouvons mettre en paquet cette liste entière en un seul cryptogramme, désigné par [v]. Maintenant, les opérations d'addition et de multiplication homomorphes ont lieu par emplacement selon le principe du SIMD, c'est‑à‑dire que, si u=(u1,u2,,ul) est chiffré [u], nous pouvons alors calculer l'addition homomorphe pour obtenir

[u][v]=[u+v]

[u+v] est unNote de bas de page 3 chiffrement de la liste (u1+v1,u2+v2,,ul+vl). Cette addition homomorphe prend autant de temps à calculer que s'il y avait une seule valeur dans chaque cryptogramme; donc il est évident que nous pouvons obtenir un gain d'efficacité appréciable au moyen de la mise en paquet. L'inconvénient est que nous devons maintenant utiliser cette structure vectorielle dans tous nos calculs, mais avec un peu d'efforts, nous pouvons trouver un moyen de vectoriser les calculs pertinents pour profiter de la mise en paquet.

Figure 3 : Une illustration de la mise en paquet. Les quatre valeurs peuvent soit être chiffrées en quatre cryptogrammes séparés, ou être toutes mises en paquet en un seul cryptogramme
Figure 3 : Une illustration de la mise en paquet. Les quatre valeurs peuvent soit être chiffrées en quatre cryptogrammes séparés, ou être toutes mises en paquet en un seul cryptogramme.

Une illustration de la mise en paquet. Quatre valeurs, v1,v2,v3,v4 doivent être chiffrées. Dans un cas, elles peuvent toutes être chiffrées en cryptogrammes séparés, illustrés sous forme de boîtes verrouillées. Dans l'autre cas, nous pouvons mettre en paquet les quatre valeurs en une seule boîte. Dans le premier cas, cela prendra quatre boîtes, ce qui est moins efficace pour le stockage et les manipulations. Le dernier cas, la mise en paquet d'autant de valeurs que possible, est presque toujours préférable.

Je sais ce que vous pensez : la mise en paquet, qui stocke une série de valeurs dans un vecteur, ne rend-elle pas impossible le calcul des valeurs dans une liste? C'est-à-dire que, si nous avons v=(v1,v2,,vl), que ce passe-t-il si je voulais v1+v2? Nous avons accès à une opération appelée rotation. La rotation prend un cryptogramme qui représente le chiffrement de (v1,v2,,vl) et le transforme en Rot([v]), qui représente le chiffrement de (v2,v3,,vl,v1), c'est‑à‑dire qu'il déplace toutes les valeurs à gauche d'un emplacement, glissant la première valeur dans le dernier emplacement. Donc, en calculant [v]Rot([v]), nous obtenons

(v1+v2,v2+v3,,vl+v1)

et la valeur souhaitée est dans le premier emplacement.

Mathématiquement, la mise en paquet est réalisée en exploitant les propriétés du texte clair, du texte brut et des espaces du texte chiffré. Souvenez-vous que les fonctions de chiffrement et de déchiffrement sont des cartes entre les deux derniers espaces. La mise en paquet exige une autre étape appeléeencodage, qui code un vecteur (potentiellement complexe, mais dans notre cas, réel) de valeurs v à partir de l'espace du texte clair en un polynôme de texte brut p. Les données de p ne sont pas lisibles par un humain, mais elles peuvent être décodées en fonction du vecteur des valeurs par tout ordinateur sans avoir à recourir à des clés. Le polynôme de texte brut p peut être chiffré en cryptogramme [v] et utilisé pour calculer les statistiques sur les données de lecteurs optiques.Note de bas de page 4

Analyse statistique efficace au moyen de la mise en paquet

Pour revenir à l'analyse statistique des données de lecteurs optiques, souvenez‑vous que le problème était que le chiffrement de chaque valeur en cryptogramme était trop coûteux. La mise en paquet nous permettra de vectoriser ce processus, rendant ses ordres de grandeur plus efficaces en matière de communication et de calcul.

Nous pouvons maintenant commencer à calculer les statistiques désirées de notre liste v=(v1,v2,,vl). La première valeur d'intérêt est le total,Tv=i=1lvi, obtenu en additionnant toutes les valeurs dans la liste. Après avoir chiffré en un cryptogramme mis en paquet [v], nous pouvons simplement ajouter des rotations du cryptogramme [v] à lui‑même jusqu'à ce que nous ayons un emplacement avec la somme de toutes les valeurs. En fait, nous pouvons faire mieux que cette stratégie naïve de rotations et d'additions – nous pouvons le faire en étapes log2l en faisant d'abord une rotation d'un emplacement, puis de deux, puis de quatre, puis de huit jusqu'à ce que nous obtenions le total Tv dans un emplacement.

Ensuite, nous voulons la moyenne, Mv=Tv/l. Pour faire cela, nous chiffrons la valeur 1/l en cryptogramme [1/l] et l'envoyons avec la liste [v]. Nous pouvons ensuite simplement multiplier cette valeur par le cryptogramme que nous avons obtenu lorsque nous avons calculé le total. Il en va de même pour la variance, Vv=1/li=1l(vi-Mv)2, où nous soustrayons la moyenne par [v], multiplions le résultat par lui-même, calculons de nouveau le total, puis le multiplions de nouveau par le cryptogramme [1/ l].

Examinons les économies que la mise en paquet nous a permis de faire. Dans notre cas, nous avions environ 13 millions de points de données qui ont été séparés en 18 000 listes. En supposant que nous pourrions mettre en paquet chaque liste en un seul cryptogramme, cela réduit la taille des ensembles de données chiffrées de près de trois ordres de grandeur. Mais en réalité, les différentes listes avaient toutes des tailles différentes, certaines comptant des dizaines de milliers d'entrées et d'autres n'en comptant que deux ou trois, dont la majorité se situait dans la fourchette des centaines aux milliers. Au moyen d'une manipulation intelligente, nous avons été capables de mettre en paquet de multiples listes en cryptogrammes uniques et d'exécuter les algorithmes de total, de moyenne et de variance pour celles‑ci tous en même temps. En utilisant des cryptogrammes qui peuvent mettre en paquet 8 192 valeurs en même temps, nous avons pu réduire le nombre de cryptogrammes à seulement 2 124. À environ 1 Mo par cryptogramme, cela fait en sorte que l'ensemble de données chiffrées représente environ deux gigaoctets (Go). Comme les données en texte clair prennent 84 mégaoctets (Mo), cela a abouti à un facteur d'élargissement d'environ 25 fois. En tout, le traitement informatique chiffré a pris environ 19 minutes, ce qui est 30 fois plus long que le traitement informatique non chiffré.

Application 2 : Classification de texte confidentiel fondée sur le chiffrement homomorphe

Ensuite, nous avons attaqué la tâche d'entraînement pour l'apprentissage automatique. L'entraînement pour l'apprentissage automatique est une tâche réputée pour être coûteuse, donc nous ne savions pas exactement si nous serions capables de mettre en œuvre une solution pratique.

Souvenez‑vous de la première tâche dans le flux de travail des données de lecteurs optiques – les descriptions de produits pleines de bruit qui dépendant du détaillant doivent être classées par code du SCPAN. C'est une tâche de classification de textes comprenant de multiples catégories. Nous avons créé un ensemble de données synthétique à partir d'un répertoire en ligne de descriptions de produits et nous leur avons attribué un de cinq codes du SCPAN.

L'exécution d'un réseau neuronal représente essentiellement la multiplication d'un vecteur par une série de matrices, et l'entraînement d'un réseau neuronal demande des passages vers l'avant, ce qui consiste à évaluer les données d'entraînement dans le réseau, ainsi que des passages vers l'arrière, qui utilisent la descente de gradient (stochastique) et la règle de chaînage afin de trouver la meilleure façon de mettre à jour les paramètres du modèle pour améliorer la performance. Tout cela se résume à la multiplication de valeurs par d'autres valeurs, et en ayant accès à la multiplication homomorphe, l'entraînement d'un réseau chiffré est possible en théorie. En pratique, cela est entravé par une limite de base du procédé CKKS : la nature échelonnée des multiplications homomorphes. Nous discuterons d'abord de cet élément, puis nous étudierons les différents aspects du protocole désignés pour l'atténuer.

Niveaux des cryptogrammes dans CKKS

Afin de protéger vos données pendant le chiffrement, le procédé CKKS ajoute un peu de bruit à chaque cryptogramme. L'inconvénient est que ce bruit s'accumule avec les opérations consécutives et doit être modulé. Le CKKS a un mécanisme intégré pour cela, mais malheureusement il ne permet qu'un nombre limité d'opérations sur un même cryptogramme.

Supposons que nous avons deux cryptogrammes fraîchement chiffrés : [v1] et [v2]. Nous pouvons les multiplier de manière homomorphe pour obtenir le cryptogramme [v1v2]. Le problème est que le bruitNote de bas de page 5 dans le cryptogramme qui en résulte est beaucoup plus important que pour ceux nouvellement chiffrés, donc si nous le multiplions par le cryptogramme fraîchement chiffré [v3], le résultat serait touché par cette discordance.

Il faudrait d'abord remettre à l'échelle le cryptogramme [v1v2]. C'est géré de façon transparente par la bibliothèque de CH, mais sous le capot, le cryptogramme est déplacé dans un espace légèrement différent. Nous disons que [v1v2] a descendu d'un niveau, ce qui signifie que le cryptogramme a commencé au niveau L-1, et après la remise à l'échelle, il se trouve sur le niveau L-1. La valeur L est déterminée par les paramètres de sécurité que nous choisissons lorsque nous configurons le procédé de CH.

Nous avons maintenant [v1v2] qui a une quantité normale de bruit, mais qui se trouve au niveau L -1, et le [v3] fraîchement chiffré qui est toujours au niveau L. Malheureusement, nous ne pouvons pas effectuer d'opérations sur les cryptogrammes qui se trouvent sur différents niveaux, donc nous devons d'abord réduire le niveau de [v3] à L-1 par permutation modulée. Maintenant que les deux cryptogrammes sont au même niveau, nous pouvons enfin les multiplier comme souhaité. Il n'est pas nécessaire de remettre à l'échelle de résultat des additions, mais nous devons le faire pour chaque multiplication.

Figure 4 : Une illustration des niveaux
Figure 4 : Une illustration des niveaux.

Une illustration des niveaux. À gauche nous pouvons voir le niveau sur lequel chaque cryptogramme se trouve : de haut en bas, nous avons les niveaux L, L-1 et L-2. Les valeurs nouvellement chiffrées v1,v2 et v3 se trouvent toutes au niveau L tout en haut. Après la multiplication, v1v2 descend au niveau L-1. Si nous voulons multiplier v1v2 par v3, nous devons d'abord descendre v3 au niveau L-1. Le produit qui en résulte, v1v2v3, se trouve au niveau L-2.

Cette histoire de niveaux a deux conséquences. Premièrement, le développeur doit être conscient du niveau des cryptogrammes qu'il utilise. Deuxièmement, les cryptogrammes atteindront éventuellement le niveau 0 après de nombreuses multiplications consécutives; à ce moment‑là, ils sont épuisés et nous ne pouvons plus effectuer d'autres multiplications.

Il y a quelques options pour élargir les calculs au‑delà du nombre de niveaux disponibles. La première est un processus qui s'appelle le bootstrap, selon lequel le cryptogramme est déchiffré de manière homomorphe puis chiffré de nouveau, ce qui crée un nouveau cryptogramme. Ce processus peut en théorie permettre un nombre illimité de multiplications. Cependant, cette charge supplémentaire ajoute un coût au traitement informatique. Il est également possible d'actualiser les cryptogrammes en les renvoyant au détenteur de clé secrète, qui peut les déchiffrer et les chiffrer de nouveau avant de les renvoyer sur le nuage. Le va‑et‑vient des cryptogrammes ajoute un coût en communication, mais ça en vaut parfois la peine lorsqu'il n'y a pas beaucoup de cryptogrammes à envoyer.

Incidence des niveaux sur notre structure de réseau

Nous devions envisager cette contrainte fondamentale relative au CH lorsque nous avons conçu notre réseau neuronal. Le processus d'entraînement d'un réseau demande de réaliser une prédiction, d'évaluer la prédiction et de mettre à jour les paramètres du modèle. Cela signifie que chaque tour, ou époque, d'entraînement consomme des niveaux multiplicatifs. Nous avons essayé de réduire au minimum le nombre de multiplications nécessaires pour traverser le réseau d'un bout à l'autre afin de maximiser le nombre de tours d'entraînement disponibles. Nous décrirons maintenant la structure du réseau et la stratégie d'encodage.

L'architecture du réseau a été inspirée par la solution existante pour la production. Cela correspondait à un modèle d'ensemble d'apprenants linéaires. Nous avons entraîné plusieurs réseaux à couche simple et, au moment de la prédiction, nous avons fait en sorte que chaque apprenant vote pour chaque entrée. Nous avons choisi cette approche parce qu'elle réduisait la quantité de travail requis pour entraîner chaque modèle – moins de temps d'entraînement signifiait moins de multiplications.

Chaque couche dans un réseau neuronal est une matrice des poids des paramètres multipliée par des vecteurs de données pendant le passage vers l'avant. Nous pouvons adapter cela au CH en chiffrant chaque vecteur d'entrée en un seul cryptogramme et en chiffrant chaque rang de la matrice des poids en un autre cryptogramme. Le passage vers l'avant devient alors plusieurs multiplications vectorielles, suivies de nombreuses rotations et multiplications logarithmiques pour calculer la somme des extrants (souvenez‑vous que la multiplication matricielle est une série de produits scalaires, qui constitue une multiplication des composantes suivie d'un calcul de la somme des valeurs qui en résultent).

Le prétraitement est une partie importante de toute tâche de classification de texte. Nos données étaient constituées de courtes phrases, qui comportaient souvent des acronymes ou des abréviations. Nous avons choisi un encodage à caractère n-gramme, où n égale trois, quatre, cinq et six – « crème glacée » a été divisé en 3 grammes {« crè », « rèm », « ème », « vglav », « vlac », « vacé », « céev »}. Ces n-grammes ont été recueillis et dénombrés pour l'intégralité de l'ensemble de données et ont été utilisés pour chiffrer à chaud chaque entrée. Un vectoriseur de hachageNote de bas de page 6 a été utilisé pour réduire la dimension des entrées chiffrées.

De la même façon que nous avons mis en paquet de multiples listes dans l'analyse statistique, nous avons constaté que nous pouvions mettre en paquet de multiples paquets et les entraîner en même temps. L'utilisation d'une valeur N=215 signifiait que nous pouvions mettre en paquet 16 384 valeurs dans chaque cryptogramme, donc si nous hachions nos données en 4 096 dimensions, nous pourrions mettre quatre modèles dans chaque cryptogramme. Cela avait l'avantage supplémentaire de réduire le nombre de cryptogrammes requis pour chiffrer notre ensemble de données par un facteur de quatre. Cela signifie que nous pouvions entraîner quatre modèles simultanément.

Notre choix de paramètres de chiffrement signifiait que nous avions entre 12 et 16 multiplications avant de manquer de niveaux. À partir d'un réseau à une seule couche, le passage vers l'avant et le passage vers l'arrière nécessitaient chacun deux multiplications, ce qui nous laissait de la place pour trois à quatre époques avant que nos cryptogrammes modèles soient épuisés. Nos ensembles signifiaient que nous pouvions entraîner des modèles valant plusieurs cryptogrammes si désirés, ce qui signifie que nous pourrions avoir autant d'apprenants que souhaité au coût de temps supplémentaire d'entraînement. En modulant soigneusement quel modèle a appris au sujet de quelles données, cela nous a aidés à maximiser la performance globale de l'ensemble.

Notre ensemble de données représentait 40 000 exemples d'entraînements et 10 000 exemples de test qui ont tous été distribués également dans nos cinq classes. Entraîner quatre sous‑modèles en six époques a pris cinq heures et a permis d'obtenir un modèle qui a obtenu une précision de 74 % sur l'ensemble des essais. En utilisant la tactique d'actualisation des cryptogrammes précédemment décrite, nous pouvons hypothétiquement entraîner pendant autant d'époques que nous le voulons, bien que chaque actualisation ajoute des coûts de communication supplémentaires au processus.Note de bas de page 7 Après l'entraînement, le nuage renvoie le modèle chiffré à StatCan, et nous pouvons l'exécuter en texte clair sur les données en production. Ou nous pouvons conserver le modèle chiffré sur le nuage et exécuter une inférence de modèle chiffrée lorsque nous avons de nouvelles données à classer.

Conclusion

Cela conclut la série de Statistique Canada sur les applications CH pour les données de lecteurs optiques examinées à ce jour. Le CH a un certain nombre d'autres applications qui pourraient s'avérer intéressantes pour un organisme national de statistique comme l'intersection d'ensembles confidentiels, selon laquelle deux parties ou plus calculent ensemble l'intersection d'ensembles de données confidentielles sans les partager, ainsi que le couplage d'enregistrements préservant la confidentialité, selon lequel les parties effectuent des couplages, des partages et des traitements informatiques sur des microdonnées jointes à leurs ensembles de données confidentielles.

Il y a encore beaucoup de choses à explorer dans le domaine des TAC et StatCan travaille à tirer profit de ce nouveau domaine pour protéger les renseignements personnels des Canadiens tout en fournissant des renseignements de qualité qui compte.

Rencontre avec le scientifique des données

Inscrivez-vous à la présentation Rencontre avec le scientifique des données

Si vous avez des questions à propos de mon article ou si vous souhaitez en discuter davantage, je vous invite à une Rencontre avec le scientifique des données, un événement au cours duquel les auteurs rencontrent les lecteurs, présentent leur sujet et discutent de leurs résultats.

Jeudi, le 15 décembre
14 h 00 à 15 h 00 HE
MS Teams – le lien sera fourni aux participants par courriel

Inscrivez-vous à la présentation Rencontre avec le scientifique des données. À bientôt !

Bibliographie

Système de classification des produits de l'Amérique du Nord (SCPAN), Canada 2017, version 1.0

Cheon, J. H., Kim, A., Kim, M., et Song, Y. (2016). Homomorphic Encryption for Arithmetic of Approximate Numbers.(en anglais seulement). Cryptology ePrint Archive.

Gentry, C. (2009). A fully homomorphic encryption scheme. Thèse de doctorat, Stanford University. Craig Gentry's PhD Thesis (en anglais seulement)

Zanussi, Z., Santos B., et Molladavoudi S. (2021). Supervised Text Classification with Leveled Homomorphic Encryption. Dans Proceedings 63rd ISI World Statistics Congress (Vol. 11, p. 16). International Statistical Institute - Statistical Science for a Better World (en anglais seulement)

Date de modification :

Technologies d'amélioration de la protection de la vie privée : un survol de l'apprentissage fédéré

Par : Julian Templeton, Statistique Canada

Introduction

Les organismes nationaux de statistique (ONS) utilisent les données recueillies pour fournir des renseignements sur divers sujets, dans l'intérêt public. Malgré leur accès à de vastes quantités de données, il y a des limites à ce qui peut être recueilli ou présenté, quels qu'en soient les avantages. Les ONS doivent veiller à ce que les renseignements personnels restent privés, y compris les données diffusées. Au Canada, il existe des lois qui imposent la protection des données confidentielles, et Statistique Canada doit s'y conformer. Lorsque des données de nature délicate sont recueillies, tout le monde n'est pas convaincu qu'elles resteront privées et protégées, ce qui peut amener certaines personnes à hésiter à fournir leurs données.

Afin de renforcer la protection des données dans l'ensemble du secteur public et de permettre de nouvelles possibilités de collecte, de partage et d'utilisation des données, divers ONS explorent activement des moyens innovants d'utiliser et de recueillir des données de manière privée. Les technologies d'amélioration de la protection de la vie privée ou technologies liées à la protection de la vie privée (TPVP) constituent un nouvel ensemble de techniques actuellement à l'étude (voir : Une brève enquête sur les technologies liées à la protection de la vie privée).

Il existe de nombreux types de techniques d'amélioration de la protection de la vie privée, dont les suivantes.

  • Apprentissage fédéré : Permet de construire des modèles d'apprentissage automatique (AA) à partir de données distribuées, qui restent sur l'unité périphérique d'un client et ne sont pas recueillies. Les clients utilisent leurs données et leur unité périphérique pour entraîner des modèles d'AA locaux, qui sont ensuite recueillis et compilés dans un modèle central. Il s'agit d'un sous-ensemble de l'AA distribué, et nous en parlerons plus en détail dans le présent article.
  • Chiffrement homomorphe : Permet d'effectuer des opérations mathématiques sur des données chiffrées afin de préserver la protection de la vie privée pendant l'utilisation des données. Pour en savoir plus à ce sujet, voir le récent article du Réseau de la science des données : Technologies liées à la protection de la vie privée partie deux : introduction au chiffrement homomorphe.
  • Environnements d'exécution de confiance : Environnements virtuels isolés, également appelés enclaves sécurisées, qui peuvent exécuter du code sans être accessibles ailleurs.
  • Confidentialité différentielle : Ajoute du bruit aux données afin que des modifications puissent leur être occasionnellement apportées. Cela permet de protéger les données et de fournir un déni plausible, de sorte qu'une seule entrée de données peut avoir été modifiée par rapport à son état initial. La suppression d'un seul échantillon de formation de l'ensemble d'apprentissage ne devrait pas avoir d'incidence sur les résultats globaux.
  • Calcul sécurisé multi-parties : Permet à deux parties ou plus d'exécuter conjointement et en toute sécurité des fonctions sur leurs données.

Toutes les techniques d'amélioration de la protection de la vie privée énumérées ci-dessus offrent une méthode unique d'amélioration de la protection de la vie privée. Cependant, chaque technique présente ses propres inconvénients et doit être sélectionnée en fonction du cas d'utilisation dérivé. Bien qu'aucune technique d'amélioration de la protection de la vie privée ne soit une solution universelle aux problèmes de protection de la vie privée, différentes techniques peuvent être utilisées en conjonction les unes avec les autres pour assurer une meilleure protection de la vie privée dans l'ensemble. Statistique Canada est en phase de recherche sur les techniques d'amélioration de la protection de la vie privée. Il devient évident que l'adoption généralisée de techniques d'amélioration de la protection de la vie privée dans les secteurs public et privé sera nécessaire à mesure que la confidentialité des données deviendra plus courante et que de nouvelles lois sur la confidentialité des données seront adoptées.

L'une des méthodes d'exploration des statistiques consiste à utiliser des modèles d'AA, qui visent à apprendre des modèles par l'intermédiaire des données et à fournir des données de sortie cibles. Différents ONS utilisent déjà ou commencent à utiliser l'AA pour soutenir les processus internes, alléger la charge des analystes et améliorer l'efficacité globale. L'un des défis de l'AA est que la qualité des données utilisées est importante pour obtenir un modèle performant. D'après un dicton courant dans le domaine de l'intelligence artificielle, et même dans d'autres domaines de la science des données, on dit : « à données inexactes, résultats erronés ». Heureusement, les ONS détiennent des données de haute qualité qui peuvent être utilisées de manière appropriée et éthique pour entraîner des modèles d'AA de haute qualité (néanmoins, cet article traite uniquement de la confidentialité des données). Cependant, il peut s'avérer difficile d'acquérir des données de qualité sur des sujets de nature délicate ainsi que des données protégées par la loi pour explorer des statistiques sur des domaines précis.

De toutes les techniques d'amélioration de la protection de la vie privée présentées ci-dessus, l'apprentissage fédéré est l'approche qui permet de générer des modèles d'AA avec des données de nature délicate ou protégées par la loi, en supposant que les clients ou les collaborateurs soient d'accord. Le présent article traite de l'apprentissage fédéré et des cas potentiels de son utilisation dans le secteur public lorsque des recherches plus approfondies auront été menées.

Contexte de l'apprentissage fédéré

L'apprentissage fédéré est une technique d'apprentissage distribué qui vise à construire un modèle d'AA central à partir de sources de données distribuées, sans recueillir les données. Les données distribuées utilisées pour l'entraînement du modèle d'AA centralisé qu'une autorité centrale détiendra restent sur les unités périphériques des clients et n'en partent pas. Les réseaux neuronaux sont utilisés pour l'apprentissage fédéré, car ils utilisent des couches de facteurs de pondération numériques pour l'apprentissage qui sont faciles à regrouper et à partager. Dans le cadre du présent article, un client désigne une personne ou une organisation qui détient des données pertinentes qu'elle accepte d'utiliser dans le cadre du processus d'apprentissage fédéré, en collaboration avec l'autorité centrale. Parmi les exemples de clients, citons les participants à une collecte par approche participative qui utilisent leur ordinateur portatif, leur téléphone ou leur tablette et les organisations détenant des données pertinentes. Une autorité centrale fait référence à la personne ou à l'organisation (comme les ONS ou les entreprises privées) responsable de la détention, de la mise à jour et, possiblement, de la distribution du modèle d'AA central, entraînée sur les unités périphériques des clients avant que la collecte des facteurs de pondération du modèle des clients ne soit envoyée pour être regroupée.

Pour utiliser l'apprentissage fédéré afin d'entraîner un modèle d'AA détenu et initialisé par l'autorité centrale, sans visualiser les données d'entraînement du client, le modèle initial devrait d'abord être entraîné avec les données stockées par l'autorité centrale. Ensuite, l'autorité centrale soumettra des demandes à un sous-ensemble de clients pour entraîner le modèle. Si le client peut entraîner le modèle, il envoie le modèle et les instructions pour que son unité périphérique effectue l'entraînement. Les clients entraîneront ensuite le modèle d'AA fourni en utilisant les données stockées sur leur unité périphérique.

Une fois les modèles entraînés localement, les unités périphériques des clients renverront uniquement les facteurs de pondération du modèle d'AA mis à jour, sans les données utilisées pour l'entraînement. Ces facteurs de pondération sont des nombres ajustés pendant l'entraînement pour en apprendre plus sur les données. L'autorité centrale reçoit ensuite ces facteurs de pondération des clients et les regroupe pour les utiliser comme facteurs de pondération actualisés pour le modèle centralisé. Il en résulte un modèle d'AA entraîné détenu par l'autorité centrale sans recueillir ni apprendre les données détenues par ses clients. Le présent article ne portera pas sur tous les aspects techniques de ce processus ni sur les différentes options offertes, mais je mets en évidence le processus dans la figure ci-dessous.

 
Figure 1 : Vue d’ensemble du processus d’apprentissage fédéré
Figure 1 : Vue d'ensemble du processus d'apprentissage fédéré

Une vue d'ensemble du processus d'apprentissage fédéré. 1) L'autorité centrale dispose d'un modèle qui doit être entraîné. Une demande d'entraînement est fournie à deux clients qui acceptent la demande et reçoivent le modèle. 2) Les unités périphériques des clients utilisent leurs données locales pour entraîner le modèle reçu sur leur unité périphérique. 3) Après l'entraînement, chaque client renvoie ses facteurs de pondération à l'autorité centrale pour un traitement sans les données. 4) L'autorité centrale prend les facteurs de pondération mis à jour et calcule les données regroupées pour mettre à jour le modèle. La valeur w1,1 représente le premier facteur de pondération pour la première couche et la valeur wn,n représente le ne facteur de pondération pour la ne couche. 5) L'autorité centrale utilise les facteurs de pondération actualisés pour mettre à jour le modèle central. 6) Le modèle mis à jour est diffusé aux clients afin qu'ils puissent l'utiliser ou pour faire un entraînement complémentaire. Ce processus est répété au besoin.

Comme pour les autres techniques d'amélioration de la protection de la vie privée, l'apprentissage fédéré dispose de bibliothèques, de sorte que la technique peut être utilisée pour la recherche et la production. Toutefois, il reste encore beaucoup de choses à mettre en œuvre dans ces bibliothèques avant qu'une bibliothèque libre entièrement robuste soit accessible pour la production. D'autres bibliothèques sont créées en permanence, mais même les plus importantes ne sont pas assez sophistiquées pour traiter des problèmes complexes sans de solides compétences en programmation pour compléter les fonctionnalités.

Utilisation de l'apprentissage fédéré pour les organisations

Comme l'apprentissage fédéré permet d'entraîner des réseaux neuronaux dans un environnement distribué sans avoir accès aux données, des projets autrefois impossibles sont désormais envisageables. Un exemple de projet collaboratif de preuve de concept a été présenté au PET Lab des Nations Unies (le laboratoire des techniques d'amélioration de la protection de la vie privée) par divers ONS. Cette preuve de concept explique comment tirer des enseignements à partir de données distribuées sur l'activité physique à l'aide de l'apprentissage fédéré. Ce projet a utilisé et distribué un ensemble de données ouvertes sur l'activité physique parmi les ONS, où chaque ONS considère que ces données sont privées dans le cadre de son projet. Statistique Canada vise à tirer des enseignements à partir des données sur l'activité physique des autres ONS ainsi que de ses propres données privées sur l'activité physique, en construisant un modèle avec des données distribuées sans les recueillir (ce qui atténue les préoccupations juridiques et en matière de confidentialité de chaque ONS). Chaque ONS peut ensuite utiliser le modèle généré à ses propres fins statistiques.

Ce projet a permis de reproduire divers scénarios d'apprentissage fédéré dans lesquels les données distribuées ont généré un modèle détenu par l'autorité centrale sans accéder à aucune des données ni les recueillir. En outre, des expériences comportant l'utilisation d'un chiffrement homomorphe en plus de l'apprentissage fédéré, en chiffrant un sous-ensemble des facteurs de pondération du modèle pour les garder privés, ont également été couronnées de succès dans le cadre du projet.

Cela met en évidence une utilisation claire concernant l'apprentissage fédéré : les organisations qui ne peuvent généralement pas transmettre de données de nature délicate peuvent néanmoins générer des modèles à utiliser à des fins statistiques sans divulguer les données. Cela peut donner l'occasion de réaliser des projets comportant des domaines qui sont de nature délicate ou protégés par la loi et qui ne se produiraient pas autrement, comme certaines collaborations interorganismes. Bien entendu, les ONS et d'autres organisations gouvernementales étudient et expérimentent soigneusement les techniques d'amélioration de la protection de la vie privée et leurs faiblesses avant de prendre des mesures pour rendre ces techniques opérationnelles. Nous y reviendrons plus tard.

Une autre utilisation potentielle des techniques d'amélioration de la protection de la vie privée dans le cadre d'un ONS est celle des activités de collecte par approche participative. Cependant, pour certains sujets, les participants peuvent être réticents à fournir des renseignements, quelle que soit l'incitation. Par conséquent, en offrant une application ou une page Web sécurisée où les utilisateurs peuvent participer sans partager de données, le nombre d'utilisateurs qui hésitent à participer peut être moindre. Il reste néanmoins des défis à déterminer et à anticiper avant de pouvoir mettre en œuvre ces techniques, comme les attaques possibles et les stratégies de communication.

Les défis de l'apprentissage fédéré

Si l'apprentissage fédéré et les autres techniques d'amélioration de la protection de la vie privée peuvent sembler être des outils magiques capables de résoudre tous les problèmes majeurs en matière de protection de la vie privée, il y a des défis à prendre en compte. Une seule technique d'amélioration de la protection de la vie privée ne permet pas d'atténuer complètement tous les risques liés à la protection de la vie privée, mais fournira des mesures d'atténuation supplémentaires permettant de réaliser des projets qui seraient autrement impossibles. Les techniques d'amélioration de la protection de la vie privée à utiliser et la stratégie de communication qui explique la façon dont les données d'un client restent privées sont essentielles et varieront en fonction de chaque cas d'utilisation.

Les techniques d'amélioration de la protection de la vie privée font l'objet de recherches actives, et de nombreuses attaques et défenses contre les techniques d'amélioration de la protection de la vie privée sont à l'étude. Les attaques traditionnelles contre les modèles d'AA peuvent toujours être mises en œuvre contre certaines techniques d'amélioration de la protection de la vie privée et nécessitent toujours des défenses, ce qui fait que la technique d'amélioration de la protection de la vie privée agit comme une mesure de protection de la vie privée supplémentaire qui nécessite toujours des défenses contre les attaques. Par exemple, une attaque par inférence d'appartenance peut être effectuée pour déterminer si des données ont été utilisées pour entraîner un modèle. Comme l'apprentissage fédéré combine les facteurs de pondération des modèles recueillis auprès des clients, il y a un degré de défense supplémentaire contre certaines attaques, mais il existe des scénarios où les attaques peuvent encore être efficaces contre le modèle centralisé. Les ONS enquêtent sur ces questions afin de déterminer comment atténuer les attaques et se préparer à rendre les techniques d'amélioration de la protection de la vie privée opérationnelles en toute sécurité à l'avenir.

S'il existe des bibliothèques de programmation accessibles pour utiliser l'apprentissage fédéré, toutes ne sont pas prêtes à être utilisées dans des systèmes de production sans avoir de défis à relever ou en utilisant des logiciels payants (qui peuvent encore ne pas inclure toutes les fonctionnalités nécessaires à un cas d'utilisation). Par conséquent, l'un des principaux défis à relever par la communauté des techniques d'amélioration de la protection de la vie privée sera de continuer à développer des logiciels libres que les personnes ou les organisations pourront utiliser facilement et en toute confiance, au-delà des contextes de simulation.

Le dernier défi central à évoquer est celui des stratégies de communication entourant l'utilisation de l'apprentissage fédéré. Lorsque les organisations collaborent au moyen de l'apprentissage fédéré, elles peuvent procéder à un audit du code base et participer à son développement pour s'assurer qu'il est correctement mis en œuvre et qu'il peut être utilisé en toute sécurité avec leurs données. Il est donc plus facile à utiliser dans le cadre de collaborations professionnelles où des experts sont disponibles pour évaluer et développer les systèmes. Cependant, dans un cadre public, l'histoire est tout à fait différente. Chaque client devra être convaincu que l'approche fonctionne et que ses données ne quitteront jamais réellement son unité périphérique. Étant donné les difficultés générales entourant la confiance entre les utilisateurs et les organisations, il s'agit d'un obstacle important que les communautés et les organisations chargées des techniques d'amélioration de la protection de la vie privée devront surmonter.

Conclusions

L'apprentissage fédéré est un outil important qui peut conduire à des occasions qui ne sont pas possibles autrement. En générant des modèles d'AA sans avoir accès aux données utilisées pour l'entraînement, les ONS peuvent fournir au public des renseignements qu'il serait impossible de fournir autrement. Cette technique est actuellement utilisée par des organisations privées et fait l'objet de recherches actives. Les ONS étudient les techniques d'amélioration de la protection de la vie privée dans l'intention de favoriser les collaborations à l'échelle mondiale qui peuvent apporter un avantage à la société dans son ensemble. Ce travail de recherche peut également s'étendre à d'autres organisations publiques et permettre davantage de collaborations interorganismes au sein de la fonction publique. Bien qu'il reste encore beaucoup de travail à faire à Statistique Canada avant de rendre fonctionnel l'apprentissage fédéré, la poursuite de nos recherches permettra d'améliorer la protection de la vie privée et de produire davantage de statistiques.

L'apprentissage fédéré présente de nombreux défis qui doivent être relevés, mais les ONS et les communautés internationales des techniques d'amélioration de la protection de la vie privée continueront à collaborer et à utiliser la technique de manière sûre et efficace, en maintenant la protection de la vie privée au premier plan de toutes les initiatives. Chaque technique d'amélioration de la protection de la vie privée fera l'objet d'une analyse des attaques afin de prouver qu'il s'agit d'une méthode de protection de la vie privée solide. Tout cela devra être clairement communiqué au public et aux autres organisations.

Rencontre avec le scientifique des données

Inscrivez-vous à la présentation Rencontre avec le scientifique des données

Si vous avez des questions à propos de mon article ou si vous souhaitez en discuter davantage, je vous invite à une Rencontre avec le scientifique des données, un événement au cours duquel les auteurs rencontrent les lecteurs, présentent leur sujet et discutent de leurs résultats.

Jeudi, le 15 décembre
14 h 00 à 15 h 00 HE
MS Teams – le lien sera fourni aux participants par courriel

Inscrivez-vous à la présentation Rencontre avec le scientifique des données. À bientôt !

Date de modification :

Tirer des avantages pour le public à partir des données administratives : une méthode d’amélioration de l’analyse à l’aide de données couplées

Par : Sarry Zheng et Howard Swerdfeger, École de la fonction publique du Canada

La vie quotidienne des Canadiens est de plus en plus façonnée par de nouvelles technologies et de nouveaux services qui sont fondés sur les données. En utilisant ces technologies et ces services, le gouvernement du Canada est en mesure d'accéder à des données provenant de sources multiples afin de mieux répondre aux besoins des citoyens et d'éclairer la prise de décisions.

L'Environnement de fichiers couplables de Statistique Canada est l'un des moyens permettant d'améliorer l'analyse. Il s'agit d'un environnement au niveau des entreprises qui permet de coupler les données administratives aux renseignements sur les entreprises et les particuliers dans l'ensemble du Canada. Cet outil permet d'accéder à des renseignements plus précis et à des analyses plus complètes. Il permet également de réduire le fardeau d'enquête et de réponse des ministères et des industries privées.

Qu'entend-on par données couplées?

Les données couplées découlent d'un processus par lequel les enregistrements de différentes sources de données sont réunis en un seul fichier à l'aide d'identificateurs comme le nom, la date de naissance, l'adresse et d'autres caractéristiques. Ce processus est également connu sous le nom de couplage d'enregistrements, d'appariement de données et de résolution d'entités, entre autres termes. L'idée initiale du couplage de données remonte aux années 1950. Cette technique est utilisée dans de nombreux domaines tels que l'entreposage de données, les renseignements organisationnels et la recherche médicale.

Types de couplage

Il existe deux types de couplage : l'appariement statistique et l'appariement exact.

  1. L'appariement statistique permet de créer un fichier qui reflète la répartition de la population sous-jacente. Les enregistrements qui sont combinés ne correspondent pas nécessairement à la même entité, comme une personne ou une entreprise. On suppose que la relation des variables dans la population sera semblable à la relation dans le fichier. Cette méthode est fréquemment utilisée dans les études de marché.
  2. L'appariement exact consiste à coupler les renseignements relatifs à un enregistrement particulier dans un fichier aux renseignements d'un autre fichier afin de créer un seul fichier contenant les renseignements exacts pour chaque enregistrement. Il en existe deux sous-types : le couplage d'enregistrements déterministe et le couplage d'enregistrements probabiliste.Note de bas de page 1
    • Le couplage d'enregistrements déterministe permet de coupler des enregistrements à partir d'identificateurs communs entre les sources de données.
    • Le couplage d'enregistrements probabiliste permet de coupler des enregistrements lorsque leurs colonnes ne sont pas toutes identiques, selon la probabilité que les enregistrements correspondent.

Couplage d'enregistrements probabiliste

Le couplage d'enregistrements probabiliste est une méthode pouvant servir à coupler des fichiers de données et à créer un ensemble de paires potentielles lorsqu'un ensemble de données ne contient pas d'identificateur unique, qu'il est incomplet ou qu'il comporte des erreurs. Comme nous pouvons le voir à la figure 1, les premiers enregistrements sont identiques, tandis que les deuxièmes et les troisièmes enregistrements correspondent, mais ne sont pas identiques. L'objectif de tout algorithme de couplage d'enregistrements probabiliste est de reproduire la capacité d'un être humain d'affirmer avec une grande certitude que ces entités sont les mêmes.

Figure 1 Exemple d'ensembles de données à joindre pour effectuer un couplage probabiliste
Description - Figure 1 Exemple d'ensembles de données à joindre pour effectuer un couplage probabiliste
Exemple d'ensembles de données 1
Nom de l'entreprise Adresse Ville Prov. Code postal No de permis Nombre de produits
ABC inc. 1072, rue Booth Saskatoon Sask. S5P 1E4 1111 50
XYZ ltée 118, Hammer Way Richmond C.-B. V7A 5E5 1112 3
613 Canada inc. 210, rue Glasgow Ottawa Ont. K1A 0E4 1113 500

Appariement des identificateurs identiques, seuil de 97 %

Exemple d'ensembles de données 2
Nom_entreprise Addr. Ville Prov. C.P.
ABC inc. 1072, rue Booth Saskatoon Sask. S5P 1E4
XYZ limitée 118, Hammer Way Richmond C.-B. V7A 5E5
613 Canada Incorporated 10200 - 210, rue Glassgow Ottawa ON K1A 0E4

Pratiques normalisées

L'un des outils que Statistique Canada utilise pour effectuer des couplages d'enregistrements probabilistes est le logiciel SAS appelé G-Coup. Ce logiciel représente une mise en œuvre directe de l'algorithme de couplage d'enregistrements de Fellegi-Sunter, qui est offert comme application Windows.

À mesure que la puissance de calcul s'accroît, ce qui permet de coupler de plus grands ensembles de données en moins de temps et de les rendre accessibles sur des ordinateurs de bureau, la mise au point de nouveaux modèles théoriques et l'amélioration des méthodologies et des logiciels existants sont de plus en plus répandues. Par exemple, la trousse d'outils de couplage d'enregistrements dans Python (anglais seulement) et l'outil reclin (anglais seulement) dans R sont deux exemples de logiciels ouverts faciles à utiliser qui s'intègrent bien à la méthode de couplage d'enregistrements de Fellegi-Sunter.

Algorithme de Fellegi-Sunter

Depuis sa publication, l'algorithme de Fellegi-Sunter (1969)Note de bas de page 2 est devenu l'approche utilisée de facto pour faire le couplage d'enregistrements probabiliste. Ce modèle consiste à estimer les poids d'appariement pour chaque colonne individuelle et à combiner ces poids d'appariement en une probabilité d'appariement globale. En supposant que les variables doivent être indépendantes étant donné l'état de l'appariement, on peut combiner le modèle avec le théorème de Bayes et le quantifier à l'aide de deux paramètres clés pour chaque colonne, soit les probabilités m et u, où :

  • m est la probabilité que les valeurs d'une colonne donnée ne correspondent pas, mais que les enregistrements soient les mêmes.
  • u est la probabilité que les valeurs d'une colonne donnée soient les mêmes, mais pas les enregistrements.

Selon le théorème de Bayes

PR|D=PD|R*PRPD

où :

  • PR est la probabilité d'un appariement d'enregistrements.
  • PD est la probabilité d'appariement de certains éléments d'information.

En développant le dénominateur,

PR|D=PD|R*PRPD|R*PD+PD|R¯*PR¯

où :

  • PR¯ est la probabilité que deux enregistrements ne correspondent pas, ou 1-PR.

Comme nous avons plusieurs colonnes ou plusieurs lignes de données disponibles, nous pourrions utiliser mi et ui pour calculer les probabilités m et u de la ie colonne.

PR|D=i=1Ncolmi*PRi=1Ncolmi*PR+i=1Ncolui*1-PR

Dr. Yvan P. Fellegi

M. Yvan P. Fellegi a été statisticien en chef de Statistique Canada de 1985 à 2008. Au cours de son mandat, il a mis en application de nouvelles méthodes de collecte et de compilation de statistiques nationales. Il a aussi défendu haut et fort l'indépendance de l'organisme par rapport à la politique. En juin 2008, à la retraite de M. Fellegi, le Gouvernement canadien l'a nommé statisticien en chef émérite.

Comparaisons de chaînes

L'algorithme de Fellegi-Sunter a au moins un désavantage qui se règle habituellement lors des applications pratiques. Dans la pratique, pour de nombreuses colonnes, les probabilités m et u ne sont souvent pas fondées sur la probabilité que deux colonnes soient identiques, mais plutôt sur l'utilisation d'une fonction de distance appropriée pour mesurer la similarité entre deux colonnes, puis pour calculer le seuil. Les probabilités m et u seraient alors fondées sur ces seuils.

Pour les chaînes, il existe plusieurs fonctions de distance courantes, chacune pouvant être utile pour combiner des données et tenir compte des différences prévues (fautes d'orthographe) dans l'ensemble de données. Certaines de ces fonctions sont résumées ci-dessous :

Exemple d'ensembles de données 3
Fonctions de distance Nom de l'entreprise Nom_entreprise
Jaro-Winkler La société Odyssée d'Homère La société Odyssée d'Homer
Sous-chaîne commune la plus longue La société Nain tracassin Société Nain tracassin et fils
Distance de Levenshtein Quasimodo et Esmeralda inc.  Quazimodo et Ezmeralda inc.
Cosinus Les entreprises William « Bill » S. Preston et Ted « Theodore » Logan Les entreprises Ted « Theodore » Logan et William « Bill » S. Preston
Couplage d'unités lexicales Cabinet d'avocats Legal Eagle Legal Eagle (2017) avocats

Couplage d'unités lexicales

Bien que la combinaison de l'algorithme de Fellegi-Sunter et de mesures traditionnelles de la distance des chaînes soit très utile, elle présente plusieurs lacunes possibles :

  • Pour les colonnes qui comportent des niveaux catégoriques et qui ne sont pas réparties uniformément, seul le taux d'appariement moyen est pris en compte pour le paramètre u. Il faut penser à apparier la colonne de la ville avec la valeur « Williamstown », ce qui est bien plus porteur de renseignements que l'appariement de la valeur « Toronto ».
  • La plupart des algorithmes de distance des chaînes fonctionnent sur le plan des caractères. Ils partent du principe que les distances sémantiques sont des fonctions des caractères qui composent une chaîne, tandis que, en français comme en anglais, l'information est transmise aux lecteurs par les mots.

L'algorithme de couplage d'unités lexicales et le progiciel R permettent de corriger ces problèmes. L'algorithme peut aider à relever les enregistrements où plusieurs niveaux catégoriques sont présents. Il permet également d'indiquer les colonnes comportant plusieurs mots à la fois, comme le nom ou l'adresse d'une entreprise.

L'algorithme de base consiste à accomplir les étapes suivantes :

  1. Segmentez en unités lexicales les mots dans la colonne et comptez les occurrences de chaque unité lexicale dans l'ensemble de données.
    Figure 2 : Mots segmentés en unités lexicales dans chaque colonne
    Description - Figure 2 : Mots segmentés en unités lexicales dans chaque colonne
    Mots segmentés en unités lexicales dans chaque colonne
    id Addresse
    1 742, Evergreen Terrace Springfield
    2 19, rue Plympton, Springfield
    3 744, Evergreen Terr, Springfield
    4 100, Industrial Way Springfield

    Nettoyez et segmentez

    Nettoyez et segmentez - Unités lexicales
    id Unité lexicale
    1 742
    1 Evergreen
    1 Terrace
    1 Springfield
    2 19
    2 Pympton
    2 Rue
    2 Springfield
    3 744
    3 Evergreen
    3 Terrace

    Dénombrez les unités lexicales

    Dénombrez les unités lexicales
    Unité lexicale N
    Springfield 24
    Evergreen 12
    Terrace 12
    Plympton 6
    Industrial 4
  2. Répétez la procédure de segmentation en unités lexicales et de dénombrement pour un autre ensemble de données.
  3. Créez une jointure externe complète pour les unités lexicales à deux mots.
    Jointure externe complète pour les unités lexicales
    Unité lexicale N_a N_b U_prob
    Springfield 24 7 500 3,7%
    Evergreen 12 2 0,0005%
    Terrace 12 500 0,12%
    Plympton 6 1 0,00013%
    Industrial 4 8 0,00067%
  4. Utilisez cette option pour estimer la probabilité U pour chaque unité lexicale, où nta et ntb représentent le nombre d'occurrences de l'unité lexicale t dans l'ensemble de données a ou b, et Na et Nb représentent le nombre d'enregistrements dans l'ensemble de données a et b.
    Ut=nta*ntbNa*Nb
  5. Estimez la probabilité m dans son ensemble ou indépendamment pour chaque unité lexicale.
  6. Joignez le fichier fusionné des unités lexicales dénombrées aux deux ensembles de données originaux, en calculant la probabilité PR|Ti-1Nt que deux enregistrements soient identiques étant donné qu'ils ont une unité lexicale en commun.
    PR|Ti-1Nt=t=1Ntmt*PRt=1Ntmt*PR+t=1Ntut*1-PR

Voici quelques-unes des limites de la technique de couplage d'unités lexicales :

  • Comme toutes les méthodes liées à l'algorithme de Fellegi-Sunter, cette technique présuppose que les éléments d'information sont indépendants. Le couplage d'unités lexicales part du principe que les mots sont indépendants. Par exemple, alors que les mots « recherche et développement » apparaissent souvent ensemble et ne devraient pas être traités indépendamment, cet algorithme traiterait ces mots comme des unités indépendantes et distinctes.
  • Cet algorithme ne tient pas compte de l'ordre des mots. Ainsi, la combinaison « Bill et Ted » serait considérée comme identique à « Ted et Bill ».
  • L'algorithme a de la difficulté à trouver des correspondances si une simple faute d'orthographe se trouve dans un mot d'identification important. Par exemple, cet algorithme pourrait avoir plus de difficulté à trouver la paire d'enregistrements « café Starbucks » et « Café Starbacks » que la paire d'enregistrements « café Starbucks coffee » et « Cofé Starbucks ».

Pour en savoir plus sur cette technique, consultez TokenLink sur GitHub (en anglais).

Pour commencer

L'Environnement de fichiers couplables (EFC) de Statistique Canada offre un soutien aux utilisateurs et aux partenaires pour leurs recherches et leurs rapports selon le principe du recouvrement des coûts. Pour en savoir plus sur ce service offert, communiquez avec l'équipe de l'EFC.

Les ministères qui souhaitent extraire de la valeur des données sur leurs parties réglementées en utilisant des données couplées doivent tenir compte de trois choses.

Identificateurs uniques

Songez à recueillir des identificateurs uniques, comme le numéro d'entreprise, auprès de vos parties réglementées. Bien qu'il soit possible de coupler des données sans identificateurs uniques au moyen de caractéristiques comme le nom ou l'adresse de l'entreprise, cela peut entraîner des erreurs dans le processus de couplage. Le taux d'erreur est souvent lié à la qualité des données et au mécanisme de collecte des données.

Statistiques sommaires

Déterminez quelle mesure sommaire demander. S'il existe un risque d'erreur dans le processus de couplage, certaines mesures sommaires sont plus efficaces que d'autres pour prévenir les valeurs aberrantes. Comme mesures de la tendance centrale et de la variation, pensez à demander la médiane et l'intervalle interquartile plutôt que la moyenne arithmétique et l'écart-type, car les deux premières mesures sont plus efficaces que les deux dernières pour prévenir les valeurs aberrantes.

Granularité et taille des données

Tenez compte des éventuelles suppressions de données. Si un ministère demande que les données soient résumées à un niveau très détaillé et qu'il n'y a pas un grand nombre de parties réglementées, il se pourrait qu'on supprime les cellules d'un tableau sommaire pour protéger la confidentialité des entités et se conformer à la Loi sur la statistique. En général, plus les ensembles de données sont grands, plus le niveau d'agrégation des données peut être affiné.

Remerciements

L'Environnement de fichiers couplables de Statistique Canada; Zhuo (Sarah) Zhang, Robert Dorling, Ministre des pêches et océans Canada

Inscrivez-vous à la présentation Rencontre avec le scientifique des données

Si vous avez des questions à propos de mon article ou si vous souhaitez en discuter davantage, je vous invite à une Rencontre avec le scientifique des données, un événement au cours duquel les auteurs rencontrent les lecteurs, présentent leur sujet et discutent de leurs résultats.

Jeudi, le 17 novembre
14 h 00 à 15 h 00 HNE
MS Teams – le lien sera fourni aux participants par courriel

Inscrivez-vous à la présentation Rencontre avec le scientifique des données. À bientôt !

Date de modification :

Segmentation d'image en imagerie médicale

Par Loïc Muhirwa, Statistique Canada

Introduction

Étant donné que de nombreuses applications nécessitent l'identification des substructures des images numériques, la segmentation est une procédure fondamentale de prétraitement. La segmentation binaire entre l'avant-plan et l'arrière-plan d'une image, d'application très large, est un exemple canonique de segmentation d'image. En imagerie médicale, il peut être nécessaire de segmenter des images de résonance magnétique (RM) ou de tomodensitométrie (TDM) d'un organe en structures anatomiques distinctes ou de segmenter différents types de tissus. Dans le domaine de la neuroimagerie particulièrement, il est possible de segmenter le cerveau humain selon le tissu principal (matière blanche et grise) ou selon l'état de santé d'un tissu, c'est-à-dire sain ou avec lésion.

Pour mettre en forme ces idées, il nous faut une représentation mathématique d'une image. Il existe plusieurs manières de représenter les images, selon les applications; certaines sont plus pratiques que d'autres. Comme le décrit l'article, en raison de la multiplicité des méthodes de segmentation d'image, il est difficile de trouver une représentation mathématique unique d'une image. Malgré cela, nous adopterons une représentation primaire, de laquelle nous pourrons nous écarter aux fins de simplification de la notation ou pour régler les cas dans lesquels une image est un objet discret, par opposition à un objet continu. Formellement, une image peut être représentée comme une table de pixels d'un domaine d'image à un domaine d'intensité, comme suit :

I Ω  R

où le domaine d'image Ω est un espace compact et un sous-ensemble simplement connexe de Rdford2, 3 pour des images en 2D ou 3D, également appelé volumes (voir : la définition de simplement connexe – le contenu de cette page est en anglais). Par ailleurs, sans perte de généralité, l'article étudie seulement les images aux valeurs d'intensité unidimensionnelles, telles que les images en niveaux de gris. Il s'agit d'une définition implicite étant donné que l'image est mise en correspondance avec R. Dans cette représentation d'image, nous pouvons définir conceptuellement une segmentation Z de l'image I comme étant la carte suivante :

ZΩ0,...,K-1,

K est le nombre de segments d'image distincts.

Figure 1 : Segmentation d'une coupe axiale du cerveau. Le rouge, le vert et le bleu correspondent respectivement à la matière blanche, à la matière grise et au liquide céphalorachidien. (Source de l'image : A review of medical image segmentation: methods and available software.Footnote 21)

Figure 1 : Segmentation d'une coupe axiale du cerveau. Le rouge, le vert et le bleu correspondent respectivement à la matière blanche, à la matière grise et au liquide céphalorachidien. (Source de l'image : A review of medical image segmentation: methods
Description - Figure 1: Segmentation d'une coupe axiale du cerveau. Le rouge, le vert et le bleu correspondent respectivement à la matière blanche, à la matière grise et au liquide céphalorachidien. (Source de l'image : A review of medical image segmentation: methods and available software.

Imagerie cérébrale d'une coupe axiale à gauche en noir et blanc, et segmentation des tissus représentée par les couleurs rouge, vert et bleu à droite. Les couleurs de l'image de droite correspondent respectivement à la matière blanche, à la matière grise et au liquide céphalorachidien, de l'image de gauche.

En gros, la segmentation des images numériques peut être classée en deux catégories : la segmentation manuelle et la segmentation automatique. Dans la segmentation manuelle, un être humain annote manuellement les différents segments dans une image numérique, tandis que dans la segmentation automatique, un algorithme automatisé segmente l'image. La segmentation manuelle présente plusieurs difficultés, notamment en matière de coût, de temps et d'uniformité. Premièrement, dans de nombreuses applications, la personne qui annote les images doit être spécialiste du domaine, ce qui rend la segmentation manuelle difficile et coûteuse sur le plan opérationnel.

Si l'on prend l'exemple de la neuroimagerie médicale, certains des types de segmentation les plus courants consistent en une segmentation selon le type de tissu, qui classe le tissu cérébral en trois grands types : matière blanche, matière grise et liquide céphalorachidien (voir la figure 1). L'annotation manuelle du volume d'images neurologiques d'un seul patient nécessite beaucoup de temps et des connaissances de radiologue. Deuxièmement, le traitement d'image peut nécessiter l'annotation de centaines d'images, ce qui est ingérable en cas de traitement manuel. Troisièmement, les segmentations manuelles varient considérablement d'une personne à l'autre, y compris quand elles sont réalisées par des spécialistesFootnote 1. Certains tomodensitomètres peuvent produire des images facilement segmentables par un procédé automatique. À titre d'exemple, comme une image neurologique de tomodensitométrie a des intensités ayant une correspondance physique fixe, la segmentation automatisée ne pose pas de difficulté. Pour ces raisons et bien d'autres, il faut privilégier la segmentation automatique.

Dans les sections suivantes, nous classerons les méthodes de segmentation automatique en deux catégories : les méthodes fondées sur un modèle génératif et les méthodes d'apprentissage profond.

Segmentation automatique – Méthodes fondées sur un modèle génératif

Dans les méthodes fondées sur un modèle génératif, la segmentation d'une image est modélisée comme un problème d'inférence statistique. Plus précisément, on spécifie un modèle génératif de l'image, dans lequel la segmentation est une variable latente et la segmentation d'une image correspond à l'inférence de cette variable.

Modèles univariés

Pour ce qui est des points, la méthode univariée modélise les intensités d'image de différents segments en tant que sous-populations à partir d'un modèle par mélanges finis (MMF) avec des distributions d'intensité différentes décrivant les processus de génération de données de différents segments. Dans le cadre de cette modélisation, les intensités d'image appartenant à des segments donnés sont tirées de mélanges distincts. Un des cas particuliers de MMF souvent utilisé dans la segmentation d'image est un modèle de mélange gaussien (MMG) dans lequel les distributions de mélange sont gaussiennes.Footnote 2Footnote 3Footnote 4 Au moyen d'un MMG, nous montrerons comment un modèle génératif peut servir à segmenter une image. L'image est représentée par une variable aléatoire I qui est un ensemble de variables aléatoires indépendantes I(x)   avec un support R et l'on suppose que Z(x)  est une variable aléatoire avec un support 0,1k représentant la valeur d'intensité et l'affectation de mélange pour un élément de domaine d'image xΩ respectivement. Soit π un vecteur de variable aléatoire avec un support [0,1]k comme probabilités de mélange, où la ke entrée πk indique la probabilité d'appartenance au ke segment d'image. En supposant une configuration bayésienne,  Z(x)| π ~ Categorical(π) est une variable latente telle que cet événement Z(x)k=1 indique que x appartient au ke segment d'image et qu'il existe une loi a priori de Dirichlet sur les probabilités de mélange, à savoir π ~ Dirichlet(β) La fonction de densité conjointe de probabilité d'affectation de segment et d'intensité à une valeur xΩ donnée a la forme suivante :

Ix=x,Zx=z|π,μ,σ k=1KƝ(μ,σ2)zkk=1KπkzkΓ(Kβ)Γ(β)k=1Kπkβ-1

μ et σ sont des ensembles de paramètres de moyenne et de variance, respectivement, pour chaque mélange et β représente des paramètres de parcimonie de Dirichlet.

Modèles multivariés

Contrairement aux méthodes univariées, les méthodes multivariées modélisent la distribution d'intensité sur l'ensemble d'un domaine d'image, tout en tenant compte des dépendances à long terme entre pixels. Les champs aléatoires de Markov (CAM) sont une classe de modèles qui spécifient une distribution dans le domaine de l'image en commençant par discrétiser le domaine de manière à ce que

Ω=1,...,Md

pour certains M N and d2,3. Après cette discrétisation, la segmentation et les intensités sont indexées par les sommets d'un graphe non orienté et par les sommets adjacents correspondant aux pixels adjacents.Footnote 5 Supposons d'abord que les estimations d'intensité moyenne pour chaque classe de segments sont données, puis soit μk et σ2k be the mean and variance intensity estimate for the ke segment d'image. Nous pouvons alors définir une fonctionnelle qui correspond à la probabilité log négative du modèle et qui a la forme suivante :

HZ=k=1Kx  ΩlZx=kI(x)-μkσk2+λx  Ωly  NxlδZx,y

N(x)  est l'ensemble de sommets adjacents à x, l()  est une fonction indicatrice et δZ(x,y) est un terme de pénalité qui pénalise les emplacements voisins dans le domaine d'image qui n'ont pas en commun les étiquettes de segment. En pratique μk σ2k sont généralement obtenus par un étiquetage partiel (semi-supervisé) effectué par un spécialiste du domaine. Dans l'équation précédente, la première double sommation pénalise un Z()  qui étiquette les pixels dont les intensités s'écartent considérablement de l'intensité moyenne dans cette classe de segments. Pour la classe de segments, la distance par rapport à la moyenne est normalisée par l'écart-type afin que la proximité de la moyenne entre classes de segments soit comparable. La deuxième sommation double favorise un Z qui donne aux pixels voisins la même étiquette, et λ est un paramètre qui équilibre les deux sommations doubles.

Inférence et apprentissage

Comme cela a été dit plus haut, dans le contexte des modèles génératifs, la segmentation d'image est un problème statistique dans lequel la segmentation est inférée et les paramètres qui régissent le modèle génératif sont appris. Dans cette sous-section, nous donnons des exemples de problèmes d'inférence qui se posent couramment dans la segmentation d'image.

Maximum de vraisemblance et estimation du maximum a posteriori

Si nous avons accès à une distribution a posteriori ou une vraisemblance soluble, cette inférence est réalisable au moyen d'une estimation par la méthode du maximum de vraisemblance (EMV) ou d'une estimation du maximum a posteriori (MAP) de l'affectation des segments. De façon plus formelle, dans l'hypothèse d'un contexte bayésien, supposons que nous avons accès à une distribution a posteriori soluble et au comportement raisonnable p(Z|I) Z et I sont respectivement le MAP de la segmentation et l'image. L'estimation par le MAP du MAP de la segmentation aurait la forme suivante :

ZMAP=argmaxzp(Z|I).

Il n'est pas toujours facile de tirer un échantillon en cas de distribution a posteriori d'une segmentation; cela est particulièrement vrai pour les CAM. Dans ces scénarios, on utilise généralement des méthodes Monte Carlo par chaînes de Markov (MCMC) fondées sur des graphes. Plus précisément, un échantillonnage de Gibbs est généralement utilisé pour les CAMFootnote 6 puisqu'il s'agit d'un cas particulier de champ aléatoire conditionnel (CAC), ce qui permet de relativement facilement spécifier chaque affectation de segment comme une probabilité conditionnelle.

Inférence variationnelle

Plutôt que d'échantillonner une distribution a posteriori insoluble, on peut utiliser une méthode dite d'inférence variationnelle (IV) pour estimer la distribution a posteriori au moyen d'une distribution issue d'une famille de distributions solubles. Cette famille de distributions solubles est celle des distributions variationnelles, d'après le calcul des variations ou calcul variationnel. Après spécification de la famille de distributions, on peut estimer la distribution a posteriori en trouvant la distribution variationnelle qui optimise certaines mesures entre la distribution a posteriori vraie et elle-même. L'indicateur le plus couramment utilisé pour mesurer la similarité entre deux distributions est la divergence Kullback-Leibler (KL), définie comme suit :

KLq||p=Ez[logq(z)p(z|x)]

q()  est une densité approximative et p() est une densité vraie sur le même support. L'inférence de la segmentation latente au moyen de cette approximation de distribution peut être formulée comme un problème d'inférence d'espérance-maximisation bayésienne variationnelle (EMBV).Footnote 7 Une analyse plus approfondie de l'inférence variationnelle peut se trouver dans la section 4 de Variational Inference.Footnote 8

Méthodes d'apprentissage profond

Depuis quelques années, les méthodes d'apprentissage profond (AP) ont été appliquées avec succès à de nombreuses tâches d'apprentissage. Il a été démontré qu'elles surpassent des techniques antérieures d'apprentissage automatique de pointe, en particulier dans le domaine de la vision par ordinateur.Footnote 9 Vaguement inspirées des modèles informatiques d'apprentissage biologique, les méthodes d'AP donnent des modèles informatiques efficaces et extrêmement parallélisables de couches de traitement multiples qui apprennent implicitement des représentations de données.Footnote 10 Les configurations structurelles de ces couches de traitement sont connues sous le nom d'architectures. Certaines des architectures prédominantes dans la vision par ordinateur comprennent les réseaux antagonistes génératifs (ou GAN pour l'anglais)Footnote 11 les réseaux de neurones récurrents (ou RNN en anglais)Footnote 12 et les réseaux neuronaux convolutifs Footnote 13 ces derniers affichant des performances particulièrement bonnes en segmentation d'image. Un réseau neuronal convolutif en 3D appliqué à la segmentation des lésions cérébralesFootnote 14 a permis d'améliorer le modèle précédent pour obtenir les meilleures performances des ensembles de données de référence publics BRATS 2015Footnote 15 et ISLES 2015Footnote 16 (ensembles de données publics utilisés dans les défis sur la segmentation des lésions cérébrales).

Réseaux neuronaux convolutifs

Figure 2 : Processus typique de segmentation par apprentissage profond avec un réseau neuronal convolutif. Source de l'image : Going Deep in Medical Image Analysis: Concepts, Methods, Challenges and Future DirectionsFootnote 17

Figure 2 : Processus typique de segmentation par apprentissage profond avec un réseau neuronal convolutif. Source de l'image : Going Deep in Medical Image Analysis: Concepts, Methods, Challenges and Future Directions
Description - Figure 2 : Processus typique de segmentation par apprentissage profond avec un réseau neuronal convolutif. Source de l'image : Going Deep in Medical Image Analysis: Concepts, Methods, Challenges and Future Directions.

Le processus typique de segmentation par apprentissage profond avec un modèle fondé sur un réseau neuronal convolutif consiste d'abord à comprimer l'image source avec une pile de couches de convolution, d'activation et de regroupement différentes.

À l'heure actuelle, les réseaux neuronaux convolutifs sont considérés comme les réseaux les plus à la pointe de la technologie pour les problèmes de segmentation d'image par AP supervisé.Footnote 18 Leur architecture s'inspire d'un modèle de champ récepteur hiérarchique du cortex visuel et comprend généralement la composition de trois types de couches :

  1. couches de convolution, où un noyau (filtre) est convolué sur des entrées pour extraire une hiérarchie de caractéristiques;
  2. couches non linéaires, qui permettent de mapper les entrées aux espaces de caractéristiques;
  3. couches de regroupement, qui réduisent la résolution spatiale en agrégeant les informations locales.

Chaque couche est constituée d'unités de traitement connectées localement. Ces connexions locales sont appelées champs récepteurs. Les couches sont généralement composées pour former une pyramide multirésolution dans laquelle les couches de niveau supérieur apprennent les caractéristiques de champs récepteurs plus larges. Les paramètres du modèle sont généralement appris au moyen d'une version stochastique de l'algorithme de rétropropagationFootnote 19 qui est une routine d'optimisation par gradient propageant efficacement le gradient du résidu à travers le réseau.

Méthodes d'évaluation

En général, les méthodes d'évaluation de la segmentation supervisée tentent de quantifier le degré de chevauchement entre une segmentation estimée et la segmentation réelle sur le terrain. En utilisant la notation cartographique d'une segmentation de l'expression (2), nous pouvons comprendre de façon équivalente la segmentation comme un ensemble avec l'image de sa carte, c'est-à-dire Z(Ω). 

Le coefficient de Dice (D) est l'une des méthodes d'évaluation de la segmentation les plus populaires et les plus faciles à comprendre sur le plan conceptuel. Pour deux segmentations A et B, le coefficient de Dice est calculé comme suit

DA,B= 2|AB||A| + |B|

Le coefficient de Jaccard (J) — une autre méthode d'évaluation de la segmentation — est lié au coefficient de Dice par l'expression suivante

D= 2J1+J

D est connu pour produire des valeurs plus grandes pour des volumes plus élevés. Une autre méthode d'évaluation de la segmentation est la distance de Hausdorff moyenne, qui est particulièrement recommandée pour les tâches de segmentation présentant des limites complexes et de petits segments minces. Comparativement au coefficient de Dice, la distance de Hausdorff moyenne a l'avantage de tenir compte de la localisation quand on considère les performances de la segmentationFootnote 20 Pour deux segmentations A et B, qui sont des sous-ensembles non vides d'un espace métrique (S,d), la distance de Hausdorff moyenne est calculée comme suit :

HA,B=121|A|xAmindyBx,y+1|B|xAmindyBx,y.

Pour connaître d'autres méthodes d'évaluation, se reporter à Metrics for evaluating 3D medical image segmentationFootnote 22

Conclusion

En conclusion, la segmentation d'image est une technique cruciale dans le traitement d'image en général et en imagerie médicale en particulier. Ce processus est une partie essentielle d'un pipeline de traitement d'image qui nécessite des analyses d'images en aval, dans lesquelles sont identifiées les sous-structures sémantiques d'une image. L'apprentissage automatique nous permet d'automatiser cette procédure et de conserver la qualité d'exécution d'une annotation par un spécialiste, pour un coût nettement moindre.

Inscrivez-vous à la présentation Rencontre avec le scientifique des données

Si vous avez des questions à propos de mon article ou si vous souhaitez en discuter davantage, je vous invite à une Rencontre avec le scientifique des données, un événement au cours duquel les auteurs rencontrent les lecteurs, présentent leur sujet et discutent de leurs résultats.

Jeudi, le 17 novembre
14 h 00 à 15 h 00 HNE
MS Teams – le lien sera fourni aux participants par courriel

Inscrivez-vous à la présentation Rencontre avec le scientifique des données. À bientôt !

Date de modification :

MLflow Tracking : Une façon efficace de suivre les essais de modélisation

Par : Mihir Gajjar, Statistique Canada
Collaborateurs : Reginald Maltais, Allie Maclsaac, Claudia Mokbel et Jeremy Solomon, Statistique Canada

MLflow (le contenu de cette page est en anglais) est une plateforme en source ouverte qui permet de gérer le cycle de vie d'apprentissage automatique, notamment l'expérimentation, la reproductibilité, le déploiement et un registre de modèles central. MLflow propose quatre composantes :

  • MLflow Tracking : enregistrement et interrogation d'essais : code, données, paramètres de configuration et résultats.
  • MLflow Projects : assemblage de code de science des données en un format permettant de reproduire les passages sur n'importe quelle plateforme.
  • MLflow Models : déploiement de modèles d'apprentissage automatique dans divers environnements d'utilisation.
  • Model Registry : stockage, annotation, découverte et gestion de modèles au sein d'un répertoire central.

Cet article se concentre sur MLflow Tracking. Le site Web de MLflow détaille les trois autres composantes.

Avantages de MLFlow

MLflow Tracking offre une solution pouvant être adaptée de votre machine locale à l'entreprise entière. Cela permet aux scientifiques des données de commencer sur leur machine locale, alors que les organisations peuvent mettre en œuvre une solution veillant à la maintenabilité à long terme et à la transparence au sein d'un répertoire central.

MLflow Tracking fournit des capacités de suivi cohérentes et transparentes en :

  • effectuant le suivi programmatique des paramètres et des résultats correspondants pour les essais de modélisation et en les comparant à l'aide d'une interface utilisateur;
  • récupérant le modèle présentant les meilleurs résultats ainsi que son code correspondant, pour diverses mesures d'intérêt pour tous les essais de différents projets;
  • regardant temporellement en arrière, afin de relever des essais effectués avec certaines valeurs de paramètres;
  • permettant aux membres de l'équipe de procéder à des essais et de faire part des résultats en collaboration;
  • exposant à l'intention de la direction l'état d'avancement de plusieurs projets au sein d'une seule interface ainsi que tous les détails (paramètres, tracé des résultats, mesures, etc.);
  • permettant le suivi pour tous les passages et paramètres au moyen d'un simple carnet; ce qui réduit le temps passé à gérer du code et diverses versions de carnet;
  • fournissant une interface permettant le suivi d'essais basés sur Python et R.

Comment passer d'un essai à un autre avec MLflow?

Cet article se concentre sur l'utilisation de MLflow avec Python. Le document QuickStart (le contenu de cette page est en anglais) relatif à MLflow présente des exemples de son utilisation avec R pour une installation locale sur une seule machine. Les organisations souhaitant déployer MLflow entre des équipes peuvent également se reporter à ce document QuickStart.

Le présent article explore un exemple d'utilisation de MLflow avec Python; toutefois, pour bien comprendre le fonctionnement de MLFlow, il est utile d'effectuer chaque étape sur votre machine.

Installation de MLflow

MLflow peut s'installer comme progiciel Python standard en entrant la commande suivante dans une fenêtre de terminal :

$ pip install mlflow

Une fois l'exécution de la commande terminée, vous pouvez entrer mlflow sur votre terminal et explorer les options disponibles. Vous pouvez essayer, par exemple : mlflow –version , pour vérifier la version installée.

Lancement du serveur MLflow

Il est recommandé de disposer d'un serveur MLflow centralisé pour une personne, une équipe ou une organisation, afin que les passages pour différents projets puissent être journalisés à un emplacement central, en les isolant par essai (différents essais pour différents projets). Nous discutons plus en détail de ces questions plus loin dans le présent article. Pour commencer rapidement à utiliser l'outil, vous pouvez ignorer le lancement du serveur et journaliser tout de même les passages. Ce faisant, les passages sont enregistrés dans un répertoire intitulé « MLruns », dans le même répertoire que le code. Vous pouvez plus tard ouvrir l'interface utilisateur de MLflow en suivant le même chemin d'accès et visualiser les passages journalisés.

Les passages peuvent être journalisés sur un serveur MLflow exécuté localement ou à distance en configurant l'adresse URI (identifiant uniforme de ressource) adéquate de suivi. La configuration de l'emplacement de journalisation adéquat est expliquée plus bas.

Si vous préférez toutefois lancer le serveur immédiatement, vous pouvez le faire en entrant la commande suivante :

$ mlflow server

Le terminal affichera des renseignements similaires à ceux présentés ci-dessous, qui montrent que le serveur écoute au port de serveur local 5000. Cette adresse est utile pour accéder à l'interface utilisateur (IU) de MLflow. N'hésitez pas à explorer la différence subtile entre l'IU de MLflow et le serveur de MLflow dans les documents relatifs à MLflow Tracking (le contenu de cette page est en anglais).

[2021-07-09 16:17:11 –0400] [58373] [INFO] Starting gunicorn 20.1.0
[2021-07-09 16:17:11 –0400] [58373] [INFO] Listening at: http://127.0.0.1:5000 (58373)
[2021-07-09 16:17:11 –0400] [58373] [INFO] Using worker: sync
[2021-07-09 16:17:11 –0400] [58374] [INFO] Booting worker with pid: 58374
[2021-07-09 16:17:11 –0400] [58375] [INFO] Booting worker with pid: 58375
[2021-07-09 16:17:11 –0400] [58376] [INFO] Booting worker with pid: 58376
[2021-07-09 16:17:11 –0400] [58377] [INFO] Booting worker with pid: 58377

Journalisation des données dans MLflow

Deux principaux concepts sous-tendent le suivi avec MLflow : les essais et les passages. Les données journalisées au cours d'un essai sont enregistrées sous forme de passage dans MLflow. Ces passages peuvent être organisés en essai; ce qui regroupe les passages pour une tâche particulière. On peut alors visualiser, rechercher, comparer et télécharger les artéfacts et métadonnées de passages pour les passages journalisés dans le cadre d'un essai MLflow.

Les données d'un essai peuvent être journalisées comme passage dans MLflow à l'aide de progiciels MLflow Python, R ou Java ou au moyen de l'IPA (interface de programmation d'applications) REST.

Le présent article fait la démonstration de la modélisation d'un des concours de mise en route de TLN (traitement du langage naturel) sur Kaggle intitulé « Natural Language Processing with Disaster Tweets (le contenu de cette page est en anglais) ». On utilise un carnet Jupyter et l'IPA Python de MLflow pour journaliser des données dans MLflow. Nous mettrons l'accent sur la démonstration de la façon de journaliser des données dans MLflow au cours de la modélisation, plutôt que sur l'obtention des meilleurs résultats de modélisation.

Tout d'abord, commençons par le processus de modélisation habituel, qui inclut des importations, la lecture de données, le prétraitement de texte, les caractéristiques de pondération rtf-idf (term frequency-inverse document frequency) et le modèle de machine à vecteurs de support (SVM). À la fin, une section sera intitulée « Journalisation dans MLflow ».

Note : Nous maintenons le pipeline TLN aussi simple que possible, afin de porter l'accent sur la journalisation dans MLflow. Certaines des étapes habituelles, comme l'analyse exploratoire des données, ne s'appliquent pas à cet objectif et nous ne les mentionnons donc pas. La façon préférable de journaliser des données dans MLflow est en laissant une portion de code à la fin de la journalisation. Vous pouvez également configurer MLflow au début du code et journaliser les données tout au long du code, lorsque les données ou variables sont disponibles à la journalisation. Un avantage de journaliser toutes les données ensemble à la fin à l'aide d'une seule cellule est que le pipeline entier se termine avec succès et le passage journalise les données (tant que le code de journalisation dans MLflow ne comporte aucun bogue). Si les données sont journalisées tout au long du code et que l'exécution du code est interrompue pour une raison ou une autre, la journalisation des données sera alors incomplète. Toutefois, en cas de scénario où un code comporte plusieurs portions de code (ce qui entraîne une longue exécution), la journalisation tout au long du code, à de multiples emplacements, peut en fait être bénéfique.

Importation des bibliothèques

Commencez par importer toutes les bibliothèques requises par l'exemple :

# To create unique run name.
import time
# To load data in pandas dataframe.
import pandas as pd

# NLP libraries

# To perform lemmatization
from nltk import WordNetLemmatizer
# To split text into words
from nltk. tokenize import word_tokenize
# To remove the stopwords
from nltk.corpus import stopwords

# Scikit-learn libraries

# To use the SVC model
from sklearn.svm import SVC
# To evaluate model performance
from sklearn.model_selection import cross_validate, StratifiedkFold
# To perform Tf-idf vectorization
from sklearn.feature_extraction.text import TfidfVectorizer
# To get the performance metrics
from sklearn.metrics import f1_score, make_scorer
# For logging and tracking experiments
import mlflow

Création d'un nom de passage unique

MLflow permet de suivre plusieurs passages d'un essai grâce à un paramètre de nom de passage. Le nom du passage peut être défini comme toute valeur, mais devrait être unique, afin de pouvoir être identifié ensuite parmi les différents passages. Ci-dessous, un horodatage est utilisé comme nom unique.

run_name = str(int(time.time()))
print('Run name: ', run_name)

On obtient :

Nom de passage : 1625604741 

Lecture des données

Chargez la formation et les données de test à partir des fichiers CSV fournis pour l'exemple.

# Kaggle competition data download link: https://www.kaggle.com/c/nlp-getting-started/data
train_data = pd.read_csv("./data/train.csv")
test_data = pd.read_csv("./data/test.csv")

En exécutant la portion de code suivant dans une cellule :

train_data

La figure 1 présente un exemple de données de formation venant d'être chargées.

Figure 1 : Aperçu des données de formation chargées

Figure 1 : Aperçu des données de formation chargées

Figure 1 : Aperçu des données de formation chargées

Cinq premières et dernières entrées du fichier CSV. Il contient les colonnes id, mot clé, emplacement, texte et cible. Les colonnes de texte contiennent le tweet en tant que tel et la colonne cible, la catégorie.

Figure 1: A preview of the training data that was loaded.
  id Mot clé Emplacement Texte Cible
0 1 NaN Nan Our Deeds are the Reason of this #earthquake M… 1
1 4 NaN Nan Forest fire near La Ronge Sask. Canada 1
2 5 NaN Nan All residents asked to 'shelter in place' are… 1
3 6 NaN Nan 13,000 people receive #wildfires evacuation or… 1
4 7 NaN Nan Just got sent this photo from Ruby #Alaska as… 1
... ... ... ... ... ...
7608 10869 NaN Nan Two giant cranes holding a bridge collapse int… 1
7609 10870 NaN Nan @aria_ahrary @TheTawniest The out of control w… 1
7610 10871 NaN Nan M1.94 [01:04 UTC] ?5km S of Volcano Hawaii. Htt… 1
7611 10872 NaN Nan Police investigating after an e-bike collided… 1
7612 10873 NaN Nan The Latest: More Homes Razed by Northern Calif… 1

7613 lignes x 5 colonnes

Les données de formation représentent environ 70 % des données totales.

print('The length of the training data is %d' % len(train_data))
print('The length of the test data is %d' % len(test_data))

Produit :

The length of the training data is 7613
The length of the test data is 3263

Prétraitement de texte

Selon la tâche à réaliser, différents types d'étapes de prétraitement peuvent être nécessaires pour que le modèle d'apprentissage automatique apprenne de meilleures caractéristiques. Le prétraitement peut normaliser les intrants, supprimer certains mots courants, le cas échéant, de sorte que le modèle ne les apprenne pas comme des caractéristiques, et apporter des modifications logiques et utiles pouvant mener à une amélioration du rendement et de la généralisation du modèle. La section suivante montre comment des étapes de prétraitement peuvent aider le modèle à capturer les caractéristiques pertinentes au cours de l'apprentissage.

def clean_text(text):
    # split into words
    tokens = word_tokenize(text)
    # remove all tokens that are not alphanumeric. Can also use .isalpha() here if do not want to keep numbers.
    words = [word for word in tokens if word.isalnum()]
    # remove stopwords
    stop_words = stopwords.words('english')
    words = [word for word in words if word not in stop_words]
    # performing lemmatization
    wordnet_lemmatizer = WordNetLemmatizer()
    words = [wordnet_lemmatizer.lemmatize(word) for word in words]
    # Converting list of words to string
    words = ' '.join(words)
    return words
train_data['cleaned_text'] = train_data['text'].apply(clean_text) 

Lors de la comparaison du texte d'origine et du texte nettoyé, les pseudo-mots ont été supprimés :

train_data['text'].iloc[100]

'.@NorwayMFA #Bahrain police had previously died in a road accident they were not killed by explosion https://t.co/gFJfgTodad (en anglais seulement)'

train_data['cleaned_text'].iloc[100]rain_data['text'].iloc[100]

'NorwayMFA Bahrain police previously died road accident killed explosion http'

À la lecture du texte ci-dessus, on peut dire qu'il contient des renseignements sur une catastrophe et devrait donc être classé comme tel. Pour confirmer cela avec les données, imprimez l'étiquette présente dans le fichier CSV relatif à ce tweet :

train_data['target'].iloc[100]

Produit :

1

Caractéristiques Tf-idf

Ensuite, nous convertissons une collection de documents bruts vers une matrice de caractéristiques TF-IDF en vue d'alimenter le modèle. Pour de plus amples détails sur tf-idf, reportez-vous aux documents TF–IDF - Wikipédia and scikit-learn sklearn.feature_extraction.text (le contenu de cette page est en anglais).

ngram_range=(1,1)
max_features=100
norm='l2'
tfidf_vectorizer = TfidfVectorizer(ngram_range=ngram_range, max_features=max_features, norm=norm)
train_data_tfidf = tfidf_vectorizer.fit_transform(train_data['cleaned_text'])
train_data_tfidf

Produit :

<7613x100 sparse matrix of type '<class 'numpy.float64'>'
with 15838 stored elements in Compressed Sparse Row format>
tfidf_vectorizer.get_feature_names()[:10]

Produit :

['accident',
'amp',
'and',
'as',
'attack',
'back',
'best',
'body',
'bomb',
'building']

Modèle SVC

L'étape suivante de la modélisation est d'ajuster un modèle et d'évaluer son rendement.

On utilise un programme de validation croisée K-Folds stratifié pour évaluer le modèle. Voir scikit learn sklearn.model_selection (le contenu de cette page est en anglais) pour de plus amples détails.

strat_k_fold = StratifiedKFold(n_splits=5, shuffle=True, random_state=42)

Faire fonctionner un programme de calcul de résultat à l'aide de la mesure f1-score pour l'utiliser comme paramètre dans le modèle SVC.

scoring_function_f1 = make_scorer(f1_score, pos_label=1, average='binary')

Vient ensuite une étape importante pour adapter le modèle aux données. Dans cet exemple, le classificateur SVC est utilisé. Voir scikit learn sklearn.svm.svc (le contenu de cette page est en anglais) pour de plus amples détails.

C = 1.0
kernel='poly'
max_iter=-1
random_state=42
svc = SVC(C=C, kernel=kernel, max_iter=max_iter, random_state=random_state) 
cv_results = cross_validate(estimator=svc, X=train_data_tfidf, y=train_data['target'], scoring=scoring_function_f1, cv=strat_k_fold, n_jobs=-1, return_train_score=True)
cv_results

Produit :

{'fit_time': array([0.99043322, 0.99829006, 0.94024873, 0.97373009, 0.96771407]),
'score_time': array([0.13656974, 0.1343472 , 0.13345313, 0.13198996, 0.13271189]),
'test_score': array([0.60486891, 0.65035517, 0.5557656 , 0.5426945 , 0.63071895]),
'train_score': array([0.71281362, 0.76168757, 0.71334394, 0.7291713 , 0.75554698])}
def mean_sd_cv_results(cv_results, metric='F1'):
    print(f"{metric} Train CV results: {cv_results['train_score'].mean().round(3)} +- {cv_results['train_score'].std().round(3)}")
    print(f"{metric} Val CV results: {cv_results['test_score'].mean().round(3)} +- {cv_results['test_score'].std().round(3)}")

mean_sd_cv_results(cv_results)
F1 Train CV results: 0.735 +- 0.021
F1 Val CV results: 0.597 +- 0.042

Note : Le code ci-dessous est exécuté comme une commande d'interface système en ajoutant le point d'exclamation : « ! » au début du code dans une cellule Jupyter.

! Jupyter nbconvert --to html mlflow-example-real-or-not-disaster-tweets-modeling-SVC.ipynb
[NbConvertApp] Converting notebook mlflow-example-real-or-not-disaster-tweets-modeling-SVC.ipynb to html
[NbConvertApp] Writing 610630 bytes to mlflow-example-real-or-not-disaster-tweets-modeling-SVC.html

Journalisation dans MLflow

Tout d'abord, configurez le serveur URI. Le serveur s'exécutant localement, définissez l'URI de suivi comme port de serveur local 5000. L'URI de suivi peut être configurée pour un serveur distant également (voir : Where Runs are Recorded [le contenu de cette page est en anglais]).

server_uri = 'http://127.0.0.1:5000'
mlflow.set_tracking_uri(server_uri)

Pour organiser les passages, un essai a été créé et défini à l'emplacement où les passages seront journalisés. La méthode « set_experiment » créera un nouveau passage avec le nom de chaîne fourni et le définira comme l'essai en cours pour lequel les passages seront journalisés.

mlflow.set_experiment('nlp_with_disaster_tweets')

Enfin, lancez un passage et journalisez les données dans MLflow.

# MLflow logging.
with mlflow.start_run(run_name=run_name) as run:

    # Logging tags
    # run_name.
    mlflow.set_tag(key='Run name', value=run_name)
    # Goal.
    mlflow.set_tag(key='Goal', value='Check model performance and decide whether we require further pre-processing/hyper-parameter tuning.')
    # Modeling exp.
    mlflow.set_tag(key='Modeling technique', value='SVC')

    # Logging parameters
    mlflow.log_param(key='ngram_range', value=ngram_range)
    mlflow.log_param(key='max_features', value=max_features)
    mlflow.log_param(key='norm', value=norm)
    mlflow.log_param(key='C', value=C)
    mlflow.log_param(key='kernel', value=kernel)
    mlflow.log_param(key='max_iter', value=max_iter)
    mlflow.log_param(key='random_state', value=random_state)

    # Logging the SVC model.
    mlflow.sklearn.log_model(sk_model=svc, artifact_path='svc_model')
   
    # Logging metrics.
    # mean F1-score - train.
    mlflow.log_metric(key='mean F1-score - train', value=cv_results['train_score'].mean().round(3))
    # mean F1-score - val.
    mlflow.log_metric(key='mean F1-score - val', value=cv_results['test_score'].mean().round(3))
    # std F1-score - train.
    mlflow.log_metric(key='std F1-score - train', value=cv_results['train_score'].std().round(3))
    # std F1-score - val.
    mlflow.log_metric(key='std F1-score - val', value=cv_results['test_score'].std().round(3))
   
    # Logging the notebook.
    # Nb.
    mlflow.log_artifact(local_path='real-or-not-disaster-tweets-modeling-SVC.ipynb', artifact_path='Notebook')
    # Nb in HTML.
    mlflow.log_artifact(local_path='real-or-not-disaster-tweets-modeling-SVC.html', artifact_path='Notebook')

Selon le code ci-dessus, vous commencez un passage avec un nom de passage (run_name), puis journalisez ce qui suit :

  1. Balises : paire clé-valeur. La clé et la valeur sont toutes deux des chaînes; par exemple, cela peut servir à journaliser l'objectif du passage pour lequel la clé serait « Goal: » et la valeur peut être « To try out the performance of Random Forest Classifier with default parameters » (mettre à l'essai le rendement d'un classificateur de forêt aléatoire avec des paramètres par défaut).
  2. Paramètres : également une paire clé-valeur pouvant servir à journaliser les paramètres du modèle.
  3. Modèle : peut servir à journaliser le modèle. Vous journalisez ici un modèle scikit-learn comme artéfact MLflow, mais nous pouvons également journaliser un modèle pour d'autres bibliothèques d'apprentissage automatique pris en charge à l'aide du module MLflow correspondant.
  4. Mesures : paire clé-valeur. Le type de données de clé est « string » (chaîne) et peut avoir le nom de la mesure. Le paramètre de valeur est de type de données « float ». Le troisième paramètre facultatif est « step » qui est un nombre entier représentant toute mesure de progression de la formation : nombre d'itération de formation, nombre d'époques, etc.
  5. Artéfacts : un fichier ou répertoire local peut être journalisé comme artéfact pour le passage en cours. Dans cet exemple, nous journalisons à l'aide du carnet, de sorte que ces informations sont accessibles pour des passages futurs. Ce faisant, il est possible d'enregistrer un tracé comme « courbe de perte » ou « courbe de précision » dans le code et le journaliser comme artéfact dans MLflow.

Voilà, vous avez journalisé avec succès les données pour un passage dans MLflow! L'étape suivante est de visualiser les données journalisées.

IU de MLflow

Si vous retournez à la figure 1, vous vous souviendrez que vous avez lancé le serveur et qu'il écoutait au port de serveur local 5000. Ouvrez cette adresse dans votre navigateur préféré pour accéder à l'IU de MLflow. Une fois l'IU de Mlflow visible, vous pouvez utiliser l'interface pour consulter les données d'essai journalisées. Les essais créés s'affichent dans la barre latérale de l'IU et les balises, paramètres, modèle et mesures journalisés figurent dans les colonnes.

Figure 2 : IU de MLflow

Figure 2 : IU de MLflow

Figure 2 : IU de MLflow

La figure 2 présente l'IU de MLflow. L'essai configuré ci-dessus, c.-à-d. nlp_with_disaster_tweets est ouvert ainsi que le passage précédemment journalisé avec les détails comme le nom du passage, les paramètres et les mesures. Il indique également l'emplacement où sont enregistrés les artéfacts. Vous pouvez cliquer sur le passage journalisé pour l'explorer plus en détail.

Text in image: Modèles MLflow

Nlp_with_disaster_tweets (1. Cliquez sur cet essai)

ID de l'experience : 1. Emplacement de l'artéfact : ./miruns/1 (Emplacement des artéfacts journalisés)

Notes : Aucun

2. Exploration des données journalisées

Figure 2: MLflow UI
  Paramètres Mesures Étiquettes
Heure de début Nom de l'exécution Utilisateur Source : Version Modèles C Noyau max_feature Score moyen Score moyen Std F1-scor Technique :
2021-07-13 15:54:45 1626206076 Mihir ipykerne - sklearn 1.0poly            

3. Passage journalisé à l'aide de l'IPA Python. Cliquez sur le lien pour ouvrir le passage

Pour explorer un passage particulier plus en détail, cliquez sur le passage pertinent dans la colonne Heure de début. Cela permet d'explorer un passage journalisé en détail. Le nom du passage s'affiche et vous pouvez ajouter des notes relatives au passage, comme les paramètres, mesures, balises et artéfacts journalisés. Les données journalisées à l'aide de l'API Python pour ce passage figurent ici.

Les fichiers journalisés comme artéfacts peuvent être téléchargés; ce qui peut être utile si vous souhaitez extraire le code ultérieurement. Puisque le code ayant généré des résultats pour chaque passage est enregistré, vous n'avez pas à créer plusieurs copies du même code et pouvez expérimenter avec un seul carnet-cadre en changeant le code entre les passages.

Le modèle formé journalisé peut être chargé dans un essai futur à l'aide de l'IPA Python pour le passage journalisé.

Figure 3: Exploration des artéfacts journalisés dans un passage

Figure 3: Exploration des artéfacts journalisés dans un passage 

Figure 3: Exploration des artéfacts journalisés dans un passage

La figure 3 explore les artéfacts journalisés. Les fichiers journalisés (carnet et modèle) sont présentés. La description du modèle fournit également le code permettant de charger le modèle journalisé dans Python.

Texte de l'image :

Figure 4: Exploring the logged artifacts in a run
Nom Valeur Actions
Objectif Vérifier les performances du modèle et décidez si nous avons besoin d'un prétraitement/réglage hyperparamètres supplémentaire. Vérification : supprimer les icônes
Technique de modélisation SVC Vérification : supprimer les icônes 
Nom de passage  16525862471 Vérification : supprimer les icônes

Ajouter une balise

Nom – Valeur – Ajout

Artéfacts
Carnet

  • Real-or-not-disaster-tweets-modeling-SVC.html
  • Real-or-not-disaster-tweets-modeling-SVC.ipynb

svc_model

  • Modèle ML
  • conda.yaml
  • model.pkl

Chemin complet : ./miruns/1/b4af92528b1o4552b45231edeb6fe782/artefacts/Carnet
Taille : 0B

Modèle MLflow
Les extraits de code ci-dessous montrent comment faire des prédictions à l'aide du modèle enregistré.

Schéma du modèle
Schéma d'entrées et de sortie pour votre modèle. En savoir plus
Nom – Type
Pas de schéma

Pour démontrer la fonctionnalité de comparaison de passages, d'autres essais de modélisation ont été effectués et journalisés dans MLflow en changeant quelques paramètres dans le même carnet jupyter. N'hésitez pas à modifier certains paramètres et à journaliser davantage de passages dans MLflow.

La figure 4 présente les différents passages journalisés. Vous pouvez appliquer un filtre, conserver les colonnes souhaitées et comparer les paramètres ou les mesures entre les différents passages. Pour procéder à une comparaison détaillée, vous pouvez sélectionner les passages que vous souhaitez comparer et cliquer sur le bouton « Comparer » encerclé dans la figure ci-dessous.

Figure 4 : Personnalisation et comparaison de différents passages à l'aide de l'IU de MLflow

Figure 4 : Personnalisation et comparaison de différents passages à l'aide de l'IU de MLflow

Figure 4 : Personnalisation et comparaison de différents passages à l'aide de l'IU de MLflow

Dans l'IU de MLflow, on peut personnaliser les colonnes affichées, appliquer un filtre et rechercher différents passages en fonction des données journalisées et facilement comparer les différents passages journalisés en fonction des colonnes visibles. On peut également comparer les différents passages journalisés plus en détail en les sélectionnant et en cliquant sur le bouton « Comparer ».

Texte de l'image : 
1. Peut filtrer et conserver les colonnes d'intérêt.
Colonnes : Heure de début, Nom de l'exécution, Utilisateur, Source, Version, Modèles, Paramètres, Mesures, Balises
2. Peut comparer différents passages
3. Différents passages journalisés. Sélectionnez les passages que vous souhaitez comparer.
Affichage de 5 passages correspondants. Comparer, Supprimer, Télécharger, CSV
4. Cliquez sur comparer

Figure 5: Customizing and comparing different runs using MLflow UI
  Parameters Mesures
Heure de début Nom du passage Utilisateur Source Version Modèles C Noyau max_features Score mo Score mo Std F1-s
2021-07-13 16:08:50 1626115725 Mihir Ipykerne_laun - sklearn 1.0pol...          
2021-07-13 16:08:35 1626115688 Mihir Ipykerne_laun - sklearn 1.0pol...          
2021-07-13 16:08:21 1626115602 Mihir Ipykerne_laun - sklearn 1.0pol...          
2021-07-13 16:08:07 1626115552 Mihir Ipykerne_laun - sklearn 1.0pol...          
2021-07-13 15:54:45 1625002471 Mihir Ipykerne_laun - sklearn 1.0pol...          

Après avoir cliqué sur le bouton « Comparer », une comparaison sous forme de tableau entre différents passages est générée (comme le présente la figure 5), permettant de facilement comparer les données journalisées pour différents passages. Les paramètres qui diffèrent entre les passages sont surlignés en jaune. Cela fournit à l'utilisateur une idée de la façon dont le rendement du modèle a varié au fil du temps en fonction des paramètres modifiés.

Figure 5 : Comparaison détaillée de passages journalisés dans l'IU de MLflow

Figure 5 : Comparaison détaillée de passages journalisés dans l'IU de MLflow

Figure 5 : Comparaison détaillée de passages journalisés dans l'IU de MLflow

La figure 5 compare en détail différents passages journalisés dans MLflow. Les balises, paramètres et mesures figurent sur différentes lignes et les passages, dans différentes colonnes. Cela permet à un utilisateur de comparer les détails d'intérêt pour différents passages dans une seule fenêtre. Les paramètres qui diffèrent entre les passages sont surlignés en jaune. Par exemple, dans les essais, les paramètres max_features et ngram_range ont été modifiés pour différents passages et sont donc surlignés en jaune dans l'image ci-dessus.

Texte de l'image :
Nlp_with_disaster_tweets > Comparaison de 5 passages

Figure 6: Comparing logged runs in MLflow UI in detail
ID d'exécution : 7a1448a5f88147c093
c357d787dbe3
264533b107b04be3
bd4981560bad0397
7670578718b3477abb
798d7e404fed6c
D2372d5873f2435c
94dc7e633a611889
Fdc8362b2f37432f9
a4128fa522d80cb
Nom du passage 1626115725 1626115688 1626115602 1626115552 16265862471
Heure de début 2021-07-12 14:48:54 2021-07-12 14:48:16 2021-07-12 14:48:50 2021-07-12 14:46:01 2021-07-09 16:27:58
Paramètres
C 1.0 1.0 1.0 1.0 1.0
Noyau Poly Poly Poly Poly Poly
Max_features 500 500 500 500 500
Max_iter -1 -1 -1 -1 -1
Ngram_range (1.3) (1.2) (1.1) (1.1) (1.1)
Norm 12 12 12 12 12
random_state 42 42 42 42 42
Mesures
Mean f1-score-train 0.93 0.931 0.933 0.876 0.735
Mean f1-score-val 0.694 0.693 0.694 0.649 0.597
std f1-score-train 0.001 0.001 0.002 0.002 0.021
std f1-score-val 0.008 0.009 0.01 0.013 0.042

Des changements dans les paramètres et dans les mesures pour différents passages peuvent également être présentés dans un diagramme de dispersion. Les valeurs des axes des x et des y peuvent être définies comme tout paramètre ou toute mesure permettant à l'utilisateur d'analyser les changements. Dans la figure 6, le lecteur peut analyser la variation de la validation; dans ce cas, le F1-score moyen pour différentes valeurs du paramètre « max_features ». Si vous passez le curseur sur un point de donnée, les détails relatifs à ce passage s'affichent.

Figure 6 : Configuration du diagramme de dispersion pour visualiser les effets des différentes configurations de paramètres dans les passages journalisés

Figure 6 : Configuration du diagramme de dispersion pour visualiser les effets des différentes configurations de paramètres dans les passages journalisés

Figure 6 : Configuration du diagramme de dispersion pour visualiser les effets des différentes configurations de paramètres dans les passages journalisés

Démonstration des capacités de MLflow de produire un diagramme à l'aide des détails de différents passages. Vous pouvez sélectionner un paramètre particulier sur l'axe des X ainsi qu'une mesure que vous souhaitez surveiller sur l'axe des Y; cela crée immédiatement un diagramme de dispersion fournissant les détails sur l'axe correspondant et permet de visualiser les effets des paramètres sur la mesure, afin de vous faire une idée de la manière dont le paramètre influe sur la mesure.

Texte de l'image :
Parcelle de dispersionPlot – de contourParallèles – de coordonnées Parallèles
Axe des X : max_features
Axe des Y : score moyen F1 - val

Figure 7: Configuring the scatter plot to visualize the effects of different parameter configurations in the logged runs
1626115552
État_aléatoire : 42
Norme : 12
Max_iter :  -1
Max_features :  300
C : 1.0
Noyeau :  Poly
Ngram_range :  (1.1)
   
Mean f1-score-val 0.649
Mean f1-score-train 0.876
std f1-score-val 0.002
std f1-score-train 0.013

Le diagramme à coordonnées parallèles est également utile, car il présente à l'utilisateur d'un seul coup d'œil l'effet de certains paramètres sur les mesures souhaitées.

Figure 7 : Configuration du diagramme à coordonnées parallèles pour visualiser les effets de différents paramètres sur les mesures d'intérêt

Figure 7 : Configuration du diagramme à coordonnées parallèles pour visualiser les effets de différents paramètres sur les mesures d'intérêt

Figure 7 : Configuration du diagramme à coordonnées parallèles pour visualiser les effets de différents paramètres sur les mesures d'intérêt

Dans cette image, un diagramme à coordonnées parallèles est configuré. Vous pouvez sélectionner différents paramètres et différentes mesures à l'aide des fenêtres d'intrants fournies; le diagramme à coordonnées parallèles est mis à jour en conséquence. Ce diagramme peut donner une idée des résultats obtenus à l'aide de différentes configurations dans les essais. Il peut aider à comparer les différentes configurations et à sélectionner les paramètres fournissant un meilleur rendement.

Texte de l'image :
Parcelle de dispersionPlot – de contourParallèles – de coordonnéesParallèles
Paramètres : état_alléatoire, norme, max_iter, max_features, C, noyeau, ngram_range
Mesures : score moyen F1 - val

Figure 8: Configuring the parallel coordinates plot to visualize the effects of different parameters on the metrics of interest
état_aléatoire norme Max_iter Max_features C noyeau ngram_range Score moyen F1-val  
46.20000   -1.10000 500.00000 1.10000     0.69400  
46.0000   -1.10000 500.00000 1.10000   (1.3) 0.68000 0.68
45.0000     450.00000          
44.0000   -1.05000 400.00000 1.05000     0.66000 0.66
43.0000     350.00000          
42.0000   -1.0000 300.00000 1.00000 poly (1.2) 0.64000 0.64
41.0000     250.00000          
40.0000   -0.95000 200.00000 0.95000     0.62000 0.62
39.0000     150.00000          
38.0000   -0.9000 100.00000 0.90000   (1.1) 0.60000 0.6
37.80000   -0.90000 100.0000 0.9000     0.59700  

Autres aspects intéressants du suivi avec MLflow Tracking

Autres éléments importants à noter relativement à MLflow Tracking :

  • Les passages peuvent être directement exportés dans un fichier CSV à l'aide de l'IU de MLflow.
  • Il est possible d'accéder à l'aide d'un programme à toutes les fonctions de l'IU de suivi; vous pouvez interroger et comparer les passages avec du code, charger des artéfacts de passages journalisés ou exécuter une recherche automatisée de paramètre en appliquant une requête sur les mesures de passages journalisés pour décider des nouveaux paramètres. Vous pouvez également journaliser de nouvelles données sur un passage déjà journalisé dans un essai après l'avoir chargé à l'aide d'un programme (consultez Querying Runs Programmatically pour de plus amples détails - le contenu de cette page est en anglais).
  • En utilisant l'IU de MLflow, les utilisateurs peuvent rechercher des passages présentant des valeurs de données particulières à partir de la barre de recherche. Un exemple de cela serait d'utiliser metrics.rmse < 1 et params.model='tree'. Cela est très utile lorsque vous avez besoin de trouver un passage à paramètres particuliers exécuté par le passé.
  • Le carnet Jupyter utilisé comme exemple dans ce billet de blogue est accessible sur GitHub (le contenu de cette page est en anglais).

N'hésitez pas à communiquer avec nous à l'adresse statcan.dsnfps-rsdfpf.statcan@statcan.gc.ca pour nous faire part d'autres fonctionnalités intéressantes ou cas d'utilisation que vous aimez utiliser qui auraient pu être mentionnés selon vous. Nous vous offrirons également l'occasion de rencontrer le scientifique des données pour discuter de MLFlow plus en détail. Trouvez de plus amples détails ci-dessous.

Inscrivez-vous à la présentation Rencontre avec le scientifique des données

Si vous avez des questions à propos de cet article ou si vous souhaitez en discuter, nous vous invitons à notre nouvelle série de présentations Rencontre avec le scientifique des données où le(s) auteur(s) présenteront ce sujet aux lecteurs et aux membres du RSD.

Mardi, le 18 octobre
14 h 00 à 15 h 00 HAE
MS Teams – le lien sera fourni aux participants par courriel

Inscrivez-vous à la présentation Rencontre avec le scientifique des données. À bientôt !

Date de modification :

Classification de texte des offres d’emploi dans la fonction publique

Par Dominic Demers et Jessica Lachance, Commission de la fonction publique du Canada

Introduction

La Commission de la fonction publique (CFP) est un organisme indépendant dont le mandat est de promouvoir et de protéger une fonction publique impartiale, fondée sur le mérite et représentative de tous les Canadiens. Parmi ses nombreuses responsabilités, la CFP supervise également plus de 50 000 activités d'embauche qui relèvent de la Loi sur l'emploi dans la fonction publique (LEFP), chaque année.

Ce riche environnement de données comprend plus d'un million de curriculum vitæ et 8 000 offres d'emploi par an. Certaines données sont structurées, comme le nom de l'organisation ou le groupe et le niveau du poste. Cependant, la plupart des données sur les ressources humaines (RH) recueillies par la CFP ne sont pas structurées. Les données non structurées, comme les offres d'emploi ou les questions de présélection, peuvent être utilisées à des fins d'analyse.

La Direction des services de données et de l'analyse de la CFP est responsable des demandes de données, des études statistiques, des enquêtes, des modèles de prévision et des outils de visualisation des données pour les activités de dotation et de recrutement qui relèvent de la LEFP.

Le présent article donne un aperçu de deux techniques de traitement du langage naturel (TLN) utilisées par notre équipe pour extraire des renseignements précieux de deux zones de texte ouvertes, à savoir les variables Exigences en matière d'études et Zone de sélection. Nous expliquons également comment nous les avons utilisées par la suite pour alimenter l'Outil de prévision de candidatures, un outil de visualisation des données qui fait état d'offres d'emploi.

Outil de prévision de candidatures

En 2019, la CFP a élaboré l'Outil de prévision de candidatures pour aider les gestionnaires et les conseillers en RH du gouvernement du Canada à se préparer aux processus de sélection. Les utilisateurs peuvent sélectionner les caractéristiques d'une offre d'emploi et obtenir une estimation du nombre de candidats, en fonction d'emplois similaires qui ont déjà été annoncés.

La première version de l'outil ne fonctionnait qu'avec les données structurées des offres d'emploi. Cependant, la CFP a reçu des commentaires au sujet de deux zones de texte ouvertes que les utilisateurs souhaitaient exploiter pour obtenir une meilleure estimation du nombre de candidats pour leur processus de sélection. Ces zones comprenaient le niveau d'études dans les qualifications essentielles et, pour les processus internes, des détails sur la zone de sélection, comme le ministère, l'emplacement ou la classification.

Par conséquent, la CFP a utilisé des techniques de classification de texte pour les zones relatives aux études et à la zone de sélection afin de structurer les renseignements en catégories qui alimentent l'Outil de prévision de candidatures. Ces algorithmes ont permis à la CFP de produire des rapports plus précis et utiles.

Classification de texte

La classification de texte est un sous-ensemble de problèmes du TLN. L'objectif de la classification de texte est de prendre les zones de texte ouvertes et d'attribuer à chaque texte une étiquette à partir d'un ensemble limité d'options.

Dans notre cas, nous avons étudié deux modèles différents pour atteindre notre objectif. Pour la variable d'exigences en matière d'études, nous avons utilisé une approche fondée sur des règles employant des expressions courantes. Pour la variable de zone de sélection, nous avons utilisé une approche fondée sur l'apprentissage automatique appelée « Reconnaissance de l'entité désignée ».

Bien que la classification de texte à l'aide d'un modèle quelconque puisse produire de bons résultats, la capacité de l'algorithme à extraire des renseignements du texte n'est pas toujours fiable. Par conséquent, nous avons dû évaluer l'efficacité avec laquelle l'algorithme extrait les renseignements pertinents. Nous avons évalué le modèle à l'aide d'un ensemble de données d'essai et examiné les paramètres pour déterminer la performance du classificateur.

Évaluation des modèles de classification de texte

Pour évaluer la performance de nos algorithmes de classification de texte, nous avons utilisé une matrice de confusion. Il s'agit d'un tableau qui décrit la performance du modèle de classification pour un ensemble de données d'essai pour lesquelles les valeurs « vraies » sont connues.

Le nombre de prévisions exactes et inexactes est résumé dans un tableau et comprend des valeurs de comptage. Le tableau résume également le nombre d'erreurs commises par notre classificateur et, surtout, le type d'erreur.

La matrice de confusion comprend quatre types de combinaisons de valeurs prédites et vraies. Dans notre contexte de classification de texte, l'algorithme fournira une valeur « vraie » (ou « positive ») en cas de prédiction du texte dans le cadre de la classification. Par exemple, si le texte est classé comme « diplôme d'études secondaires », l'algorithme renverra une valeur « vraie » (ou « positive ») pour cette classification.

Les quatre catégories sont décrites ci-dessous.

Figure 1 : Matrice de confusion

Figure 1 : Matrice de confusion
Description - Figure 1: Confusion Matrix

Diagramme quadrant avec quatre combinaisons de valeurs prédites et vraies.
Valeur prédite positive + valeur vraie positive = Vrai positif
Valeur prédite positive + valeur vraie négative = Faux positif
Valeur prédite négative + valeur vraie positive = Faux négatif
Valeur prédite négative + valeur vraie négative = Vrai négatif]

Combinaison Vrai positif (VP) : On prédit que la classification est vraie et cela est exact.
Combinaison Vrai négatif (VN) : On prédit que la classification est fausse et cela est exact.
Combinaison Faux positif (FP) ou erreur de type 1 : On prédit que la classification est vraie, mais cela est inexact.
Combinaison Faux négatif (FN) ou erreur de type 2 : On prédit que la classification est fausse, mais cela est inexact.

À partir de ces combinaisons, nous avons obtenu les mesures de performance suivantes :

  • Exactitude : Pourcentage de textes qui ont été catégorisés avec la classification exacte. Sert à déterminer le nombre de classifications que le modèle a prédit correctement.
  • Precision TPTP+FP: The percentage of texts correctly classified out of the total number of texts classified as positive. Used to determine the proportion of positive identification that were correct.
  • Recall TPTP+FN: The percentage of actual positive values that are predicted correctly. Used to determine the proportion of actual positives that were correctly identified.
  • Score F1 : Moyenne harmonique entre précision et rappel.

Dans le contexte du présent article, ces statistiques seront utilisées pour évaluer le rendement en matière de classification de deux variables, à savoir les variables Exigences en matière d'études et Zone de sélection.

Zone « Exigences en matière d'études »

Conformément à la LEFP, le Secrétariat du Conseil du Trésor a établi des normes de qualification par groupe professionnel ou classification pour l'administration publique centrale. Les normes de qualification définissent les exigences en matière d'études minimales pour chaque groupe professionnel. Les offres d'emploi pour les postes visés par la LEFP doivent inclure ces critères de mérite.

En règle générale, les gestionnaires utilisent la norme de qualification comme leur exigence essentielle. Mais ils peuvent établir des exigences en matière d'études supérieures au besoin. Par exemple, un gestionnaire d'embauche peut exiger qu'un analyste principal des politiques de niveau EC-06 ait une maîtrise, même si l'exigence minimale est un baccalauréat.

On pourrait s'attendre à ce que moins de candidats disposent d'une maîtrise que d'un baccalauréat. L'analyse du niveau d'études nous permettrait de fournir aux utilisateurs de l'Outil de prévision de candidatures des estimations et d'anciennes offres d'emploi plus pertinentes.

Méthode

Il y a un peu plus de 100 normes de qualification pour l'ensemble des groupes professionnels, lesquelles sont également rédigées en langage naturel. Nous avons déterminé que ces normes pouvaient être résumées comme appartenant à l'un des huit niveaux d'études suivants :

  • Études secondaires partielles
  • Études secondaires
  • Études postsecondaires partielles
  • Études postsecondaires
  • Diplôme professionnel (p. ex. diplôme en droit, en médecine)
  • Maîtrise
  • Doctorat ou grade supérieur
  • Niveau d'études inconnu/hors catégorie

Pour étiqueter les offres d'emploi en fonction du niveau d'études, nous avons utilisé des expressions courantes afin de trouver des phrases clés, que nous avons ensuite étiquetées. Les expressions courantes sont une séquence de caractères qui indiquent une tendance dans le texte. Pour analyser le niveau d'études, nous avons :

  • trouvé des phrases clés, à l'aide d'expressions courantes, qui indiquent un type d'études;
  • associé ces phrases à un niveau commun d'études;
  • étiqueté du texte concernant les exigences en matière d'études avec l'un de ces niveaux communs.

Au total, nous avons utilisé 30 règles différentes pour établir une correspondance entre les descriptions de poste et les huit niveaux d'études. Ces règles ont été créées manuellement, à l'aide d'un processus itératif. Nous avons commencé par des expressions courantes qui saisissent la structure des phrases et les phrases clés utilisées dans de nombreuses normes de qualification. Nous avons ensuite ajouté des règles supplémentaires pour saisir les cas qui ne respectaient pas les normes de qualification.

Voici une représentation visuelle du processus :

Figure 2 : Classification des exigences en matière d'études

Figure 2 : Classification des exigences en matière d'études

Description - Figure 2: Classification des exigences en matière d'études

**Veuillez lire la section *Autres renseignements*

ÉTUDES – EXIGENCES COMMUNES POUR TOUS LES VOLETS

Avoir terminé deux années de formation dans un programme acceptable d'études postsecondaires en informatique, en technologie de l'information, en gestion de l'information ou dans une autre spécialité connexe au poste à doter.

- Les employés nommés pour une période indéterminée qui étaient titulaires d'un poste du groupe CS au 10 mai 1999 et qui ne possèdent pas le niveau d'études prescrit ci-dessus sont réputés satisfaire à la norme minimale d'études de par leurs études, leur formation ou leur expérience. Il s'ensuit qu'ils doivent être reconnus comme ayant satisfait à la norme minimale d'études prescrite quand celle-ci est exigée aux fins de doter des postes du groupe CS.

– Il appartient à un établissement d'enseignement reconnu (p. ex. collège communautaire, cégep ou université) de déterminer si les cours suivis par un candidat correspondent à deux années d'un programme d'études postsecondaires au sein de l'établissement.

IMPORTANT :

– Il incombe aux candidats de fournir une preuve de leurs études. Veuillez noter que votre diplôme original sera exigé pendant le processus.

- Les candidats ayant des titres de compétence étrangers doivent fournir une preuve d'équivalence du Canada. Veuillez consulter le site Web du Centre d'information canadien sur les diplômes internationaux pour obtenir plus de renseignements. Les frais applicables sont à la charge du candidat. Les candidats qui ne sont pas en mesure de fournir la preuve qu'ils possèdent la qualification essentielle demandée seront éliminés du processus.

…années d'études… postsecondaires…

Études postsecondaires partielles

Dans cette image, la première section représente nos données. Le segment mis en évidence en vert indique la partie pertinente du texte liée aux exigences en matière d'études. « Avoir terminé deux années de formation dans un programme acceptable d'études postsecondaires en informatique, en technologie de l'information, en gestion de l'information ou dans une autre spécialité connexe au poste à doter ».

La deuxième section représente la règle qui a été appliquée au texte à l'aide d'expressions courantes. Le texte a été signalé comme contenant l'expression « … années d'études… postsecondaires ».

En raison de cet indicateur et de l'absence d'un indicateur d'une qualification supérieure (p. ex. « grade » ou « doctorat »), cette offre d'emploi a été étiquetée comme exigeant le niveau d'études « Études postsecondaires partielles ».

Évaluation du modèle

Pour évaluer le modèle, nous avons extrait un échantillon de 1 000 offres d'emploi de l'exercice 2019-2020 et avons étiqueté manuellement le niveau d'études correspondant à chaque offre. Le tableau ci-dessous présente la précision, le rappel et le score F1 de notre algorithme fondé sur des règles, pour chacun des huit niveaux d'études.

Tableau 1 : Résultats de l'évaluation du modèle pour les exigences en matière d'études
  Taille de l'échantillon Précision Rappel Score F1
Niveau d'études inconnu/hors catégorie 45 97,7 % 95,6 % 96,6 %
Études secondaires partielles 30 100,0 % 100,0 % 100,0 %
Études secondaires 418 99,3 % 98,3 % 98,8 %
Études postsecondaires partielles 72 94,4 % 94,4 % 94,4 %
Études postsecondaires 391 96,0 % 97,7 % 96,8 %
Diplôme professionnel 17 100,0 % 88,2 % 93,8 %
Maîtrise 17 83,3 % 88,2 % 85,7 %
Doctorat ou grade supérieur 10 100,0 % 90,0 % 94,7 %

Résultats

Nous avons appliqué l'algorithme à un total de 18 055 offres d'emploi entre le 1er avril 2016 et le 31 mars 2019. Le tableau suivant présente une répartition des offres d'emploi pour des postes EX-01, par niveau d'études tiré de l'algorithme. Comme l'indiquent les résultats ci-dessous, la grande majorité exigent des études secondaires ou postsecondaires.

Tableau 2 : Exigences en matière d'études pour les postes EX-01 (du 1er avril 2016 au 31 mars 2019)
Exigences en matière d'études Nombre d'offres d'emploi Total (en %)
Études postsecondaires 676 83 %
Maîtrise 81 10 %
Études postsecondaires partielles 27 3 %
Niveau d'études inconnu/hors catégorie 16 2 %
Études secondaires 13 2 %
Diplôme professionnel 2 0 %
Total 815 100 %

À l'aide de cette méthodologie, lorsqu'ils accèdent à l'Outil de prévision de candidatures pour estimer le nombre de demandes d'emploi, les utilisateurs peuvent filtrer les résultats dans ce nouveau champ lié aux études. Par exemple, depuis le 1er avril 2015, 921 postes EX-01 ont été annoncés et ont suscité l'intérêt d'un nombre médian de 30 candidats. Sur ces offres, 806 exigeaient un diplôme d'études postsecondaires et ont suscité l'intérêt d'un nombre médian de 32 candidats.

Zone « Zone de sélection »

Contexte

Conformément au paragraphe 34(1) de la LEFP, en vue de l'admissibilité à tout processus de nomination, une organisation peut limiter la zone de sélection pour les processus d'emploi internes en fixant des critères géographiques, organisationnels ou professionnels. Cette restriction est inscrite dans le champ « Qui est admissible » d'une offre d'emploi.

Une zone de sélection restreinte réduira le bassin de candidats potentiels. Les utilisateurs de l'Outil de prévision de candidatures souhaitaient connaître le nombre de candidats auquel ils pourraient s'attendre s'ils limitaient leur zone de sélection aux employés du niveau mentionné de leur ministère uniquement, par opposition à tous les fonctionnaires au Canada.

Méthode

Notre objectif était d'analyser le contenu de la zone de texte ouverte « Zone de sélection » pour en extraire le ou les ministères, emplacements et niveaux mentionnés en utilisant une technique appelée « reconnaissance de l'entité désignée ». Un modèle de reconnaissance de l'entité désignée est une technique de TLN qui désigne les « entités » dans un bloc de texte, comme les noms propres (nom d'une personne, pays) ou une catégorie de choses (animaux, véhicules).

Dans notre cas, les entités extraites sont les suivantes :

  • des organisations (p. ex. « Transports Canada », « la fonction publique fédérale »);
  • des emplacements (p. ex. « Canada », « région de l'Atlantique », « dans un rayon de 40 km de Winnipeg [Manitoba] »);
  • les classifications des professions (p. ex. « EC-04 », « EX-01 »).

Pour appliquer le modèle de reconnaissance de l'entité désignée, nous avons utilisé spaCy (le contenu de cette page est en anglais seulement), une bibliothèque libre gratuite destinée au traitement avancé du langage naturel dans Python.

L'algorithme de reconnaissance de l'entité désignée de spaCy comprend les entités « ORG » (organisation), « LOC » (localisation) et « GPE » (géopolitique).

Pour réduire la quantité de marquage manuel, nous avons adopté une approche itérative afin de créer notre ensemble de données d'entraînement. Tout d'abord, nous avons utilisé l'algorithme par défaut de spaCy pour marquer un échantillon aléatoire de 1 000 zones de sélection. Nous avons ensuite apporté les changements suivants :

  1. Fusion des balises « LOC » et « GPE » en une seule balise « LOC »;
  2. Ajout d'une balise « LEVEL » qui indique les classifications professionnelles;
  3. Correction de tout autre problème lié aux balises « ORG » et « LOC ».

À partir de là, nous avons créé 200 autres exemples de données d'entraînement, qui ont été ciblés pour inclure des exemples supplémentaires de la balise « LEVEL » et d'autres cas que l'algorithme initial a systématiquement omis de repérer.

Une fois l'ensemble des données d'entraînement mis en place, l'algorithme de reconnaissance de l'entité désignée de spaCy effectue les tâches suivantes :

  1. Créer un modèle de prédiction en utilisant une partie des données d'entraînement étiquetées.
  2. Envoyer une version sans étiquette d'une autre partie des données d'entraînement au modèle et prédire les entités.
  3. Comparer les étiquettes prédites et les étiquettes vraies.
  4. Mettre à jour le modèle pour représenter les étiquettes inexactes. Le volume de changements entre les modèles est appelé « gradient ».
  5. Répéter jusqu'à ce que le gradient soit réduit et que les prédictions du modèle changent très peu entre les itérations.

Ce processus a engendré un modèle final qui peut déterminer les différents critères d'une zone de sélection. L'image ci-après illustre un exemple de marquage du modèle effectué.

Figure 3 : Classification de la zone de sélection

Figure 3: Classification de la zone de sélection
Description - Figure 3 : Classification de la zone de sélection

Employés de la fonction publique au niveau PM-04 ou d'une classification équivalente qui occupent un poste dans un rayon de 40 km d'Edmonton (Alberta)

Employés de la fonction publique (ORG) au niveau PM-04 (LEVEL) ou d'une classification équivalente qui occupent un poste dans un rayon de 40 km d'Edmonton (Alberta) [LOC]

En haut de l'image s'affiche le texte complet de la zone de sélection. En bas de l'image, nos trois « entités » sont mis en évidence. « la fonction publique » est marquée par la balise ORG, « PM-04 » par la balise LEVEL et « dans un rayon de 40 km d'Edmonton (Alberta) » par la balise LOC.

Évaluation du modèle

Nous avons évalué le modèle à l'aide d'un échantillon aléatoire de 465 énoncés de la zone de sélection, que nous avons étiquetés manuellement. Le tableau suivant montre les scores de précision et de rappel pour chaque type d'entité.Footnote 1

 
Balise d'entité Précision Rappel Score F1
ORG 92,6 % 90,8 % 91,7 %
LOC 80,2 % 74,9 % 77,5 %
LEVEL 95,0 % 76,0 % 84,4 %

Résultats

À l'aide des résultats du modèle, nous avons produit l'analyse exploratoire suivante. Cette analyse est fondée sur 13 362 offres d'emploi internes entre le 1er avril 2016 et le 31 mars 2019.

Figure 4: Diagramme de Venn de la zone de texte ouverte « Zone de sélection », par organisation, groupe professionnel et géographie

Figure 4: Diagramme de Venn de la zone de texte ouverte « Zone de sélection », par organisation, groupe professionnel et géographie
Description - Diagramme de Venn de la zone de texte ouverte « Zone de sélection », par organisation, groupe professionnel et géographie

Diagramme de Venn de la zone de texte ouverte « Zone de sélection » divisée en trois.

Organisation (ministère) = 6,6 % Part commune des entités Organisation et Groupe professionnel = 0,4 %
Groupe professionnel = 1,6 % Part commune des entités Groupe professionnel et Géographie = 2,2 %
Géographie = 41,5 % Part commune des entités Géographie et Groupe professionnel = 37,9 %
Part commune des trois entités : 0,9 % Zone de sélection ouverte = 8,9 %

Ce que nous avons constaté, c'est que la plupart des offres d'emploi internes utilisent au moins l'un des filtres décrits dans la LEFP et que la plupart des zones de sélection comportant un filtre géographique étaient pour les « personnes employées dans la fonction publique qui occupent un poste dans la région de la capitale nationale (RCN) ».

Cependant, nous avons constaté que certaines zones de sélection sont plus difficiles à analyser. En voici quelques exemples :

1) Employés de Transports Canada qui occupent un poste à Calgary, Edmonton, Saskatoon, Winnipeg, Whitehorse, Yellowknife ou Churchill.

2) En cas de nombre insuffisant de candidats, les personnes employées dans la fonction publique qui occupent un poste à moins de 40 km de Winnipeg (Manitoba) ou à moins de 40 km d'Edmonton ou de Calgary (Alberta) pourraient être prises en compte sans que le poste soit annoncé de nouveau. Par conséquent, les candidats dans cette zone de sélection élargie sont encouragés à poser leur candidature.

Notre modèle a donné de bons résultats, mais en raison de critères multiples, nous avons décidé d'utiliser notre analyse avec un ensemble plus vaste de catégories. Auparavant, dans l'Outil de prévision de candidatures, les utilisateurs pouvaient seulement choisir une « offre d'emploi interne » ou une « offre d'emploi externe ». Maintenant, les offres d'emploi internes que les utilisateurs peuvent choisir sont plus précises. Ils ont le choix entre les offres d'emploi suivantes:

  • Offres d'emploi internes, ouvertes à tous les fonctionnaires
  • Offres d'emploi internes, ouvertes aux fonctionnaires de la RCN
  • Offres d'emploi internes (autres zones de sélection)

En ajoutant ces fonctionnalités à notre modèle, nous l'avons amélioré, de sorte qu'il permette aux utilisateurs de rechercher un ensemble plus restreint d'offres d'emploi pour trouver celles qui correspondent à leur processus de sélection prévu.

Conclusion

Les zones de texte ouvertes sont un excellent moyen de recueillir des renseignements et ne devraient pas être exclues des formulaires ou des enquêtes. Elles servent à recueillir des réponses fourre-tout lorsque les questions ne permettent pas aux utilisateurs de fournir des renseignements dans un ensemble de choix prédéfini.

Mais cette souplesse se fait au détriment de l'exactitude des classifications. Les systèmes de classification peuvent générer les bonnes prédictions (valeurs vraies positives et vraies négatives), mais peuvent aussi produire les mauvaises (valeurs fausses positives et fausses négatives). La validation croisée du rendement de votre algorithme sera essentielle afin de déterminer si les classifications sont suffisamment précises à des fins de production de rapports.

Le présent article a exposé des méthodes qui visent à structurer les renseignements tirés des zones de texte ouvertes aux fins de production de rapports dans l'Outil de prévision de candidatures. Les catégories provenant des zones « Zone de sélection » et « Exigences en matière d'études » ont été utilisées pour remplir des menus déroulants permettant aux utilisateurs d'améliorer leurs résultats de recherche.

Nous vous encourageons à consulter l'Outil de prévision de candidatures ou nos autres outils de visualisation des données dans le Centre de visualisations des données de la CFP.

Inscrivez-vous à la présentation Rencontre avec le scientifique des données

Si vous avez des questions à propos de cet article ou si vous souhaitez en discuter, nous vous invitons à notre nouvelle série de présentations Rencontre avec le scientifique des données où le(s) auteur(s) présenteront ce sujet aux lecteurs et aux membres du RSD.

mardi, le 18 octobre
14 h 00 à 15 h 00 p.m. HAE
MS Teams – le lien sera fourni aux participants par courriel

Inscrivez-vous à la présentation Rencontre avec le scientifique des données. À bientôt !

Date de modification :

Extraction de tendances temporelles à partir d’images satellitaires

Par : Kenneth Chu, Statistique Canada

La Division de la science des données de Statistique Canada a récemment terminé un certain nombre de projets de recherche visant à évaluer l’efficacité d’une technique statistique appelée analyse en composantes principales fonctionnelles (ACPF) comme méthode d’ingénierie des caractéristiques afin d’extraire les tendances temporelles des données des séries chronologiques de satellites radar à synthèse d’ouverture (RSO).

Ces projets ont été réalisés en collaboration avec la Division de l’agriculture et la Division de la statistique de l’énergie et de l’environnement de Statistique Canada, ainsi qu’avec le Centre national de recherche faunique (CNRF) d’Environnement et Changement climatique Canada. Ces projets ont utilisé les données de Sentinel-1. Sentinel-1 est une constellation de satellites radar du programme Copernicus de l’Agence spatiale européenne. Elle recueille des données d’imagerie RSO qui capturent des renseignements sur les structures de la surface terrestre de la zone imagée. Sentinel-1 assure une couverture mondiale tout au long de l’année et dans toutes les conditions météorologiques de la zone imagée. Les données ne sont pas influencées par l’alternance du jour et de la nuit, ont une haute résolution spatiale (environ 10 m x 10 m) et une fréquence fixe de capture des données tous les 12 jours pour chaque zone imagée. Par conséquent, les données de Sentinel-1 conviennent parfaitement aux études scientifiques, car les structures de la surface de la Terre contiennent des renseignements importants.

Nos résultats suggèrent que l’ACPF pourrait être un outil très efficace pour extraire numériquement les tendances temporelles saisonnières saisies dans une série chronologique d’images de Sentinel-1 à grande échelle et de manière très granulaire. Le présent article présente un sommaire de la méthode fondée sur l’ACPF et de ses résultats d’extraction des caractéristiques à partir des séries chronologiques saisonnières de Sentinel-1.

Motivation

Je vais me concentrer sur l’une des zones d’étude de la recherche, à savoir la région de la baie de Quinte en Ontario, située près de Belleville. L’objectif de ce projet est de donner une classification plus précise des zones humides. Ce qui suit est une image satellitaire optique (plutôt qu’une image satellitaire radar) de la région de la baie de Quinte, téléchargée depuis Google Maps.

Figure 1: Image satellitaire optimale de la baie de Quinte, Ontario. Téléchargée depuis Google Maps.

Figure 1: Optimal satellite image of Bay of Quinte, Ontario. Downloaded from Google Maps.
Description - Figure 1

Image satellitaire optimale de la baie de Quinte, Ontario, située au centre en haut de l’image. Le reste montre un étalement généralement rural de la zone environnante et comprend plusieurs cantons ainsi que les autoroutes qui les relient. Les cantons représentés sont les suivants (dans le sens des aiguilles d’une montre, à partir du haut à gauche) : Rossmore, Fenwood Gardens, Mountain View, Crofton, Elmbrook, Picton, Gilbert Mills, Huff’s Corners, Bowermans et Allisonville.

Dans la Figure 1, notez la grande étendue d’eau au centre supérieur de l’image et les champs agricoles rectangulaires. Notez également l’île près du centre supérieur et la voie d’eau qui la sépare du continent.

Examinez ensuite la Figure 2, qui est une carte de la couverture terrestre de la région de la baie de Quinte.

Figure 2: Carte de la couverture terrestre de la baie de Quinte, ON. Cette image est créée à partir de données des séries chronologiques saisonnières de 2019 du RADARSAT-2 (Banks et al., 2019). Les couleurs indiquent les différents types de couverture terrestre : Le bleu indique l’eau, le rose indique les eaux peu profondes, le cyan montre les marais, le rouge indique les forêts, le vert correspond aux marécages et le marron indique des terres agricoles.

Figure 2: Land cover map of Bay of Quinte, ON.
Description - Figure 2

Carte de la couverture terrestre de la baie de Quinte, ON, à partir des données des séries chronologiques de 2019 de RADARSAT-2. Les couleurs indiquent les différents types de couverture terrestre. La baie de Quinte est bleue, indiquant la présence d’eau, et se trouve principalement au centre supérieur de l’image. Le contour de la baie de Quinte est en cyan, ce qui indique une zone marécageuse, et comprend quelques points roses, indiquant des eaux peu profondes. La zone terrestre environnante est principalement rouge, ce qui dénote une zone forestière, et deux taches semi-grandes au centre inférieur de l’image sont vertes, faisant ressortir une zone marécageuse

La figure 3 est un rendu rouge, vert, bleu (RVB) des trois premiers scores des composantes principales fonctionnelles (CPF) calculés à partir des données des séries chronologiques de Sentinel-1 de 2019 pour la région de la baie de Quinte. Notez la remarquable granularité et le haut degré de concordance avec la carte de couverture terrestre de la Figure 2.

Figure 3: Rendu RVB des trois premiers scores de CPF calculés à partir des données des séries chronologiques de Sentinel-1 de 2019 pour la région de la baie de Quinte.

Figure 3: RGB rendering of the first three FPC scores computed from 2019 Sentinel-1 time series data for the Bay of Quinte area.
Description - Figure 3

Carte de la couverture terrestre de la baie de Quinte. Les couleurs indiquent les différents types de couverture terrestre. La baie de Quinte est bleue, indiquant la présence d’eau. Le contour de la baie de Quinte est rose et la zone terrestre environnante est principalement orange. Cette image est semblable au rendu de la figure 2

La carte de la couverture terrestre de la figure 2 a été créée à partir des données des séries chronologiques de 2019 de RADARSAT-2 (l’un des satellites d’observation de la Terre RSO de l’Agence spatiale canadienne), à l’aide de la méthodologie décrite dans Banks et al. (2019). Elle est bien corroborée par la réalité du terrain recueillie par des observations sur le terrain. Une observation notable ici est que la voie d’eau qui sépare l’île au centre supérieur de l’image et le continent contient en fait deux types de zones humides – les marais en cyan et les eaux peu profondes en rose. Ces deux types de zones humides ne sont pas faciles à distinguer sur la figure 1. L’article rapporte que les données des séries chronologiques saisonnières du RSO contiennent suffisamment de renseignements pour la classification des terres humides, mais la méthodologie décrite comporte un haut degré de prise de décision manuelle informée par des connaissances d’experts (p. ex. les saisies de données pour quelles dates ou statistiques à utiliser, etc.).Cette méthode demandait beaucoup de travail et la façon d’automatiser cette méthodologie et de l’appliquer à l’échelle régionale, provinciale ou pancanadienne n’était pas claire.

Le projet de la baie de Quinte a été motivé par la recherche d’une méthodologie automatisable et efficace pour extraire numériquement les tendances temporelles des séries chronologiques saisonnières RSO afin de faciliter les tâches de classification de la couverture terrestre en aval.

Principaux résultats : Visualisation des caractéristiques extraites par ACPF

L’ACPF peut être une méthodologie puissante pour extraire les tendances dominantes d’une collecte de séries chronologiques (Wang et al. 2016). Nous avons donc réalisé une étude de faisabilité sur l’utilisation de l’ACPF comme technique d’extraction de caractéristiques pour les séries chronologiques saisonnières RSO au niveau du pixel. Les caractéristiques qui en résultent sont des scores CPF au niveau du pixel. Nos résultats préliminaires suggèrent que la méthodologie fondée sur l’ACPF pourrait être remarquablement efficace. La figure 3 est le rendu RVB des trois premiers scores CPF (le premier score CPF est le canal rouge, le deuxième score CPF est le vert, le troisième score CPF est le bleu (Wikipédia 2022)); calculés à partir des données des séries chronologiques de Sentinel-1 de 2019 pour la baie de Quinte. Notez la remarquable granularité de la figure 3 et son niveau élevé de concordance avec la figure 2. Cela suggère fortement que les caractéristiques extraites fondées sur l’ACPF peuvent faciliter de manière importante les tâches de classification de la couverture terrestre en aval. La suite du présent article expliquera comment la figure 3 a été générée à partir des données des séries chronologiques de Sentinel-1.

Aperçu de la procédure d’extraction des caractéristiques fondée sur l’ACPF

Voici un aperçu de la procédure :

  • Un sous-ensemble d’emplacements/pixels a été soigneusement et stratégiquement sélectionné dans la zone d’étude de la baie de Quinte.
  • Leurs séries chronologiques de Sentinel-1 respectives ont été utilisées pour éduquer un moteur d’extraction des caractéristiques fondées sur l’ACPF.
  • Le moteur d’extraction des caractéristiques fondé sur l’ACPF a ensuite été appliqué aux séries temporelles de Sentinel-1 de chaque emplacement/pixel de toute la zone de la baie de Quinte. La sortie de chaque série temporelle est une séquence ordonnée de nombres appelés scores CPF pour l’emplacement/pixel correspondant. Ces scores sont en ordre décroissant de la variabilité expliquée par leur CPF correspondante.
  • La figure 3 ci-dessus est le rendu RVB des trois premiers scores CPF des données des séries chronologiques de 2019 de Sentinel-1.

Les données de formation

La collecte de données de formation (à partir des emplacements/pixels de la région de la baie de Quinte) a été soigneusement et stratégiquement choisie pour contenir des propriétés précises.

  • Les emplacements de la formation étaient répartis dans toute la zone d’étude de la baie de Quinte.
  • Les types de couverture terrestre étaient connus sur la base d’observations antérieures sur le terrain.
  • Six types de couverture terrestre étaient représentés dans la collecte de formation : eau, eau peu profonde, marais, marécage, forêt et terres agricoles.
  • La collecte de formation était bien équilibrée entre les types de couverture terrestre, car chaque type de couverture terrestre contenait exactement 1000 emplacements/pixels (à l’exception des eaux peu profondes, qui en comptaient 518).
  • Les six types de couverture terrestre représentés dans la collecte de formation sont complets, car chaque emplacement/pixel de la zone d’étude de la baie de Quinte est couvert par l’un de ces six types de couverture terrestre.

Les données de Sentinel-1 ont deux polarisations – transmission verticale et réception verticale (VV), et transmission verticale et réception horizontale (VH). Ces deux polarisations peuvent être considérées comme deux variables observées mesurées par les satellites de Sentinel-1.

Les différentes structures de la surface de la Terre sont détectées avec des sensibilités différentes en polarisations. Par exemple, la diffusion des surfaces rugueuses, comme celles causées par un sol nu ou l’eau, est plus facilement détectée dans la polarisation VV. D’autre part, la diffusion volumique, généralement causée par les feuilles et les branches d’un couvert forestier, est plus facilement détectée dans les polarisations VH et HV. Enfin, un type de diffusion appelé à double réflexion, couramment causée par les bâtiments, les troncs d’arbres ou la végétation inondée, est plus facilement détecté dans la polarisation HH (NASA, 2022). Pour la suite de cet article, nous nous concentrerons sur la polarisation VV.

Figure 4: Données des séries chronologiques VV de Sentinel-1 pour les sites de formation et les diagrammes en ruban correspondants pour une visualisation facile des tendances temporelles. (a) : Données de 2017. Groupe du panneau gauche : Tracés linéaires des données des séries chronologiques VV de Sentinel-1 regroupés par type de couverture terrestre connu. Groupe du panneau droit : Graphiques en ruban correspondants, la courbe noire de chaque panneau indiquant la courbe moyenne particulière au panneau, et le ruban indiquant un écart-type au-dessus et au-dessous de la courbe moyenne particulière au panneau. (b), (c) : Données de 2018 et 2019, respectivement.

Données des séries chronologiques VV de Sentinel-1 pour les sites de formation et les diagrammes en ruban correspondants pour une visualisation facile des tendances temporelles.
Description - Figure 4

Chaque panneau correspond à l’un des six types de zones humides pour 2017, 2018 et 2019 : marais, marécage, eau, forêt, agriculture et eau peu profonde. Chaque panneau contient 1000 séries chronologiques de formation, correspondant à 1000 emplacements de formation distincts, à l’exception du panneau inférieur, qui ne comporte que 518 séries chronologiques. L’axe horizontal affiche les dates d’observation. Elles sont espacées de 12 jours, sauf les écarts occasionnels.

Les quatre points suivants sont observés pour les données des séries chronologiques pour 2017, 2018 et 2019 :

  • Observation 1 : La collecte des dates d’observation peut changer d’une année à l’autre, de même que les écarts.
  • Observation 2 : L’eau et l’eau peu profonde ont en moyenne des valeurs plus faibles que le reste des types de zones humides.
  • Observation 3 : Le diagramme en ruban des eaux peu profondes montre une tendance distincte qui commence à être faible au début de la saison de croissance et qui culmine ensuite à la fin du mois d’août.
  • Observation 4: D’après le graphique en ruban des marais, on constate que les marais présentent à peu près la tendance opposée à celle des eaux peu profondes, à savoir qu’ils commencent par une valeur élevée qui redescend plus tard dans la saison].

Analyse en composantes principales fonctionnelles

Nous donnons une explication conceptuelle de l’ACPF en la comparant à l’analyse en composantes principales ordinaires (ACPO).

L’ACPO est :

  • Supposons un ensemble fini D={x1,x2,,xn}d(des points de données) est donné.
  • Trouver des directions orthogonales d , plus précisément, des sous-espaces unidimensionnels dans d le long desquels D présente la plus grande variabilité, la deuxième plus grande, la troisième plus grande, et ainsi de suite. Ici, l’orthogonalité est définie par le produit interne standard (produit scalaire) sur d. Pour chaque sous-espace orthogonal unidimensionnel, choisir un vecteur unitaire dans ce sous-espace. Les vecteurs unitaires mutuellement orthogonaux résultants d sont les composantes principales ordinaires et elles forment une base orthonormale pour d.
  • Réécrire chaque xi,i=1,2,,n, en matière de composantes principales ordinaires. Les coefficients de cette combinaison linéaire sont les scores des composantes principales ordinaires de xi par rapport aux composantes principales ordinaires.

En quoi l’ACPF (plus précisément, la version particulière de l’ACPF que nous avons utilisée) diffère-t-elle de l’ACPO?

  • L’espace vectoriel de dimension finie d est remplacé par un sous-espace F (éventuellement de dimension infinie) des fonctions intégrables en L2définies sur un certain intervalle (de temps) [a,b].
  • Le produit interne standard sur d est remplacé par le produit interne L2 inner product ·,· sur F, c.-à-d. pour f,gFL2[a,b], f,g  :=  abf(z)g(z)dz

Pourquoi l’ACPF peut-elle saisir des tendances temporelles?

  • La raison en est que la « géométrie » de l’intervalle [a,b] est intégrée dans la définition même du produit interne L2 . Plus concrètement, le processus d’intégration des fonctions sur [a,b] intègre des renseignements sur l’ordre et la distance entre chaque paire de points temporels.
  • Cette « conscience » de la géométrie de l’intervalle [a,b] permet à son tour au produit interne L2 de saisir des renseignements sur les tendances temporelles.

Procédure générale pour appliquer l’ACPF à des données de séries chronologiques

  • Supposons qu’un ensemble fini D de n séries chronologiques observées soit défini sur un ensemble commun de points temporels dans un certain intervalle de temps [a,b] p. ex. dans la saison de croissance d’une certaine année civile), où a et b sont respectivement le point temporel commun initial et final.
  • Interpoler chaque série temporelle donnée dans D pour obtenir une fonction définie sur [a,b]. On obtient un ensemble fini BD de n fonctions définies sur l’intervalle commun [a,b], dont chacune est une interpolation d’une des séries chronologiques observées originales dans D.
    Remarque : Les B-splines sont un choix courant de techniques d’interpolation à cette fin (Schumaker, 2022).
  • Calculer la fonction moyenne globale et une séquence ordonnée de composantes principales fonctionnelles pour la collecte BD de fonctions (interpolations de séries chronologiques dans D dans son ensemble. Notez que chaque CPF est elle-même une fonction définie sur [a,b] (Wang et al. 2016).

Ensuite, pour chaque fonction dans BD, exprimez-la comme une combinaison linéaire des CPF. Les coefficients de cette combinaison linéaire sont les scores des CPF de la fonction donnée par rapport aux CPF.

Par conséquent, les fonctions dans BD, le CPF et les scores CPF peuvent être organisées comme suit :

interpolation d'une série chronologique 1 fonction de moyenne globale + score 11 · composantes principales fonctionelle 1 + score 12 · composantes principales fonctionelle 2 + interpolation d'une série chronologique 2 fonction de moyenne globale + score 21 · composantes principales fonctionelle 1 + score 22 · composantes principales fonctionelle 2 + interpolation d'une série chronologique n fonction de moyenne globale + score n 1 · composantes principales fonctionelle 1 + score n 2 · composantes principales fonctionelle 2 +

Plus le nombre de CPF est important, plus les approximations ci-dessus devraient être précises.

  • Nous considérons que la fonction moyenne globale et la séquence ordonnée de CPF sont ce qui a été appris des fonctions en BD utilisant le mécanisme de l’ACPF.
  • Enfin, notons qu’une fois que la fonction moyenne globale et les CPF de BD ont été calculés (ou « apprises »), elles peuvent être utilisées pour calculer les scores de nouvelles fonctions définies sur [a,b], en particulier pour les interpolations de nouvelles séries chronologiques. C’est cette observation qui permet d’utiliser le mécanisme de l’ACPF comme une technique d’ingénierie des caractéristiques.

Déroulement des opérations d’extraction de caractéristiques fondées sur l’ACPF

Nous expliquons comment les scores des CPF qui sous-tendent la figure 3 ont été calculés dans le projet de la baie de Quinte.

  • Comme décrit précédemment, une collecte T d’emplacements/pixels « de formation » de la zone d’étude de la baie de Quinte a été méticuleusement choisie, comme décrit précédemment.
  • Les données des séries chronologiques de Sentinel-1 pour 2017, 2018 et 2019 ont été extraites pour chaque emplacement/pixel de formation dans T. Nous désignons la collecte des séries chronologiques résultantes par D.
  • Chaque série temporelle dans D a été interpolée à l’aide de B-splines. Nous désignons la collecte de fonctions résultante par BD.
  • La fonction moyenne globale et l’ensemble des composantes principales fonctionnelles ont été calculés (« appris ») à partir de BD en utilisant le mécanisme de l’ACPF. Ce mécanisme de l’ACPF a été mis en œuvre sous la forme de l’ensemble R fpcFeatures (actuellement, uniquement pour un usage interne au CNRF et à Statistique Canada).
  • La série temporelle de Sentinel-1 de 2017 pour chacun des emplacements/pixels hors formation de la zone d’étude de la baie de Quinte a été interpolée avec des B-splines. Pour chacune des interpolations des B-spline résultantes, les scores CPF par rapport aux composantes principales fonctionnelles apprises ont été calculés. Cela s’applique également aux séries chronologiques Sentinel-1 hors formation de 2018 et 2019.
  • Les scores CPF résultants sont considérés comme les caractéristiques extraites pour chaque emplacement/pixel. Ces caractéristiques extraites peuvent être utilisées pour des tâches d’analyse ou de traitement en aval, comme la visualisation (p. ex. le rendu RVB), la classification de la couverture terrestre, la détection des changements d’utilisation du sol, etc.

Ce déroulement des opérations d’extraction de caractéristiques fondées sur l’ACPF est illustré à la figure 5.

Figure 5: Schéma du déroulement des opérations d’extraction de caractéristiques fondée sur

Schéma du déroulement des opérations d’extraction de caractéristiques fondée sur
Description - Figure 5

Le diagramme des caractéristiques des CPF commence par un carré pour les nouvelles données des séries chronologiques qui alimentent l’ensemble R, qui contient CPF 1, CPF 2, etc. Un carré pour des données des séries chronologiques de formation qui alimentent également l’ensemble R. Ensuite, le paquet R indique l’étape suivante, à savoir les caractéristiques ou le score CPF. Puis, des caractéristiques extraites sont générées, lesquelles peuvent être utilisées dans des tâches de traitement ou d’analyse en aval, p. ex. la visualisation par le rendu RVB, la classification de l’utilisation du sol, la détection des changements d’utilisation du sol

Les composantes principales fonctionnelles calculées

Si vous vous souvenez, le soi-disant « moteur d’extraction de caractéristiques fondé sur l’ACPF entraîné » n’est en fait que la fonction de moyenne globale et la séquence ordonnée de CPF (fonctions définies sur un intervalle de temps commun) calculées à partir des données de formation. La figure 6 présente les sept premières CPF calculées à partir des données des séries chronologiques de Sentinel-1 VV de formation pour 2017, 2018 et 2019 de la zone d’étude de la baie de Quinte.

Figure 6: Représentations graphiques des sept premières composantes principales fonctionnelles comme fonctions du temps.

Représentations graphiques des sept premières composantes principales fonctionnelles comme fonctions du temps.
Description - Figure 6

Sept graphiques linéaires des CPF calculés à partir des données des séries chronologiques de Sentinel-1 de 2017, 2018 et 2019. Dans chaque panneau, l’axe horizontal représente « l’indice des dates » où 1 correspond au jour de l’an, 2 correspond au 2 janvier, et ainsi de suite. L’axe vertical représente la valeur des scores CPF respectifs. CPF 1 – Variabilité saisie = 85,044 %; CPF 2 – Variabilité saisie = 7,175 %; CPF 3 – Variabilité saisie = 2,229 %; CPF 4 – Variabilité saisie = 1,677 %; CPF 5 – Variabilité saisie = 1,407 %; CPF 6 – Variabilité saisie = 1,162 %; CPF 7 – Variabilité saisie = 0,917 %. Une explication plus détaillée est donnée ci-dessous.

Ce sont des représentations graphiques des sept premières CPF en fonction du temps. Le panneau ke (en comptant à partir du haut) visualise la CPFke. Rappelons que chaque CPF est, avant tout, une fonction (continue) du temps, considérée comme un vecteur uk  F dans un certain espace vectoriel des fonctions F de (intégrable en L2) définies sur un certain intervalle de temps.

Dans chaque panneau, la courbe grise indique la courbe moyenne des interpolations splines de toutes les séries chronologiques VV (sur tous les lieux de la formation et pour les années 2017, 2018 et 2019). Les CPF s’avèrent être des vecteurs propres d’une certaine carte linéaire (liée à la « variance » de l’ensemble de données d’apprentissage) de F à elle-même (Wang et al. 2016). Dans chaque panneau, la courbe orange représente la fonction obtenue en ajoutant à la courbe moyenne (en gris) le multiple scalaire λk · uk   de la kth composante principale fonctionnelle  uk  , où λk  0 est la valeur propre correspondant à  uk  . La courbe bleue est obtenue en soustrayant le même multiple de  uk   de la courbe moyenne. Notez également que la première composante principale explique environ 85,04 % de la variabilité des données de formation (série chronologique VV), la deuxième composante explique environ 7,18 %, et ainsi de suite.

Ensuite, notez que la première composante principale fonctionnelle ressemble à une ligne horizontale (courbe orange dans le panneau supérieur); elle capture la caractéristique la plus dominante dans les séries chronologiques de formation, qui se révèle être la grande différence quasi constante dans les valeurs VV entre les séries chronologiques de l’eau/eau peu profonde et celles du reste des types de couverture terrestre (autre que l’eau). Cette grande différence quasi constante est clairement observable dans les tracés en ligne et en ruban des figures 4, 5 et 6.

Enfin, il faut noter que la deuxième composante principale fonctionnelle (courbe orange dans le deuxième panneau) présente un creux en début de saison et un pointe en fin de saison, ce qui permet de saisir la tendance des eaux peu profondes, comme on peut l’observer dans les diagrammes en ruban des eaux peu profondes des figures 4, 5 et 6.

Les deux premiers scores CPF des données de formation

Nous montrons ici les nuages de points du premier score CPF par rapport au second pour les données de formation. Observez la bonne séparation des emplacements de formation de l’eau et de l’eau peu profonde de ceux des autres types de couverture terrestre, et observez également la cohérence de cette séparation d’une année à l’autre.

Figure 7: Scores CPF de 2017 – formation

Figure 7 : Scores CPF de 2017 – formation
Figure 7 : Scores CPF de 2018 – formation
Figure 7 : Scores CPF de 2019 – formation
Description - Figure 7

Nuage de points du premier score CPF par rapport au second pour les données des séries temporelles de formation pour 2017, 2018 et 2019.Les scores CPF résultants sont considérés comme les caractéristiques extraites. Chaque point de données de ce graphique correspond à un emplacement de la formation, la couleur indiquant le type de zone humide. Les axes horizontaux et verticaux correspondent respectivement aux premier et second scores CPF dérivés des séries chronologiques VV. Nous insistons sur le fait que, bien que chaque graphique ne montre que les scores des séries temporelles de formation correspondante pour l’année, les scores CPF ont été calculés simultanément pour toutes les séries chronologiques VV pour toutes les années et tous les types de zones humides.

Les points de données sont partiellement regroupés par type de zone humide; en particulier, l’eau et les eaux peu profondes se séparent très bien des autres types de zones humides. La séparation horizontale (qui est la dimension correspondant à la première CPF) entre l’eau/eau peu profonde et le reste. Cela représente la grande différence verticale entre l’eau/eau peu profonde et les autres types de zones humides non aquatiques au regard des valeurs VV originales (voir figure 4). La première CPF saisit cette grande différence verticale constante tout au long de la saison de végétation, ce qui explique pourquoi la première CPF ressemble à une ligne plate (courbe orange qui apparaîtrait dans le panneau supérieur de la figure 6).

Rappelons également que la deuxième CPF présente une tendance qui ressemble à celle des eaux peu profondes (comme le montrent les tracés en ruban dans les panneaux inférieurs de la figure 4 par rapport à la courbe orange dans le deuxième panneau de la figure 6). Rappelons également que le marais présente en gros la tendance inverse (comme indiqué dans le panneau supérieur de la figure 4 par rapport à la courbe bleue du second panneau de la figure 6). La deuxième CPF saisit la tendance affichée par les eaux peu profondes et, par conséquent, dans ce nuage de points, ce sont les emplacements de formation en eaux peu profondes (rouge) qui s’étendent significativement dans la direction verticale positive. En revanche, comme le marais présente à peu près la tendance inverse, les emplacements de formation pour les marais (en noir) s’étendent significativement vers le bas dans le présent nuage de points.

Contrôle d’intégrité : approximation de la série temporelle de formation originale par l’ACPF.

Étant donné que l’ACPF repose sur l’approximation de séries chronologiques de données de formation individuelles en tant que combinaisons linéaires d’une séquence de CPF (elles-mêmes des fonctions) qui sont apprises à partir des séries chronologiques des données de formation en tant que groupe :

interpolation d'une série chronologique i fonction de moyenne globale + score i 1 · composantes principales fonctionnelle 1 + score i 2 · composantes principales fonctionnelle 2 +

Pour évaluer l’adéquation de l’ACPF à un ensemble particulier de données des séries chronologiques, il est prudent d’examiner dans quelle mesure les approximations fondées sur l’ACPF peuvent réellement se rapprocher des données des séries chronologiques originales.

La figure 12 montre six séries chronologiques de données de formation de Sentinel-1 choisies au hasard et leurs approximations par l’ACPF pour donner une impression de la qualité de l’ajustement des approximations de l’ACPF.

Figure 8: Approximations par l’ACPF de six séries chronologiques de données de formation.

Figure 8: Approximations par l’ACPF de six séries chronologiques de données de formation. Année 2017
Figure 8: Approximations par l’ACPF de six séries chronologiques de données de formation. Année 2018
Figure 8: Approximations par l’ACPF de six séries chronologiques de données de formation. Année 2019
Description - Figure 8

Approximations par l’ACPF de six séries chronologiques de données de formation. Dans chaque panneau, l’axe horizontal représente « l’indice des dates » où 1 correspond au jour de l’an, 2 correspond au 2 janvier, et ainsi de suite. L’axe vertical représente la valeur de la variable VV dans les données de Sentinel-1. Les points noirs sont les points de données des séries chronologiques originales. La courbe bleue est l’interpolation B-spline. La courbe rouge est l’approximation de l’ACPF à sept termes de l’interpolation B-spline (courbe bleue), où le « sept termes » signifie ici que l’approximation de l’ACPF est la somme de la fonction moyenne globale et d’une combinaison linéaire. Panneau 1 – année 2017, emplacement : -77,210217019792_43,8920257051607; Panneau 2 – année 2017, emplacement : -77,2997875102733_44,0678018892809; Panneau 3 – année 2018, emplacement : -77,2373431411184_44,1006434402341; Panneau 4 – année 2018, emplacement : -77,2691161641941_43,9610969253399; Panneau 5 – année 2019, emplacement : -77,2663596884513_43,950887882021; Panneau 6 – année 2019, emplacement : -77,3141305185843_44,1218009272802

Travaux à venir

  • Cet article présente la technique d’ingénierie des caractéristiques fondée sur l’ACPF pour les données saisonnières des séries chronologiques de Sentinel-1. Rappelons toutefois que le but ultime est la classification des zones humides. La recherche de suivi immédiat consiste à appliquer certaines techniques de classification « de base » (p. ex. une forêt aléatoire) aux caractéristiques extraites fondées sur l’ACPF (c.-à-d. les scores CPF) et à examiner les précisions qui en résultent.
  • La plupart des techniques de classification de base, comme la forêt aléatoire, ignorent les relations spatiales entre les emplacements/pixels. Si les techniques de base se révèlent insuffisamment précises, vous pouvez envisager des techniques de classification plus sophistiquées qui tentent de prendre en compte les relations spatiales, p. ex. en imposant des contraintes qui favorisent les emplacements/pixels proches pour avoir le même type de couverture terrestre prédit. L’une de ces techniques est le champ aléatoire de Markov caché, qui traite la tâche de classification de la couverture terrestre comme un problème de segmentation d’image non supervisée.
  • Il a fallu environ 45 minutes pour générer la figure 3, en l’exécutant dans 16 fils parallèles sur un seul ordinateur virtuel x86 64-conda-linux-gnu (64 bits), sur un nuage informatique commercial, avec 28 Go de mémoire, en utilisant le système d’exploitation Ubuntu 20.04.2 LTS et R version 4.0.3 (2020– 10-10). Toutefois, la figure 3 ne couvre que la zone d’étude de la baie de Quinte, qui est une zone minuscule comparée à la province de l’Ontario ou à l’ensemble du Canada. L’utilisation des mêmes ressources informatiques que celles mentionnées ci-dessus pour exécuter le flux de travail d’extraction de caractéristiques fondées sur l’ACPF nécessiterait environ trois semaines pour l’Ontario et plusieurs mois pour l’ensemble du Canada. Plusieurs années de données de Sentinel– 1 pour l’ensemble du Canada auront une empreinte de stockage de plusieurs douzaines de téraoctets. D’un autre côté, on aimerait bien, à terme, mettre en place un système de classification pancanadien des terres humides (presque entièrement) automatisé. L’informatique répartie (informatique en nuage ou grappes de calcul à haute performance) sera nécessaire pour déployer un tel déroulement des opérations capable de traiter de tels volumes de données dans un délai raisonnable. Une étude de suivi est en cours pour déployer ce déroulement des opérations sur la plate-forme nuagique de Google (Google Cloud Platform (GCP)) pour l’ensemble de la Colombie-Britannique. Nous prévoyons que le temps d’exécution du déploiement du GCP pour l’ensemble de la Colombie-Britannique, divisé en centaines de tâches de calcul simultanées, sera inférieur à 3 heures. En outre, nous mentionnons que, en raison de la nature vectorielle des calculs de l’ACPF, une mise en œuvre du GPU devrait en théorie être possible, ce qui pourrait accélérer encore davantage les calculs de manière spectaculaire. Un article scientifique sur les résultats et les méthodologies de cette série de projets est en préparation et sera bientôt publié dans une revue à comité de lecture.
  • Comme nous l’avons mentionné, les changements saisonniers des structures de la surface de la Terre, saisis sous forme de tendances temporelles dans les données des séries chronologiques de Sentinel-1, sont des variables prédictives utiles pour la classification des zones humides. Toutefois, pour pouvoir utiliser les données correctement et à grande échelle, il faut être conscient d’un certain nombre de problèmes potentiels. Par exemple, les utilisateurs de données doivent être bien informés des artefacts de mesure qui peuvent être présents dans de telles données, de la façon de détecter leur présence et de la façon de les corriger, si nécessaire. Nous prévoyons également que les tendances temporelles varieront (p. ex. en raison des variations naturelles, des cycles climatiques, du changement climatique), tant d’une année à l’autre que dans l’espace. La question de savoir comment tenir compte des variations spatiotemporelles des tendances temporelles de Sentinel-1 lors de la conception et de la mise en œuvre d’un déroulement des opérations pancanadien.
  • Rappelons que nous nous sommes concentrés exclusivement sur la polarisation VV dans les données de Sentinel-1, bien que nous ayons déjà mentionné que les données de Sentinel-1 présentent une polarisation supplémentaire, à savoir VH. Les différentes polarisations sont sensibles aux différents types de structures au niveau du sol (NASA, 2022). En outre, Sentinel-1 est une constellation de satellites RSO en bande C (c.-à-d. avec une fréquence de signal radar d’environ 5,4 GHz), ce qui signifie notamment que Sentinel-1 mesure, très approximativement, des structures au niveau du sol d’une taille d’environ 5,5 cm. Toutefois, il existe d’autres satellites RSO qui ont des fréquences de signal différentes qui ciblent donc des structures au niveau du sol de tailles différentes (NASA, 2022). Il sera très intéressant de voir si les données RSO avec des fréquences de signal différentes, et mesurées dans des polarisations différentes, pourront être combinées afin d’améliorer de manière importante l’utilité de ces données.

Références

  1. BANKS, S., WHITE, L., BEHNAMIAN, A., CHEN, Z., MONTPETIT, B., BRISCO, B., PASHER, J., AND DUFFE, J. Wetland classification with multi-angle/temporal sar using random forests. Remote Sensing 11, 6 (2019).
  2. EUROPEAN SPACE AGENCY. Sentinel-1 Polarimetry. https://sentinel.esa.int/web/sentinel/user-guides/sentinel-1-sar/product-overview/polarimetry (le contenu de cette page est en anglais). Accédé : 2022-02-10.
  3. NASA. What is Synthetic Aperture Radar? https://earthdata.nasa.gov/learn/ backgrounders/what-is-sar (le contenu de cette page est en anglais).  Accédé : 2022-02-10.
  4. SCHUMAKER, L. Spline Functions: Basic Theory, third ed. Cambridge Mathematical Library. Cambridge Mathematical Library, 2007.
  5. WANG, J.-L., CHIOU, J.-M., AND MU¨LLER, H.-G. Functional data analysis. Annual Review of Statistics and Its Application 3, 1 (2016), 257–295.
  6. WIKIPEDIA. RGB color model. https://en.wikipedia.org/wiki/RGB_color_model (le contenu de cette page est en anglais). Accédé : 2022-02-10.

All machine learning projects at Statistics Canada are developed under the agency's Framework for Responsible Machine Learning Processes that provides guidance and practical advice on how to responsibly develop automated processes.

Inscrivez-vous à la présentation Rencontre avec le scientifique des données

Si vous avez des questions à propos de cet article ou si vous souhaitez en discuter, nous vous invitons à notre nouvelle série de présentations Rencontre avec le scientifique des données où le(s) auteur(s) présenteront ce sujet aux lecteurs et aux membres du RSD.

mercredi, le 14 septembre
14 h 00 à 15 h 00 p.m. HAE
MS Teams – le lien sera fourni aux participants par courriel

Inscrivez-vous à la présentation Rencontre avec le scientifique des données. À bientôt !

Date de modification :

Élaboration de profils de compétences pour encadrer la science des données dans la fonction publique

par: Reginald Maltais, Statistique Canada

Introduction

L'un des premiers enjeux soulevés par le Réseau de la science des données (RSD) lors de sa mise en place, a été la difficulté d'attirer et de retenir les talents en science des données au sein du gouvernement du Canada. Il n'existait aucun instrument commun pour l'évaluation équitable des candidatures à l'échelle gouvernement, et il n'y avait pas non plus de manière de déterminer les compétences requises pour permettre l'avancement professionnel des scientifiques des données déjà à l'emploi du gouvernement.

Les profils de compétences offrent une manière de consigner le niveau minimum de compétences requises dans diverses disciplines pour un poste donné au sein du gouvernement fédéral. En avril 2021, le Réseau de la science des données a mis sur pied le Groupe de Travail (GT) sur les compétences en science des données pour déterminer : 1) les postes que les scientifiques des données pourraient occuper au gouvernement fédéral et 2) les compétences requises pour ces postes.

Le GT a lancé ses travaux dans le cadre d'un atelier donné à la Conférence sur les données de 2021, lors duquel la décision a été prise de mettre l'accent sur les postes en science des données suivants :

  • analyste en science des données
  • ingénieur/ingénieure en science des données
  • spécialiste de la visualisation en science des données
  • gestionnaire en science des données

Figure 1 : Schéma en étoile du profil de compétences

Schéma en étoile du profil de compétences
Figure 1 : Schéma en étoile du profil de compétences Schéma en étoile avec un cercle central représentant les quatre profils de compétences, entouré de cinq branches représentant les éléments qui ont contribué à son élaboration. Cela comprend les efforts concertés de 61 membres du Groupe de travail issus de 21 ministères et organismes. Ils ont déterminé pour chaque rôle 72 compétences comportant chacune trois niveaux, permettant une dotation flexible et offrant un parcours de développement clair pour les personnes qui souhaiteraient accroître leurs compétences en science des données au sein du gouvernement du Canada.

Justification des profils de compétences

Des profils de compétences ne sont pas le type d’instrument de ressources humaines auquel les gens pensent immédiatement lorsqu’ils créent l’annonce d’un poste ou présentent leur candidature à un poste. Compte tenu du fait que les rôles sont habituellement définis selon la description des fonctions, et qu’au sein du gouvernement, l’énoncé des critères de mérite est utilisé pour dresser la liste des compétences requises pour un poste aux fins d’embauche, quelle valeur un profil des compétences peut-il apporter?

Les profils de compétences comblent une importante lacune et peuvent être utilisés à tous les échelons à de multiples fins — les gestionnaires peuvent les utiliser pour préparer la description de poste qui accompagnera une nouvelle annonce dans la banque Emplois GC. Les spécialistes en ressources humaines peuvent aussi les utiliser pour rédiger des énoncés de critères de mérite propres à un poste, permettant ainsi de créer des annonces pour différents niveaux d'expertise tout en assurant un certain niveau de cohérence à l'échelle du gouvernement. Les profils de compétences offrent aussi l'avantage de ne pas être liés à une classification ou à un niveau en particulier, contrairement aux descriptions de poste.

Par exemple, un analyste de politiques qui souhaite devenir un analyste en science des données pourrait utiliser un profil de compétences pour connaître les compétences qui sont requises pour assumer un tel rôle. Il peut ensuite intégrer ces compétences dans le plan d’apprentissage de son poste actuel. Cela peut l’aider à tirer parti des données avec lesquelles il travaille actuellement et le guider pendant qu’il développe les aptitudes requises pour devenir un analyste en science des données.

Les talents en technologie sont rares. Il y a une très forte concurrence interne pour les rares talents qui ne sont pas toujours affectés à des initiatives prioritaires.

Stratégie pour le gouvernement dans l’ère numérique – BDPI – Diapositive 18

Le fait de ne pas être lié à une classification ou à un niveau existants offre une grande souplesse professionnelle et a permis au Groupe de travail de réellement envisager ce que cela signifie d’être un scientifique des données au gouvernement du Canada, sans se limiter aux définitions prévues dans les cadres existants. Bien entendu, quand une personne est embauchée pour un poste, elle doit être correctement classifiée; c’est pourquoi les profils de compétences sont utilisés comme intrants pour le Groupe de Travail des ressources humaines sur les fonctions liées à l’information et aux données. Ce groupe a pour but de normaliser les descriptions de poste, de dresser un parcours montrant comment une carrière peut progresser, et d’aider à accroître la visibilité des talents qui sont disponibles dans l’ensemble du gouvernement.

Comment les utiliser aujourd’hui

Le gouvernement du Canada dote toutes sortes de postes dont les titulaires travaillent et analysent les données. Ce n’est pas tout le monde qui souhaite ou doit être un scientifique des données, mais le fait d’offrir aux employés le moyen de s’établir un plan pour améliorer leurs aptitudes analytiques et la diversité de leurs compétences contribuera à renforcer le gouvernement dans son ensemble.

Les chercheurs qui souhaitent incorporer la science des données dans leur travail ne veulent pas nécessairement renoncer à leurs postes de recherche. Les profils des compétences peuvent les aider à déterminer les capacités requises pour s’assurer qu’une science des données de grande qualité peut être intégrée à leurs travaux. Les gestionnaires qui désirent bâtir des équipes robustes peuvent utiliser les profils en complément avec le Cadre des compétences en données du gouvernement du Canada, élaboré par le Groupe de travail sur les personnes et la culture de la Communauté de pratique sur les données ministérielles pour créer des équipes comportant un large éventail de compétences et déjà prêtes à répondre aux besoins de leurs ministères ou organismes respectifs.

Appuyer diverses structures d’équipe

Il y a de multiples angles à la science des données, ce qui signifie qu’il y a de multiples façons d’intégrer la science des données dans les équipes. Certaines organisations ont des besoins tellement prononcés qu’elles ont formé des divisions entières pour fournir une expertise en science des données en tant que service, alors que d’autres tentent d’intégrer les scientifiques des données dans de nouveaux secteurs d’activité ou dans ceux qui sont déjà en place. Chaque approche s’accompagne d’enjeux particuliers liés au recrutement, à la rétention et à la progression de carrière.

Les compétences qui ont été définies fournissent des renseignements en lien avec les personnes et les organisations quant aux compétences minimales requises pour différents niveaux de poste. Ainsi, les gestionnaires d’embauche peuvent cibler les compétences et les niveaux du poste à doter, et cela permet aux candidats de voir le perfectionnement des compétences requis pour obtenir un poste de niveau plus élevé en science des données.

Les fondements d’une chaîne de valeur en RH améliorée

La gestion des talents est un dossier complexe. Comme on l'a souligné dans le Processus opérationnel commun en matière de ressources humaines, les profils de compétences ne représentent qu'une portion d'un plus vaste ensemble. En tirant profit des compétences développées par la communauté, les gestionnaires d'embauche collaborent maintenant à l'élaboration de descriptions de poste normalisées interministérielles, dans le cadre du Groupe de travail des ressources humaines sur les fonctions liées à l'information et aux données. Les compétences pourront être appliquées à des classifications précises au sein du gouvernement du Canada, faisant avancer davantage les éléments réutilisables qui rendront l'embauche plus facile.

Les ressources pour développer vos capacités techniques en tant que scientifique des données ne manquent pas. Le Réseau de la science des données pour la fonction publique fédérale diffuse régulièrement des occasions d’apprentissage. Cependant, les capacités techniques ne sont pas les seules qualités requises d’un fonctionnaire, et les profils de compétences offrent un cadre que les personnes peuvent utiliser pour compléter leur plan d’apprentissage. Qu’il s’agisse de renseigner sur l’importance de l’éthique, de la protection des renseignements personnels ou de la communication narrative, les profils de compétences donnent aux scientifiques des données un aperçu des domaines où ils peuvent s’améliorer et leur servir de référence pour l’élaboration de leur plan d’apprentissage.

Un avenir qui s’annonce prometteur

La science des données est encore relativement nouvelle au sein de la fonction publique. Bien qu'elle soit déjà présente dans de nombreux aspects de la vie des Canadiennes et des Canadiens, la capacité d'exploiter la science des données pour mieux servir la population n'est qu'à ses débuts. De la Comparaison des outils de reconnaissance optique de caractères pour les documents à forte densité de texte et les textes provenant de scènes, à l'amélioration des temps de service en automatisant l'ingestion des données à partir de documents écrits (voir la page Intelligence documentaire), en passant par l'utilisation responsable des systèmes décisionnels automatisés du gouvernement fédéral, la science des données est déjà utilisée et porte ses fruits. Le gouvernement fournit un grand nombre de services, et la science des données peut être utilisée de bien des manières. Les analystes qui travaillent déjà à la prestation de ces services disposent maintenant d'une nouvelle ressource pour les aider à déterminer comment améliorer leurs propres compétences pour commencer à utiliser la science des données, et les gestionnaires disposent de nouveaux outils qu'ils peuvent utiliser pour évaluer les scientifiques des données lorsqu'ils tentent l'intégrer dans leurs secteurs de programme. Visitez la page GCWiki pour le Réseau de la science des données de la fonction publique fédérale pour voir les profils de compétences pour les postes suivants :

Inscrivez-vous à la présentation Rencontre avec le scientifique des données

Si vous avez des questions à propos de cet article ou si vous souhaitez en discuter, nous vous invitons à notre nouvelle série de présentations Rencontre avec le scientifique des données où le(s) auteur(s) présenteront ce sujet aux lecteurs et aux membres du RSD.

mercredi, le 14 septembre
14 h 00 à 15 h 00 p.m. HAE
MS Teams – le lien sera fourni aux participants par courriel

Inscrivez-vous à la présentation Rencontre avec le scientifique des données. À bientôt !

Date de modification :