P a g e | i
Épigraphe
C'est bien de travailler dur mais il faut le faire
intelligemment pour ne pas s'épuiser avant d'atteindre
l'objectif.
William Sinclair M.
P a g e | ii
J
e dédie ce modeste travail à mon cher père
SHANGA KAPINGA Denis. Que j'aime plus que tout au monde. A lui je dois toute ma
vie et toutes mes réussites, car sans lui je ne serais pas arrivé
jusqu'ici. J'espère rester toujours fidèle aux valeurs morales
qu'il m'a apprises.
A ma défunte chère mère DIMUKA NGULUBI
Mélanie. Aucun mot ne saurait exprimer mon immense amour, mon estime, ma
profonde affection et ma reconnaissance pour tous les sacrifices qu'elle a
consenti pour mon bonheur et ma réussite.
A toi mon épouse UKOLAMA MUTOMBO Kevine et à mon
fils chéri SHANGA MUTOMBO Ethan pour la force, la motivation, la
patience et l'amour qu'ils me procurent.
Eddy MUTOMBO SHANGA
P a g e | iii
Remerciements
N
|
ous remercions le Dieu Tout - Puissant de nous avoir
donné le courage, la volonté, la force et la patience afin de
parvenir à élaborer ce modeste travail.
|
Nous tenons à remercier sincèrement notre
encadreur le Professeur Ruffin-Benoît NGOIE MPOY pour
avoir accepté de diriger ce travail et de nous avoir accompagné
tout au long de sa réalisation avec beaucoup d'intérêt et
de disponibilité ainsi que pour tout le soutien, l'aide, l'orientation,
la guidance et ses encouragements qu'il nous a apportés et d'avoir mis
son expérience à notre profit dans son encadrement.
Nous souhaitons adresser nos remerciements les plus
sincères aux personnes qui nous ont apporté leur aide et qui ont
contribué à l'élaboration de ce mémoire ainsi
qu'à la réussite de cette formidable année
académique.
Nos remerciements s'adressent aussi aux membres du jury qui
ont eu la tâche d'évaluer ce modeste travail pour le raffiner.
Finalement, nous adressons aussi nos remerciements
sincères à nos familles, nos soeurs et frères et à
nos amis.
P a g e | iv
Sigles et abréviations
ABCD : Asymmetry
Border Irregulatity Colour and
Dermoscopic
structure.
API : Application
Programming Interface (Interface de
Programmation d'Application).
BD : Base de
Données.
BIG-DATA : Donnes
très Volumineux.
CASH : Combined
Algorithm Selection and
Hyperparameter.
CNN : Réseaux
Neuronaux Convolutionnels.
CNTK : Microsoft
Cognitive Toolkit.
CPU : Central
Processing Unit.
DAO : Diagnostic
Assisté par Ordinateur.
DATA-SET : Jeu de
Données
DNN : Deep
Neural Network (Réseau de Neurones
Profond).
ELU : Exponential
Linear Unit (Unité Linéaire
Exponentielle).
FCRN : Neonatal Fc
Receptor.
GAC : Contour
Actif Géodesique.
HCA : Analyse de
Classification Hiérarchique.
IA : Intelligence
Artificielle.
ISIC : International
Strandard Industrial
Classification.
ML : Machine
Learning (Apprentissage Automatique).
MLP (PMC) : Multi
Layer Perceptron (Perceptron Multi Couche)
MVS OU SMM : Machine
Vector Support (Machines à Vecteurs
Supports).
OMS : Organisation
Mondiale de la Santé.
P a g e | v
ONEIROS : Open-ended
Neuro-Electronic Intelligent
Robot Operating
System.
PCA : Analyse des
Composants Principaux.
RELU : Rectified
Linear Unit (Unité Linéaire
Rectifiée).
RGB : Red
Green and Blue.
RNN : Réseaux
Neuronaux Récurrents.
ROI : Région
d'Intérêt.
SVM : Support
Vector Machine (Séparateurs à vaste
marge).
TDNN : Time
Delay Neural NetWork (Réseau
de Neurones à Retard
Temporel).
TDS : Total
Dermoscopic Score.
UV :
Ultra-Violets.
XGBOOST : eXtreme
Gradient Boosting.
P a g e | vi
Liste des figures
Figure 1. Apprentissage supervisé. 17
Figure 2. Neurone biologique et neurone artificiel.
18
Figure 3. Apprentissage non supervisé. 19
Figure 4. Apprentissage par renforcement. 20
Figure 5. Les approches et les algorithmes de l'apprentissage
automatique. 21
Figure 6. Le choix de l'algorithme d'apprentissage selon
certains facteurs. 21
Figure 7. Les sous-bronches de l'intelligence artificiel.
27
Figure 8. Un perceptron multicouche. 27
Figure 9. Les différentes aires du cortex visuel.
32
Figure 10. Structure générale d'un CNN.
33
Figure 11. L'architecture des réseaux de neurones
convolutifs. 33
Figure 12. Opération convolutive sur une image.
34
Figure 13. Représentation générale des
cartes de caractéristiques. 35
Figure 14. Convolution sur une histologie. 35
Figure 15. Dimensions d'une image et des cartes de
caractéristiques. 36
Figure 16. Exemple applicatif des différents Pooling.
37
Figure 17. Résultat de différents Pooling sur
une histologie. 38
Figure 18. Stride(ligne,colone). 38
Figure 19. Exemple de dépassement d'une image par un
filtre. 39
Figure 20. Exemple de filtre passant par un pixel. 39
Figure 21. Exemple applicatif d'un Padding-Same. 40
Figure 22. Opération convolutive sans Relu. 41
Figure 23. Opération convolutive avec Relu.
41
Figure 24. Architecture générale d'un CNN.
42
Figure 25. Reconnaissance d'une image avec CNN. 43
Figure 26. Types des mélanomes (a) superficiel
extensif, (b) nodulaire, (c) lentigo
et (d) acral. 45
Figure 27. Dermoscope. 47
Figure 28. Schéma bloc d'un DAO. 47
Figure 29. Segmentation d'une lésion : a) illustration
de ROI, b) masque de la
lésion. 48 Figure 30. Échantillon des
lésions bénignes et malignes de la base des images
dermoscopiques PH2. 52
Figure 31. Interface de Jupyter Notebook (source Jupyter)
57
Figure 32. Logo de l'IDE Spyder. 58
Figure 33. Logo de Framework FLASK 58
Figure 34. Différents types des graines de
beauté de mélanome. 62
Figure 35. Importation bibliothèques. 63
Figure 36. Chargement des données à partir du
Dataset. 64
Figure 37. Chargement des données pour cas exemple.
64
P a g e | vii
Figure 38. Mise à l'échelle des
données. 64
Figure 39. Augmentation des données. 65
Figure 40. Implémentation CNN. 65
Figure 41. Implémentation de la compilation du
modèle. 66
Figure 42. Entraînement de la solution finale.
66
Figure 43. Résultat de l'entrainement du
modèle. 67
Figure 44. Perte et précision de données.
67
Figure 45. Enregistrement du modèle (CNN).
68
Figure 46. Résultats d'un cas testé via le
modèle. 68
Figure 47. Module de prédiction pour l'API.
69
Figure 48. Le logo de l'API. 69
Figure 49. Démarrage de l'API. 70
Figure 50. Interface graphique de prédiction.
70
Figure 51. Exploration des images. 71
Figure 52. Interface de prédiction à
l'état prêt. 71
Figure 53. Résultat du diagnostic via l'API.
72
P a g e | viii
Liste des tableaux
Tableau 1 : Comparaison entre l'apprentissage automatique et
l'apprentissage en
profondeur. 29
P a g e | ix
Table des matières
Épigraphe i
Remerciements iii
Sigles et abréviations iv
Liste des figures vi
Liste des tableaux viii
Table des matières ix
INTRODUCTION GENERALE 12
1. Contexte et Motivation. 12
2. Méthode et Organisation du travail. 14
Chapitre premier : Apprentissage automatique &
Apprentissage profond. 15
1.1. Introduction. 15
1.2. L'apprentissage automatique Machine Learning.
15
1.2.1. Définitions et types d'apprentissage
automatique. 15
1.3. Le choix d'un type d'apprentissage automatique.
21
1.4. Champs industriels d'apprentissage automatique.
22
1.4.1. La reconnaissance de forme. 22
1.4.2. La fouille de données ou datamining. 22
1.4.3. Caractéristique d'apprentissage automatique.
23
1.4.4. Tache d'apprentissage. 24
1.4.5. L'espace des données d'apprentissage.
25
1.5. De l'apprentissage automatique à l'apprentissage
en profondeur. 25
1.6. L'apprentissage en profondeur « Deep Learning
». 26
1.6.1. Définitions et les architectures
d'apprentissage en profondeur. 26
1.7. Comparaison entre l'apprentissage automatique et
l'apprentissage en
profondeur. 29
Conclusion partielle. 30
Chapitre deuxième : Réseau des neurones
à convolution (CNN). 31
2.1. Introduction. 31
2.2. Motivations des réseaux de neurones convolutifs.
31
2.3. Le cortex visuel. 32
2.4. CNN et structure générale. 32
2.5. CNNs et fonctionnement. 33
P a g e | x
2.5.1. Les filtres (Kernel). 34
2.5.2. Cartes de caractéristiques. 34
2.5.3. Profondeur de l'image et des filtres. 35
2.5.4. Le Pooling. 36
2.5.5. Le Stride. 38
2.5.6. Le zero-Padding. 39
2.5.7. Padding-valid, Padding-Same. 40
2.6. Fonction Relu. 40
2.7. Couche de Correction (RELU). 41
2.8. Couche entièrement connectée (FC).
41
2.9. Couche de perte (LOSS). 42
2.10. Deep Neural Network (DNN) final. 42
2.11. Structure générale d'un CNN. 42
2.12. L'application des réseaux neuronaux convolutifs.
42
2.13. Avantages de CNNs. 43
Conclusion partielle. 44
Chapitre troisième : État de l'art sur les
méthodes de segmentation & de
classification d'images. 45
3.1. Introduction. 45
3.2. Le mélanome. 45
3.2.1. Facteurs de risques. 46
3.2.2. Développement du mélanome. 46
3.2.3. Détection et traitement du mélanome.
46
3.2.4. Diagnostic assisté par ordinateur. 47
3.3. Segmentation des lésions cutanées.
48
3.3.1. Segmentation basée clustering. 48
3.3.2. Segmentation basée C-moyennes floues (FCM).
49
3.3.3. Segmentation basée K-means. 49
3.3.4. Segmentation basée sur les réseaux
neuronaux convolutifs. 50
3.4. Classification des lésions cutanées.
52
Conclusion partielle. 55
Chapitre quatrième : Implémentation &
interprétation des résultats. 56
4.1. Introduction. 56
P a i e | xi
4.2. Les outils et les détails
d'implémentation. 56
4.2.1. Environnement de développement. 56
4.2.2. Langage de programmation. 60
4.3. Présentation du problème. 61
4.3.1. Aperçu général sur le cancer
de la peau. 62
4.3.2. Information sur les données. 63
4.3.3. Implémentation du cas en Python. 63
4.4. L'exploitation de modèle (Déploiement).
69
4.4.1. Quelques codes sources de déploiement de
l'API PrediCancerPeau
avec Flask. 72
Conclusion partielle. 74
CONCLUSION GENERALE 75
Bibliographies : 76
Webographie : 79
P a g e | 12
INTRODUCTION GENERALE
1. Contexte et Motivation.
La technologie se développe rapidement et nous la
trouvons dans tous les secteurs dans le monde. Elle permet à l'homme
d'ouvrir de larges horizons dans la recherche et l'exploration. Par exemple ;
elle a été utilisée dans le développement de la
numérisation dans différents domaines, le développement de
l'éducation, la médecine et d'autres domaines (Clayton, 2019).
L'utilisation de l'intelligence artificielle, de la robotique
et des technologies connexes dans le domaine de la santé, annonce une
révolution majeure dans le domaine de la médecine. Ces nouvelles
technologies interviennent dans l'aide au diagnostic « intelligence
artificielle », aux actes techniques « robotique chirurgicale »,
à la consultation « télémédecine », aussi
la révolution des « Micro-Robots » circulants injectés
dans le sang et capables d'atteindre les endroits les plus reculés du
corps humain. Cette évolution indique un brillant avenir pour la
médecine face à diverses maladies incurables (Géron,
2017).
A ce titre, on s'intéresse à un problème
de santé publique majeur : le cancer de la peau de type mélanome.
En effet, depuis quelques années, l'incidence du mélanome ne
cesse d'augmenter dans tous les pays du monde. D'après l'Organisation
Mondiale de la Santé (OMS) 130 000 cas de mélanomes sont
enregistrés dans le monde pour l'année 2020. (Sung et al.,
2021).
Le mélanome est le cancer de la peau le plus dangereux,
il peut se propager rapidement à d'autres parties du corps s'il n'est
pas détecté et traité tôt. Le mélanome
à son état primaire est difficile à détecter. En
effet, à son état précoce, la lésion maligne
présente peu de signes de malignité et peut être,
facilement, confondu à une lésion bénigne.
Vu les difficultés d'identification par les
méthodes manuelles classiques, telles que la règle ABCD
(Asymmetry, Border Irregularity, Colour and Dermoscopic
structure) [Nachbar et al., 1994], CASH (Combined
Algorithm Selection and Hyperparameter) [Henning et al., 2007] et
seven-point checklist [Argenziano et al., 2011] qui sont des examens cliniques
longs et ne constituent pas une solution efficace au vu du nombre important de
cas suspects. Un dermatologue peut prendre beaucoup de temps pour n'examiner
qu'un nombre limité de patients.
P a g e | 13
Il est donc nécessaire de développer un
système automatique, rapide et efficace de discrimination des tumeurs
malignes des tumeurs bénignes à un stade précoce. Un tel
système permet de détecter des caractéristiques peu
discernables à l'oeil nu ce qui augmente les chances de discrimination
et permet un diagnostic sur une large population en un temps réduit.
Avec l'arrivée de machine Learning et du Deep Learning
(les domaines d'étude de l'Intelligence Artificiel), les outils
informatiques s'appliquent régulièrement dans le domaine de
santé comme soulignés ci - haut, mais aussi, dans le souci de
résorber l'incidence de mortalités causé par le cancer de
la peau, soit 8,8 millions de personnes en 2015 selon le rapport de
l'organisation mondiale de santé (Who, 2018) et en tenant compte de la
faible démographique des « dermatologues », tout en sachant
que l'homme est appelé à vieillir puis disparaître et aussi
exposé à l'oubli, pour sauvegarder son expertise dans tel ou tel
domaine, on cherche à construire des modèles capables à
partir d'un bon nombre d'exemples (les données correspondant à
l'expérience passée) d'en assimiler afin d'appliquer ce qu'ils
ont appris aux cas non encore rencontrés lors de son apprentissage. Sur
ce, nous nous posons la question de savoir si ces méthodes permettent de
reconnaître la forme (image de malignité de la personne souffrant
du cancer de la peau de type mélanome à son état primaire)
à partir de la photographie de la peau.
Tenant compte du problème soulevé
précédemment, notre hypothèse consiste
à construire un modèle permettant de reconnaître des
formes, particulièrement les images de la malignité des gens
présentant les symptômes du cancer de la peau en vue d'aider les
corps médicaux de disposer l'arsenal thérapeutique médical
pour la prévenir et l'équilibrer, afin d'éviter les
complications qui en découlent et résorber définitivement
le taux de l'incidence de cas causé par cette maladie dangereuse.
Notre modèle est construit par l'une des
méthodes d'apprentissage supervisé qui est le réseau de
neurones, particulièrement le réseau de neurones à
convolution (CNN) car cette dernière a fait preuve
d'être l'une des méthodes la plus performante dans la
reconnaissance des formes particulièrement aux images vu leurs
résultats par rapport à d'autres méthodes. Notre
choix a été porté sur cette
méthode vue sa haute performance au regard d'autres méthodes de
la même famille, surtout dans le domaine de Deep Learning (ou
apprentissage profond).
En observant la faiblesse des autres méthodes de Deep
Learning, particulièrement le Perceptron Multi Couche
(PMC), il ne prend pas en compte la corrélation entre
les pixels d'une image, il est peu ou pas invariant à des
transformations de l'entrée, le réseau de neurones sont
complètement connectés,
P a g e | 14
c'est-à-dire que la valeur d'un neurone de couche
n va dépendre des valeurs de tous les neurones de la
couche n-1, ce qui augmente le nombre de connexions et le
nombre de paramètres à calculer, bref la complexité dans
le temps et dans l'espace trop importante.
Nous soulignons que ce travail est rédigé au
cours de l'année académique 2021 - 2022, n'a touché que la
reconnaissance des formes, particulièrement des images de
malignité des personnes souffrant du cancer de la peau de type
mélanome à son état primaire en utilisant le réseau
de neurones à convolution, car celui-ci a la capacité de traiter
des problèmes de reconnaissance des formes (images).
2. Méthode et Organisation du travail.
Ce travail s'est appuyé essentiellement sur la
technique documentaire et de simulation.
Ce travail de mémoire porte sur la construction d'un
modèle prédictif basé sur le réseau de neurones
profond pour la détection de Cancer de la peau. Notre travail est
organisé en quatre chapitres, hormis l'introduction et la conclusion
:
? Chapitre 1 :
Apprentissage automatique & Apprentissage profond. Au
début de ce chapitre, nous allons fournir un regard sur le domaine de
l'intelligence artificielle et ses différentes branches «
l'apprentissage automatique et l'apprentissage en profondeur », en
définissant ce domaine, ses branches et ses différentes
caractéristiques.
? Chapitre 2 :
Réseau de neurones à convolution. Ce
chapitre présente le succès du Deep Learning, l'architecture de
réseau de neurones à convolution, les algorithmes
d'apprentissage, etc.
? Chapitre 3 :
État de l'art sur les méthodes de segmentation & de
classification d'images. Ce chapitre fera un état de l'art
des différents algorithmes de segmentation et de classification des
lésions cutanées1.
? Chapitre 4 :
Implémentation & interprétation des
résultats. Ce chapitre présente le problème
à résoudre de ce travail, les différents outils y
intervenant, l'architecture retenue, interprétation des résultats
obtenus, ainsi que le déploiement de notre modèle dans une
application mobile ou web.
1 Lésions cutanées
: est un défaut situé à la surface de la peau
ou sous la peau.
? Le terme « Apprentissage automatique
» a été inventé par l'informaticien
Américain « Arthur Samuel », dans le
début de l'année 1959. Il a créé le
P a g e | 15
Chapitre premier : Apprentissage automatique &
Apprentissage
profond.
1.1. Introduction.
Actuellement l'informatique est presque présente dans
tous les domaines : la santé, l'éducation, l'économie, et
la cosmologie. Cette présence se reflète dans la vie quotidienne
de l'individu et elle a permis des facilités d'utilisation et de
compréhension de plusieurs complexes domaines. Un des domaines les plus
importants qui a été touché par ce terrible
développement de l'informatique est le domaine de la santé. Le
développement de l'informatique et de la technologie continue à
prendre une place de plus en plus importante dans le domaine de santé,
ce qui a permis le développement du matériel médical, les
logiciels de surveillance médicale, et les logiciels d'analyse
médicales qui augmentent la précision des résultats. Ce
dernier a donné une grande attention par les scientifiques, en
particulier les spécialistes dans les domaines : de l'intelligence
artificielle, les systèmes experts, l'apprentissage automatique Machine
Learning, et l'apprentissage en profondeur Deep Learning.
Dans ce chapitre, nous allons d'abord présenter les
techniques d'apprentissage automatique Machine Learning. Ensuite, nous
décrierons comment l'apprentissage automatique a été
déplacé vers l'apprentissage profond pour avoir des architectures
plus prometteuses. Et enfin, nous finirons le chapitre par une conclusion.
1.2. L'apprentissage automatique Machine
Learning.
L'intérêt de l'apprentissage automatique a
augmenté au cours de la dernière décennie, pour tout le
discours sur l'apprentissage automatique, il y a beaucoup de conflits entre ce
que la machine peut faire et ce que nous souhaitons (Patterson et al., 2017).
L'apprentissage automatique est un sous-ensemble de l'intelligence artificielle
« IA », il est axé sur la création des systèmes
qui apprennent et améliorent les performances, en se basant sur des
données qu'ils traitent. Les algorithmes d'apprentissage automatique
entrent en jeu pour optimiser, fluidifier, et sécuriser cette
dernière (Clayton, 2019).
1.2.1. Définitions et types d'apprentissage
automatique. 1.2.1.1. Définitions.
La définition de l'apprentissage automatique a connu
une progression durant plusieurs années, cela est dû qu'à
chaque fois il y avait de nouvelles découvertes dans ce domaine :
2 Est un tableau qui rassemble les
individus qui ont un certain nombre de caractéristiques ou encore c'est
une structure qui contient nos données.
P a g e | 16
premier programme qui permet aux ordinateurs de jouer et
d'apprendre le jeu de dames sans être explicitement programmé
(Géron, 2017).
? En 1997, l'informaticien américain «
Tom Michael Mitchell » introduit une nouvelle
définition de l'apprentissage automatique. Il a considéré
qu'un programme apprend d'une expérience E, par rapport
à une classe de tâches T, et avec une mesure de
performance P (Géron, 2017).
? Avec le temps, la définition de
l'apprentissage automatique a commencé à prendre une dimension
mathématique et statistique. Selon les auteurs dans (Goodfellow et al,
2016), l'apprentissage automatique est essentiellement une forme de
statistiques appliquées, mettant davantage l'accent sur l'utilisation
d'ordinateurs pour estimer statistiquement les fonctions compliquées et
un accent moindre sur la démonstration des intervalles de confiance
autour de ces fonctions.
Ces définitions peuvent varier en fonction de l'angle
étudié, mais elles sont toutes orientées vers une seule
direction, qui est définie comme suit : l'apprentissage automatique est
la science ou l'art de la programmation des ordinateurs afin qu'ils puissent
apprendre à partir des données (Géron, 2017).
1.2.1.2. Types d'apprentissage automatique.
Il existe également de différents types
d'apprentissage automatique. Selon (Géron, 2017), la définition
du type d'apprentissage est basée sur la réponse à ces
deux questions suivantes :
? Est - ce que cet apprentissage compte sur la supervision
humaine dans son entrainement et apprentissage ?
? Est - ce que ce type d'apprentissage utilise une base de
données (dataset2) fournie par l'être humain ?
1-. Si la réponse est oui pour les deux questions,
nous avons un apprentissage supervisé.
2-. Si la réponse est non pour la première
question, et oui pour la deuxième question, nous parlons d'un
apprentissage non supervisé.
3-. Si la réponse est non pour les deux questions, le
type de l'apprentissage est l'apprentissage par renforcement.
Dans ce qui suit, nous définissons chacun de ces types
: apprentissage supervisé, apprentissage non supervisé, et
apprentissage par renforcement.
P a g e | 17
1.2.1.2.1. Apprentissage supervisé.
Dans l'apprentissage supervisé l'être humain aide
l'algorithme pour apprendre, un data scientiste sert de guide et il apprend
à l'algorithme les résultats qu'il doit trouver. Le même
cas lorsqu'on apprend à un enfant d'identifier les fruits, en les
mémorisant dans sa mémoire. Dans l'apprentissage
supervisé, l'algorithme apprend grâce à un jeu de
données déjà étiqueté et dont le
résultat est prédéfini (Goodfellow et al, 2016). (Voir
figure 1).
Figure 1. Apprentissage
supervisé.
Les algorithmes de l'apprentissage automatique
supervisé sont les plus couramment utilisés, il y deux types
d'apprentissage supervisé :
? La classification : la classification
consiste à trouver le lien entre une variable
d'entrée (X) et une variable de sortie
discrète (Y), en suivant une loi multinomiale
(Dupré, 2020).
? Régression : la régression
consiste à prédire une valeur continue
pour la variable de sortie (Dave,
2020).
Les algorithmes les plus célèbres
utilisés dans cette approche sont les suivants (GAËL, 2019) :
? SVM (Machines à vecteurs de support)
: est un apprentissage automatique très puissant et polyvalent
modèle, capable d'effectuer la classification linéaire ou non
linéaire, la régression, et même détection des
valeurs aberrantes. C'est l'un des modèles les plus populaires de
l'apprentissage automatique « Machine Learning », et
n'importe qui intéressés par cette approche devraient l'avoir
dans leur boîte à outils. Les SVM sont particulièrement
bien adapté à la classification d'ensembles de données
complexes mais de petite ou moyenne taille. L'algorithme SVM consiste à
chercher à la fois l'hyperplan optimal ainsi que de minimiser les
erreurs de classification.
P a g e | 18
A La méthode des k plus proches voisins
: cet algorithme consiste à essayer différentes valeurs
de K pour obtenir la séparation la plus satisfaisante.
A Naïve Bayes : est un classifieur assez
intuitif à comprendre. Il se base sur le théorème de Bayes
des probabilités conditionnelles, et il suppose que les variables sont
indépendantes entre elles. Cela permet de simplifier le calcul des
probabilités.
A Les arbres de décision : un arbre de
décision sert à classer les futures observations, sachant qu'un
corpus d'observations est déjà étiqueté.
A Les Forêts Aléatoires : cet
algorithme fonde sur les arbres de décision, est un modèle
construit par de multiples arbres de décisions.
A Régression Logistique : l'algorithme
de régression logistique consiste à trouver les meilleurs
coefficients pour minimiser l'erreur entre la prédiction faite pour des
destinations visitées et la vraie étiquette donnée (Ex.
bon, mauvais etc.).
A Les réseaux de neurones : Les
réseaux neuronaux sont un modèle informatique qui partage
certaines propriétés avec le cerveau humain, dans lequel de
nombreuses unités simples travaillent en parallèle sans
centralisation, ils permettent de trouver des patterns complexes dans les
données, il se compose de valeurs d'entrées, poids,
fonction de transfert et une valeur de sortie (Werfelli, 2015)
(Voir figure 2).
Figure 2. Neurone biologique et
neurone artificiel.
Il existe aussi d'autres algorithmes, tels que l'algorithme de
régression linéaire, les Algorithmes Génétiques
(GAËL, 2019). Certains algorithmes de régression peuvent
également être utilisés pour la classification, et la
régression, à titre d'exemple l'algorithme de la
régression logistique (Géron, 2017).
P a g e | 19
1.2.1.2.2. Apprentissage non
supervisé.
Avec l'apprentissage non supervisé la machine n'a pas
besoin de l'aide pour apprendre. L'apprentissage non supervisé est une
approche plus indépendante, dans laquelle un ordinateur apprend à
identifier des processus et des schémas complexes sans aucun guide, Il
implique une formation basée sur des données sans
étiquette, qui ne contiennent aucun résultat spécifique
(Goodfellow et al, 2016). (Voir figure 3).
Figure 3. Apprentissage non
supervisé.
Selon (Géron, 2017), il y a deux types d'apprentissage
non supervisé :
A Regroupement (Clustering) : c'est une
méthode d'analyse statistique utilisée pour organiser des
données brutes en silos homogènes, à l'intérieur de
chaque grappe, les données sont regroupées selon une
caractéristique commune.
A Réduction de la dimension :
l'objectif est de simplifier les données sans perdre trop
d'informations, à titre d'exemple, fusionner plusieurs
caractéristiques en un seul caractère.
Les algorithmes les plus célèbres
utilisés dans cette approche sont (Issarane, 2019) :
A K-Moyenne : est un algorithme de
Regroupement (Clustering) il regroupe dans les même Cluster (Groupes) les
données similaires (qui se ressemblent). Il utilise un raffinement
itératif pour produire un résultat final.
A Analyse de classification hiérarchique (HCA)
: la mise dans un cluster hiérarchique est similaire à
la mise dans un cluster normal, sauf que dans ce cas nous souhaitons mettre en
place une hiérarchie des clusters. Cela peut s'avérer très
important surtout quand nous désirons une flexibilité par rapport
au nombre de clusters voulu.
A PCA (Analyse des composants principaux) :
l'algorithme PCA consiste à transformer des variables liées entre
elles, vers de nouvelles variables séparées les uns des autres.
Ces nouvelles variables sont
La figure ci - dessous exprime les différentes branches
et algorithmes de l'apprentissage automatique (Voir figure 5).
P a g e | 20
nommées les composantes principales, elles permettent
au praticien de réduire le nombre de variables et de rendre
l'information moins redondante.
? Apriori : l'algorithme Apriori s'utilise
dans une base de données transactionnelle pour extraire des ensembles
d'éléments fréquents, puis générer des
règles d'association.
1.2.1.2.3. L'apprentissage par renforcement.
Avec l'apprentissage par renforcement la machine n'a pas
besoin de l'aide de l'être humain, ni en termes de supervision, ni en
termes de fourniture de données. L'apprentissage par renforcement est
une branche très différente. Le système d'apprentissage,
appelé un agent dans ce contexte (Voir figure 4), peut observer
l'environnement, sélectionner et effectuer des actions, et enfin obtenir
des récompenses ou des pénalités (des récompenses
négatives). La machine peut apprendre toute seule la meilleure
stratégie à suivre, appelée une politique, pour obtenir
plusieurs récompenses au fil du temps. Une politique définit
l'action que l'agent devrait choisir lorsqu'il est dans une situation
donnée (Géron, 2017).
Figure 4. Apprentissage par
renforcement.
Parmi les premiers algorithmes d'apprentissage par
renforcement, c'est l'algorithme « Temporal différence
Learning », proposé par « Richard Sutton »
en 1988 (Sutton, 1988). Aussi l'algorithme « Q-Learning »
mis au point lors d'une thèse soutenue par « Chris Watkins
» en 1989 et publié réellement en 1992 (Watkins et al,
1992).
P a g e | 21
Figure 5. Les approches et les
algorithmes de l'apprentissage automatique. 1.3. Le choix d'un
type d'apprentissage automatique.
Avec la présence de différents types de
classifieurs pour l'apprentissage automatique, l'opération de choix d'un
type est une question typique « Quel algorithme dois-je
utiliser ? ». Selon (Li, 2017), la réponse à
cette question varie les facteurs suivants :
V' La taille, la qualité et la nature des
données. V' Le temps de calcul disponible.
V' L'urgence de la tâche.
V' Le but d'utilisation de ces données.
La figure suivante (Voir figure 6), fournir des indications
sur les algorithmes à essayer en premier selon les facteurs
mentionnés ci-dessus.
Figure 6. Le choix de
l'algorithme d'apprentissage selon certains facteurs.
P a g e | 22
1.4. Champs industriels d'apprentissage
automatique.
L'apprentissage automatique (l'apprentissage artificiel) a
fourni un grand nombre d'outils aux industriels et aux entrepreneurs. Nous les
regroupons selon deux grands axes: la reconnaissance des formes et la fouille
de données (l'extraction de connaissances des données
(Datamining)) (Chapman et al., 2000).
1.4.1. La reconnaissance de forme.
Elle est un ensemble de technique et méthodes
permettant d'identifier les motifs informatiques à partir des
données brutes pour la prise de décision en
dépendance de la catégorie que l'on attribue à ce motif.
C'est l'un de deux axes sur lesquels l'apprentissage automatique se
développe, elle utilise aussi les statistiques.
Au sens large si on veut bien comprendre la forme, c'est un
motif à nature variée et non pas une simple forme
géométrique.
Il peut s'agir par exemple d'un contenu visuel
(empreinte digitale, code barre, visage, ...) ou
sonore (la parole), d'images
médicales (rayon X, EEG, IRM...) ou
multi spectrales (images satellitaires) et
bien d'autres.
Les méthodes d'apprentissage automatique sont ici à
la base de :
? La reconnaissance des images (écriture manuscrite,
signatures, détection de ressources par satellite, pilotage automatique,
etc...) ; ? La reconnaissance de la parole ;
? Le traitement avancé des signaux biomédicaux ;
Etc.
1.4.2. La fouille de données ou
datamining.
Les problèmes pratiques que peut résoudre en ce
domaine le machine Learning se posent constamment dans la vie industrielle :
comment distinguer un bon client d'un mauvais, comment reconnaître un
mauvais procédé de fabrication et l'améliorer,
voilà deux exemples frappants parmi tant d'autres.
La fouille de données (Datamining, en anglais)
est le processus d'extraction de la connaissance : il consiste à
sélectionner les données à étudier à partir
de bases de données (BD) (hétérogènes ou
homogènes), à épurer ces données et enfin à
les utiliser en apprentissage pour construire un modèle (Gashler et al.,
2008).
Dans le souci de pouvoir corriger certains défauts
qu'avaient connus ses prédécesseurs entre autre (Statistique
descriptive, analyse de données, etc.), qui sont : exigence de
présentation des données sous une forme très rigide et
faiblesse d'intelligibilité constatée sur les
résultats. Dans ce souci est né le datamining.
Depuis, l'évolution de ces domaines, les critiques qui
leur ont été adressés ont changé, et ceci vers les
années 1990. Data ming est effectivement né quadruplet effort.
P a g e | 23
V' Permettre aux utilisateurs de fournir des données
dans l'état où elles sont
(ceci a donné naissance aux techniques de nettoyage
des données);
V' Utiliser les données enregistrées sous
forme de bases de données (en général relationnelles),
ceci a provoqué un large courant de recherche au sein de la
communauté des BD intéressée par la création de
modèles;
V' Fournir aux utilisateurs des outils capables de
travailler sur des données mixtes, numériques et symboliques
;
V' Construire des outils produisant une connaissance
intelligible aux utilisateurs.
C'est ainsi que datamining a pu trouver la large
reconnaissance industrielle dont elle jouit actuellement. Elle a
commencé à résoudre les deux problèmes industriels
principaux de l'analyse des données, ceux qui coûtent le plus cher
(le fait que le client est souvent imprécis dans la dentition du
problème qu'il se pose et le fait que les données dont il dispose
sont souvent de qualité discutable).
1.4.3. Caractéristique d'apprentissage
automatique.
Parmi les principales caractéristiques et
facultés adoptées par les modèles d'apprentissage
automatique, nous citons : l'entraînement, la reconnaissance, la
généralisation, l'adaptation, l'amélioration et
l'intelligibilité (Chapman et al., 2000).
1.4.3.1. Adaptation.
Elle peut être vue comme étant la disposition du
modèle (algorithme ou système) à corriger son
comportement ou à remanier sa réponse (ex.,
prédiction) par rapport à de nouvelles situations.
Pour les tâches de perception, en vision artificielle,
on accumule les bonnes et mauvaises expériences, et à partir
d'elles, on peut faire évoluer les règles pour mieux effectuer la
tâche, c'est le phénomène d'adaptation ou
d'amélioration.
1.4.3.2. Intelligibilité.
C'est améliorer la compréhension des
résultats d'apprentissage, afin que le modèle puisse fournir une
connaissance claire et compréhensible. Au sens interprétable (en
anglais, on parle de comprehensibility ou
understandability).
Exemple, quand un expert extrait de la
connaissance des bases de données (BDs), il apprend une manière
de les résumer ou de les formuler (expliquer, expliciter de
manière simple et précise).
P a g e | 24
D'un point de vue fouille de données, ça revient
purement et simplement à contrôler l'intelligibilité
(clarté) d'un modèle obtenu.
Actuellement, la mesure d'intelligibilité se
réduit à vérifier que la connaissance produite est
intelligible et que les résultats sont exprimés dans le langage
de l'utilisateur et la taille des modèles n'est pas excessive.
1.4.3.3. Généralisation.
D'une autre facette, l'apprentissage est typiquement
caractérisé par une généralisation rationnelle
des règles, c'est-à-dire si d'une expérience
accumulée sur un certain nombre d'exemples, on tire des règles de
comportement, il faudrait que celles-ci soient également applicables
à des situations encore non rencontrées.
1.4.3.4. Reconnaissance.
Avec la reconnaissance de la parole, par exemple, le
programme d'apprentissage n'aura pas besoin d'apprendre tous les sons de ladite
parole. Il va extraire une règle de classification qui lui permettra de
traiter au mieux les sons qu'il aura à décoder.
1.4.3.5. L'amélioration.
Les sciences cognitives définissent l'apprentissage
comme étant une capacité à améliorer les
performances au fur et à mesure de l'exercice d'une
activité. C'est le cas d'un joueur du scrabble au fil des parties,
où l'assimilation de l'expérience et la puissance du raisonnement
se combinent dans sa progression.
1.4.4. Tache d'apprentissage.
Il est possible de parler de l'objectif du processus
d'apprentissage suivant plusieurs points de vue :
? Par rapport à la
connaissance
L'apprentissage peut viser à modifier le contenu de la
connaissance (par l'acquisition de connaissances, soit par révision ou
par oubli), non seulement de modifier mais aussi le rendre plus efficace par
rapport à un certain but ; Par réorganisation, optimisation
ou compilation par exemple. Ce pourrait être le cas d'un joueur
d'échecs ou d'un calculateur mental qui apprend à aller de plus
en plus vite sans pour autant connaître de nouvelles règles de jeu
ou de calcul. On parle dans ce cas d'optimisation de
performance.
P a g e | 25
· Par rapport à
l'environnement
Dans cette optique la tache de l'apprentissage peut
être définie de ce que l'agent apprenant doit réaliser pour
survivre dans son environnement en :
V' Apprenant à reconnaître les
formes ; V' Apprendre à prédire ;
V' Apprendre à être plus
efficace.
· Par rapport à des classes abstraites
de problèmes.
Voyant des problèmes et processus de résolution
qui leur sont assignés, l'apprentissage peut viser à extraire
et à compresser l'information, à décoder ou même
à décrypter un message codé (cryptographie), à
approximer une fonction cachée dans les données
(problème d'analyse), à généraliser une
connaissance déjà apprise (problème d'induction),
à tenter la résolution des problèmes mal posés
(problème issu des mathématiques appliquées).
· Par rapport aux structures de données
ou types d'hypothèses visées.
Dans cette optique, la tâche agent apprenant est
définie sur la détermination de l'algorithme d'apprentissage
à utiliser ainsi que le type de données adéquat à
l'apprentissage. Il consiste parfois à modifier la structure de
données pour en trouver une équivalente mais plus efficace du
point de vue computationnel, c'est encore une fois, sous un autre angle, le
problème de l'optimisation de performance (Mitchell, 1997).
1.4.5. L'espace des données
d'apprentissage.
Le problème de la classification est l'apprentissage
d'une fonction dite de prédiction, de décision etc., au travers
des données. Pour espérer obtenir un classifieur
adapté à la tâche considérée,
quelques points sont à survoler (Wiener et al., 2002).
Ces points se résument autour de deux problèmes
essentiels :
V' Celui de la représentation
adéquate des données ;
V' Et celui de la représentation
des hypothèses faites par le programme d'apprentissage.
1.5. De l'apprentissage automatique à
l'apprentissage en profondeur.
Nous ne pouvons pas différer sur l'efficacité de
l'apprentissage automatique dans la résolution d'une
variété de problèmes, mais il y a beaucoup de
problèmes que ce type fait face, dont les plus importants sont le temps,
la vitesse et l'efficacité, si un algorithme d'apprentissage automatique
renvoie une prédiction inexacte, alors un
P a g e | 26
ingénieur doit intervenir et faire des ajustements,
dans ce cas, il y a un manque d'efficacité qui sera une perte de temps
avec une prévision lente (Grossfeld, 2020).
Les algorithmes simples d'apprentissage automatique
décrits dans ce chapitre fonctionnent très bien sur une grande
variété de problèmes importants. Cependant, ils n'ont pas
réussi à résoudre les problèmes centraux de
l'intelligence artificiel, tels que la reconnaissance de la parole ou la
reconnaissance d'objets. Le développement de l'apprentissage en
profondeur a été motivé en partie par l'échec de
algorithmes traditionnels, lorsque de travaille avec des données de
grande dimension, pour bien généraliser sur de telles
tâches l'intelligence artificiel (Goodfellow et al., 2016).
1.6. L'apprentissage en profondeur « Deep Learning
».
L'apprentissage en profondeur « Deep Learning » a
été un défi à définir pour beaucoup de
spécialiste dans le domaine, car il a changé de forme lentement
au cours de la dernière décennie. Une définition utile
précise que l'apprentissage en profondeur est un réseau neuronal
avec plus de deux couches (Patterson et al., 2017). Le problème avec
cette définition est qu'elle fait écho à l'existence de ce
domaine depuis les années 80 du siècle dernier, formant ainsi une
grande contradiction puisque beaucoup de gens pensent que ce domaine est
relativement nouveau, pour réfuter cette contradiction, il faut
distinguer le moment où le domaine est apparu et celui où il a
été cadré et exploité.
1.6.1. Définitions et les architectures
d'apprentissage en profondeur. 1.6.1.1. Définitions.
Le terme « apprentissage profond » a
été introduit dans le domaine du l'apprentissage automatique par
« Rina Dechter » en 1986, et dans les
réseaux de neurones artificiels par « Igor Aizenberg
» et ses collègues en 2000, dans le contexte des neurones
à seuil booléen (Schmidhuber, 2015), l'apprentissage profond
désigne une technique d'apprentissage d'une machine, c'est une
sous-branche de l'intelligence artificielle qui vise à construire
automatiquement des connaissances à partir de grandes quantités
d'information (Voir figure 7). Les caractéristiques essentielles du
traitement ne seront plus identifiées par un traitement humain dans
algorithme préalable, mais directement par l'algorithme d'apprentissage
profond (Nuageo, 2017).
P a g e | 27
Figure 7. Les sous-bronches de
l'intelligence artificiel.
L'apprentissage en profondeur permet donc implicitement de
répondre à des questions du type « que peut-on
déduire de ces données ? » et décrire
des caractéristiques parfois cachées ou des relations entre des
données souvent impossibles à identifier pour l'homme.
D'après (Patterson & Gibson, 2017)
l'apprentissage profond est un réseau neuronal avec un grand nombre
de paramètres et de couches, l'exemple de base c'est le
perceptron multicouche MLP « multi layer
perceptron » (Voir figure 8).
Figure 8. Un perceptron
multicouche.
Perceptrons a été inventé en 1958 au
« Cornell Aviation Laboratory » par « Frank
Rosenblat » financé par le bureau de recherche navale des
États-Unis, Le mot vient de verbe latin « Percipio
» qui signifie en Anglaise understand
; en Français comprendre, qui
montre que le robot ou l'appareil peut apprendre et comprendre le monde
extérieur (Rosenblatt, 1958).
P a g e | 28
Un perceptron multicouche avec plusieurs couches
cachées entre la couche d'entrée et la couche de sortie est un
réseau de neurones profonds (DNN), le DNN est une fonction
mathématique, qui mappe certains ensembles de valeurs d'entrée
aux valeurs de sortie. La fonction est formée par la composition de
nombreuses fonctions plus simples (Goodfellow et al., 2016).
Certaines de ses caractéristiques (Patterson et al., 2017)
:
V' Plus de neurones.
V' Des moyens plus complexes de connecter les couches neurones
dans
les réseaux neuronaux.
V' Puissance de calcul.
V' Extraction automatique des fonctionnalités.
L'apprentissage profond s'applique dans divers domaines
(Goodfellow et al., 2016), tel que :
V' L'intelligence artificielle en général.
V' La reconnaissance visuelle et la comparaison de forme.
V' La robotique.
V' La santé et la bio-informatique.
V' La sécurité.
1.6.1.2. Les architectures d'apprentissage en
profondeur.
Les trois grandes architectures de réseaux profonds
selon (Patterson et al., 2017) :
4. Réseaux de neurones pré-entraînés
non supervisés.
4. Réseaux neuronaux convolutionnels (CNN).
.
4. Réseaux neuronaux récurrents (RNN)
Habituellement, de nombreuses catégories
considèrent les réseaux de neurones supervisés comme
appartenant au domaine d'apprentissage automatique plutôt que
d'apprentissage en profondeur.
P a g e | 29
1.7. Comparaison entre l'apprentissage automatique et
l'apprentissage en profondeur.
|
L'apprentissage automatique
|
L'apprentissage en profondeur
|
Dépendances des données
|
Une performance excellence
avec des petites bases de données.
|
Une performance
excellente avec les BIG-DATA3.
|
Dépendances du matériel
|
Travail sur une machine
faible.
|
Besoin d'une machine
fort avec un CPU4 fort aussi.
|
Les caractéristiques des
données
|
Besoin de comprendre les
caractéristiques des données.
|
Pas besoin de comprendre
les caractéristiques des données.
|
Le temps d'exécution
|
Quelque minute à des heures.
|
Des semaines.
|
Interprétable
|
Certains algorithmes sont
faciles (Arber de disions) et
d'autres sont impossibles (SVM, XGBoost5).
|
Difficile à impossible.
|
Tableau 1 : Comparaison entre
l'apprentissage automatique et l'apprentissage en
profondeur.
3 BIG-DATA : un ensemble
très volumineux de données qu'aucun outil classique de gestion de
base de données ou de gestion de l'information ne peut vraiment
travailler (Bremme, 2015).
4 CPU : Un processeur
« central processing unit »
5 XGBoost : est une
bibliothèque logicielle open source permettant de mettre en oeuvre des
méthodes de Gradient boosting, Le Boosting de Gradient est un algorithme
d'apprentissage supervisé dont le principe et de combiner les
résultats d'un ensemble de modèles plus simple et plus faibles
afin de fournir une meilleure prédiction (Cayla, 2018).
P a g e | 30
Conclusion partielle.
Dans ce chapitre, nous avons présenté
l'apprentissage automatique et l'apprentissage profond. Nous avons d'abord
commencé par la description de l'apprentissage automatique et ses
différentes architectures proposées. Ensuite, nous avons
passé à la description de l'apprentissage profond.
Dans cette démarche, nous avons décelé
les caractéristiques de l'apprentissage artificiel, entre autres :
adaptation, généralisation, reconnaissance, amélioration
et intelligibilité. Ce sont les cinq (5) caractéristiques qu'on
peut trouver dans le modèle de machine Learning.
Etant atteints, les objectifs fixés pour ce chapitre,
nous aborderons dans le second chapitre, l'une de méthodes de
l'apprentissage supervisé qui est le réseau de neurones
artificiels précisément le réseau de neurones
à convolution ( Convolutionnal Neural Network, en anglais)
spécialisé dans le traitement d'images, la reconnaissance de
formes, etc. Il fait partir de Deep Learning (Apprentissage
Profond, en français).
P a g e | 31
Chapitre deuxième : Réseau des neurones
à convolution (CNN).
2.1. Introduction.
Les réseaux neuronaux convolutionnels CNNs «
Convontoinal neurone network » sont un type spécialisé de
réseau neuronal pour le traitement de données qui a une topologie
connue, ils sont des réseaux supervisé et non supervisé,
cela dépend de l'exigence et l'utilisation, cependant, principalement
sont supervisé (Patterson et al., 2017).
L'informaticien japonais « Kunihiko Fukushima
» a jeté les bases du lancement de cette structure par son
travaille sur Neocognitron en 1980 (Vázquez,
2018).
Comme une grille, ils appartiennent aux réseaux de
neurones artificiels acycliques, le nom convolutionnel
indique que le réseau emploie une opération
mathématique appelée convolution, et cela signifie un type
spécialisé d'opération linéaire (Goodfellow et al.,
2016).
Un réseau de neurones convolutif (CNN) s'inspire du
cortex visuel des mammifères afin d'analyser une image en profondeur.
Cette architecture a été introduite par le chercheur "Yann Le
Cun" Dans les années 90.
Dans ce chapitre, nous introduirons le réseau de
neurones convolutif et les différents algorithmes qui le distingue d'un
réseau de neurones classique (DNN6).
2.2. Motivations des réseaux de neurones
convolutifs. Les principales motivations des CNN sont les suivantes
:
A Un Deep Neural Network (DNN) profond pour analyser
une images complexe dégrade rapidement. Il faut trouver une
méthode moins coûteuse et plus intuitive afin de faire du
traitement d'image en général et la détection de forme en
particulier.
A Une image est composée de sous
éléments, il faut donc exploiter cette hiérarchisation
avec une détection de formes plus granulaire.
A Les positions, tailles, couleurs..etc sont
compliqués à extraire pour les réseaux classiques afin
d'avoir une compréhension générale de l'image.
A Réduire la dimensionnalité des
paramètres d'un Deep Neural Network (DNN) classique et celle des
images.
6 DNN : Dense/Deep Neural
Network
P a g e | 32
? S'inspirer de la biologie afin de créer une
intelligence artificielle fut un succès, se tourner une seconde fois
vers elle afin de modéliser une nouvelle IA7 peut être
fructueux.
2.3. Le cortex visuel.
Dans la définition suivante, à chaque
étape, nous citerons entre parenthèses une notion analogue
à celle des CNN.
L'oeil perçoit la lumière
(image en entrée) à travers la
pupille puis véhicule l'information vers le
cortex visuel qui se situe derrière la tête. Cette
information est sous forme de signaux électriques
dont la fréquence correspond
à une information codée (convolution).
Au cours de leurs trajets, les informations passent d'une fibre nerveuse
à une autre grâce aux synapses
(connexion de neurones). Le cortex
visuel est constitué de plusieurs aires spécialisées dans
le traitement des messages nerveux (les
filtres). Selon la fréquence des signaux
électriques émanant de l'information, chaque air
interprète une caractéristique de l'image comme suit
(cartes de caractéristiques) (Maxicours,
2021).
Figure 9. Les différentes
aires du cortex visuel. 2.4. CNN et structure
générale.
Construire un CNN revient à superposer plusieurs
couches de manière hiérarchique, chacune d'entre elles calcule
une représentation abstraite de l'image au fur et à mesure
(Nguyên, 2018). L'opération se présente en
général de la manière suivante.
7 IA : Intelligence
Articielle
P a g e | 33
Figure 10. Structure
générale d'un CNN.
2.5. CNNs et fonctionnement.
Le fonctionnement de CNNs est inspiré à partir
du fonctionnement du processus biologique, ils consistent en un empilage
multicouche de perceptrons, dont le but est le prétraitement de petites
quantités d'informations (Patterson et al., 2017).
Figure 11. L'architecture des
réseaux de neurones convolutifs.
Cette architecture des réseaux neuronaux convolutifs
(CNNs) ci - dessus regorge trois couches majeurs, dont :
? Couche d'entrée : la couche
d'entrée accepte généralement l'entrée
tridimensionnelle sous la forme (hauteur x largeur) de l'image et a
une profondeur représentant les canaux de couleur
(généralement trois pour les canaux de couleur RGB).
P a g e | 34
V' Couche d'entrainement : est
construite de :
? Convolution couche.
? Fonction d'activation : Linéaire
rectifiée « Relu ». ? Couche de mise en
commun « pooling ».
V' Couche de classification : la couche
de classification permet de produire des probabilités ou des scores de
classe.
2.5.1. Les filtres (Kernel).
Un filtre est un petit groupe de neurones à partir
desquels la couche suivante est connectée. Comme les filtres
utilisés dans les traitements d'images classiques, ces derniers se
distinguent des filtres ordinaires par leurs auto-apprentissages en effet, on
ne connaît pas d'avance les paramètres qui les constituent, c'est
au réseau de les apprendre (Aston et al., 2020).
Un filtre est une matrice de poids n X n qui
analyse une partie m X m de l'image afin d'en extraire une
valeur pertinente puis répéter le processus sur toute l'image.
Figure 12. Opération
convolutive sur une image. 2.5.2. Cartes de
caractéristiques.
Les cartes de caractéristiques (feature map) sont les
images résultantes de l'opération convolutive.
Dans la pratique, plusieurs filtres sont appliqués
à l'image de départ pour produire plusieurs cartes. Chacune
d'entre elles a pour rôle de détecter une particularité :
contraste, lumière et autres en comparaison avec les régions du
cortex visuel comme suit.
P a g e | 35
Figure 13. Représentation
générale des cartes de caractéristiques.
La figure ci-après est un exemple d'une première
convolution sur une image histologique d'un cancer de la peau invasif. On
remarque suite à une première couche de convolution une
extraction générale des caractéristiques globales :
couleur, contraste, luminosité...etc.
Figure 14. Convolution sur une
histologie. 2.5.3. Profondeur de l'image et des
filtres.
Une image est pour une machine une matrice de
(n X n X k), n représente les
lignes et les colonnes qui constituent ses pixels. Chaque pixel
dispose de 3 valeurs du système de codage RGB
: c'est la dimension k. Par conséquent, un filtre est
en réalité de taille m X m X k.
P a g e | 36
Figure 15. Dimensions d'une image
et des cartes de caractéristiques.
Résultat : le nombre poids est
drastiquement diminué en terme de lignes et colonnes mais
augmenté en profondeur par le rajout de la 3ème
dimension k.
La dimension des images est également augmentée en
profondeur à cause du nombre de cartes générées.
Un des objectifs primaires des CNN
étant de réduire la dimension, celle-ci se voit augmentée
(Aston et al., 2020).
2.5.4. Le Pooling.
Le Pooling (mise en commun) est un algorithme visant
à réduire la dimension d'une image tout en gardant des
sous-parties importantes.
La fenêtre de Pooling est une matrice m x
m, qui parcours l'image afin de produire un seul pixel de
sortie parmi mxm pixels voisins. Plusieurs
méthodes de production de pixels sont mises en place en fonction de
la pertinence de l'information voulue.
Parmi ces méthodes, on compte l'average-Pooling, max et
min-Pooling (Aston et al., 2020).
2.5.4.1. Average-Pooling.
Le principe de l'average-Pooling est de prendre la moyenne des m
X m pixels voisins. Dans le traitement d'image, on parle de "
lissage". La fenêtre de Pooling la plus
utilisée est de 2 X 2.
P a g e | 37
2.5.4.2. Max-Pooling.
Le Max-Pooling permet d'extraire uniquement la plus grande
valeur dans un ensemble de pixels. Ce type de Pooling est avantageux pour
analyser une image dont le fond est noir. Le but est ainsi d'ignorer tous les
pixels de faible valeur (en noir) et d'en extraire l'avant-plan (plus
clair).
2.5.4.3. Min-Pooling.
Le Min-Pooling permet d'extraire le pixel le plus faible parmi
ses m X m pixels voisins. Cette méthode est
adaptée dans les cas où le fond de l'image est clair et l'avant
plan sombre.
La figure suivante illustre les différents
résultats de Pooling et leurs effets réducteurs.
Figure 16. Exemple applicatif des
différents Pooling.
Remarque : théoriquement,
l'Average-Pooling semble être la méthode la plus adéquate
car on ne perd ni trop ni peu d'informations. Cependant, les expériences
ont montré que dans la plupart des problèmes de traitement
d'images, le Max-Pooling semble être la plus adéquate. La figure
suivante représente un test de différents Pooling sur une
histologie.
P a g e | 38
Figure 17. Résultat de
différents Pooling sur une histologie.
Résultat : Le Max-Pooling permet
d'extraire de meilleurs contours afin de détecter les anomalies
(grosseur de cellules) tandis que l'Average-Pooling ne fait que lisser l'image.
Quant au Min-Pooling, il permet que de réduire la luminosité de
l'image, les contours sont donc négligés.
2.5.5. Le Stride.
L'opération de convolution s'effectue en
déplaçant successivement la fenêtre du filtre dans l'image.
Le Stride est donc la taille du pas de déplacement en matière
de ligne et colonne qu'on veut effectuer pour parcourir l'image.
Remarque : Les Strides les plus
utilisées sont de (1; 1) ou (2; 2) afin d'avoir une meilleure
corrélation entre pixels.
Figure 18.
Stride(ligne,colone).
P a g e | 39
2.5.6. Le zero-Padding.
Le Zero-Padding est une technique qui permet d'ajouter des
pixels à valeur nulle à chaque côté des
frontières de l'image. Le but est de compléter celle-ci dans le
cas où le Stride et la taille du filtre ne sont pas compatibles à
celle de l'image.
Figure 19. Exemple de
dépassement d'une image par un filtre.
Les pixels aux extrémités de l'image sont
faiblement traités par rapport aux pixels au centre suite au
déplacement du filtre. La figure suivante illustre ce
phénomène.
Figure 20. Exemple de filtre
passant par un pixel.
P a g e | 40
2.5.7. Padding-valid, Padding-Same.
Le Padding-Valid est caractérisé par l'absence
de Padding. Quand la taille du filtre et de l'image adhère, il n'y a pas
nécessité de rajouter des zéros. Le PaddingSame est
introduit de sorte à avoir la taille de l'image en entrée
égale à celle en sortie. C'est le plus utilisé car
tous les pixels seront traités le même nombre de fois par le
filtre (Aston et al., 2020).
Figure 21. Exemple applicatif
d'un Padding-Same.
2.6. Fonction Relu.
L'opération de convolution sur une image impose de
la linéarité à celle-ci, or les images sont
naturellement non linéaires. Afin d'avoir une meilleure
interprétation, Relu permet de casser
cette linéarité8. Pratiquement, la fonction relu
supprime tous les éléments noirs, en ne gardant que ceux qui
portent une valeur positive (les couleurs grises, blanches et autres).
De plus, quand deux couches de convolution sont
appliquées, les poids des filtres de la 2ème
convolution peuvent prendre soit des valeurs positives ou négatives. Si
la carte de caractéristique de la 1ère convolution est
négative, le produit d'une réponse négative et d'un poids
de filtre négatif produira une valeur positive. Pourtant, le produit
d'une réponse positive et d'un filtre positif produira également
une valeur positive. En conséquence, le système ne peut pas
différencier ces deux cas (Jay Kuo, 2016).
8 C'est - à - dire
remplacés les résultats négatifs par zéro.
P a g e | 41
Figure 22. Opération
convolutive sans Relu.
La figure suivante illustre l'impact de la rectification
linéaire sur les cartes de caractéristiques résultantes en
effet, deux filtres de signes différents produisent deux cartes
différentes.
Figure 23. Opération
convolutive avec Relu. 2.7. Couche de Correction
(RELU).
Après chaque opération de convolution, le
réseau de neurones convolutif applique une transformation ReLU
(unité de rectification linéaire) à la fonction
convoluée, afin d'introduire la non-linéarité dans le
modèle. La fonction ReLU, F(x) = max (0, x), renvoie
x pour toutes les valeurs de x >
0 et renvoie 0 pour toutes les valeurs de
x = 0.
2.8. Couche entièrement connectée
(FC).
Après plusieurs couches de convolution et de
max-pooling, le raisonnement de haut niveau dans le réseau neuronal se
fait via des couches entièrement connectées. Les neurones dans
une couche entièrement connectée ont des connexions vers toutes
les sorties de la couche précédente. Leurs fonctions
d'activations peuvent
P a g e | 42
donc être calculées avec une multiplication
matricielle suivie d'un décalage de polarisation.
2.9. Couche de perte (LOSS).
La couche de perte spécifie comment l'entrainement du
réseau pénalise l'écart entre le signal prévu et
réel. Elle est normalement la dernière couche dans le
réseau. Diverses fonctions de perte adaptées à
différentes tâches peuvent y être utilisées. La
fonction « Softmax » permet de calculer la distribution de
probabilités sur les classes de sortie.
2.10. Deep Neural Network (DNN) final.
Un CNN est une succession de couches convolution/Relu
appliquées aux cartes de caractéristiques résultantes. Ces
opérations s'achèvent par un réseau de neurones
complètement connecté afin d'assembler toutes les informations
apprises et ainsi effectuer les opérations classiques d'un DNN à
savoir : prédiction, estimation de l'erreur, propagation de
gradients puis mise à jour des poids.
2.11. Structure générale d'un
CNN.
Figure 24. Architecture
générale d'un CNN. 2.12. L'application des
réseaux neuronaux convolutifs.
Les réseaux neuronaux convolutifs (CNNs) ont de larges
applications, notamment :
V' La reconnaissance d'image et vidéo.
V' Les systèmes de recommandation.
V' Le traitement du langage naturel.
V' L'efficacité des CNN dans la reconnaissance de
l'image (Voir Figure 25) est l'une des principales raisons pour lesquelles le
monde reconnaît le pouvoir de l'apprentissage profond (Patterson et al.,
2017).
P a g e | 43
Figure 25. Reconnaissance d'une
image avec CNN. 2.13. Avantages de CNNs.
L'utilisation d'un poids unique associé aux signaux
entrant dans tous les neurones d'un même noyau de convolution est un
avantage majeur des réseaux convolutifs. Par cette méthode, il
y'a réduction de l'empreinte mémoire, amélioration des
performances et permet une invariance du traitement par translation. C'est le
principal avantage du CNN par rapport au MLP, qui lui considère chaque
neurone indépendant et donc affecte un poids différent à
chaque signal entrant. Lorsque le volume d'entrée varie dans le temps
(vidéo ou son), il devient intéressant de rajouter un
paramètre de temporisation (delay) dans le paramétrage des
neurones. On parlera dans ce cas de réseau neuronal à retard
temporel (TDNN).
Comparés à d'autres algorithmes de
classification de l'image, les réseaux de neurones convolutifs utilisent
relativement peu de prétraitement. Cela signifie que le réseau
est responsable de faire évoluer tout seul ses propres filtres
(apprentissage sans supervision), ce qui n'est pas le cas d'autres algorithmes
plus traditionnels. L'absence de paramétrage initial et d'intervention
humaine est un atout majeur des CNN.
P a g e | 44
Conclusion partielle.
Dans ce chapitre, nous avons présenté
l'essentiel sur le réseau de neurones à convolution, nous avons
aussi décrit l'architecture et les avantages que présente ce
dernier par rapport à notre travail. Nous avons également
étudié les fonctionnalités détaillées d'un
réseau de neurones convolutif. Le plus important réside dans la
différence entre un CNN et un DNN classique par la présence de
filtres, de convolutions et les couches de pooling intercalées. Un CNN
effectue grâce à cela une détection de formes plus
granulaire qu'un DNN classique.
Etant atteints, les objectifs fixés pour ce chapitre,
nous aborderons dans le troisième chapitre « l'État
de l'art sur les méthodes de segmentation & de classification
d'images ».
Figure 26. Types des
mélanomes (a) superficiel extensif, (b)
nodulaire, (c) lentigo
et (d) acral.
P a g e | 45
Chapitre troisième : État de l'art sur les
méthodes de segmentation & de classification d'images.
3.1. Introduction.
Ce chapitre est un aperçu de l'état de l'art des
différents algorithmes de segmentation et de classification des
lésions cutanées. La première partie est une étude
des différentes approches de segmentation et leurs limitations
lorsqu'elles sont appliquées avec les images
dermoscopiques. La deuxième partie est consacrée
aux approches de classification.
3.2. Le mélanome.
Le cancer de la peau est une maladie cutanée
caractérisée par la croissance anormale de cellules. Dans un
premier temps, ces cellules se propagent uniquement dans leur environnement
proche, il s'agit d'une tumeur bénigne.
Ensuite, elles continuent à se propager et finissent par envahir
d'autres parties du corps à travers le sang et la lymphe. Ces cellules
tumorales, communément appelées métastases
détériorent alors une ou plusieurs fonctions de l'organisme et
peuvent conduire à la mort. On parle alors d'une tumeur
maligne. Les cancers de la peau les plus fréquents sont :
le carcinome basocellulaire, le carcinome épidermoïde et le
mélanome.
Actuellement, le mélanome est l'un des
cancers les plus dangereux, c'est un problème majeur de
santé publique dans le monde. Une fois que la propagation des
métastases commence, les traitements tels que la
radiothérapie et la chimiothérapie sont inefficaces.
L'immunothérapie, en revanche, augmente la durée de survie sans
récidive du mélanome. Les mélanomes sont
regroupés en plusieurs sous-types dont les quatre principaux
sont le mélanome superficiel extensif, nodulaire, lentigo et acral
(Hartinger, 2012).
P a g e | 46
3.2.1. Facteurs de risques.
Le mélanome provient de la transformation maligne des
mélanocytes. Les mécanismes par lesquels le mélanome se
développe sont encore mal connus, mais trois principaux facteurs de
risque ont été identifiés :
V' L'exposition aux ultraviolets UV,
V' Les prédispositions
génétiques,
V' Les antécédents personnels de
mélanome.
3.2.2. Développement du
mélanome.
Dans la plupart des cas, l'évolution du mélanome
se divise en quatre stades bien définis.
A Premier stade : les cellules
tumorales sont localisées uniquement dans l'épiderme et
progressent horizontalement (mélanome in
situ). A ce stade, une simple excision de la zone affectée
suffit pour éliminer définitivement le cancer et éviter
ainsi toute évolution.
A Deuxième stade : si aucun
traitement n'est effectué, la tumeur se propage en profondeur, traverse
la membrane basale et colonise le derme et l'hypoderme.
A Troisième stade : les
cellules cancéreuses empruntent la circulation lymphatique pour envahir
les ganglions proches de la lésion initiale.
A Quatrième stade : les
métastases continuent de se développer et atteignent les organes
profonds.
3.2.3. Détection et traitement du
mélanome.
La détection précoce du mélanome
constitue une étape importante du traitement des personnes atteintes. En
effet, si la tumeur peut être retirée avant qu'elle n'ait franchi
la jonction dermo-épidermique, l'individu est
en phase de guérison. Généralement, le moyen de
détection consiste en un examen à l'oeil nu par un
dermatologue. Ce dernier utilise couramment des
dermoscopes (Figure 27) pour une meilleure
visualisation. Plusieurs règles ont été
développées afin de caractériser plus efficacement une
lésion suspecte, la plus connue est la règle ABCD
(Nachbar et al., 1994). L'utilisation de cette dernière
présente plusieurs limites. En effet, elle
n'est pas applicable pour des lésions
précoces.
P a g e | 47
Figure 27. Dermoscope.
Lorsque le mélanome n'a pas encore formé de
métastases, le seul traitement curatif est une exérèse
chirurgicale. À ce jour, il n'existe pas de traitement pour le
mélanome métastasé permettant une rémission
complète. Il est donc nécessaire de développer un outil de
détection automatique du mélanome précoce plus
efficace.
3.2.4. Diagnostic assisté par
ordinateur.
Le diagnostic assisté par ordinateur (DAO) pour la
détection du mélanome a été introduit afin
d'améliorer et d'aider les dermatologues et d'autres cliniciens dans la
prévention du cancer de peau. La construction d'un DAO repose
principalement sur quatre étapes essentielles
: le prétraitement de l'image, la segmentation,
l'extraction des attributs et la classification. La figure 28
présente le schéma bloc d'un DAO9.
Figure 28. Schéma bloc d'un
DAO.
9 DAO : Diagnostic
Assisté par Ordinateur
P a g e | 48
1. Prétraitement : regroupe
l'ensemble des processus visant à améliorer la qualité de
l'image acquise.
2. Segmentation : est une
répartition de l'image en régions homogènes selon un
critère déterminé : couleur, texture, niveau de gris,
...etc.
3. Extraction d'attributs
(caractéristiques) : vise à extraire les
informations pertinentes qui caractérisent chaque classe.
4. Sélection des caractéristiques
: est utilisée pour sélectionner les
caractéristiques les plus pertinentes et de réduire la dimension
de l'espace des caractéristiques de manière à
éliminer les caractéristiques redondantes.
5. Classification d'images : est
une identification des classes en utilisant les attributs
sélectionnés.
3.3. Segmentation des lésions
cutanées.
La segmentation des lésions cutanées joue un
rôle crucial dans la détection automatique des mélanomes
en délimitant la région d'intérêt
(ROI) comme montré sur la figure 29, vu que dans cette
région que toutes les caractéristiques sont extraites.
L'étude comparative des performances des différentes techniques
de segmentation présentées dans les articles d'Adeyinka et al.
& d'Oliveira et al., démontrent la contribution de la segmentation
dans l'amélioration de la fiabilité d'un système DAO. Pour
cela, différentes techniques de segmentation automatique ont
été proposées pour la délimitation de ROI.
Figure 29. Segmentation d'une
lésion : a) illustration de ROI, b)
masque de la
lésion.
3.3.1. Segmentation basée clustering.
La segmentation par clustering consiste à
affecter à chaque pixel de l'image une classe qui
définit les régions à délimiter sur
l'image. Nous pouvons donc citer des algorithmes de
classification de pixels non-supervisés comme C-moyennes floues (Bezdek,
1980) et les k-means proposés par MAC QUEEN (MacQueen, 1967).
P a g e | 49
3.3.2. Segmentation basée C-moyennes floues
(FCM).
FCM est un algorithme de segmentation basé sur
le regroupement de pixels similaires de manière
itérative, les centres de regroupement étant
ajustés à chaque itération (Bezdek, 1980). En raison de sa
nature itérative, le coût de calcul de l'algorithme
est relativement élevé par rapport aux autres techniques de
segmentation. C'est pourquoi un certain nombre d'approches,
proposées par Cheng et al. & Szilagyi et al., ont été
présentées pour permettre des accélérations
significatives tout en maintenant de bonnes performances de segmentation.
Masood A. et al., ont proposé une nouvelle
méthode de segmentation qui combine FCM, le seuillage et la
méthode level set (LS). Tout d'abord, l'image est
prétraitée pour éliminer les artefacts (poils, bulles
d'air, et les marques de règle) en utilisant un filtre médian
7x7. Ensuite, un seuillage basé sur le FCM est utilisé pour
initialiser l'évolution du LS et réguler les paramètres de
réglage. La méthode proposée a montré une bonne
précision de segmentation des lésions cutanées avec un
taux de détection vrai moyen de 92,6% et une erreur de faux positifs et
de faux négatifs assez réduite, soit 4,66% et 7,34%
respectivement.
Eltayef K. et al., ont présenté une
nouvelle méthode de segmentation des mélanomes à partir
des images dermoscopiques. Pour détecter les poils et
autres bruits dans les images, une étape de prétraitement est
effectuée en appliquant le filtre Gabor. La
région d'intérêt (ROI) de l'image est extraite en combinant
la méthode FCM et Markov Random Field. La
méthode a été évaluée sur un ensemble de
données PH2 de 200 images dermoscopiques. Les résultats de la
méthode proposée ont été comparés aux
masques de la vérité terrain et atteignent une sensibilité
de 93,2%, une spécificité de 98,0% et une précision de
94,0%.
Dans l'article de Jose Luis Garcia et al., l'algorithme
proposé de segmentation des lésions cutanées
dans les images dermoscopiques est basé sur une
classification floue des pixels et un seuillage de l'histogramme.
La méthode a été testée sur deux bases de
données publiques ISIC10 2016 et ISIC 2017 contenant
respectivement 379 et 600 images, et comparée avec les autres travaux de
l'état de l'art, à l'aide des métriques comme
l'exactitude, le coefficient de Dice, l'indice de Jaccard, la
sensibilité et la spécificité : (0.934, 0.869, 0.791,
0.870 et 0.978) et (0.884, 0.760, 0.665, 0.869 et 0.923) respectivement.
3.3.3. Segmentation basée K-means.
L'algorithme des k-means réalise un
partitionnement automatique des pixels de l'image en k classes
homogènes. Divers algorithmes ont été
développés et appliqués pour la segmentation des
lésions cutanées dans le passé. Cette partie
10 ISIC : International
Standard Industrial Classification.
P a g e | 50
présente l'application de certains de ces algorithmes
et leurs performances sur la segmentation des ensembles de
données d'images dermoscopiques.
Alvarez et al., ont développé un algorithme de
segmentation qui se compose des étapes suivantes : une phase du
prétraitement de l'image qui consiste en une opération de
fermeture morphologique réalisée indépendamment sur chacun
des canaux de couleur de l'image RGB, en utilisant comme élément
de sélection un disque de rayon égal à 5 pixels. Ensuite,
un filtre médian 3×3 est appliqué à chaque canal pour
éliminer les poils. Une segmentation de l'image en utilisant
l'algorithme k-means, un calcul d'un ensemble de caractéristiques
décrivant les propriétés de chaque région
segmentée et enfin, un calcul d'un score final pour chaque
région, représentant la probabilité de correspondre
à une segmentation de lésion appropriée. L'algorithme
atteint un indice Jaccard d'environ 0,679.
Dans le travail d'Agarwal et al., une méthode de
segmentation des lésions cutanées basée sur la technique
du clustering est utilisée. D'abord, l'image RGB est convertie en espace
couleur L*a*b*. Une combinaison stratégique est appliquée aux
différents canaux de l'espace L*a*b* pour obtenir une nouvelle image en
niveaux de gris dans laquelle les pixels de la lésion et de la peau sont
plus différenciables. Ensuite, le clustering K-means est mis en oeuvre
pour segmenter la lésion de l'image prétraitée. Enfin, une
étape de post-traitement utilise un filtre moyenneur et un seuillage
basé sur la surface, pour supprimer les pixels bruités (les faux
positifs) de l'image segmentée. La méthode proposée a
été testée sur 50 images de la base de données
public DermIS et DermQuest. Les valeurs du score de chevauchement et du
coefficient de corrélation de la méthode proposée sont
respectivement de 96,75% et 97,66%.
3.3.4. Segmentation basée sur les réseaux
neuronaux convolutifs.
Récemment, les réseaux neuronaux convolutifs ont
été adoptés pour augmenter la précision de la
segmentation des images de lésions cutanées.
Zhang et al., ont développé une structure de
réseau de neurones CNN pour segmenter les lésions
cutanées. L'architecture du réseau comprend plusieurs couches de
convolution, des couches softmax, plusieurs filtres et des
fonctions d'activation. Une fonction d'activation non linéaire
(telle que ReLU et ELU) est utilisée pour
atténuer le problème de disparition du gradient et RMSprop/Adam
sont incorporés pour optimiser l'algorithme de perte. La méthode
a été testée sur l'ensemble de données ISIC 2017,
et elle a atteint une précision de 0.91 qui est plus
élevée que les architectures existantes.
P a g e | 51
Dans le travail de Yu et al., un nouveau réseau
résiduel entièrement convolutif (FCRN) de plus de 50 couches est
proposé, pour la segmentation des images dermoscopiques. Des
expériences sur la base de données ISIC 2016 ont montré
l'efficacité de la méthode proposée. Le FCRN à 50
couches a donné de meilleurs résultats que les architectures
VGG-16, GoogleNet, FCRN-38 et FCRN-100, avec une précision de
segmentation de 94,9%.
Yuan Y. et al., utilisent un réseau convolutif profond
à 19 couches pour la segmentation des lésions cutanées.
L'augmentation des données d'image a été adoptée
pour résoudre le problème des données limitées. De
plus, les performances de segmentation ont été
améliorées par l'utilisation de techniques telles que
la normalisation par lots (Ioffe et al., 2015),
l'optimisation Adam (Kingma et al., 2014) et
la fonction de perte basée sur l'indice Jacquard
(Yang X. et al., 2017). Les résultats expérimentaux
ont montré que la méthode proposée surpasse les autres
algorithmes de l'état de l'art sur la base de données ISIC 2016,
avec un indice de Jaccard de 0,861.
Yang X. et al., ont utilisé l'architecture U-Net pour
segmenter les lésions cutanées. Le modèle d'apprentissage
profond multitâche proposé est entraîné et
évalué sur l'ensemble d'images dermoscopiques ISIC 2017, qui
comprend 2000 échantillons d'entraînement et 150
échantillons d'évaluation. Les résultats
expérimentaux montrent que le modèle d'apprentissage profond
multitâche proposé atteint des performances prometteuses sur la
segmentation des lésions cutanées. La valeur moyenne de l'indice
de Jaccard pour la segmentation des lésions est de 0,724.
Dans l'article de Lin et al., une étude comparative de
deux approches différentes de la segmentation des lésions
cutanées est présentée. La première approche
utilise des U-Nets et introduit une étape de prétraitement
basée sur l'égalisation des histogrammes. La deuxième
approche est une approche basée sur le clustering K-means. Les
expériences ont été testées sur l'ensemble de
données ISIC 2017 pour valider l'étude comparative. En comparant
les deux algorithmes proposés, les U-Nets ont obtenu un indice de
Jaccard significativement plus élevé (0.62) par rapport à
l'approche de clustering (0.44).
P a g e | 52
3.4. Classification des lésions
cutanées.
Différencier les cas malins du
bénins, comme le montre la figure 30 est une tâche
très difficile, même pour des spécialistes
expérimentés. L'utilisation de techniques informatiques et
d'algorithmes peut être d'une grande aide.
Figure 30. Échantillon des
lésions bénignes et malignes de la base des
images dermoscopiques PH2.
Kasmi et al., ont proposé d'automatiser la règle
ABCD afin de discriminer les tumeurs malignes des tumeurs bénignes. Une
étape de prétraitement est utilisée pour éliminer
les artefacts (bulles et poils fins) à l'aide d'un filtre médian.
Les poils épais sont détectés en utilisant des filtres de
Gabor avec différentes fréquences et orientations. Ensuite, les
lésions sont segmentées par la méthode des contours actifs
géodésiques (GAC). Enfin, les valeurs de A, B, C et D sont
estimées par différents algorithmes et le Total Dermoscopic Score
(TDS) est calculé. Testé sur 200 images dermoscopiques,
l'algorithme atteint un taux de sensibilité de 91,25%, une
précision de 95,83% et une exactitude de 94,0%.
Jaworek et al., ont utilisé la forme et la texture de
la lésion pour détecter le mélanome à son stade
précoce avec un classificateur SVM. La méthode proposée
contient les étapes suivantes : l'étape du prétraitement
qui comprend l'élimination du cadre noir, le lissage des bulles d'air et
la suppression des poils noirs en utilisant un filtre gaussien et les
opérations morphologiques. Ensuite, une segmentation des lésions
basée sur l'algorithme de croissance de régions est
utilisée. L'extraction des caractéristiques est basée sur
les deux techniques, la règle ABCD pour la forme et 7-points checklist
pour la texture. Ils ont utilisé un ensemble de 200 images et ont obtenu
une sensibilité de 90%, une spécificité de 96% et une aire
sous la courbe de 93,24%.
Dans l'article de Barata et al., un ensemble de
caractéristiques est utilisé. L'étude compare le poids des
descripteurs de couleur (moments et histogrammes) et de texture (Gabor et Laws)
pour le mélanome. Les résultats montrent que les
P a g e | 53
descripteurs de couleur fonctionnent mieux que les
descripteurs de texture et que de bons résultats de classification
peuvent être obtenus en utilisant SVM, avec une sensibilité de 93%
et une spécificité de 88% sur un ensemble de données de
176 images dermoscopiques. La fusion des descripteurs de couleur et de texture
a également obtenu de bons résultats, avec une sensibilité
de 96%, spécificité de 82% pour la combinaison des moments avec
les descripteurs de texture Gabor et Laws.
Alfed et al., combinent la texture (histogramme des gradients,
histogramme des lignes) avec les angles des vecteurs de couleur et les moments
de Zernike comme caractéristiques pour classer les mélanomes des
lésions bénignes de l'ensemble de données PH2. En
utilisant trois classificateurs : SVM, Adaboost et ANN, la méthode
atteint une sensibilité de 99,41%, une spécificité de
98,18% et une précision de 98,79%.
Majumder et al., ont utilisé un réseau neuronal
à rétropropagation (BNN) basé sur les
caractéristiques de la règle ABCD pour classer les
mélanomes et les tumeurs bénignes dans l'ensemble de
données PH2. Ils ont développé cinq
caractéristiques pour classer les mélanomes malins et
bénins. Ces caractéristiques sont le score d'asymétrie
(AS), l'irrégularité des bords (B), la variation des couleurs
(C), le diamètre (D1) et la différence entre les diamètres
de Feret maximum et minimum de l'ellipse la mieux adaptée à la
lésion (D2). La technique proposée atteint une précision
de 98%, une sensibilité de 95% et une spécificité de
98,8%.
Hagerty et al., mélangent les caractéristiques
classiques et d'apprentissage profond après les avoir
évaluées individuellement. D'une part, les trois
caractéristiques classiques sont d'inspiration biologique et
d'information clinique : réseau de pigments atypiques, distribution des
couleurs et vaisseaux sanguins. Les informations cliniques comprennent les
informations soumises au pathologiste - âge du patient, sexe, emplacement
de la lésion, taille et antécédents du patient. Les
caractéristiques d'apprentissage profond utilisent le transfert de
connaissances par l'intermédiaire d'un réseau ResNet-50 qui est
reconverti pour prédire la probabilité de classification du
mélanome. Les scores de classification de chaque caractéristique
individuelle, classique et d'apprentissage profond, sont ensuite
assemblés à l'aide de la régression logistique pour
prédire une probabilité globale des mélanomes. Les
résultats de classification des mélanomes effectuée sur un
ensemble de données HAM10000 comprenant 9174 lésions,
mesurés par l'aire sous la courbe (AUC), montrent l'efficacité
des caractéristiques de fusion en obtenant une précision de
classification de 0,94.
Moura et al., utilisent la règle ABCD et des
caractéristiques de réseaux neuronaux convolutionnels
pré-entraînés CNN : Vgg-m, Vgg-f, Vgg-verydeep-19 et
CaffeNet. A partir du masque binaire, fourni par la base de données
utilisée, la lésion cutanée est segmentée. Les
images originales RGB sont converties dans l'espace couleur HSV. Ensuite, les
caractéristiques sont extraites par les descripteurs de la
P a g e | 54
composante générée par la somme des plans
S et V, puis les descripteurs les plus pertinents sont choisis. Enfin, un
classificateur Perceptron multicouche est utilisé pour distinguer le
mélanome des lésions bénignes. La méthode
proposée a été testée sur les deux bases de
données PH2 et DermIS. La méthode a présenté de
bons résultats avec un taux de précision de 94,9% et un indice de
Kappa de 89,2%.
Hirano et al., ont développé un système
de diagnostic automatisé pour l'identification du mélanome en
utilisant des données hyperspectrales (HSD) et GoogLeNet. Le GoogLeNet
préformé, est utilisé pour alimenter le HSD, ils ont
ajouté un nouveau réseau, appelé "Mini Network", qui
effectue une réduction de taille juste avant la couche d'entrée
de GoogLeNet. Les travaux ont utilisé 619 lésions pour
l'entraînement et les tests. L'évaluation sur 5 validations
croisées indique que sans augmentation des données, la
sensibilité, la spécificité et la précision sont
respectivement de 69.1%, 75.7% et 72.7%. Et avec l'augmentation des
données, la sensibilité, la spécificité et la
précision sont respectivement de 72.3%, 81.2% et 77.2%.
La méthode de classification du mélanome
proposée par Jojoa Acosta et al., se compose de deux étapes :
tout d'abord, la région d'intérêt est
délimitée à l'aide de la technique du masque et du
réseau neuronal convolutif basé sur la région, puis un
classificateur basé sur la structure ResNet152 est utilisé pour
distinguer les lésions malignes. La méthode est
évaluée sur l'ensemble de données ISIC 2017 et atteint une
précision de 90,4%, une sensibilité de 82% et une
spécificité de 92,5%.
Fekrache et al., ont proposé un système
automatisé qui utilise un algorithme de segmentation basé sur les
colonies de fourmis, puis trois types de caractéristiques sont extraits,
basées sur les propriétés géométriques de la
lésion telles que décrites par la règle ABCD, les
caractéristiques de textures calculant des caractéristiques
basées sur l'histogramme du premier ordre, et la couleur relative. 112
caractéristiques sont extraites et 12 attributs pertinents sont
sélectionnés à l'aide de l'algorithme Relief. Deux
classificateurs sont utilisés, le KNN et ANN. Le système
proposé est testé sur 172 images dermoscopiques et atteint une
précision de 85.22% et 93.60% avec KNN et ANN respectivement.
P a g e | 55
Conclusion partielle.
Ce chapitre a été consacré
essentiellement à la présentation des différentes
méthodes existantes dans la littérature relative aux processus de
segmentation et de classification des images dermoscopiques. Comme
mentionné le long de ce chapitre, la segmentation se présente
sous différentes approches et est utilisée sous
différentes manières.
En premier lieu, nous avons présenté un
état de l'art sur les méthodes de segmentation et de
classification des images dermoscopiques, en vue de comprendre leurs concepts,
leurs principes d'utilisation et leurs applications. Nous avons d'abord
présenté une définition du mélanome et des
systèmes du diagnostic assisté par ordinateur et ses
différents éléments constitutifs pour la détection
du mélanome. Ensuite, nous avons dressé un aperçu sur les
approches de segmentation utilisées pour les images dermoscopiques.
Suivie d'une présentation des méthodes de classification des
mélanomes.
Etant atteints, les objectifs fixés pour ce chapitre,
dans le chapitre suivant, nous allons présenter
l'implémentation de l'approche
proposée, afin de montrer son efficacité, et
d'interpréter les résultats.
P a g e | 56
Chapitre quatrième : Implémentation &
interprétation des
résultats.
4.1. Introduction.
La détection des mélanomes à un stade
précoce est la meilleure façon de diminuer le taux de
mortalité des personnes atteintes par cette maladie. En effet, ce type
de cancer de peau se présente comme des lésions, qui apparaissent
sur la peau sous différentes et complexes formes, couleurs et textures.
C'est pourquoi les tumeurs malignes peuvent être confondues avec les
tumeurs bénignes et rend le diagnostic très difficile pour les
dermatologues. D'où l'intérêt d'utiliser des techniques
d'apprentissage automatique pour améliorer la précision du
diagnostic du mélanome et réduire son incidence
élevée.
Ce chapitre s`attèlera à la présentation
des outils utilisés, la description du simulateur
implémenté, la mise en oeuvre d'un cas pratique pour tester notre
modèle et une interprétation des résultats de l`approche
proposée. Il est divisé en quatre parties principales :
V' La première partie décrit les outils
utilisés et les détails d'implémentation de l'approche
proposée,
V' La deuxième partie présente un cas pratique
pour tester le
modèle.
V' La troisième partie représente une
exploitation du modèle proposé dans un API11 Flask
afin de gérer des nouveaux cas.
4.2. Les outils et les détails
d'implémentation.
Pour évaluer et tester les performances de l'approche
proposée, nous devrons d'abord passer par l'étape de
l'implémentation. Dans cette section, nous décrivons les
différents outils, et les langages de programmation utilisés.
4.2.1. Environnement de développement.
Pour implémenter l'approche
PrediCancerPeau, nous avons choisi Jupyter (Voir Figure 31) et
spider (Voir Figure 32) comme des environnements de développement, avec
utilisation des bibliothèques Flask (Voir Figure 33), TensorFlow et
Keras.
11 API : (Application
Programme Interface), est une interface logicielle permettant de connecter un
logiciel ou service à un autre logiciel ou service afin
d'échangé les données.
P a g e | 57
4.2.1.1. Jupyter Notebook.
Jupyter Notebook est une application Web Open Source
permettant de créer et de partager des documents contenant du code
(exécutable directement dans le document), des équations, des
images et du texte. Avec cette application il est possible de faire du
traitement de données, de la modélisation statistique, de la
visualisation de données, du Machine Learning, etc. Elle est disponible
par défaut dans la distribution Anaconda. Il est développé
par « Fernando Pérez » en 2014 et prend en charge plus de 40
langages de programmation, dont Python, R, Julia et Scala.
Figure 31. Interface de Jupyter
Notebook (source Jupyter) 4.2.1.2.
Spyder.
Spyder est Créé et il est
développé par « Pierre Raybaut » en 2008,
c'est est un environnement scientifique puissant écrit en Python, et il
est conçu par et pour les scientifiques, les ingénieurs, et les
analystes de données (Spyder Website Contributors, 2018).
Spyder offre une combinaison unique de la
fonctionnalité d'édition avancée, d'analyse, de
débogage et de profilage d'un outil de développement complet,
avec l'exploration des données, l'exécution interactive,
l'inspection approfondie, et de belles capacités de visualisation d'un
paquet scientifique (Spyder Website Contributors, 2018).
P a g e | 58
Figure 32. Logo de l'IDE Spyder.
4.2.1.3. Flask.
Flask est un Framework de développement des
applications Web en Python, il garde la souplesse de la programmation en Python
à cause de sa légèreté et ne soumet le
développeur à aucune restriction, il appartient au
développeur de choisir les outils et les bibliothèques qu'il
souhaite utiliser (The Pallets Projects, 2010).
Figure 33. Logo de Framework FLASK
4.2.1.4. TensorFlow.
TensorFlow est un framework de programmation pour le calcul
numérique qui a été rendu Open Source par Google en
Novembre 2015. Depuis sa release, TensorFlow n'a cessé de gagner en
popularité, pour devenir très rapidement l'un des Frameworks les
plus utilisés pour le Deep Learning, comme le montrent les
dernières comparaisons suivantes, faites par François Chollet
(auteur de la librairie Keras). Nous en entendons beaucoup parler ces derniers
temps, et pour cause, TensorFlow est devenu en un temps record l'un des
Frameworks de référence pour le Deep Learning, utilisé
aussi bien dans la recherche qu'en entreprise pour des applications en
production. Au-delà de la hype présente autour de ce Framework et
des projets qui émergent grâce à ce dernier, il reste un
gap non négligeable à atteindre afin de l'utiliser pleinement et
efficacement.
P a g e | 59
Voici quelques raisons de sa popularité :
V' Multiplateformes (Linux, Mac OS, et même Android et iOS
!) ;
V' APIs en Python, C++, Java et Go (l'API Python est plus
complète cependant, c'est sur celle-ci que nous allons travailler) ;
V' Temps de compilation très courts dû au backend en
C/C++ ;
V' Supporte les calculs sur CPU, GPU et même le calcul
distribué sur cluster ; V' Une documentation extrêmement bien
fournie avec de nombreux exemples et tutoriels ;
V' Last but not least : Le fait que le Framework vienne de
Google et que ce dernier ait annoncé avoir migré la
quasi-totalité de ses projets liés au Deep Learning en TensorFlow
est quelque peu rassurant.
Bien qu'il ait initialement été
développé pour optimiser les calculs numériques complexes,
TensorFlow est aujourd'hui particulièrement utilisé
pour le Deep Learning, et donc les réseaux de neurones.
Son nom est notamment inspiré du fait que les opérations
courantes sur des réseaux de neurones sont principalement faites via des
tables de données multidimensionnelles, appelées Tenseurs
(Tensor). Un Tensor à deux dimensions est l'équivalent d'une
matrice.
4.2.1.5. Keras.
Keras est une bibliothèque open source de Deep Learning
permettant la génération de réseaux de neurones
artificiels. Elle permet une expérimentation efficace de ces derniers de
par sa simple utilisation et ses nombreuses possibilités de
déploiement grâce à son intégration avec la
librairie tensorFlow.
Keras est conçu pour être intuitif, modulaire,
facile à étendre, et pour fonctionner avec Python. Selon ses
créateurs, cette API est » conçue pour les êtres
humains, et non pour les machines » et » suit les meilleures
pratiques pour réduire la charge cognitive «. Il a
été développé dans le cadre de l'effort de
recherche du projet ONEIROS (Open-ended Neuro-Electronic Intelligent Robot
Operating System), et son principal auteur et mainteneur est François
Chollet, un ingénieur Google.
Chollet a expliqué que Keras a été
conçue comme une interface plutôt que comme un cadre
d'apprentissage end to end. Il présente un ensemble d'abstractions de
niveau supérieur et plus intuitif qui facilitent la configuration des
réseaux neuronaux indépendamment de la bibliothèque
informatique de backend. Microsoft travaille également à ajouter
un backend CNTK à Keras aussi.
P a g e | 60
4.2.1.6. NumPy.
Numpy est une bibliothèque python très populaire
pour le traitement de matrices et fonctions mathématiques de haut
niveau. C'est très utile pour les calculs scientifiques fondamentaux en
Machine Learning. Il est particulièrement utile pour l'algèbre
linéaire, la transformée de Fourier et les capacités de
nombres aléatoires. Les bibliothèques haut de gamme telles que
TensorFlow utilisent NumPy en interne pour la manipulation de Tensors.
4.2.1.7. Pandas.
Pandas est une bibliothèque Python populaire pour
l'analyse de données. Ce n'est pas directement lié à
l'apprentissage automatique. Comme nous savons que le jeu de données
doit être préparé avant la formation. Dans ce cas, les
pandas sont pratiques car ils ont été développés
spécifiquement pour l'extraction et la préparation de
données. Il fournit des structures de données de haut niveau et
de nombreux outils pour l'analyse des données. Il fournit de nombreuses
méthodes intégrées pour tâtonner, combiner et
filtrer les données.
4.2.1.8. Matpoltli.
Matpoltli est une bibliothèque Python très
populaire pour la visualisation de données. Comme les pandas, il n'est
pas directement lié à l'apprentissage automatique. Cela
s'avère particulièrement utile lorsqu'un programmeur souhaite
visualiser les modèles dans les données. C'est une
bibliothèque de tracé 2D utilisée pour créer des
graphiques et des tracés 2D. Un module appelé pyplot facilite le
traçage des programmeurs car il offre des fonctionnalités
permettant de contrôler les styles de trait, les propriétés
de police, les axes de formatage, etc. Il fournit différents types de
graphiques et de tracés pour la visualisation des données,
l'affichage, l'histogramme, les graphiques d'erreur, les discussions en barres.
, etc.
4.2.2. Langage de programmation.
De nos jours, il existe plusieurs langages de programmation et
chaque langage possède ses propres caractéristiques. Parmi ses
langages, notre choix s'est focalisé sur Python.
4.2.2.1. Python.
Il est l'un des langages de programmation les plus
intéressants du moment, il est inventé par « Guido van
Rossum », la première version de python est sortie en 1991.
C'est est un langage de programmation interprété, multi paradigme
et
P a g e | 61
multiplateformes. Il favorise la programmation
impérative structurée, fonctionnelle et orientée objet
(python.doctor, 2019). Python est à la fois simple et puissant, il
permet d'écrire des scripts très simples, et grâce à
ses nombreuses bibliothèques, nous pouvons travailler sur des projets
plus ambitieux (python.doctor, 2019).
4.2.2.2. Pourquoi Python ?
Python est un langage stable, flexible et il fournit divers
outils pour les développeurs. Ce qui permet de le classer en premier
choix pour l'apprentissage automatique, à partir du
développement, la mise en oeuvre, et la maintenance. Python aide les
développeurs de développer des produits confiants (Gupta, 2019).
Selon Gupta, Python possède de nombreux avantages:
? Simple et cohérent : la
simplicité de Python aide les développeurs à gérer
l'algorithme complexe de l'apprentissage automatique.
? La flexibilité : Le facteur de
flexibilité réduit la possibilité d'erreurs, il a
laissé les programmeurs prendre le contrôle complètement,
et de travailler sur elle confortablement.
? Bibliothèques et Framework : Les
algorithmes de l'apprentissage automatique sont très complexes, mais
Python est le secours avec une large gamme de bibliothèques comme
Scikit-learn, Keras et de Framework, à titre d'exemple TensorFlow.
? Lisibilité : Python est facile
à lire, de sorte que les développeurs peuvent facilement
comprendre le code.
? Indépendance de la plateforme :
Python est un langage indépendant de la plate-forme. Il est
supporté par de nombreuses plateformes, y compris Windows, LINUX et
macOS.
4.3. Présentation du problème.
Nous présentons dans cette section, un cas pratique
pour tester notre modèle, pour se faire une bonne idée sur
l'architecture que nous avons choisie compte tenu de ses avantages dans le
chapitre 2 dudit travail, nous essayerons de présenter les
résultats en utilisant le CNN avec nos jeux de données. Le
domaine d'application choisi à l'issue de ce cas, c'est la santé,
où notre travail vise à construire un modèle
prédictif basé sur le réseau de neurones profond
à partir des images de gens soufrant du «
cancer de la peau » de type mélanome.
Les corps médicaux trouveront une grande importance
à notre système, car ce dernier va leur aider à prendre
des décisions relatives avec plus de précision (en tenant compte
de la faiblesse démographique des dermatologues), à partir de la
photographie des lésions précoce des mélanomes qui
apparaissent sur la peau sous
P a g e | 62
différentes et complexes formes, couleurs et textures,
afin d'améliorer la précision du diagnostic de ladite maladie et
réduire son incidence élevée.
4.3.1. Aperçu général sur le cancer
de la peau.
La peau est considérée comme l'organe humain le
plus important en terme de surface. Elle protège le corps des infections
et des rayonnements ultraviolets (UV). Elle facilite le contrôle de la
température corporelle et l'élimination des déchets
organiques par la transpiration. Elle sert également à
synthétiser la vitamine D et à stocker les réserves d'eau
et de graisse.
Elle peut aussi être atteint par un cancer. Il en existe
deux grands types dont : les carcinomes et les
mélanomes. Le nombre de nouveau cas de cancer de la peau a
d'ailleurs plus que triple entre 1980 et 2012. Ceci
peut s'expliquer par l'évolution des habitudes d'exposition aux
rayonnements UV solaires et artificiels au cours de 40 dernières
années, ces expositions constituent le facteur de risque le plus
important de développer ce type de cancer.
Figure 34. Différents types
des graines de beauté de mélanome.
Il existe par ailleurs, des mélanomes dits
achromiques, c'est-à-dire sans couleur. Ces
petites boules de la couleur de votre peau peuvent apparaitre sur les plantes
de main ou de pied, ils sont plus difficiles à détecter car ils
sont ton sur ton12 (semi - permanente) , mais restent heureusement
relativement rares.
12 Ton sur Ton : est une
couleur qui contient des agents oxydants, mais pas d'ammoniaque.
13 Data set (ou jeux de
données) : est un ensemble de données
cohérents qui peuvent se présenter sous différents formats
(textes, chiffres, images, vidéos, etc...).
P a g e | 63
4.3.2. Information sur les données.
Pour construire un modèle de machine Learning, il
faudrait disponibiliser les données dans le
dataset13. Nos données proviennent
de kaggle (Kaggle, 2022).
4.3.2.1. Description du Data-set.
Notre Data-set est constitué de 2 dossiers : Data-set
d'entraînement et de test et contient au total 3297 photos (224x244) du
cancer de la peau de type mélanome.
4.3.2.1.1. Data-set d'entraînement.
Le Data-set d'entraînement comporte deux sous dossiers
intitulés bénin et malin. Chacun d'eux correspond à une
classe de cancer de la peau du type mélanome et contient 2637 images de
grains de beauté par classe. Le Data-set d'entraînement constitue
la base sur laquelle le modèle doit être entrainé afin de
généraliser la solution et détecter le type de cancer de
la peau sur de futures images dérmatoscopie.
4.3.2.1.2. Data-set de test.
Pour vérifier la solution finale des
compétiteurs, un Data-set de test a été fourni par
l'organisation. Ce dossier contient 660 images de grains de beauté
appartenant aux différentes classes de cancer de la peau du type
mélanome, elles respectent la même définition et le
même format que les images du data-set d'entraînement.
4.3.3. Implémentation du cas en
Python.
4.3.3.1. Importation de bibliothèques
essentielles.
Figure 35. Importation
bibliothèques.
P a g e | 64
4.3.3.2. Chargement des données.
Figure 36. Chargement des
données à partir du Dataset. 4.3.3.3. Tracer
quelques exemples d'images.
Figure 37. Chargement des
données pour cas exemple. 4.3.3.4. Mise à
l'échelle des données.
Figure 38. Mise à
l'échelle des données.
P a g e | 65
4.3.3.5. Augmentation des données.
Info: Parce que notre train a un nombre
relativement faible d'images, nous pouvons appliquer l'augmentation des
données qui reproduit les images en appliquant certains changements tels
que la rotation aléatoire, le retournement aléatoire,
le zoom aléatoire et le contraste aléatoire. Cela
peut éventuellement augmenter le score de précision
du modèle. Puisque nous appliquerons l'augmentation de
données au début de l'architecture du réseau neuronal,
nous devrions passer la forme d'entrée.
L'augmentation des données sera inactive lors du test
des données. Les images d'entrée seront augmentées lors
des appels à model.fit (pas model.assess ou model.predict).
Figure 39. Augmentation des
données.
4.3.3.6. Création d'un modèle
d'apprentissage profond. 4.3.3.6.1. Définition d'un réseau de
neurones convolutif CNN
Figure 40. Implémentation
CNN.
P a g e | 66
Dans la figure n°40, nous avons
conçu un réseau de neurones convolutif avec 3 couches à
convolution suivie chacune par un max-pooling, d'une couche complétement
connectée de 128 neurones et d'une dernière couche de
classification d'un neurone.
4.3.3.7. Compilation du modèle.
Figure 41. Implémentation de
la compilation du modèle. 4.3.3.8. Entraînement du
modèle.
Figure 42. Entraînement de la
solution finale. 4.3.3.9. Résultats
P a i e | 67
Figure 43. Résultat de
l'entrainement du modèle.
4.3.3.10. Affichage de perte de données et de la
précision
Figure 44. Perte et
précision de données.
P a i e | 68
4.3.3.11. Enregistrement de notre modèle CNN pour
son utilisation dans l'API
Figure 45. Enregistrement du
modèle (CNN). 4.3.3.12. Tests manuels
Figure 46. Résultats d'un
cas testé via le modèle.
P a g e | 69
4.3.3.13. Construction du module de prédiction
à partir de données test pour l'API.
Figure 47. Module de
prédiction pour l'API. 4.4. L'exploitation de modèle
(Déploiement).
Cette partie représente une exploitation du
modèle extrait de l'approche PrediCancerPeau. Nous avons
créé un API (Application Programme Interface) Voir Figure 41 afin
de gérer les inférances14 pour notre cas. Cette API
effectue des prédictions basées sur l'utilisation du
modèle d'apprentissage en profondeur extrait de notre approche
soulignée ci - haut afin de réaliser une prédiction
meilleure et moins chère du cancer de la peau de type mélanome
qu'un dermatologue.
Figure 48. Le logo de
l'API.
14 Terme utilisé en Machine
Learning pour désigner les nouvelles données qui n'ont pas servi
d'entrainé le modèle.
P a i e | 70
Figure 49. Démarrage de
l'API.
Figure 50. Interface graphique de
prédiction.
P a g e | 71
Le bouton "choisir une image" sert
à parcourir et visualiser le contenu des bases d'images d'apprentissage
et de test comme le montre la figure 4.4.
Figure 51. Exploration des
images.
Pour lancer l'apprentissage et la validation du modèle
sur la base d'apprentissage en profondeur pour les 2 classes de cancer de peau
du type mélanome (Bénin/Malin) en se basant sur le réseau
de neurone convolutif, il suffit de cliquer sur le bouton
"Prédisez".
Figure 52. Interface de
prédiction à l'état prêt.
P a g e | 72
Figure 53.
Résultat du diagnostic via l'API.
4.4.1. Quelques codes sources de déploiement de
l'API PrediCancerPeau avec Flask.
from flask import Flask, request, flash, redirect,
url_for,render_template
from flask import send_file
import os
import cv2
import numpy as np
from skimage.transform import resize
from tensorflow.keras.preprocessing.image import
ImageDataGenerator
from tensorflow import keras
from keras.models import Sequential, Model,load_model
from keras.layers import Conv2D, MaxPooling2D,
AveragePooling2D
from keras.layers import Activation, Dropout, Flatten,
Dense,MaxPool2D
from PIL import Image
from matplotlib.image import imread
app = Flask(import_name=__name__, template_folder='templates')
app.secret_key = '1234'
DOSSIER_UPS = '
C:/Users/hp/Desktop/L2 INFO
ALL/MEMOIRE/MEMOIRE ET APP OK SNR/APP CANCER RESEAUX DE
NEURONE/Application_web_Shanga/uploads/' chemin_predict='
C:/Users/hp/Desktop/L2 INFO
ALL/MEMOIRE/MEMOIRE ET APP OK SNR/APP CANCER RESEAUX DE NEURONE/'
def extension_ok(nomfic):
""" Renvoie True si le fichier possède une extension
d'image valide. """
return '.' in nomfic and nomfic.rsplit('.', 1)[1] in
('png','jpg', 'jpeg', 'gif', 'bmp','PNG')
P a i e | 73
@app.route('/up/', methods=['GET', 'POST'])
def upload():
image=""
if request.method == 'POST':
if request.form.get("pw","") == "1234": # on vérifie que
le
mot depasse est bon
f = request.files['fic']
if f: # on vérifie qu'un fichier a bien été
envoyé
if extension_ok(f.filename): # on vérifie que son
extension est valide
nom = f.filename
i="'"+nom+"'"
image=DOSSIER_UPS + nom
f.save(image)
flash(u'Résultat de la prediction
!'.format(lien=url_for('upped',nom=nom)),'succes')
flash(u'<img
src="{lien}">.'.format(lien=url_for('upped',nom=nom)),'succes')
#debut de la prediction
flash(prediction(image),'succes')
return render_template('up_up.html',image=i)
else:
flash(u'Ce fichier ne porte pas une extension
autorisée !', 'error')
else:
flash(u'Vous avez oublié le fichier !', 'error')
else:
flash(u'Mot de passe incorrect', 'error')
return render_template('up_up.html',image=image)
@app.route('/up/view/')
def liste_upped():
images = [img for img in os.listdir(DOSSIER_UPS) if
extension_ok(img)] # la liste des images dans le dossier return
render_template('up_liste.html', images=images)
@app.route('/up/view/<nom>')
def upped(nom):
nom = nom
if os.path.isfile(DOSSIER_UPS + nom): # si le fichier existe
return send_file(DOSSIER_UPS + nom, as_attachment=True) #on l'envoie
else:
flash(u'Fichier {nom} inexistant.'.format(nom=nom),'error')
return redirect(url_for('liste_upped')) # sinon on redirige vers la liste des
images, avec un message d'erreur
def prediction(image):
class_dict = {0:'benin',1:'malin'}
test_image=Image.open(image)
P a g e | 74
test_image=test_image.resize((256,256))
'chargement du model'
model=load_model(chemin_predict+"CancerPeau1_model.h5")
test_image = np.expand_dims(test_image, 0)
probs = model.predict(test_image)
pred_class = np.argmax(probs)
pred_class = class_dict[pred_class]
return pred_class
@app.route('/up/liste/') def liste():
return render_template('up_cancer.html')
if__name__ == '__main__': app.run(debug=True)
Conclusion partielle.
Dans ce chapitre, nous avons présenté le
problème que nous avons résolu, les différents outils et
techniques qui nous ont permis à sa réalisation. Et avons aussi,
présenté en détail les ressources matérielles et
logiciels utilisées dans le cadre du développement de notre
solution, nommée PrédiCancerPeau.
Nous avons clôturé le chapitre par le
déploiement de notre modèle de Deep Learning dans un API Flask,
en présentant succinctement les différentes étapes
d'exécution et le résultat obtenu par chacune étape. Nous
avons essayé de simplifier le processus d'exécution par
l'utilisation des imprimés d'écran.
Etant atteints, les objectifs fixés pour ce chapitre,
nous aborderons dans le point suivant la conclusion générale de
notre travail.
P a g e | 75
CONCLUSION GENERALE
Dans ce mémoire, nous nous sommes
intéressés à la construction d'un modèle de deep
learning basé sur le réseau de neurones à convolution pour
la détection précoce du cancer de la peau à partir des
images d'une tumeur bénigne des gens qui souffrent du mélanome.
Ce modèle a pour but d'aider les corps médicaux, de diagnostiquer
avec un taux d'erreur minimal possible les patients à partir de la
photographie de ladite maladie et ce diagnostic peut se faire via l'API ou en
batch pour une prise en charge rapide et à moindre coût ; bien
qu'il y a carence criante des experts dans ce domaine. D'après les
statistiques de l'OMS, près d'un décès sur 6 dans le monde
est dû au cancer de la peau, c'est ce qui fais de lui la deuxième
cause de décès. Cependant, le diagnostiquer à temps, enfin
de disposer l'arsenal médical pour le prévenir et
l'équilibré a une grande importance pour sauver des vies.
D'où l'intérêt d'utiliser des techniques d'apprentissage
automatique pour améliorer la précision du diagnostic du
mélanome et réduire son incidence élevée.
En tenant compte de la faiblesse démographique des
spécialistes dans ce domaine, c'est - à - dire les dermatologues
et les chirurgiens et aussi vu l'accroissement de nombre de cas de patients qui
pourrons atteindre 22 millions au cours de deux prochains décennies
(WHON, 2018), notre système tentera de diagnostiquer sur l'état
d'un patient juste à partir des images d'une tumeur bénigne.
Vue l'ampleur de réseau de neurones artificiels,
particulièrement réseau de neurones à convolution à
traiter une quantité importante des données, surtout l'effet de
prendre en compte la corrélation entre les pixels d'une image et aussi
d'être invariant à des transformations de l'entrée, ces
derniers permettent d'augmenter aussi la précision.
Comme nous, les humains pour avoir la facilité de
reconnaitre une image, nous avons également besoin de voir beaucoup plus
d'images et surtout la variété des images, enfin
d'appréhender ce qui différencie telle chose à l'autre.
C'est de la même manière avec les modèles, sur ce, nous
avons utilisé l'apprentissage supervisé, c'est-à-dire,
nous avons fortement entrainé notre modèle avec 2.637 images de
grains de beauté bénins et malins, ce qui nous a permis
d'atteindre le score de 86,4 % en terme de précision notre
modèle.
Enfin, ce travail présente un aperçu
général sur le machine Learning et en particulier sur le deep
Learning, qui est un domaine de recherche très actif et
intéressant dont les entreprises publiques et privées, ne font
que mettre les moyens pour trouver des solutions aux problèmes de la
société, toutes les remarques et suggestions sont les
bienvenues.
P a g e | 76
Bibliographies :
[1]. Adeyinka A. A. and Viriri S., "Skin lesion images
segmentation: A survey of the stateof-the-art," in International conference on
mining intelligence and knowledge exploration, 2018, pp. 321-330.
[2]. Agarwal A., Issac A., Dutta M. K., Riha K., and Uher V.,
"Automated skin lesion segmentation using K-means clustering from digital
dermoscopic images," in 2017 40th International Conference on
Telecommunications and Signal Processing (TSP), 2017, pp. 743-748.
[3]. Alfed N. and Khelifi, F. "Bagged textural and color
features for melanoma skin cancer detection in dermoscopic and standard
images," Expert Systems with Applications, vol. 90, pp. 101-110, 2017.
[4]. Alvarez D. and Iglesias M., "k-Means clustering and
ensemble of regressions: an algorithm for the ISIC 2017 skin lesion
segmentation challenge," arXiv preprint arXiv : 1702.07333, 2017.
[5]. Argenziano G., Catricalà C., Ardigo M., Buccini
P., De Simone P., Eibenschutz L., Ferrari A., Mariani G., Silipo V., and
Sperduti I. "Seven-point checklist of dermoscopy revisited," British Journal of
Dermatology, vol. 164, pp. 785-790, 2011.
[6]. Aston Zhang, Zachary C. Lipton, Mu Li, and Alexander J.
Smola. Dive into Deep Learning. Aug 11, 2020 Release 0.14.3.
[7]. Barata C., Ruela M., Mendonça T., and Marques, J.
S. "A bag-of-features approach for the classification of melanomas in
dermoscopy images: The role of color and texture descriptors," in Computer
vision techniques for the diagnosis of skin cancer, ed: Springer, 2014, pp.
49-69.
[8]. Bezdek J. C., "A convergence theorem for the fuzzy
ISODATA clustering algorithms," IEEE transactions on pattern analysis and
machine intelligence, pp. 1-8, 1980.
[9]. Chapman, P., Clinton, J., Kerber, R., Reinartz, T.,
Shaerer, C., & Wirth, R. (2000). CRISP-DM 1.0 Step by-step data mining
guide. The CRISP-DM consortium.
[10]. Cheng T. W., Goldgof D. B., and Hall L. O., "Fast fuzzy
clustering," Fuzzy sets and systems, vol. 93, pp. 49-56, 1998.
[11]. Dalila F., Zohra A., Reda K., and Hocine, C.
"Segmentation and classification of melanoma and benign skin lesions," Optik,
vol. 140, pp. 749-761, 2017
[12]. Eltayef K., Li Y., and Liu X., "Detection of melanoma
skin cancer in dermoscopy images," in Journal of Physics: Conference Series,
2017, p. 012034.
[13]. Garcia-Arroyo J. L. and Garcia-Zapirain B.,
"Segmentation of skin lesions in dermoscopy images using fuzzy classification
of pixels and histogram thresholding," Computer methods and programs in
biomedicine, vol. 168, pp. 11-19, 2019.
[14]. Gashler, M., Giraud-Carrier, C., & Martinez, T.
(2008). Decision tree ensemble: Small heterogeneous is better than large
homogeneous. Seventh
P a g e | 77
International Conference on Machine Learning and Applications
(pp. 900-905). IEEE.
[15]. Géron A., (2017).
Hands-On_Machine_Learning_with_Scikit-learn and trensflow. USA: O'Reilly
Media.
[16]. Goodfellow, I., Bengio, Y., & Courville, A. (2016).
Deep Learning. MIT Press.
[17]. Hagerty J. R., Stanley R. J., Almubarak H. A., Lama N.,
Kasmi R., Guo P., Drugge R. J., Rabinovitz H. S., Oliviero M., and Stoecker, W.
V. "Deep learning and handcrafted method fusion: higher diagnostic accuracy for
melanoma dermoscopy images," IEEE journal of biomedical and health informatics,
vol. 23, pp. 1385-1391, 2019.
[18]. Hartinger, A. "Détection du cancer de la peau
par tomographie d'impédance électrique,"École
Polytechnique de Montréal, 2012.
[19]. Henning J. S., Dusza S. W., Wang S. Q., Marghoob A. A.,
Rabinovitz H. S., Polsky D., and Kopf A. W. "The CASH (color, architecture,
symmetry, and homogeneity) algorithm for dermoscopy," Journal of the American
Academy of Dermatology, vol. 56, pp. 45-52, 2007.
[20]. Hirano G., Nemoto M., Kimura Y., Kiyohara Y., Koga H.,
Yamazaki N., Christensen G., Ingvar C., Nielsen K., and Nakamura, A. "Automatic
diagnosis of melanoma using hyperspectral data and GoogLeNet," Skin Research
and Technology, vol. 26, pp. 891-897, 2020.
[21]. Ioffe S. and Szegedy, C. "Batch normalization:
Accelerating deep network training by reducing internal covariate shift," in
International conference on machine learning, 2015, pp. 448-456.
[22]. Jaisakthi S. M., Mirunalini P., and Aravindan C.,
"Automated skin lesion segmentation of dermoscopic images using GrabCut and
k-means algorithms," IET Computer Vision, vol. 12, pp. 1088-1095, 2018.
[23]. Jaworek-Korjakowska J., "Computer-aided diagnosis of
micro-malignant melanoma lesions applying support vector machines," BioMed
research international, vol. 2016, 2016.
[24]. Jay Kuo, C.-C. University of Southern California, Los
Angeles Understanding Convolutional Neural Networks with A Mathematical Model.
02/09/2016.
[25]. Jojoa Acosta M. F., Caballero Tovar L. Y.,
Garcia-Zapirain M. B., and Percybrooks, W. S. "Melanoma diagnosis using deep
learning techniques on dermatoscopic images," BMC Medical Imaging, vol. 21, pp.
1-11, 2021.
[26]. Kasmi R. and Mokrani, K. "Classification of malignant
melanoma and benign skin lesions: implementation of automatic ABCD rule," IET
Image Processing, vol. 10, pp. 448-455, 2016.
[27]. Kingma D. P. and Ba, J. "Adam: A method for stochastic
optimization," arXiv preprint arXiv : 1412.6980, 2014.
[28]. Lin B. S., Michael K., Kalra S., and Tizhoosh, H. R.
"Skin lesion segmentation: U-nets versus clustering," in 2017 IEEE Symposium
Series on Computational Intelligence (SSCI), 2017, pp. 1-7.
[29]. MacQueen J., "Some methods for classification and
analysis of multivariate observations," in Proceedings of the fifth Berkeley
symposium on mathematical statistics and probability, 1967, pp. 281-297.
P a g e | 78
[30]. Majumder S. and Ullah, M. A. "Feature extraction from
dermoscopy images for an effective diagnosis of melanoma skin cancer," in 2018
10th International Conference on Electrical and Computer Engineering (ICECE),
2018, pp. 185188.
[31]. Masood A. and Al-Jumaily A. A., "Fuzzy C mean
thresholding based level set for automated segmentation of skin lesions,"
Journal of signal and information processing, vol. 4, p. 66, 2013.
[32]. Mitchell, T. M. (1997). Machine Learning.
McGraw-Hil.
[33]. Moura N., Veras R., Aires K., Machado V., Silva R.,
Araújo F., and Claro, M. "ABCD rule and pre-trained CNNs for melanoma
diagnosis," Multimedia Tools and Applications, vol. 78, pp. 6869-6888, 2019.
[34]. Nachbar F., Stolz W., Merkle T., Cognetta A. B., Vogt
T., Landthaler M., Bilek P., Braun-Falco O., and Plewig G., "The ABCD rule of
dermatoscopy: high prospective value in the diagnosis of doubtful melanocytic
skin lesions," Journal of the American Academy of Dermatology, vol. 30, pp.
551-559, 1994.
[35]. Nachbar F., Stolz W., Merkle T., Cognetta A. B., Vogt,
M. Landthaler T., Bilek P., Braun-Falco O., and Plewig G. "The ABCD rule of
dermatoscopy: high prospective value in the diagnosis of doubtful melanocytic
skin lesions," Journal of the American Academy of Dermatology, vol. 30, pp.
551-559, 1994.
[36]. Nguyên HOANG, La formule du savoir, juin 2018.
[37]. Oliveira R. B., Mercedes Filho E., Ma Z., Papa J. P.,
Pereira A. S., and Tavares J. M. R., "Computational methods for the image
segmentation of pigmented skin lesions: a review," Computer methods and
programs in biomedicine, vol. 131, pp. 127-141, 2016.
[38]. Patterson J., & Gibson A. (2017). Deep Learning: A
Practitioner's Approach. Beijing: OReilly Media.
[39]. Rosenblatt, F. (1958). THE PERCEPTRON: A PROBABILISTIC
MODEL FOR. Psychological Review, 65.
[40]. Rother C., Kolmogorov V., and Blake A., "" GrabCut"
interactive foreground extraction using iterated graph cuts," ACM transactions
on graphics (TOG), vol. 23, pp. 309-314, 2004.
[41]. Schmidhuber, J. (2015). Deep Learning. Scholarpedia,
10, 32832.
[42]. Sung H., Ferlay J., Siegel R. L., Laversanne M.,
Soerjomataram I., Jemal A., and Bray F. "Global cancer statistics 2020:
GLOBOCAN estimates of incidence and mortality worldwide for 36 cancers in 185
countries," CA: a cancer journal for clinicians, vol.71, pp. 209-249, 2021.
[43]. Sutton, R. S. (1988). Learning to predict by the method
of temporal differences. Machine Learning.
[44]. Szilagyi L., Benyo Z., Szilágyi S. M., and Adam
H., "MR brain image segmentation using an enhanced fuzzy c-means algorithm," in
Proceedings of the 25th annual international conference of the IEEE engineering
in medicine and biology society (IEEE Cat. No. 03CH37439), 2003, pp.
724-726.
[45]. Watkins, C. J., & Dayan, P. (1992). Q-learning.
Machine Learning.
P a g e | 79
[46]. Yang X., Zeng Z., Yeo S. Y., Tan C., Tey H. L., and Su,
Y. "A novel multi-task deep learning model for skin lesion segmentation and
classification," arXiv preprint arXiv : 1703.01025, 2017.
[47]. Yu L., Chen H., Dou Q., Qin J., and Heng, P.-A.
"Automated melanoma recognition in dermoscopy images via very deep residual
networks," IEEE transactions on medicalimaging, vol. 36, pp. 994-1004, 2016.
[48]. Yuan Y., Chao M., and Lo, Y.-C. "Automatic skin lesion
segmentation using deep fully convolutional networks with jaccard distance,"
IEEE transactions on medical imaging,vol. 36, pp. 1876-1886, 2017.
[49]. Zhang X., "Melanoma segmentation based on deep
learning," Computer assisted surgery, vol. 22, pp. 267-277, 2017.
Webographie :
[1]. Bremme, L. (2015). Définition : Qu'est-ce que le
Big Data. Retrieved Mai 18, 2020, from lebigdata:
https://www.lebigdata.fr/definition-big-data
[2]. Cayla, B. (2018). La star des algorithmes de ML :
XGBoost. Retrieved 05 18, 2021, from datacorner:
https://www.datacorner.fr/xgboost/
[3]. Claw, S. (2020). Python. Retrieved 07 19, 2021, from
TkInter:
https://wiki.python.org/moin/TkInter
[4]. Clayton R., (2019). Qu'est-ce que le machine learning ?
Retrieved Novembre 08, 2022, from Oracle Algeria:
https://www.oracle.com/dz/artificial-intelligence/what-is-machine
learning.html
[5]. Dave, A. (2020). Regression in Machine Learning.
Retrieved 19 10,2021,
from Medium:
https://medium.com/datadriveninvestor/regression-in- machine-learning-296caae933ec
[6]. Dupré, X. (2020). La classification. Retrieved 19
10,2021 from Xavierdupre:
http://www.xavierdupre.fr/app/mlstatpy/helpsphinx/c_ml/rn/rn_
3_clas.html
[7]. GAËL. (2019). Machine Learning. Retrieved 04 05, 2022,
from Datakeen:
https://datakeen.co/8-machine-learning-algorithms-explained-in-human-language/
[8]. Grossfeld, B. (2020). Deep learning vs machine learning:
a simple way to understand the difference. Retrieved from zendesk blog:
https://www.zendesk.com/blog/machine-learning-anddeep-learning/
[9]. Grossfeld, B. (2020). Le programme du Master en
intelligence artificielle.
Retrieved 08 04, 2021, from Unidistance:
https://unidistance.ch/intelligenceartificielle/master/modules/?gclid=Cj0KC
Qjwj7v0BRDOARIsAGh37io1ERDQK4Wb
[10]. Gupta, N. (2019). Why is Python Used for Machine Learning?
from Hacker
Noon:
https://hackernoon.com/why-python-used-for-machine- learningu13f922ug
[11].
https://www.kaggle.com/code/manoprathabans/skin-cancer-classification-using-cnn/data.
Consulté le 30/10/2022.
P a g e | 80
[12].
https://www.maxicours.com/se/cours/aires-visuelles-et-
perception/tolerance%209999/emergencystretch%203em/hfuzz%20.5/p@%
20/vfuzz%20/hfuzz%20-visuelle/. Consulté le 30/10/2021.
[13]. Issarane, H. (2019). Apprentissage Non
Supervisé. Retrieved 04 05, 2021, from Le DataScientist:
https://le-datascientist.fr/apprentissage-non-supervise
[14]. Li, H. (2017). Which ML Algorithms to Use? Retrieved
from The Eponymous Pickle:
http://eponymouspickle.blogspot.com/2017/04/which-ml-algorithms-touse.html
[15]. Nuageo. (2017). Deep Learning : définition,
concept et usages potentiels. Retrieved 03 21, 2021, from eurocloud:
https://www.eurocloud.fr/deep-learning-definition-concept-usagespotentiels/
[16]. python.doctor. (2019). Apprendre le langage de
programmation python. Retrieved 04 29, 2022, from python.doctor:
https://python.doctor/
[17]. Spyder Website Contributors. (2018). Overview.
Retrieved 04 29, 2021, from pyder-ide:
https://www.spyder-ide.org
[18]. The Pallets Projects. (2010). Flask. Retrieved 07 19,
2021, from Flask palletsprojects:
https://flask.palletsprojects.com/en/1.1.x/
[19]. Vázquez, F. (2018). A «weird»
Introduction to Deep Learning. Retrieved from
bbvadata&analytics:
https://www.bbvadata.com/a-weird-introduction-to- deep-learning/
[20]. Werfelli, O. (2015). Présentation
générale des réseaux de neurones artificiels.
Cours. Retrieved 04 05, 2021, from
https://fr.slideshare.net/OussamaWerfelli/rseaux-de-neurones-artificiels
[21]. WIENER M. & LIAW A. (2002),
http://www.bios.unc.edu/ Classification and Regression by random Forest.R News,
consulté le 14 novembre 2021.
|