Vous êtes sur la page 1sur 38

Université de lorraine

Spécialité Ingénierie Système Homme Machine

Département Energie Electrique, Electronique, Automatique

Machine Learning appliqué à la compensation des dérives


des capteurs dans les nez électroniques

Réalisé par : Encadré par :

Yamina KHENTACHE M. E.LOSSON

Siham KOUCHE

Année universitaire 2022/2023


Table des matières
I. Généralités sur les nez électroniques ........................................................................................... 1
I.1 Introduction ........................................................................................................................... 1
I.2 Le nez électronique ................................................................................................................ 1
I.3 Principe de fonctionnement .................................................................................................. 2
I.4 Le réseau multicapteurs ........................................................................................................ 4
I.5 Dérives des capteurs dans les nez électroniques ................................................................. 4
I.6 Conclusion .............................................................................................................................. 6
II. Collecte des données et compensation des dérives des capteurs de gaz ................................ 7
II.1 Introduction ........................................................................................................................... 7
II.2 Collecte de données ............................................................................................................... 7
II.2.1 Choix des capteurs......................................................................................................... 7
II.2.2 Choix des gazes .............................................................................................................. 8
II.2.3 Le choix des paramètres extraits des capteurs ........................................................... 8
II.2.4 Constitution des batch................................................................................................. 10
II.3 Application de l’analyse en Composantes Principales (ACP) ......................................... 11
II.4 L'apprentissage automatique ............................................................................................. 14
II.4.1 Apprentissage d’ensemble .......................................................................................... 14
II.4.2 Apprentissage par transfert de domaine ................................................................... 16
II.5 Conclusion ............................................................................................................................ 17
III. Application des méthodes d’apprentissage automatique pour compenser les dérives des
capteurs ................................................................................................................................................ 18
III.1 Introduction ......................................................................................................................... 18
III.2 Choix de l’outil..................................................................................................................... 18
III.3 Application de la méthode d’ensemble .............................................................................. 19
III.3.1 Programme................................................................................................................... 19
III.3.2 Résultats de simulation ............................................................................................... 22
III.4 Application d’un réseau de neurones convolutifs (TDACNN) ........................................ 24
III.4.1 Chargement des données ............................................................................................ 24
III.4.2 Définition de l’architecture de la TDACNN.............................................................. 24
III.4.3 Compilation de la TDACNN....................................................................................... 26
III.4.4 Entraînement du modèle ............................................................................................. 26
III.4.5 Activation de la seconde couche du modèle TDACNN............................................. 27
III.4.6 Calcul de la précision .................................................................................................. 27
III.4.7 Application de l’ACP .................................................................................................. 28
III.5 Comparaison entre les deux méthodes .............................................................................. 30
III.6 Conclusion ............................................................................................................................ 31
Liste des figures
Figure I-1: Comparaison entre le nez électronique et le nez humain ..................................................... 1
Figure I-2: Principe de fonctionnement du nez électronique ................................................................. 3
Figure II-1: Les différents paramètres extraits des capteurs [10] ........................................................ 10
Figure II-2: Représentation de l'ACP des deux premières composantes principales des 10 batchs de
l'ensemble de données ........................................................................................................................... 13
Figure II-3: Méthode d’ensemble avec des classificateur SVM .......................................................... 15
Figure II-4: Apprentissage par transfert de domaine par CNN ............................................................ 16
Figure III-1: Performances de l’apprentissage d’ensemble des SVMs ................................................ 23
Figure III-2: Performances de l’apprentissage avec TDACNN ........................................................... 28
Figure III-3: Tracé de l’ACP avec projection par le TDACNN .......................................................... 29

Liste des tableaux


Tableau 1 :Détails sur les données collectées ...................................................................................... 11
Tableau 2 : Précision de la classification avec TDACNN ................................................................... 27
Introduction générale

Les capteurs de gaz sont des dispositifs électroniques largement utilisés pour la détection de
gaz dans diverses applications industrielles, environnementales et médicales. Les nez
électroniques, qui sont des dispositifs qui imitent la capacité de détection des odeurs du nez
humain, utilisent également des capteurs de gaz pour détecter et identifier des substances
odorantes.

Cependant, les capteurs de gaz sont sujets à des dérives, c'est-à-dire des variations dans leur
réponse qui peuvent conduire à des erreurs de mesure. Ces dérives peuvent être causées par des
facteurs tels que les fluctuations de température, l'humidité, l'usure des capteurs et les
interférences avec d'autres gaz. Les dérives peuvent entraîner une perte de précision et de
fiabilité dans la détection des gaz.

Pour compenser ces dérives, des approches basées sur l'utilisation du Machine Learning ont été
développées. Ces approches permettent de créer des modèles de prédiction qui peuvent prendre
en compte les dérives et corriger les mesures des capteurs en temps réel. En utilisant des
algorithmes d'apprentissage automatique, ces modèles peuvent être entraînés à partir de
données de capteurs précédentes pour prédire la réponse attendue des capteurs dans des
conditions de mesure données [1].

Des études précédentes ont utilisé un ensemble de données de relevés de capteurs de gaz sur 36
mois pour tester des méthodes de machine Learning permettant de compenser ces dérives. Le
projet consiste à reproduire et à améliorer ces études en utilisant les dernières avancées en
matière de machine Learning [9].

Le premier chapitre sera focalisé sur l’étude générale des nez électroniques et la dérive des
capteurs.

Dans le second chapitre, on va aborder la collecte d’un ensemble de données d’un réseau de
capteur, et la compensation des dérives de ce dernier.

Le troisième chapitre sera consacré pour l’application des techniques avancées de Machine
Learning, pour contrer les dérives des capteurs dans les nez électroniques.
I. Généralités sur les nez électroniques

I.1 Introduction
Les nez électroniques sont souvent utilisés dans les applications de détection de gaz car ils
peuvent détecter rapidement et avec précision la présence de composés organiques volatils
spécifiques dans l'air.

Dans ce premier chapitre nous allons parler du nez électronique, de son principe de
fonctionnement, et des dérives de ses capteurs.

I.2 Le nez électronique


Le nez électronique est un appareil électronique conçu pour imiter la capacité du nez humain à
détecter et identifier une large gamme d'odeurs, y compris les gaz et les composés organiques
volatils, dans l'environnement [2].

Connu aussi sous le nom de système olfactif artificiel, cet appareil permet de réaliser une
analyse qualitative et quantitative rapide et précis des gaz ou des odeurs. À l'heure actuelle,
les nez électroniques ont été largement étudiés et appliqués dans le diagnostic médical [3], la
détection de la qualité des aliments [4], la surveillance environnementale [5], etc.

Figure I-1: Comparaison entre le nez électronique et le nez humain

1
1. Surveillance de l'environnement : le nez électronique peut être utilisé pour surveiller
la qualité de l'air dans divers environnements, tels que les maisons, les bureaux et les
installations industrielles, afin de garantir que l'air est exempt de gaz nocifs.

