Célébrer les femmes et les filles dans le domaine des sciences : entrevue avec Mme Sevgui Erman (PH. D.)
Par : Ainsley Sullivan et Nashveen Mendes, Statistique Canada; Sevgui Erman, Conseil national de recherches Canada
Introduction
En 2030, les Nations Unies doivent présenter les réalisations relatives aux 17 objectifs de développement durable, dont l'égalité entre les sexes fait partie. Le 11 février marque la Journée internationale des femmes et des filles de science visant à promouvoir l'égalité entre les genres dans le domaine des sciences, des technologies, du génie et des mathématiques, et l'élimination des stéréotypes fondés sur le genre. Dans le cadre de la promotion de cette journée particulière, nous nous sommes entretenus avec Mme Sevgui Erman, femme éminente dans le domaine de la science des données, dont la carrière couvre plusieurs secteurs du domaine de la science des données, des technologies numériques et de l'analytique.
Mme Sevgui Erman est entrée au Conseil national de recherches Canada (CNRC) au début de 2022 et dirige des programmes et services de recherche dans les domaines de la vision artificielle, du traitement du langage naturel, de l'analyse avancée et de l'informatique quantique, entre autres. Son objectif est de faire progresser la recherche et l'innovation au Canada, grâce à l'accélération de la découverte, la promotion de la modélisation et des jumeaux numériques, de l'analyse de textes multilingues, de la sécurité et de la protection de la vie privée. Avant d'entrer au CNRC, Mme Erman était scientifique en chef des données et directrice principale de la Division de la science des données à Statistique Canada. Elle a dirigé la Stratégie de la science des données de l'organisme et lancé le Réseau de la science des données pour la fonction publique fédérale qui, à ce jour, compte plus de 3 000 membres. Mme Erman est titulaire d'un doctorat de l'université Paris-Sud en traitement de signal et commande des systèmes, deux domaines étroitement liés à l'intelligence artificielle (IA).
Madame Erman, comment en êtes-vous venue à vous intéresser à la science des données et qu'est-ce qui a suscité votre passion pour ce domaine?
La science des données a toujours été présente tôt dans ma carrière et mes études. J'ai souvent souhaité optimiser des processus et des produits grâce aux données et à la technologie. Mon doctorat, en particulier, portait sur la conception technique robuste. J'ai eu recours à la modélisation pour relever les paramètres de conception menant à l'optimisation des performances d'un produit en atténuant les pires dégradations de performances dues à des facteurs environnementaux, de fabrication ou autres. Aujourd'hui, en principe, nous appliquons une approche similaire aux découvertes de nouveaux matériaux grâce à l'IA, en recherchant avec efficacité l'espace des paramètres permettant de trouver une nouvelle conception optimale.
En 2005, j'ai obtenu un brevet en télécommunications optiques. Je suis particulièrement attachée à ce brevet, car cet algorithme a permis une amélioration substantielle des performances de système, accroissant ainsi la portée de la transmission du signal. Cet algorithme traitait des mégadonnées en temps réel et a été mis en œuvre sur plusieurs plateformes Nortel Optical Metro à l'époque. Cet événement a éveillé ma passion.
À StatCan, je me souviens des défis liés à la manipulation des données de lecteurs optiques. En 2017, StatCan composait avec des dizaines de millions d'enregistrements à traiter chaque semaine. Nous avons pu régler cet enjeu en ayant recours à l'IA. Je me souviens également de l'enthousiasme lors de la conférence C2 à Montréal en juin 2017, où j'ai pris conscience de l'émergence de l'écosystème dynamique de l'IA au Canada. La science des données était en passe de devenir un outil puissant. Récemment, j'ai collaboré à la rédaction d'un document publié dans le Harvard Data Science Review, qui décrit la façon dont la science des données permet l'innovation et soutient l'élaboration de produits statistiques pertinents et de confiance.
Je suis toujours passionnée par le travail dans ce domaine. La science des données demeure un domaine très dynamique et en constante évolution. Le développement récent du modèle ChatGPT d'OpenAI illustre la croissance de ce secteur et démontre à quel point il est formidable d'être dans une époque où nous pouvons interagir avec de puissantes technologies et contribuer à des solutions dans le monde réel.
Selon vous, quelles sont les réussites du gouvernement du Canada dans le domaine de la science des données? Quels sont les principaux obstacles au sein des ministères empêchant la progression de leurs capacités?
Je pense qu'une des réussites est de faire progresser la science avec détermination. Tout au long de la pandémie, la méthodologie de la science des données a soutenu la fourniture de statistiques actuelles et de grande qualité. Collectivement, notre travail en science des données se concentre sur la résolution de problèmes concrets et l'atteinte de résultats pratiques. À StatCan, la science des données sert à soutenir la création de nouveaux produits et à permettre une prestation de services efficace grâce à l'automatisation. À titre d'exemple, extraire des renseignements de documents en format PDF et en d'autres formats peut prendre beaucoup de temps et StatCan a recours à des techniques de science des données pour automatiser ce processus d'extraction de renseignements. Un autre exemple est l'utilisation de la science des données en construction et en agriculture, afin de détecter le début de la construction de bâtiments ou de déterminer les superficies des serres à partir de l'imagerie satellite ou cartographique. L'objectif à long terme dans ces cas est de remplacer, en partie, une enquête existante et de réduire le fardeau de réponse.
Au CNRC, la science des données sert à contribuer à de nouvelles connaissances et propriétés intellectuelles, à la croissance économique et à un avenir plus sain pour le Canada. De nouvelles méthodes sont utilisées, par exemple, en bioinformatique pour la découverte de médicaments qui interrompent la croissance du cancer ou l'élaboration de diagnostics présymptomatiques de maladies liées à l'âge, comme la démence. La vision artificielle sert à la surveillance automatique de risques en matière d'ergonomie et de fatigue dans le secteur de la fabrication de pointe, ainsi que l'imagerie en temps réel dans le cadre de l'impression 3D de la fabrication additive volumétrique.
En matière d'obstacles, j'estime qu'il faut en faire plus pour accéder aux talents. Du fait de l'expansion de l'IA dans l'ensemble des secteurs d'activités, l'accès aux scientifiques des données et aux ingénieurs de données reste limité.
Il ne s'agit pas d'un blocage, mais d'un défi. Nous devons augmenter plus rapidement les rendements. Dans ce contexte, la collaboration est primordiale; nous ne pouvons pas faire cela seuls. Nous devons travailler avec d'autres innovateurs, le milieu universitaire, les entreprises et les partenaires internationaux. Au CNRC, par exemple, cela se fait par l'intermédiaire de réseaux pancanadiens portant sur des programmes de défis et par l'entremise de centres de collaboration dans les universités canadiennes. Nous travaillons de concert pour trouver des solutions créatives, pertinentes et durables en vue de résoudre les défis canadiens.
Il est également important de se concentrer vivement sur l'infrastructure de calcul, afin d'assurer de bons résultats au Canada. Les organisations continuent de progresser sur ce front, comme dans les domaines du développement de capacités infonuagiques et des grappes sur site. Nous avons besoin d'une infrastructure évolutive qui puisse soutenir des collaborations multipartites entre organisations.
Description : Image de Sevgui Erman
Texte dans l'image : sortez de votre zone de confort. Cela est important, car cela vous pousse à apprendre et, surtout, à accroître votre contribution personnelle.
Sevgui Erman, Directrice exécutive, Centre de recherche en technologies numériques, Conseil national de recherches Canada
En matière d'avenir, quelles occasions ou quels défis éventuels voyez-vous dans le domaine de la science des données au Canada?
Nous vivons une période palpitante et des occasions existent pour créer un meilleur avenir pour l'humanité. Dans le cas de la préservation de la santé de l'océan, par exemple, nous pouvons utiliser l'IA pour modéliser la contamination par des éléments pathogènes ou la visionique pour protéger et suivre les baleines. Au Canada, nous avons la possibilité de tirer parti de la diversité et de fournir aux organisations des perspectives uniques et des solutions créatives. Les équipes de la science des données sont d'excellents exemples de groupes hétérogènes en raison de la nature multidisciplinaire du travail. J'en ai été témoin à StatCan et j'en suis également témoin au CNRC. En technologies numériques, par exemple, des chercheurs ayant une formation en physique ont recours aux méthodes de traitement des signaux pour les recherches en biologie des systèmes aux fins de conception de nouvelles molécules et de nouveaux médicaments. Notre travail en synthèse vocale de langues autochtones rassemble une équipe diversifiée comprenant des chercheurs de collectivités autochtones. Leurs résultats démontrent à quel point la diversité contribue à l'innovation. Je pense qu'il s'agit d'une approche gagnante lors de l'établissement d'équipes : mettre sur pied des équipes diversifiées dont les antécédents professionnels sont variés, tout comme les origines, les cultures et les genres, ainsi que les personnes vivant avec un handicap, qui peuvent trouver des réponses uniques à des problèmes complexes.
L'IA éthique doit être au centre de notre travail, afin de fournir des solutions n'entraînant aucune discrimination, mais réduisant les préjugés. Il est important que les scientifiques des données passent en revue les résultats selon divers angles, afin de cerner d'éventuels préjudices et garantir les avantages pour la population canadienne. La transparence et la responsabilité vont de pair. Au Canada, des progrès substantiels ont été réalisés grâce à la directive du Secrétariat du Conseil du Trésor sur la prise de décisions automatisées. Les lignes directrices de StatCan concernant la qualité et l'apprentissage automatique sont un excellent outil pour les praticiens des données. Le projet de loi 27 récemment déposé sur le plan de mise en œuvre de la Charte du numérique permet de faire progresser l'engagement du Canada en matière d'IA responsable. Au CNRC, nous mettons sur pied un programme visant à faire progresser davantage les méthodes de transparence et d'explication, ainsi que la recherche en technologies de protection de la vie privée qui permettent de travailler sur des sources de données de nature plus délicates.
Quel conseil donneriez-vous aux personnes souhaitant poursuivre une carrière en science des données?
Maintenez le facteur humain au centre de tout ce que vous faites, votre équipe, vos collègues, vos partenaires. C'est ce qui compte le plus. L'écosystème au sein duquel vous évoluez détermine l'incidence que vous pouvez avoir. Le travail d'équipe est essentiel. Je suis très reconnaissante des occasions dont j'ai pu profiter et je continue à travailler avec des équipes et des collègues talentueux, intelligents et incroyables qui s'engagent à faire progresser la science et à créer une incidence positive pour la société.
Je crois également que des conversations directes et honnêtes sont un élément clé de notre réussite. Rien n'est plus précieux qu'une discussion ouverte, dès le départ, sur les défis potentiels et les risques dans toute entreprise et tout travail en commun, afin de trouver des solutions utiles et de tirer parti des expériences antérieures et de générer de nouvelles idées.
Mon conseil aux femmes en particulier est que même si la science des données est un domaine majoritairement masculin, les femmes devraient tout de même s'y investir. Leurs diverses perspectives et expériences de vie contribuent à un environnement plus riche, générant de nouvelles idées et favorisant la créativité. Je pense que nous avons besoin de sensibiliser les femmes aux occasions qui existent pour elles et j'encourage les filles à poursuivre des carrières et à aller jusqu'au bout de leur intérêt dans le domaine des sciences, des technologies, du génie et des mathématiques.
Au fil des années, quelle grande leçon (personnelle, pédagogique ou professionnelle) vous vient en tête que vous pourriez transmettre à nos lecteurs?
J'aimerais vous faire part de deux leçons. La première, c'est de sortir de sa zone de confort. Cela est important, car cela vous pousse à apprendre et, surtout, à accroître votre contribution personnelle. On peut commencer par se servir d'un nouvel outil, travailler dans un nouveau domaine spécialisé, utiliser un nouvel algorithme. Ce sont toutes des occasions de croissance et des éléments essentiels pour travailler dans un environnement à rythme rapide. J'ai travaillé dans les secteurs public et privé ainsi que dans le milieu universitaire, dans les domaines des télécommunications, de la production statistique et des technologies de l'information. À chaque étape de ce parcours, j'étais ouverte à l'idée d'apprendre des choses différentes et j'ai pu réellement apporter une contribution.
Chacune de ces expériences a contribué à me façonner en tant que professionnelle et à développer mon style de leadership. Elles m'ont permis d'avoir une écoute empathique, d'être inclusive et de rechercher des solutions consensuelles.
La deuxième leçon, c'est d'être motivée, de prendre des risques et de les assumer. En fait, c'est ce que de nombreux chercheurs sont invités à faire tôt dans leur carrière, lorsqu'ils utilisent de nouvelles technologies et travaillent pour faire évoluer la science. Je recommande une publication qui m'a inspirée lors de la création de l'Accélérateur de la science des données en 2017 et qui s'intitule The Lean Startup par Eric Ries. Ce livre fournit des conseils pratiques pour une expérimentation scientifique rapide intégrée au cycle de vie du développement de produits, en partant du principe que l'on puisse créer une « jeune entreprise » dans toute organisation ou tout environnement.
Avez-vous des mots inspirants à transmettre aux jeunes scientifiques des données?
Je pense qu'il est important d'être reconnaissant pour les petites choses qui nous rendent heureux. Il nous revient de faire de la place pour ces moments dans nos vies. Il y a trois ans, j'ai reçu un diagnostic de cancer du sein, qui a été décelé tôt. J'ai profité d'un excellent soutien médical ainsi que d'un soutien formidable de mes collègues. J'avais aussi ma famille aimante à mes côtés et j'ai donc été reconnaissante qu'une telle expérience s'avère positive. Le cancer m'a fait voir le monde sous un autre angle et m'a permis, en fait, de me concentrer sur ce qui compte le plus. J'ai cessé de m'inquiéter à savoir si j'étais bien équilibrée sur tous les fronts. J'ai plutôt appris à me faire une idée précise de ce à quoi je voulais consacrer du temps. Mon conseil est d'avoir le courage de ne pas entrer dans un quelconque moule et d'accepter d'être « en déséquilibre ». Je recommande également le livre Off Balance de Matthew Kelly.
Voici donc mes mots d'encouragement pour les jeunes scientifiques des données. Quelle est votre passion? Qu'est-ce qui vous stimule et qu'est-ce qui vous fait vraiment rêver? Je vous encourage à rêver grand, car votre passion est votre carburant. Vous faites partie de notre avenir. Vous apportez une nouvelle énergie et votre travail permettra la livraison de projets qui feront progresser la science et l'innovation. Par conséquent, autorisez-vous à tout bousculer et à être « en déséquilibre ».
Conclusion
Depuis mars 2022, Mme Erman dirige les programmes de recherche en technologies numériques, en se concentrant sur l'accélération de la découverte scientifique et l'innovation dans les domaines de la santé, de la fabrication de pointe, de l'économie bleue et de l'informatique quantique. Mme Erman est enthousiaste à l'idée de continuer à collaborer avec ses collègues, alors qu'ils utilisent la science des données pour créer une incidence significative au Canada et dans le monde.
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
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
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.
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.
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.
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 »
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 »
Le diagramme illustre l'agrégation des caractéristiques à plusieurs niveaux. Plus précisément, une variante de type SETR-MLA.
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.
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.
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
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
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
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
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 (polynomiale) à partir de ses données , il peut les chiffrer sous forme de cryptogrammes, désignés , les envoyer de façon sécuritaire sur le nuage qui calcule de façon homomorphe pour obtenir et renvoie les résultats au détenteur de données, qui peut déchiffrer et visualiser . 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.
Une illustration d'un flux de travail typique du CH. Les données,, sont chiffrées, donc elles sont placées dans une boîte verrouillée . Cette valeur est envoyée au tiers qui effectuera le traitement informatique (le nuage). Les engrenages tournent et le chiffrement d'entrée se transforme en chiffrement de sortie, , 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.
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.
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 . Il est relativement simple de chiffrer chaque valeur en cryptogramme , puis d'envoyer la liste de cryptogrammes 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é 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 , . En utilisant la mise en paquet CKKS, nous pouvons mettre en paquet cette liste entière en un seul cryptogramme, désigné par . Maintenant, les opérations d'addition et de multiplication homomorphes ont lieu par emplacement selon le principe du SIMD, c'est‑à‑dire que, si est chiffré , nous pouvons alors calculer l'addition homomorphe pour obtenir
où est unNote de bas de page 3 chiffrement de la liste . 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.
Une illustration de la mise en paquet. Quatre valeurs, 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 , que ce passe-t-il si je voulais ? Nous avons accès à une opération appelée rotation. La rotation prend un cryptogramme qui représente le chiffrement de et le transforme en , qui représente le chiffrement de , 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 , nous obtenons
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 à partir de l'espace du texte clair en un polynôme de texte brut . Les données de 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 peut être chiffré en cryptogramme 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 . La première valeur d'intérêt est le total,, obtenu en additionnant toutes les valeurs dans la liste. Après avoir chiffré en un cryptogramme mis en paquet , nous pouvons simplement ajouter des rotations du cryptogramme à 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 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 dans un emplacement.
Ensuite, nous voulons la moyenne, . Pour faire cela, nous chiffrons la valeur en cryptogramme et l'envoyons avec la liste . 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, , où nous soustrayons la moyenne par , multiplions le résultat par lui-même, calculons de nouveau le total, puis le multiplions de nouveau par le cryptogramme .
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 : et . Nous pouvons les multiplier de manière homomorphe pour obtenir le cryptogramme . 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é , le résultat serait touché par cette discordance.
Il faudrait d'abord remettre à l'échelle le cryptogramme . 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 a descendu d'un niveau, ce qui signifie que le cryptogramme a commencé au niveau , et après la remise à l'échelle, il se trouve sur le niveau . La valeur 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 qui a une quantité normale de bruit, mais qui se trouve au niveau , et le fraîchement chiffré qui est toujours au niveau . 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 à 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.
Une illustration des niveaux. À gauche nous pouvons voir le niveau sur lequel chaque cryptogramme se trouve : de haut en bas, nous avons les niveaux , et . Les valeurs nouvellement chiffrées , et se trouvent toutes au niveau tout en haut. Après la multiplication, descend au niveau . Si nous voulons multiplier par , nous devons d'abord descendre au niveau . Le produit qui en résulte, , se trouve au niveau .
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 -gramme, où é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 -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 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
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
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.
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é
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
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
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.
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é.
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.
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 et , où :
est la probabilité que les valeurs d'une colonne donnée ne correspondent pas, mais que les enregistrements soient les mêmes.
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
où :
est la probabilité d'un appariement d'enregistrements.
est la probabilité d'appariement de certains éléments d'information.
En développant le dénominateur,
où :
est la probabilité que deux enregistrements ne correspondent pas, ou .
Comme nous avons plusieurs colonnes ou plusieurs lignes de données disponibles, nous pourrions utiliser et pour calculer les probabilités et de la e colonne.
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 et 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 et 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 :
Segmentez en unités lexicales les mots dans la colonne et comptez les occurrences de chaque unité lexicale dans l'ensemble de données.
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
…
…
Répétez la procédure de segmentation en unités lexicales et de dénombrement pour un autre ensemble de données.
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%
Utilisez cette option pour estimer la probabilité pour chaque unité lexicale, où et représentent le nombre d'occurrences de l'unité lexicale t dans l'ensemble de données a ou b, et et représentent le nombre d'enregistrements dans l'ensemble de données a et b.
Estimez la probabilité m dans son ensemble ou indépendamment pour chaque unité lexicale.
Joignez le fichier fusionné des unités lexicales dénombrées aux deux ensembles de données originaux, en calculant la probabilité que deux enregistrements soient identiques étant donné qu'ils ont une unité lexicale en commun.
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
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
É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 :
où le domaine d'image est un espace compact et un sous-ensemble simplement connexe de 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 . Dans cette représentation d'image, nous pouvons définir conceptuellement une segmentation Z de l'image I comme étant la carte suivante :
où 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)
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 qui est un ensemble de variables aléatoires indépendantes avec un support et l'on suppose que est une variable aléatoire avec un support représentant la valeur d'intensité et l'affectation de mélange pour un élément de domaine d'image respectivement. Soit un vecteur de variable aléatoire avec un support comme probabilités de mélange, où la entrée indique la probabilité d'appartenance au segment d'image. En supposant une configuration bayésienne, est une variable latente telle que cet événement indique que appartient au segment d'image et qu'il existe une loi a priori de Dirichlet sur les probabilités de mélange, à savoir La fonction de densité conjointe de probabilité d'affectation de segment et d'intensité à une valeur donnée a la forme suivante :
où 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
pour certains and 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 et be the mean and variance intensity estimate for the segment d'image. Nous pouvons alors définir une fonctionnelle qui correspond à la probabilité négative du modèle et qui a la forme suivante :
où est l'ensemble de sommets adjacents à est une fonction indicatrice et 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 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 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 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 où et sont respectivement le MAP de la segmentation et l'image. L'estimation par le MAP du MAP de la segmentation aurait la forme suivante :
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 :
où est une densité approximative et 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
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 :
couches de convolution, où un noyau (filtre) est convolué sur des entrées pour extraire une hiérarchie de caractéristiques;
couches non linéaires, qui permettent de mapper les entrées aux espaces de caractéristiques;
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
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 et , le coefficient de Dice est calculé comme suit
Le coefficient de Jaccard (J) — une autre méthode d'évaluation de la segmentation — est lié au coefficient de Dice par l'expression suivante
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 et , qui sont des sous-ensembles non vides d'un espace métrique , la distance de Hausdorff moyenne est calculée comme suit :
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.
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
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).
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.
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
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
'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).
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.
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.
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]).
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 :
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).
Paramètres : également une paire clé-valeur pouvant servir à journaliser les paramètres du modèle.
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.
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.
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
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
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
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
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
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
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.
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
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.
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 : 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 : 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.
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
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 :
Fusion des balises « LOC » et « GPE » en une seule balise « LOC »;
Ajout d'une balise « LEVEL » qui indique les classifications professionnelles;
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 :
Créer un modèle de prédiction en utilisant une partie des données d'entraînement étiquetées.
Envoyer une version sans étiquette d'une autre partie des données d'entraînement au modèle et prédire les entités.
Comparer les étiquettes prédites et les étiquettes vraies.
Mettre à jour le modèle pour représenter les étiquettes inexactes. Le volume de changements entre les modèles est appelé « gradient ».
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
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
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.
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
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.
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.
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.
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.
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 (des points de données) est donné.
Trouver des directions orthogonales , plus précisément, des sous-espaces unidimensionnels dans le long desquels 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 . Pour chaque sous-espace orthogonal unidimensionnel, choisir un vecteur unitaire dans ce sous-espace. Les vecteurs unitaires mutuellement orthogonaux résultants sont les composantes principales ordinaires et elles forment une base orthonormale pour .
Réécrire chaque , en matière de composantes principales ordinaires. Les coefficients de cette combinaison linéaire sont les scores des composantes principales ordinaires de 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 est remplacé par un sous-espace (éventuellement de dimension infinie) des fonctions intégrables en définies sur un certain intervalle (de temps) .
Le produit interne standard sur est remplacé par le produit interne inner product sur F, c.-à-d. pour ,
Pourquoi l’ACPF peut-elle saisir des tendances temporelles?
La raison en est que la « géométrie » de l’intervalle est intégrée dans la définition même du produit interne . Plus concrètement, le processus d’intégration des fonctions sur 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 permet à son tour au produit interne 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 de séries chronologiques observées soit défini sur un ensemble commun de points temporels dans un certain intervalle de temps p. ex. dans la saison de croissance d’une certaine année civile), où et sont respectivement le point temporel commun initial et final.
Interpoler chaque série temporelle donnée dans pour obtenir une fonction définie sur . On obtient un ensemble fini de fonctions définies sur l’intervalle commun , dont chacune est une interpolation d’une des séries chronologiques observées originales dans .
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 de fonctions (interpolations de séries chronologiques dans dans son ensemble. Notez que chaque CPF est elle-même une fonction définie sur (Wang et al. 2016).
Ensuite, pour chaque fonction dans , 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 , le CPF et les scores CPF peuvent être organisées comme suit :
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 utilisant le mécanisme de l’ACPF.
Enfin, notons qu’une fois que la fonction moyenne globale et les CPF de ont été calculés (ou « apprises »), elles peuvent être utilisées pour calculer les scores de nouvelles fonctions définies sur , 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 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 . Nous désignons la collecte des séries chronologiques résultantes par .
Chaque série temporelle dans a été interpolée à l’aide de B-splines. Nous désignons la collecte de fonctions résultante par .
La fonction moyenne globale et l’ensemble des composantes principales fonctionnelles ont été calculés (« appris ») à partir de 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
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.
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 (en comptant à partir du haut) visualise la CPF. Rappelons que chaque CPF est, avant tout, une fonction (continue) du temps, considérée comme un vecteur dans un certain espace vectoriel des fonctions de (intégrable en ) 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 à 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 de la composante principale fonctionnelle , où est la valeur propre correspondant à . La courbe bleue est obtenue en soustrayant le même multiple de 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
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 :
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.
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
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).
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.
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