Contexte

Les niveaux d’eau sont mesurés par des capteurs qui peuvent être défaillants et fournir par conséquent une mesure erronée. Ces erreurs de mesures peuvent être très impactantes si non détectées rapidement. En effet, des décisions telles que des déversements sont prises en se basant sur ces données. Les impacts pour Hydro-Québec peuvent être une perte financière et pour le citoyen un risque aux abords des cours d’eau impactés par les déversements. L'objectif est de proposer un outil de surveillance des capteurs de niveau d'eau. Cet outil lancera des alertes en cas de suspicion de mesure défaillante et proposera de corriger les valeurs aberrantes par des valeurs corrigées.

Solution proposée

Nous avons implémenté une solution se basant sur 3 composants:

  • Un algorithme de régression
  • Un GAN
  • Un système de règles

Chacun de ces composants travaillent de concert pour fournir à l'utilisateur l'information qui lui permettra de valider les anomalies détectées. Le résultat en sortie est une table qui liste toutes les anomalies par type ainsi qu'un signal reconstitué.

Nous avons également créé une interface utilisateur qui permet de valider les anomalies afin de permettre un apprentissage supervisé dans un prochain temps.

Comment la solution marche

Le problème proposé est non supervisé dans le sens où nous ne disposons pas des annotations sur les anomalies passées. Pour outrepasser cette limitation, nous avons utilisé un algorithme de régression qui permet de reconstituer une série temporelle à partir des capteurs à proximité ainsi que les données météorologiques. Puis, en comparant avec le signal du capteur cible, et d'un calcul de distance, nous pouvons détecter des anomalies de tous types. Cependant, cette approche ne marche qui si on dispose des capteurs à proximité du capteur cible. Dans le cas où un capteur ne possède pas de redondance avec des capteurs à proximité, nous avons utilisé le classifieur entrainé à partir d'un GAN (Generative Adversarial Networks). Ce sont des algorithmes plus généralement utilisés en traitement d'image mais qui se prêtent très bien aux série temporelles. En effet, le classifieur apprend à différencier des séries temporelles générées artificiellement des séries temporelles réelles. Finalement, Nous avons également introduit un système de règles qui permet à l'utilisateur de jouer sur les seuils à appliquer aux deux algorithmes précédents ainsi que certains paramètres qui permettent de définir un pic (nombre d'écart types à la moyenne), la durée minimale pendant laquelle une valeur est considérée comme gelée.

Défis rencontrés

Le principale défi a été de trouver l'architecture du GAN ainsi que ses hyper paramètres afin de permettre une convergence.

Acomplissements dont nous somme fier

  • Nous avons réussi à créer un interface fonctionnelle qui illustre bien la solution d'un point de vu utilisateur.
  • Nous avons réussi à mettre au point une solution innovante sur des données et répondre a une problématique réelles.
  • Nos premiers résultats sont encourageant et nous permettent de détecter et corriger de nombreuses anomalies.

Ce que nous avons appris

Nous avons eu l'occasion d'apprendre un nouveau domaine et de tester différentes approches pour la détection d'anomalies dans les séries temporelles.

Prochaines étapes

Une validation de la méthode avec des experts Une application en temps réel pour aider l'opérateur dans sa prise de décision

Built With

Share this project:

Updates