2. Industrie alimentaire et des boissons : le nez électronique peut être utilisé pour
détecter la présence de gaz d'altération et d'autres composés volatils produits lorsque les
aliments et les boissons se gâtent. Cela peut contribuer à améliorer la sécurité
alimentaire et à prolonger la durée de conservation des produits.

3. Diagnostic médical : Le nez électronique peut être utilisé pour détecter et diagnostiquer
diverses conditions médicales, telles que les infections, les problèmes respiratoires et
les cancers, sur la base du schéma des composés volatils exhalés par les patients.

4. Contrôle des processus industriels : Le nez électronique peut être utilisé pour
surveiller les processus industriels, tels que ceux des industries chimiques et
pétrochimiques, pour s'assurer qu'ils fonctionnent dans des limites sûres et acceptables,
et pour détecter la présence de fuites potentielles.

I.3 Principe de fonctionnement


Le nez électronique fonctionne en utilisant une combinaison de capteurs chimiques pour
détecter et identifier diverses odeurs ou gazes. Il utilise ensuite des algorithmes logiciels pour
traiter les données collectées par les capteurs.

Son fonctionnement et définit comme suit :

1. Détection : Le nez électronique se compose d'un ensemble de capteurs chimiques,


chacun étant conçu pour répondre à différents composés organiques volatils (COV)
présents dans une odeur. Les capteurs sont exposés à l'odeur et les signaux électriques
générés par chaque capteur sont collectés et stockés.

2
2. Acquisition de données : les données collectées par les capteurs sont transférées au
système d'acquisition de données, qui stocke les données pour un traitement ultérieur.
3. Traitement des données : L'unité de traitement des données du nez électronique utilise
des algorithmes pour analyser les données recueillies par les capteurs et identifier
l'odeur en fonction de son motif unique. Cela peut être fait en utilisant des techniques
d'apprentissage automatique telles que l'analyse en composantes principales (PCA),
l'analyse discriminante linéaire (LDA) ou les réseaux de neurones artificiels (ANN)…

4. Reconnaissance de modèles : les algorithmes utilisés dans l'unité de traitement des


données analysent le modèle de réponses des capteurs à différentes odeurs et le
comparent à une base de données d'odeurs connues. L'odeur avec la correspondance la
plus proche est alors identifiée comme l'odeur en question.

5. Sortie : la sortie finale du nez électronique est l'odeur identifiée, qui peut être affichée
sur un écran ou émise sous forme de signal vers un appareil.

Figure I-2: Principe de fonctionnement du nez électronique

3
I.4 Le réseau multicapteurs
Les réseaux multicapteurs dans les nez électroniques se composent de plusieurs types de
capteurs de gaz capables de détecter différentes molécules de gaz. L'utilisation de plusieurs
capteurs permet au nez électronique d'identifier une large gamme de gaz avec une précisio n
et une spécificité élevées. Par exemple, certains nez de gaz électroniques utilisent des
capteurs d'oxyde métallique, des capteurs à polymère conducteur ou des microbalances à
quartz, pour détecter la présence de différents gaz. Chacun de ces capteurs a ses propres forces
et faiblesses, et en utilisant une combinaison de ces capteurs, le nez électronique peut
atteindre une plus grande précision et de meilleures performances.

L'un des principaux avantages des réseaux multicapteurs dans les nez électroniques est leur
capacité à améliorer la sensibilité et la spécificité de la mesure. En utilisant plusieurs
capteurs, le nez électronique peut confirmer la présence ou l'absence d'un gaz, réduisant ainsi
le risque de résultats incorrects. De plus, les réseaux multicapteurs peuvent également fournir
une analyse plus détaillée du mélange gazeux, permettant une meilleure caractérisation et
identification des gaz présents.

En conclusion, les réseaux multicapteurs dans les nez de gaz électroniques jouent un rôle
crucial dans l'amélioration des performances et de la précision de ces dispositifs.

Dans cette phase, on présente au système un ensemble de gaz individuel ou de mélanges


gazeux connus qui servent d’étalons. Le système enregistre et traite l’ensemble de tous les
signaux des capteurs. La signature de chaque gaz ou mélange gazeux est mémorisée.

I.5 Dérives des capteurs dans les nez électroniques


La dérive des capteurs est un problème bien connu dans le domaine de la reconnaissance des
gaz et des systèmes nez électroniques. Il fait référence à la détérioration progressive des
performances des classificateurs utilisés pour la reconnaissance des gaz au fil du temps. Il existe
deux sources principales de dérive du capteur [6,7]: la dérive de premier ordre (également
appelée dérive réelle) et la dérive de second ordre.

 La dérive de premier ordre est causée par les processus d'interaction chimique et
physique des analytes chimiques en phase gazeuse qui se produisent au niveau de la

4
microstructure du film de détection. Cette interaction peut entraîner un vieillissement
(réorganisation de la surface du capteur dans le temps) ou un empoisonnement (liaison
irréversible due à une contamination externe).

 La dérive de second ordre (ou dérive du système de mesure) est causée par des
altérations externes et incontrôlables du système d'exploitation expérimental. Cela
inclut les changements dans l'environnement (tels que les variations de température et
d'humidité), le bruit du système de livraison de mesure (tel que la condensation du tube
ou le conditionnement de l'échantillon) et les effets thermiques et de mémoire (tels que
l'hystérésis ou les restes de gaz précédents) [8,9].

Pour faire face aux dérives des capteurs, les chercheurs ont développé diverses techniques,
notamment :

 Calibrage : Le calibrage régulier du capteur peut aider à corriger toute dérive pouvant
survenir au fil du temps. Cela peut être fait en utilisant une référence connue ou en
utilisant une méthode d'ajustement des moindres carrés pour trouver l'équation qui
décrit la relation entre la sortie du capteur et la valeur réelle.

 Compensation de température : Certains capteurs peuvent avoir une dérive causée par
les changements de température. Dans ces cas, l'utilisation d'un capteur de température
en conjonction avec le capteur principal peut aider à compenser toute dérive causée par
les changements de température.

 Traitement du signal numérique : des techniques de traitement du signal numérique


telles que le filtrage de Kalman, l'ajustement des moindres carrés et la moyenne du
signal peuvent être utilisées pour corriger la dérive du capteur. Ces techniques peuvent
aider à réduire l'impact de la dérive en supprimant l'effet du bruit aléatoire et en
supprimant la composante de dérive à long terme.

5
 Compensation matérielle : certains capteurs ont des techniques de compensation
matérielle intégrées, telles que les détecteurs de température à résistance (RTD), qui
peuvent aider à compenser la dérive.

 La mise en œuvre d'algorithmes d'apprentissage automatique pour compenser la dérive.


Par exemple, des algorithmes tels que des algorithmes d'apprentissage en ligne et des
algorithmes d'apprentissage incrémentiel peuvent être utilisés pour mettre à jour en
continu le modèle du nez électronique à mesure que les capteurs dérivent, améliorant
ainsi sa précision au fil du temps.

Il est important de noter que toutes les dérives du capteur ne peuvent pas être complètement
compensées et, dans certains cas, il peut être nécessaire de remplacer le capteur si la dérive
devient trop importante.

