Académique Documents
Professionnel Documents
Culture Documents
Siham KOUCHE
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.
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.
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.
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)…
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.
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.
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.
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.
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.
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].
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.
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.
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).
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.
9
Figure II-1: Les différents paramètres extraits des capteurs [10]
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
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 :
Les données sont des fichiers avec une extension « .dat », avec un format sous forme « y x:v »
où :
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 ».
X, y = load_svmlight_file('batch1.dat')
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)
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.
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.
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.
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.
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.
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.
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 :
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.
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 :
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 :
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.
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 :
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)
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)
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.
22
Figure III-1: Performances de l’apprentissage d’ensemble des SVMs
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].
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 :
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.
24
tf.keras.layers.Dense(128, activation='relu'),
tf.keras.layers.Dropout(0.5),
tf.keras.layers.Dense(6, activation='softmax')
])
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 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.
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
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 :
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 ».
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
(%)
27
Figure III-2: Performances de l’apprentissage avec TDACNN
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.
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.
[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.