I.6 Conclusion
Dans ce premier chapitre nous avons étudiés le système du nez électronique, les différentes
parties de sa structure, ainsi que son fonctionnement.

Nous avons aussi abordé le sujet des dérives des capteurs du nez électronique, et nous avons vu
différentes méthodes pour compenser ces dérives.

Dans notre étude, on va s’intéresser à la méthode de compensation des dérives des capteurs par
la mise en œuvre d'algorithmes d'apprentissage automatique que nous allons voir en détails dans
le chapitre suivant.

6
II. Collecte des données et compensation des dérives des capteurs
de gaz

II.1 Introduction

La dérive des caractéristiques des capteurs est un défi important lors de l'utilisation d'un réseau
de capteurs de gaz. Pour résoudre ce problème, un ensemble de données contenant des lectures
de plusieurs capteurs de gaz sur une période de 36 mois [11] a été utilisé comme référence pour
de nombreuses études.

Dans ce chapitre, nous allons aborder ces études visant à évaluer l'efficacité des méthodes
d'apprentissage automatique pour compenser la dérive des capteurs et les changements de
signaux qui en résultent au fil du temps.

II.2 Collecte de données

Pour la collecte de données, un montage expérimental a été mis en œuvre. Pour cette expérience,
un réseau de capteurs de gaz à semi-conducteur à oxyde métallique composé de 16 capteurs a
été utilisé. Les capteurs ont été connectés à un système à flux continu contrôlé par ordinateur.
Le système utilisait trois contrôleurs de débit massique, qui se connectent à des bouteilles de
gaz sous pression contenant six substances gazeuses pures distinctes (ammoniac, acétaldéhyde,
acétone, éthylène, éthanol et toluène) à diverses concentrations. Chacun des capteurs contient
8 caractéristiques, de sorte qu'un seul échantillon peut être représenté comme un vecteur de 128
dimensions (16 × 8) [11].

II.2.1 Choix des capteurs

Les capteurs de gaz à semi-conducteurs avec des revêtements d'oxyde métallique sont
largement utilisés pour la détection de gaz en raison de leur sensibilité élevée, de leur sélectivité
et de leur faible coût. Le processus de sérigraphie permet le dépôt d'un mince film d'oxyde
métallique sur la surface du capteur, qui agit comme une couche de détection qui interagit avec
les molécules de gaz. Les propriétés du film d'oxyde métallique, telles que son épaisseur et sa

7
composition, peuvent être adaptées pour améliorer la sélectivité du capteur vis-à-vis de gaz
spécifiques.

L'utilisation d'un réseau de plusieurs capteurs de gaz peut offrir plusieurs avantages par rapport
à un seul capteur. Premièrement, cela peut augmenter la sensibilité et la précision globales du
système de détection de gaz. Deuxièmement, il peut permettre la détection et l'identification de
plusieurs gaz simultanément. En analysant les modèles de réponse des capteurs de gaz dans le
réseau, il est possible de déterminer le type et la concentration de chaque gaz présent dans
l'échantillon. Enfin, l'utilisation d'un réseau de capteurs de gaz peut améliorer la robustesse et
la fiabilité du système. Si un capteur tombe en panne ou devient peu fiable en raison de la
dérive, les autres capteurs du réseau peuvent compenser la perte de données.

II.2.2 Choix des gazes

Le choix d'utilisation des gazes : ammoniac, acétaldéhyde, acétone, éthylène, éthanol et toluène
dans cette application revient au fait qu'ils se trouvent couramment dans divers environnements
environnementaux et industriels et peuvent indiquer des problèmes de qualité de l'air ou de
contrôle des processus. De plus, ces gazes représentent une gamme variée de composés
chimiques avec différentes propriétés, telles que la polarité et le poids moléculaire, ce qui peut
aider à évaluer la sélectivité et la sensibilité du réseau de capteurs de gaz. Dans l'ensemble,
l'étude de la réponse du réseau de capteurs de gaz à ces gazes peut fournir des informations
précieuses sur les performances et les capacités de la technologie de détection.

II.2.3 Le choix des paramètres extraits des capteurs

Chacun des capteurs utilisés contient 8 paramètres. L’utilisation de plusieurs paramètres permet
d’améliorer la précision de la détection de gaz par rapport à l'utilisation d'un seul paramètre.

Ces derniers ont été choisis car ils sont couramment utilisés dans la littérature pour caractériser
la réponse transitoire des capteurs de gaz à oxyde métallique (MOX).

On distingue deux types de caractéristiques:

 Les deux premières caractéristiques de chaque capteur sont la fonction de régime


permanent (ΔR) et sa version normalisée : ce sont des paramètres standards utilisés
pour quantifier la réponse des capteurs MOX. Ils représentent la résistance de base du

8
capteur et la variation maximale de résistance lors de l'exposition à un gaz,
respectivement. Ces paramètres sont utiles pour identifier le type de gaz auquel le
capteur est exposé, car différents gaz produisent des réponses différentes dans la
résistance de base du capteur et le changement maximal de résistance.

 Les six caractéristiques restantes sont les caractéristiques de la moyenne mobile


exponentielle (ema α) : elles ont été choisies pour capturer la dynamique de la réponse
transitoire du capteur, avec trois caractéristiques pour la partie montante et trois pour
la partie décroissante de la réponse du capteur. Les valeurs du paramètre de lissage α
utilisées pour calculer les caractéristiques (ema) étaient de 0,001, 0,01 et 0,1. Ces
dernières permettent d’obtenir des informations sur l'évolution temporelle de la
réponse, telles que le temps nécessaire pour atteindre la réponse maximale et le temps
de décroissance.

9
Figure II-1: Les différents paramètres extraits des capteurs [10]

II.2.4 Constitution des batch

L'ensemble de données collecté pour cette étude comprend 13 910 enregistrements de paires
type de gaz-concentration, qui ont été échantillonnés sans ordre spécifique sur une période de
36 mois. Il est à noter que certains mois du tableau ne contiennent aucune mesure pour un ou
plusieurs gaz.

Les mesures recueillies sur 36 mois ont été regroupées pour former 10 lots. La répartition des
mesures dans chaque lot a été conçue pour être la plus homogène possible et selon la séquence
temporelle pour simuler la dérive du capteur. Le tableau 1 fournit des informations sur le
nombre de mesures dans chaque lot.

10
(
Total

Lot 1 (Mois 1,2) 83 30 70 98 90 74 445


Lot 2 (Mois 3,4,8,9,10) 100 109 532 334 164 5 1244
Lot 3 (Mois 11,12,13) 216 240 275 490 365 0 1586
Lot 4 (Mois 14,15) 12 30 12 43 64 0 161
Lot 5 (Mois 16) 20 46 63 40 28 0 197
Lot 6 (Mois 17,18,19,20) 110 29 606 574 514 467 2300
Lot 7 (Mois 21) 360 744 630 662 649 568 3613
Lot 8 (Mois 22,23) 40 33 143 30 30 18 294
Lot 9 (Mois 24,30) 100 75 78 55 61 101 470
Lot 10 (Mois 36) 600 600 600 600 600 600 3600

Tableau 1 :Détails sur les données collectées

II.3 Application de l’analyse en Composantes Principales (ACP)

L'ACP est une méthode de réduction de la dimensionnalité des données en identifiant les
modèles ou caractéristiques sous-jacents les plus importants dans les données. Dans le cas des
nez électroniques, l'ACP peut être utilisée pour identifier les gazes sous-jacents ou les modèles
qui sont responsables des réponses du capteur.

L'ACP fonctionne en calculant la matrice de covariance des réponses des capteurs puis en
effectuant une décomposition propre de cette matrice pour identifier les composantes
principales. Les composantes principales sont ensuite utilisées pour transformer les réponses
des capteurs en un nouvel ensemble de variables orthogonales et non corrélées. Ce nouvel
ensemble de variables peut être utilisé pour identifier et supprimer toute dérive du capteur,
permettant des lectures plus précises et plus fiables.

Afin de visualiser la répartition des gazes, nous avons appliqué l’ACP à l’ensemble des données
collectées qui sont présentés par le Tableau1. Pour ce fait, nous avons utilisé Python sous le
logiciel Spyder comme suit :

Lecture des données :

Les données sont des fichiers avec une extension « .dat », avec un format sous forme « y x:v »
où :

 y : représente la classe à laquelle appartient chaque point de données (1 : Ethanol ; 2 :


Ethylène ; 3 : Ammoniac ; 4 : Acétaldéhyde ; 5 : acétone ; 6 : toluène).
 x : représente le numéro de la caractéristique.

11
 v : représente la valeur réel de la caractéristique.

Par exemple :

1 1 : 15596. 162100

y x v

Dans un premier temps, nous avons essayé de lire les données avec Excel en utilisant la
bibliothèque ‘pandas’ comme suit :

data = pd.read_excel("batch1.bat")

Nous avons rencontré des problèmes de formatage et de structure au niveaux des données, car
les fichiers ‘.dat’ contiennent des caractères ( : ) c.-à-d. un codage non standard, ce qui a entraîné
des problèmes d'importation de données.

Pour résoudre ce problème, nous avons opté pour la librairie LibSVM qui est une bibliothèque
logicielle pour la classification et la régression de la machine à vecteurs de support (SVM) qui
peut gérer divers formats de fichiers, y compris les fichiers « .dat ».

from sklearn.datasets import load_svmlight_file

X, y = load_svmlight_file('batch1.dat')

 La fonction ‘load_svmlight_file’ lit le fichier 'batch1.dat'et renvoie la matrice de


caractéristiques ‘X’ et le vecteur cible ‘y’ du jeu de données.

Une fois les données générées, nous avons appliqué l’ACP comme suit :

# Application de l’ACP
pca = PCA(n_components=2)
X_pca = pca.fit_transform(X)

 ‘pca = PCA(n_components=2’ : Crée une instance de la classe ACP à partir de la


bibliothèque scikit-learn. Nous avons défini le paramètre 'n_components’ sur 2, ce
qui signifie que nous souhaitons conserver uniquement les 2 premières composantes
principales.
 ‘fit_transform’ : Cette méthode adapte le modèle PCA aux données d'entrée X et
renvoie les données transformées X_pca, où chaque ligne représente une observation
dans l'ensemble de données d'origine, mais le nombre de colonnes (caractéristiques) a

12
été réduit à 2, ce qui correspond au nombre de composantes principales. Cette méthode
permet d’ajuster le modèle PCA sur les données d'entrée et transformer les données dans
un nouvel espace de faible dimension.

Le résultat de la simulation de l’ACP pour les 10 batchs est présenté par la figure suivante :

Figure II-2: Représentation de l'ACP des deux premières composantes principales des 10 batchs de
l'ensemble de données

13
 L’analyse par ACP montre que pour chaque gaz, on a des concentrations différentes qui
sont présentées par des nuages de points pour tous les batchs. On voit qu’au fil du temps
les nuages de points se déplacent ce qui explique la présence de dérives.

II.4 L'apprentissage automatique

L'apprentissage automatique est un domaine de l'intelligence artificielle (IA), c’est un outil


puissant qui peut être utilisé pour compenser la dérive des capteurs dans les nez électroniques.

Des algorithmes d'apprentissage automatique peuvent être utilisés pour compenser la dérive des
capteurs dans les nez électroniques. Ces algorithmes utilisent des modèles statistiques pour
apprendre les modèles et les relations sous-jacents dans les données générées par le nez
électronique. Une fois les modèles formés, ils peuvent être utilisés pour prédire la classe d'odeur
correcte, même lorsque la réponse du capteur a dérivé.

Il existe plusieurs techniques d'apprentissage automatique qui peuvent être utilisées pour
compenser la dérive des capteurs dans les nez électroniques, telles que l'apprentissage
d'ensemble et l'apprentissage par transfert de domaine.

II.4.1 Apprentissage d’ensemble

L'apprentissage d'ensemble pour la compensation de dérive implique la formation de plusieurs


prédicteurs, tels que des classificateurs ou des modèles de régression, sur des données collectées
à différents moments pour tenir compte des changements ou des dérives dans la distribution des
données au fil du temps.

Chaque prédicteur de l'ensemble est formé sur un sous-ensemble différent de données collectées
à des moments différents, et la prédiction finale est faite en combinant les prédictions de chaque
prédicteur d'une manière ou d'une autre. Par exemple, une approche courante consiste à utiliser
une moyenne pondérée des prédictions, où les pondérations sont déterminées par la précision
de chaque prédicteur sur un ensemble de validation ou le lot de données actuel.

L'objectif de l'apprentissage d'ensemble pour la compensation de la dérive est d'améliorer la


précision et la stabilité des prédictions dans le temps, ainsi que de réduire l'impact de la dérive
sur les performances du prédicteur. En combinant plusieurs prédicteurs formés sur différents
sous-ensembles de données, l'apprentissage d'ensemble peut aider à capturer différents aspects
de la distribution des données et fournir des prédictions plus robustes et plus précises.

14
La méthode d'apprentissage d'ensemble avec des classificateurs SVM est une approche
populaire pour contrer la dérive des capteurs, où un classificateur SVM est formé sur chaque
lot de données nouvellement collectées au temps t, noté ft (x). Pour prédire les données au pas
de temps t+1, la décision est prise comme une somme pondérée des classificateurs entraînés
précédemment. Plus précisément, la prédiction pour le nouveau point de données est effectuée
en prenant une moyenne pondérée des prédictions de chaque classificateur SVM, où les poids
sont déterminés en fonction de la précision de chaque classificateur sur le lot de données actuel.

Figure II-3: Méthode d’ensemble avec des classificateur SVM

L'objectif de cette approche est d'améliorer la stabilité et la précision de la classification du


classificateur SVM au fil du temps en tirant parti de plusieurs classificateurs formés sur
différents sous-ensembles de données. L'utilisation de classificateurs SVM est particulièrement
utile dans les scénarios où les données ont une limite de décision non linéaire, car les SVM sont
capables d'apprendre des limites de décision complexes grâce à l'utilisation de fonctions du
noyau.

15
II.4.2 Apprentissage par transfert de domaine

Le transfert de domaine est une technique d'apprentissage automatique qui vise à transférer les
connaissances acquises d'un domaine à un autre. Dans le contexte des nez électroniques, le
transfert de domaine peut être utilisé pour compenser la dérive du capteur en tirant parti des
connaissances acquises à partir d'un domaine source pour améliorer les performances dans un
domaine cible où la dérive du capteur se produit. L'idée est d'utiliser un modèle formé sur le
domaine source, puis d'adapter cette représentation pour qu'elle fonctionne bien sur le domaine
cible.

Pour cela, nous avons choisi d’utiliser un réseau neuronal convolutif (CNN), qui est un outil
puissant pour le transfert de domaine dans les nez électroniques. En effet, une étude a montré
qu’un CNN peut être formé sur un domaine source où la réponse du capteur est stable, puis
affiné sur un domaine cible où la réponse du capteur a dérivé [12]. Le CNN peut apprendre à
extraire des caractéristiques de la réponse du capteur qui sont invariantes à la dérive du capteur
et peuvent être utilisées pour faire des prédictions précises dans le domaine cible.

Figure II-4: Apprentissage par transfert de domaine par CNN

16
II.5 Conclusion

Dans ce chapitre, nous avons fait une étude préalable sur la collecte des données en mettant
l’accent sur les choix des capteurs, gazes, et paramètres extraits des capteurs.

Nous avons ensuite appliqué l’analyse par ACP sur l’ensemble des données afin de visualiser
la distribution des gazes.

Enfin, nous avons mis en évidence deux approches récentes de l’apprentissage automatique
pour la compensation des dérives des capteurs de gazes : l'apprentissage d'ensemble et
l'apprentissage par adaptation de domaine, que nous allons appliquer dans le chapitre suivant.

17
III. Application des méthodes d’apprentissage automatique pour
compenser les dérives des capteurs

III.1 Introduction

Dans ce chapitre, nous allons mettre en œuvre les deux approches citées dans le chapitre
précédent pour la compensation des dérives des capteurs de gazes dans les nez électroniques.

Nous allons détailler les deux algorithmes d’apprentissage de ces techniques, et comparer entre
les résultats de simulation.

III.2 Choix de l’outil

Pour appliquer l'apprentissage automatique afin de compenser les dérives des capteurs dans les
nez électroniques nous avons choisi de travailler avec Python qui est un langage de
programmation populaire pour l'apprentissage automatique en raison de sa simplicité, de sa
flexibilité. Voici quelques raisons pour lesquelles on l’a choisi :

 Large gamme de bibliothèques d'apprentissage automatique : Python propose une


vaste gamme de bibliothèques d'apprentissage automatique, notamment TensorFlow,
PyTorch, Scikit-learn et Keras. Ces bibliothèques offrent une variété d'outils et de
techniques pour développer des modèles d'apprentissage automatique pour différentes
applications, y compris l'analyse de données de capteurs.

 Facilité d'utilisation : Python est un langage facile à apprendre, ce qui le rend


accessible aux débutants comme aux experts. Il a une syntaxe et une lisibilité simples,
ce qui facilite l'écriture et le débogage du code. De plus, la documentation complète de
Python et les ressources en ligne facilitent la recherche de solutions aux problèmes.

 Prise en charge de l'analyse des données : Python offre une excellente prise en charge
de l'analyse des données grâce à ses bibliothèques de manipulation de données, telles
que NumPy, Pandas et Matplotlib. Ces bibliothèques fournissent des outils puissants

18
pour gérer de grands ensembles de données, effectuer des analyses statistiques et
visualiser des données.

 Intégration avec d'autres technologies : Python est polyvalent et peut être utilisé avec
diverses technologies telles que les bases de données, les frameworks Web et le cloud
computing. Cela facilite l'intégration de modèles d'apprentissage automatique avec
d'autres technologies dans des applications du monde réel.

Dans l'ensemble, Python est un choix populaire pour l'apprentissage automatique en raison de
sa simplicité, de sa flexibilité et de ses bibliothèques étendues. Son support pour l'analyse des
données et l'intégration avec d'autres technologies en font un bon choix pour compenser les
dérives des capteurs dans les nez électroniques.

III.3 Application de la méthode d’ensemble

Nous avons affaire à un problème de classification binaire où nous voulons classer les
gaz/analytes en fonction d'un ensemble de caractéristiques d'entrée x. Nous utilisons un
ensemble de classificateurs pour détecter et gérer la dérive des capteurs, ce qui est un problème
courant dans ce type d'application. À chaque pas de temps t, nous recevons un lot de mt
exemples, où chaque exemple consiste en une caractéristique d'entrée x et son étiquette de sortie
correspondante y. Nous utilisons le lot actuel d'exemples pour former un classificateur ft(x), tel
qu'une machine à vecteurs de support (SVM), qui peut prédire l'étiquette de classe y pour les
nouvelles caractéristiques d'entrée.

À chaque pas de temps t, nous recevons un lot d'exemples St, qui se compose de mt paires
d'entités d'entrée xi et de leurs étiquettes de classe correspondantes yi. Nous utilisons ce lot
d'exemples pour former un nouveau classifieur ft(x) en utilisant une machine à vecteurs de
support (SVM). L'objectif de ce classificateur est de classer avec précision les futures instances
de gaz/analytes en fonction de leurs caractéristiques d'entrée, tout en étant également robuste
aux modifications des lectures du capteur dues à la dérive.

III.3.1 Programme

Nous avons utilisé le logiciel LibSVM pour former des machines à vecteurs de support multi-
classes (SVM) avec une stratégie un contre un avec l’option 'ovo', dans ce cas le problème est
décomposé en problèmes de classification binaire par paires, où chaque paire de classes est

19
comparée l'une à l'autre et un noyau de fonction de base radiale (RBF), grâce à la ligne de code
suivante :

# Définir le classificateur
clf = svm.SVC(kernel='rbf', decision_function_shape='ovo')
classifiers.append.(( 'svm{}'.format(i+1) , clf))

Nous avons créé un ensemble de classificateur SVM et les avons ajoutés à une liste avec des
noms uniques à l'aide d’une tuple.
Pour garantir une mise à l'échelle cohérente des fonctionnalités dans les ensembles de données
d'entraînement et de test, nous les avons redimensionnées pour qu'elles se situent entre -1 et +1
à travers les deux lignes de code suivante :

# Charger des données dans des tableau x (caractéristique) et y (étiquette)


scaler = MinMaxScaler(feature_range=(-1, 1))
x= scaler.fit_transform(x)

Apres simulation du code une erreur a été générer disant que la fonction MinMaxScaler ne
prends pas en charge les entrées creuses, cela revient au fait que dans l'apprentissage
automatique, les données sont souvent représentées sous la forme d'une matrice, où chaque
ligne représente un échantillon et chaque colonne représente une caractéristique de cet
échantillon. Puisque qu’on travaille avec un grand ensemble de données, cette matrice devient
très grande, de nombreuses entrées étant nulles. Dans de tels cas, la matrice est dite "éparse",
ce qui signifie qu'elle contient un grand nombre d'entrées nulles.
Les matrices creuses peuvent être représentées plus efficacement que les matrices denses (où
chaque entrée est non nulle) car nous n'avons besoin de stocker que les entrées non nulles. Cela
peut économiser une quantité importante de mémoire. Cependant, tous les algorithmes
d'apprentissage automatique ne sont pas capables de fonctionner avec des matrices creuses.
Dans ce cas, le MinMaxScaler, qui est une technique de prétraitement utilisée pour mettre à
l'échelle les entités dans une plage donnée, ne prend pas en charge les entrées éparses.
Pour cela nous avons utilisé la StandardScaler classe au lieu de MinMaxScaler.
StandardScalerstandardise les caractéristiques en supprimant la moyenne et en mettant à
l'échelle la variance unitaire. Voici la ligne de code correspondante :

# Standardiser les fonctionnalités


scaler = StandardScaler(with_mean=False)

20
Ensuite, nous avons utilisé une validation croisée de 10 fois pour sélectionner les meilleures
valeurs pour le paramètre de bande passante du noyau gamma et le paramètre SVM C. Pour ce
faire, nous avons effectué une recherche de grille sur une plage de valeurs pour gamma de 2^-
10 à 2^5 et pour C de 2^-5 à 2^10, respectivement.

# Définir la grille des paramètres pour la recherche de grille


param_grid = {'C': np.logspace(-5, 10),
'gamma': np.logspace(-10, 5)}
grid_search = GridSearchCV(clf, param_grid, cv=10)

Nous avons utilisé une stratégie de formation dans laquelle un classificateur multi-classes a été
formé en utilisant uniquement les données du lot précédent, puis testé sur le lot actuel. Ce
processus a été répété pour chaque lot de données, en ajoutant le code suivant :

# Train and test on all batches


for i in range(1, 10):
# Load data into X (features) and y (labels) arrays
X_train_batch, y_train_batch = load_svmlight_file("batch{}.dat".format(i))
X_train_batch = scaler.fit_transform(X_train_batch)

accuracies_batch = []
for j in range(i+1, 11):
X_test_batch, y_test_batch = load_svmlight_file("batch{}.dat".format(j))
X_test_batch = scaler.transform(X_test_batch)

Dans l'apprentissage automatique, il est courant de diviser un ensemble de données en deux


parties : un ensemble d'apprentissage et un ensemble de test. L'ensemble d'apprentissage est
utilisé pour former un modèle ou un classificateur, tandis que l'ensemble de test est utilisé pour
évaluer les performances du modèle formé.

Le modèle clf est formé sur un ensemble d'apprentissage et ensuite utilisé pour faire des
prédictions sur un ensemble de test, qui est représenté par X_test_batch. Les étiquettes prédites
pour l'ensemble de test sont stockées dans la variable y_pred à l'aide de la méthode predict()
du classifieur formé clf.
Pour évaluer les performances du modèle, nous comparons les étiquettes prédites y_pred aux
véritables étiquettes de l'ensemble de test, qui sont stockées dans y_test_batch. Cela se fait à

21
l'aide de la fonction accuracy_score(), qui prend en entrée les véritables étiquettes et les
étiquettes prédites, et renvoie la précision du modèle sur l'ensemble de test. Le score de
précision est une métrique qui mesure la proportion d'échantillons correctement classés dans
l'ensemble de test, et il est compris entre 0 et 1, les valeurs les plus élevées indiquant de
meilleures performances.
Cette évaluation se fait à travers les deux lignes de code suivant :
y_pred = clf.predict(X_test_batch)
accuracy = accuracy_score(y_test_batch, y_pred)

III.3.2 Résultats de simulation

En entraînant une machine à vecteurs de support (SVM) à l'aide de la stratégie susmentionnée,


nous avons pu établir une base de référence solide pour la tâche de classification. En effet, la
SVM est formée sur le lot de données le plus récent, qui n'est pas affecté par une dérive ou une
corruption des données précédentes.

Si nous devions former le SVM en utilisant toutes les données disponibles jusqu'à un certain
point dans le temps, y compris les données qui ont été affectées par la dérive et la corruption,
les performances du classificateur se dégraderaient probablement d’avantage. Par conséquent,
l'utilisation des données les plus récentes pour former le classificateur offre les meilleures
chances d'obtenir une classification précise.

Après simulation de l’algorithme d’apprentissage d’ensemble des SVMs on a obtenu la figure


suivante :

22
Figure III-1: Performances de l’apprentissage d’ensemble des SVMs

Le graphique montre la précision du classificateur de la machine à vecteurs de support (SVM)


sur les données de test des lots 2 à 10. L'axe des x représente le numéro de lot et l'axe des y
représente la précision du classificateur sur ce lot. Le tracé comprend un nuage de points et un
tracé linéaire pour chaque lot, chaque tracé étant coloré différemment pour plus de clarté
visuelle. La légende dans le coin supérieur gauche du tracé affiche une étiquette pour chaque
lot, qui est générée en concaténant la chaîne "Batch" avec l'index i+1. La légende permet
d'identifier facilement les performances du classificateur sur chaque lot.

Dans l'ensemble, le graphique montre que la précision du classificateur SVM varie selon les
différents lots. Le classificateur fonctionne bien sur certains lots (par exemple, les lots 2 et 7),
mais mal sur d'autres (par exemple, les lots 5, 6 et 10). Nous pensons que la diminution de la
précision lors des tests sur les lots 5 et 6 avec des classificateurs formés sur les lots 4 et 5,
respectivement, est un artefact de l'ensemble de données.
Les performances d'un classificateur se détériorent avec le temps en raison de la dérive, qui a
été observée dans plusieurs cas où les SVM ont été formés sur les lots 2 à 5 et testés sur les lots
suivants. Cependant, les classificateurs formés à l'aide du lot de données le plus récent
fonctionnent mieux que ceux formés uniquement sur les données du premier lot.

23
Malgré la dérive, les classificateurs ont pu la gérer dans une certaine mesure, et nous pensons
qu'ils fournissent une base de référence naturelle et robuste pour évaluer les algorithmes
d'apprentissage automatique à correction de dérive.

D’après les récentes études faites dans ce domaine, la concentration des gaz utilisés pour la
formation pourrai avoir un impact significatif sur les performances du classificateur au fil du
temps. En conséquence, il est envisageable d'étudier les niveaux de concentration nécessaires
pour calibrer le réseau de capteurs de gaz [9].

III.4 Application d’un réseau de neurones convolutifs (TDACNN)

Utiliser un réseau de neurones convolutifs d'adaptation de domaine (TDACNN) est une solution
pour compenser les dérives des capteurs. En effet, le TDACNN est un type de réseau de
neurones qui est capable de s'adapter à des données provenant de différents domaines, en
ajustant ses paramètres de manière à minimiser l'écart entre les données sources et cibles.

Les étapes suivis pour la réalisation de notre algorithme sont comme suit :

III.4.1 Chargement des données


Pour charger les données nous avons procédé comme suit :

for i in range(1, 11):


# load the data file
X, y = load_svmlight_file(f'batch{i}.dat')

# split the data into training and test sets


X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)

 Cette boucle charge les données et les divisent en ensembles d'apprentissage et de test.
"X" et "y" sont chargés à partir des fichiers ".dat" à l'aide de la fonction
"load_svmlight_file". L les données sont ensuite divisées en ensembles d'apprentissage
et de test avec un rapport de 0,8:0,2.

III.4.2 Définition de l’architecture de la TDACNN


Pour définir, compiler et entraîner le modèle TDACNN, nous avons procédé comme suit :

# define the TDACNN model architecture


model = tf.keras.Sequential([
tf.keras.layers.Reshape((16, 8, 1), input_shape=(128,)),
tf.keras.layers.Conv2D(16, (2, 1), activation='relu', padding='same'),
tf.keras.layers.Conv2D(32, (2, 1), activation='relu', padding='same'),
tf.keras.layers.Conv2D(64, (2, 1), activation='relu', padding='same'),
tf.keras.layers.Conv2D(128, (3, 3), activation='relu', padding='same'),
tf.keras.layers.Flatten(),

24
tf.keras.layers.Dense(128, activation='relu'),
tf.keras.layers.Dropout(0.5),
tf.keras.layers.Dense(6, activation='softmax')
])

 L'architecture du modèle est définie comme un modèle séquentiel à 9 couches, dont 1


couche de remodelage, 4 couches convolutionnelles, 1 couche aplatie, 2 couches denses
et 1 couche de décrochage.
Le choix et l’utilité des 9 couches :
 La couche de remodelage : elle remodèle les données d'entrée (les caractéristiques)
qui sont sous forme d’un tableau unidimensionnel de taille 128 à un tableau
bidimensionnel de taille (16, 8, 1). Cela est nécessaire car les données d'entrée sont
une séquence de 16 capteurs, chacun ayant 8 caractéristiques.

 Les couches convolutionnelles : elles appliquent un ensemble de filtres aux données


d'entrée pour extraire les caractéristiques pertinentes. La première couche
convolutive comporte 16 filtres de taille (2, 1). La deuxième couche
convolutionnelle a 32 filtres de taille (2, 1). La troisième couche convolutionnelle a
64 filtres de taille (2, 1). La quatrième couche convolutionnelle a 128 filtres de taille
(3, 3).

 Nous avons utilisé l'activation « ReLU » qui remplace les nombres négatifs
par des zéros, et le même rembourrage dans les couches convolutionnelles
pour aider à améliorer la précision et la stabilité du réseau neuronal pendant
la formation.

 La couche aplatie : elle convertit la sortie des couches convolutionnelles en un


tableau unidimensionnel.

 La couche dense avec 128 unités : Cette couche applique une transformation linéaire
aux données d'entrée et applique la fonction d'activation ReLU à la sortie.

 La couche d'abandon avec un taux d'abandon de 0,5 : Cette couche définit de


manière aléatoire la moitié des unités d'entrée sur 0 à chaque mise à jour pendant
l'entraînement, ce qui permet d'éviter le sur ajustement.

25
 La couche dense avec 6 unités et la fonction d'activation softmax : Cette couche

produit une distribution de probabilité sur les 6 classes de sortie possibles, qui

représentent les gazes.

III.4.3 Compilation de la TDACNN


Après avoir défini l'architecture du modèle, on le compile à l'aide de la perte d'entropie croisée
catégorique et de l'optimiseur Adam. La métrique utilisée pour évaluer le modèle pendant la
formation est la précision. Nous avons procédé comme suit :

# compile the model


model.compile(loss='categorical_crossentropy', optimizer='adam',
metrics=['accuracy'])

 « categorical_crossentropy » est une fonction de perte utilisée pour les problèmes de


classification multi-classes. Le but de l’utilisation de cette fonction d'optimisation est
de minimiser les pertes lors de l'entraînement.

 « adam » est un algorithme d'optimisation de descente de gradient stochastique qui


adapte le taux d'apprentissage de chaque poids dans le réseau de neurones en fonction
de l'élan des gradients. Nous l’avons utilisé car il permet d’obtenir une convergence plus
rapide et une meilleure généralisation du modèle.

III.4.4 Entraînement du modèle


Après avoir compilé le modèle, on a appelé la fonction « model.fit () » pour entraîner le modèle
sur les données d'entraînement pour 400 époques.

# train the model


history = model.fit(X_train, y_train, epochs=400, validation_data=(X_test,
y_test))

 epochs: Il s'agit du nombre de fois où l'ensemble de données d'entraînement est passé


dans le modèle pendant l'entraînement.
 Les données de validation (X_test, y_test) sont utilisées pour surveiller et évaluer les
performances du modèle pendant la formation.

26
III.4.5 Activation de la seconde couche du modèle TDACNN

Une fois le modèle créé, compilé, et entrainé, on passe aux activations de la deuxième couche
du modèle TDACNN comme suit :

# get the activations of the second layer of the model


layer_output = model.layers[1].output
activation_model = tf.keras.models.Model(inputs=model.input,
outputs=layer_output)
X_train_activations = activation_model.predict(X_train)
X_test_activations = activation_model.predict(X_test)
X_train_activations_flat =
X_train_activations.reshape(X_train_activations.shape[0], -1)
X_test_activations_flat =
X_test_activations.reshape(X_test_activations.shape[0], -1)

 Nous avons créé un nouveau modèle appelé « activation_model » qui prend la même
entrée que le modèle TDACNN d'origine (c'est-à-dire la couche d'entrée), mais produit
les activations de la deuxième couche au lieu de la couche de sortie finale.
 Nous avons utilisé la méthode predict() pour obtenir les activations pour les ensembles
d'apprentissage et de test. Puisque les activations ont une forme de (16, 8, 1), nous les
aplatissons dans un tableau 2D avec une forme (16*8) en utilisant np.reshape() et
stockées dans « X_train_activations_flat » et « X_test_activations_flat ».

Le but d'extraire les activations de la deuxième couche (« X_train_activations_flat » et


« X_test_activations_flat ») est de les utiliser dans l'analyse PCA afin de visualiser la
distribution des gazes.

III.4.6 Calcul de la précision


La Précision de la classification (en %) calculé par l’application de la TDACNN formé sur
l’ensemble des données donne le résultat suivant :

Batchs 1→2 2→3 3→4 4→5 5→6 6→7 7→8 8→9 9→10
Précision 98,11 98,03 75,81 82,34 97,67 52,67 71,92 75,54 49,23
(%)

Tableau 2 : Précision de la classification avec TDACNN

27
Figure III-2: Performances de l’apprentissage avec TDACNN

III.4.7 Application de l’ACP


Les résultats donnés par l’application de l’ACP sont représentés par la figure suivante :

28
Figure III-3: Tracé de l’ACP avec projection par le TDACNN

29
Nous avons tracé les deux premières composantes principales de la sortie de la dernière couche
du modèle des 10 batchs.

En comparant les nuages de points de l’ACP avant et après la projection par le réseau
TDACNN, on voit que le réseau proposé a amélioré la cohérence de la distribution entre les
batchs dérivés (c.-à-d. du batch 2 au batch 10) et les batchs non dérivés (batch 1) par rapport au
cas sans projection, comme indiqué dans Figure II.2. Ceci suggère que les performances de
compensation de dérive du réseau sont efficaces.

III.5 Comparaison entre les deux méthodes


La méthode d’ensemble avec des SVMs et TDACNN sont deux approches différentes pour
traiter la compensation de dérive dans les capteurs de gaz. La méthode d’ensemble avec des
SVMs est une méthode d'apprentissage automatique traditionnelle qui implique la formation de
plusieurs modèles SVM sur différents sous-ensembles de données de formation, puis la
combinaison de leurs prédictions. TDACNN, d'autre part, est une méthode d'apprentissage en
profondeur qui utilise un réseau neuronal convolutif pour extraire les caractéristiques des
données du capteur, puis adapte le réseau à de nouveaux domaines cibles.

L'un des avantages de l'ensemble SVM est qu'il s'agit d'une méthode bien établie et interprétable
qui peut être facilement mise en œuvre à l'aide de bibliothèques prêtes à l'emploi. Cependant,
l'ensemble SVM nécessite une sélection minutieuse des hyper paramètres SVM et peut être
coûteux en calcul lorsqu'il s'agit de grands ensembles de données.

TDACNN, d'autre part, est une méthode plus avancée et plus puissante qui peut apprendre
automatiquement les fonctionnalités pertinentes à partir des données du capteur. Il a la capacité
à gérer des distributions de données plus complexes, à apprendre des représentations de
caractéristiques plus expressives et à s'adapter à de nouveaux domaines cibles sans nécessitant
des données étiquetées du domaine cible. Cependant, TDACNN nécessite une grande quantité
de données de formation et peut être plus difficile à mettre en œuvre par rapport à l'ensemble
SVM.

Les résultats qu’on a obtenus avec les deux méthodes montrent que la méthode TDACNN offre
de meilleures résultats en terme de précision par rapport à la méthode d’ensemble SVM

En résumé, l'ensemble SVM et TDACNN sont des méthodes viables pour traiter la
compensation de dérive dans les capteurs de gaz. Cependant, les résultats qu’on a obtenus avec

30
les deux méthodes montrent que la méthode TDACNN offre de meilleures résultats en terme
de précision par rapport à la méthode d’ensemble SVM.

III.6 Conclusion
Dans ce chapitre, nous avons appliqué la méthode d’ensemble SVM et la méthode d’adaptation
de domaine TDACNN a l’ensemble des données collectés dans le but de compenser les dérives
des capteurs de gazes dans le nez électronique.

D’après les résultats que nous avons obtenus, on conclut que la méthode TDACNN peut être
considéré comme une méthode préférable pour la compensation de dérive dans les capteurs de
gaz.

31
Conclusion générale
En conclusion, ce rapport présente une étude approfondie des nez électroniques et de la dérive
des capteurs qui peut affecter leur précision.

Nous avons examiné la collecte de données d'un réseau de capteurs et la compensation des
dérives, ce qui peut aider à améliorer la fiabilité de ces dispositifs. De plus, nous avons exploré
les techniques avancées de Machine Learning telles que l'apprentissage d'ensemble avec des
SVM et l'apprentissage par adaptation de domaine TDACNN, qui ont montré leur efficacité
pour contrer les dérives des capteurs dans les nez électroniques.

Ces résultats suggèrent que l'utilisation de ces techniques peut considérablement améliorer la
précision des nez électroniques et ainsi améliorer leur utilisation dans de nombreuses
applications.

En fin de compte, ce rapport offre une base solide pour une recherche future visant à améliorer
encore plus la précision et la fiabilité des nez électroniques.

32
Références bibliographiques

[1] Zhenyi Ye, Yuan Liu,Qiliang Li, Recent Progress in Smart Electronic Nose Technologies
Enabled with Machine Learning Methods. Sensors 2021, 21,7620.

[2] Maniscalco, M.; Motta, A. Clinical and Inflammatory Phenotyping: Can Electronic Nose
and NMR-based Metabolomics Work at the Bedside? Arch. Med. Res. 2018, 1, 74–76.

[3] Ghasemi-Varnamkhasti, M.; Apetrei, C.; Lozano, J. Potential use of electronic noses,
electronic tongues and biosensors as multisensor systems for spoilage examination in foods.
Tends Food Sci. Technol. 2018, 10, 71–92.

[4] Fan, H.; Hernandez Bennetts, V.; Schaffernicht, E. A cluster analysis approach based on
exploiting density peaks for gas discrimination with electronic noses in open environments.
Sens. Actuators B Chem. 2018, 259, 183–203.

[5] M. Holmberg, T. Artusson, Drift compensation, standards, and calibration methods,


Handbook of Artificial Olfaction Machines, WILEY-VCH Weinheim, Germany, 2003, pp.
325–346.

[6] A. Hierlemann, R. Gutierrez-Osuna, Higher-order chemical sensing, ACS Chemical


Reviews 108 (2008) 563–613.

[7] A.-C. Romain, J. Nicolas, Long term stability of metal oxide-based gas sensors for e-nose
environmental applications: an overview, Sensors and Actuators B: Chemical 146 (2) (2010)
502–506.

[8] A.-C. Romain, P. André, J. Nicolas, Three years experiment with the same tin oxide sensor
arrays for the identification of malodorous sources in the environment, Sensors and Actuators
B: Chemical 84 (2–3) (2002) 271–277.

[9] Vergara, A.; Vembu, S.; Ayhan, T.; Ryan, M.A.; Homer, M.L.; Huerta, R. Chemical Gas
Sensor Drift Compensation Using Classifier Ensembles. Sens. Actuators B Chem. 2012, 166–
167, 320–329

[10] Nallon, E.C.; Schnee, V.P.; Bright, C.J.; Polcha, M.P.; Li, Q. Discrimination Enhancement
with Transient Feature Analysis of a Graphene Chemical Sensor. Anal. Chem. 2016, 88, 1401–
1406.
[11] Deshmukh, S.; Bandyopadhyay, R.; Bhattacharyya, N. Application of electronic nose for
industrial odors and gaseous emissions measurement and monitoring-An overview. Talanta
2015, 144, 329–340.

[12] Yuelin Zhang, Sihao Xiang, Zehuan Wang, Xiaoyan Peng, Yutong Tian, Shukai Duan, Jia
Yan, TDACNN: Target-domain-free domain adaptation convolutional neural network for drift
compensation in gas sensors,Sensors and Actuators: B. Chemical 361 (2022) 131739.

Vous aimerez peut-être aussi