Vous êtes sur la page 1sur 104

République Tunisienne Cycle de Formation d’Ingénieurs

Ministère de l’Enseignement Supérieur dans la Discipline


et de la Recherche Scientifique Génie Informatique
ST-EN07/00
Université de Sfax
Projet de Fin d’Etudes
École Nationale d’Ingénieurs de Sfax
N° d’ordre: code pfe ??

MEMOIRE
Présenté à

L’Ecole Nationale d’Ingénieurs de Sfax


(Département de Génie e Informatique et Mathématiques Appliquées)

En vue de l’obtention

Du Diplôme National d’Ingénieur en Génie Informatique

Par

Oussema OULEDABDALLAH

Développement d’un api rest qui permet


de classifier des images de traumatisme
radiologique en utilisant AWS Sagemaker

soutenu le ?? juin 202?, devant la commission d'examen:

M. Fatma ABBES Présidente


M. Maha CHARFEDDINE Rapportrice
M. Nouha BACCOUR Encadrante académique

M. Firas SGHARI Encadrant industriel


J’autorise l’étudiant OULEDABDALLAH Oussema à déposer leurs rapport de stage
en vue d’une soutenance

Encadrant professionnel :
Monsieur SGHARI Firas

Signature et cachet

J’autorise l’étudiant OULEDABDALLAH Oussema à déposer leurs rapport de stage


en vue d’une soutenance

Encadrants académique :
Madame Nouha BACCOUR

Signature
Dédicaces

Je dédie cet ouvrage

A ma chère maman Fathia qui m’a soutenu et encouragé durant ces années d’études.
Tu m’as comblé avec ta tendresse et affection tout au long de mon parcours.
A mon cher père Abdessattar qui m’a inculqué le sens de la responsabilité, de l’optimisme
et de la confiance en soi face aux difficultés de la vie.

Ces conseils ont toujours guidé mes pas vers la réussite.

A mes chères frères Eya & Youssef qui ont partagés avec moi tous les moments d’émotions
lors de la réalisation de ce travail, merci énormément pour votre soutien.
Ma vie ne serait pas aussi magique sans votre présence et votre amour

A ma famille, mes proches et à ceux qui me donnent de l’amour.


A mes amis pour leurs aides et support dans les moments difficiles, et à qui je souhaite plus
de succès.

A tous ceux que j’aime et ceux qui m’aiment.


Merci
.
OULEDABDALLAH O USSEMA

Mémoire pour l’obtention du diplôme d’ingénierie en génie civil Page ii


Remerciements

Je tiens, avant de présenter mon travail, à exprimer ma grande reconnaissance envers les
personnes qui m’ont, de près ou de loin, apporter leurs soutiens.
Qu’ils trouvent ici collectivement et individuellement l’expression de toute ma gratitude.

A Monsieur SGHARI Firas, mon encadrant professionnel pour leur accueil et leur confiance
qu’ils m’ont témoigné, leurs disponibilités tout au long de ce stage, leur judicieux conseils et
leur encouragements, qu’ils trouvent ici ma respectueuse gratitude.

Aussi, Je voudrais saluer avec beaucoup d’appréciation le rôle crucial de mon encadrante
académique, Madame Nouha BACCOUR, d’avoir accepté de diriger ce travail sans oublier
leurs conseils, leur supervision étroite et leurs suggestions importantes afin de cheminement ce
rapport.

Mes sincères remerciements s s’adressent également à tous mes enseignants à ENIS pour la
qualité de l’enseignement qu’ils ont bien voulu nous prodiguer durant les années d’études afin
de nous donner une formation efficace, qu’ils ont participé à notre évolution scientifique et
nous ont offert cette opportunité pour travailler un tel projet consistant.

Que les membres de jury trouvent, ici, l’expression de mes remerciements pour l’honneur
qu’ils me font en acceptant d’évaluer ce travail.

Mémoire pour l’obtention du diplôme d’ingénierie en génie civil Page iii


Table des matières

Introduction générale 1

1 Contexte du projet 2
1.1 Présentation de l’organisme d’accueil . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Présentation du projet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2.1 Problématique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2.2 Etude de l’existant . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2.3 Solution proposée . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.3 Organisation de travail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.3.1 Méthodes agiles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.3.2 Méthodologie de travail adoptée : Agile CRISP-DM . . . . . . . . . . 7

2 Etude de l’art 10
2.1 Fondements de l’intelligence artificielle . . . . . . . . . . . . . . . . . . . . . 11
2.1.1 Intelligence Artificielle . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.1.2 Machine Learning . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.1.3 Deep Learning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.1.4 Convolution Neural Networks . . . . . . . . . . . . . . . . . . . . . . 12
2.1.4.1 Couche de convolution . . . . . . . . . . . . . . . . . . . . 13
2.1.4.2 Couche de Pooling . . . . . . . . . . . . . . . . . . . . . . . 14
2.1.4.3 Couche d’activation . . . . . . . . . . . . . . . . . . . . . . 15
2.1.4.4 Couche Fully Connected . . . . . . . . . . . . . . . . . . . 15
2.1.5 L’apprentissage par transfert . . . . . . . . . . . . . . . . . . . . . . . 16
2.1.5.1 Alex Net . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.1.5.2 VGG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.1.5.3 Resnet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.1.5.4 Densenet . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.2 Fonction de perte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.3 Les métriques d’évaluation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

Mémoire pour l’obtention du diplôme d’ingénierie en génie civil Page iv


TABLE DES MATIÈRES

2.4 Docker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.5 Présention d’Amazon Web Service . . . . . . . . . . . . . . . . . . . . . . . . 25
2.5.1 Le cloud computing . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.5.2 Amazon Web Service . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.5.3 Avantages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.5.4 Les services utilisés . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.5.4.1 Amazon S3 . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.5.4.2 Amazon ECR . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.5.4.3 Amazon Sagemaker . . . . . . . . . . . . . . . . . . . . . . 29
2.5.4.4 Amazon Lambda . . . . . . . . . . . . . . . . . . . . . . . 29

3 Développement du modèle d’apprentissage


pour la classification des images radiologiques 31
3.1 Présentation de la base d’apprentissage . . . . . . . . . . . . . . . . . . . . . . 32
3.2 Préparation de la base d’apprentissage . . . . . . . . . . . . . . . . . . . . . . 33
3.3 Prétraitement des données . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.3.1 Normalisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.3.2 Réduction dimensionnelle . . . . . . . . . . . . . . . . . . . . . . . . 36
3.4 Choix du modèle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.4.1 CNN de zéro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.4.2 Apprentissage par transfert . . . . . . . . . . . . . . . . . . . . . . . . 38
3.5 Amélioration et optimisation . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
3.5.1 Data Augmentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
3.5.2 k-fold cross validation . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.5.3 Les optimiseurs et leurs performances . . . . . . . . . . . . . . . . . . 43

4 Déploiement de la solution de classification dans le cloud AWS 51


4.1 Étude comparative entre les fournisseurs du cloud . . . . . . . . . . . . . . . 52
4.2 Transfert de la base d’apprentissage vers AWS S3 . . . . . . . . . . . . . . . . 53
4.3 Conteneurisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
4.3.1 L’apport de GPU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
4.3.2 La configuration de l’infrastructure d’un conteneur . . . . . . . . . . . 55
4.3.2.1 La technologie NVIDIA CUDA . . . . . . . . . . . . . . . . 56
4.3.2.2 Nvidia-docker . . . . . . . . . . . . . . . . . . . . . . . . . 56
4.3.2.3 Autres installations . . . . . . . . . . . . . . . . . . . . . . 58
4.4 Déploiement de l’image Docker dans AWS ECR . . . . . . . . . . . . . . . . 60

Mémoire pour l’obtention du diplôme d’ingénierie en génie civil Page v


TABLE DES MATIÈRES

5 Exécution de la solution en utilisant le conteneur SageMAker


de amazon et generation de l’API 65
5.1 Etude comparative entre les fournisseurs MLaaS . . . . . . . . . . . . . . . . . 66
5.2 Utilisation des conteneurs Docker avec AWS SageMaker . . . . . . . . . . . . 71
5.2.1 Création,configuration et lancement d’une tâche d’apprentissage SageMaker 72
5.2.2 Structure du conteneur Amazon SageMaker . . . . . . . . . . . . . . . 76
5.2.3 Déploiement d’application avec le service Amazon Sagemaker . . . . . 77
5.2.3.1 Création du modèle sur Amazon Sagemaker . . . . . . . . . 77
5.2.3.2 Création de la configuration de point de terminaison . . . . . 78
5.2.3.3 Création de point de terminaison . . . . . . . . . . . . . . . 79
5.3 Création d’un rôle dans AWS IAM . . . . . . . . . . . . . . . . . . . . . . . . 80
5.4 Création de la fonction Lambda . . . . . . . . . . . . . . . . . . . . . . . . . 83
5.5 Création d’un API Gateway . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

Mémoire pour l’obtention du diplôme d’ingénierie en génie civil Page vi


TABLE DES FIGURES

Table des figures

1.1 Logo du NewGen Technologies . . . . . . . . . . . . . . . . . . . . . . . . . 3


1.2 Etude comparative entre les radiologues et le modèle développé par Stanfordmlgroup
[1] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3 Pipeline du projet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.4 La méthode CRISP illustrée . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.1 Analogie neurones humaines vs artificielles . . . . . . . . . . . . . . . . . . . 12


2.2 Parcours de la fenêtre de filtre sur l’image . . . . . . . . . . . . . . . . . . . . 13
2.3 Maxpool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.4 Relu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.5 Fully connected . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.6 Approche traditionnelle vs. Approche de Transfert Learning . . . . . . . . . . 16
2.7 Architecture Alexnet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.8 Architecture VGG-16 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.9 Architecture resnet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.10 Architecture DenseNet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.11 Matrice de confusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

3.1 Les deux dossiers valid et test . . . . . . . . . . . . . . . . . . . . . . . . . . . 33


3.2 Les dossiers des sept catégories . . . . . . . . . . . . . . . . . . . . . . . . . . 34
3.3 Le sous-dossier de la catégorie XR-WRIST . . . . . . . . . . . . . . . . . . . 34
3.4 Exemple d’un patientID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.5 Dossier Train contient tous les images négatives et positives . . . . . . . . . . 35
3.6 CNN avec une précision faible . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.7 L’effet du l’augmentation de donnée sur la précision d’un CNN . . . . . . . . . 42

4.1 Etude comparative entre aws , azure et gcp . . . . . . . . . . . . . . . . . . . . 52


4.2 Le transfert de la classe poignet vers aws S3 . . . . . . . . . . . . . . . . . . . 54
4.3 Boîte à outils pour conteneurs Nvidia . . . . . . . . . . . . . . . . . . . . . . 58
4.4 Le fichier requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

Mémoire pour l’obtention du diplôme d’ingénierie en génie civil Page vii


TABLE DES FIGURES

4.5 L’installation du python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59


4.6 Les répertoires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
4.7 Authentification à partir du client docker . . . . . . . . . . . . . . . . . . . . . 61
4.8 Création d’un référentiel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
4.9 La création d’une image docker . . . . . . . . . . . . . . . . . . . . . . . . . 62
4.10 Faire un push vers l’ECR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
4.11 Suivi de l’image docker avec la console AWS . . . . . . . . . . . . . . . . . . 63

5.1 Comparaison des services d’apprentissage automatique dans le cloud . . . . . 67


5.2 Création d’un rôle pour la tâche d’apprentissage . . . . . . . . . . . . . . . . 72
5.3 Autorisations supplémentaires d’accès pour S3 . . . . . . . . . . . . . . . . . 73
5.4 Configuration de tâche d’apprentissage . . . . . . . . . . . . . . . . . . . . . 74
5.5 Tableau de bord des tâches d’apprentissage Amazon SageMaker . . . . . . . . 75
5.6 Une représentation schématique d’un conteneur Amazon Sagemaker . . . . . . 76
5.7 La sortie du modèle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
5.8 Création du modèle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
5.9 Création de la configuration de point de terminaison . . . . . . . . . . . . . . 79
5.10 Création du point de terminaison . . . . . . . . . . . . . . . . . . . . . . . . . 79
5.11 Le point de terminaison . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
5.12 Sélection de l’entité de confiance . . . . . . . . . . . . . . . . . . . . . . . . 80
5.13 Autorisation « CloudWatchLogs » . . . . . . . . . . . . . . . . . . . . . . . . 81
5.14 Création d’une politique d’autorisation . . . . . . . . . . . . . . . . . . . . . 82
5.15 Ajout du politique au rôle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
5.16 Vérification et création du rôle . . . . . . . . . . . . . . . . . . . . . . . . . . 83
5.17 Sélection du rôle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
5.18 Code de la fonction Lambda . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
5.19 Ajout de la méthode POST . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
5.20 Déploiement de l’API Gateway . . . . . . . . . . . . . . . . . . . . . . . . . 86
5.21 L’URL d’invocation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

Mémoire pour l’obtention du diplôme d’ingénierie en génie civil Page viii


LISTE DES TABLEAUX

Liste des tableaux

3.1 Le partitionnement de la base d’apprentissage MURA . . . . . . . . . . . . . 33


3.2 Les performances des modèles pré-entrainé sur notre base d’apprentissage . . . 40
3.3 Performance du modèle en utilisant SGD . . . . . . . . . . . . . . . . . . . . 44
3.4 Performance du modèle en utilisant AdaGrad . . . . . . . . . . . . . . . . . . 44
3.5 Performance du modèle en utilisant RMS-Prop . . . . . . . . . . . . . . . . . 45
3.6 Performance du modèle en utilisant Adam . . . . . . . . . . . . . . . . . . . . 46
3.7 Les performances du modèle sur la classe Coude en utilisant Adam . . . . . . . 47
3.8 Les performances du modèle sur la classe doigt en utilisant Adam . . . . . . . 47
3.9 Les performances du modèle sur la classe main en utilisant Adam . . . . . . . 48
3.10 Les performances du modèle sur la humérus en utilisant Adam . . . . . . . . . 48
3.11 Les performances du modèle sur la classe épaule en utilisant Adam . . . . . . . 49
3.12 Les performances du modèle sur la classe poignet en utilisant Adam . . . . . . 49

4.1 Les forces et les faiblesses de aws , azure et gcp . . . . . . . . . . . . . . . . . 53

Mémoire pour l’obtention du diplôme d’ingénierie en génie civil Page ix


LISTE DES ABRÉVIATIONS

Liste des abréviations

IT :Information Technology

URL : Uniform Resource Locator

API :Application Programming Interface

CPU :Central Processing Unit

EC2 :Elastic Compute Cloud

IA :Intelligence artificielle

IRM :imagerie résonance magnétique

AWS :Amazon web service

ECR :Elastic Container Registry

DL :Deep learning

ML :Machine learning

CNN :Convolutional neural network

RELU :Rectified linear unit

VGG :Visual Geometry Group

RVB :Rouge vert bleu

SGD :Stochastic gradient descent

RMS-PROP :Root Mean Squared Propagation

GPU :Graphic Processing Unit

CUDA :Compute Unified Device Architecture

cuDNN :Cuda Deep Neural Network

Mémoire pour l’obtention du diplôme d’ingénierie en génie civil Page x


LISTE DES ABRÉVIATIONS

ECS :Elastic Container Service

IAM :Identity and Access Management

IaaM :Infrastructure as a service

PaaS :Platform as a service

MLaaS :Machine learning as a service

ARN :Amazon Resource Names

URI :Uniform Resource Identifier

Mémoire pour l’obtention du diplôme d’ingénierie en génie civil Page xi


Introduction générale

Aujourd’hui, l’une des blessures les plus fréquentes est la fracture d’un os. Un nombre
effarant de personnes souffrent de ce trouble, et les effets d’une fracture non traitée peuvent
entraîner des dommages à vie, voire la mort. Les médecins, qui sont chargés d’évaluer des
dizaines de radiographies par jour, sont en grande partie responsables de cette situation.

La majorité de la technologie utilisée pour le diagnostic initial est la radiographie, une


modalité qui existe depuis plus d’un siècle et qui est encore régulièrement utilisée. Il peut
être difficile pour les médecins d’interpréter les images radiologiques pour plusieurs raisons :
Premièrement, elles peuvent masquer certaines caractéristiques des os. Deuxièmement, il faut
beaucoup de connaissances pour identifier correctement les différentes formes de fractures.
Troisièmement, les médecins agissent souvent dans des situations d’urgence et peuvent être
fatigués.En outre, il est de notoriété publique que le stress et le travail monotone peuvent
entraîner des erreurs humaines dues à la lassitude, et par conséquent, même les radiologues
les plus accomplis finissent par perdre leur précision avec le temps.
En effet, des recherches ont montré que les radiologues ont de moins bons résultats dans
l’interprétation des radiographies musculo-squelettiques et l’identification des fractures en fin
de journée qu’en début de journée. De plus, la procédure manuelle de diagnostic des fractures
prend du temps.

Dans cette situation, il est nécessaire de développer un système informatique permettant


de réduire le temps et la probabilité d’erreur pour le diagnostic des fractures osseuses.
L’intelligence artificielle pourrait être en mesure de résoudre ces problèmes. En effet,
l’utilisation d’un ordinateur pour simuler un comportement intelligent avec peu ou pas de
participation humaine est connue sous le nom d’intelligence artificielle, ou IA. En outre,

Mémoire pour l’obtention du diplôme d’ingénierie en génie civil Page 1


INTRODUCTION GÉNÉRALE

l’IA, en particulier l’apprentissage profond, a récemment fait des progrès importants dans la
perception des données d’imagerie, permettant aux machines de représenter et d’interpréter
plus précisément des données compliquées.

La classification des images est l’une des applications qui nécessitent un énorme stockage
avant l’apprentissage. Un tel stockage est généralement assuré par la technologie du cloud. De
nombreuses méthodes de traitement d’images médicales ont été appliquées dans un contexte
de cloud computing. Ces méthodes permettent un accès rapide à l’imagerie médicale et à son
traitement en fonction du temps.

Dans ce cadre s’inscrit ce projet de fin d’études intitulé “Développement d’un api rest de
diagnostic des images de traumatisme radiologiques en utilsant AWS Sagemaker”. Il vise à
faciliter le déroulement du service d’urgence.

Ce présent projet est subdivisé en 5 chapitres précédés par une introduction générale.

Le premier chapitre présente l’organisme d’accueil qui est NewGen Technologies ,et vise à
situer notre projet dans son cadre général l’IA et son exploitation dans le domaine médicale et
à présenter notre problématique générale qui nous mène à mettre en place notre solution pour
classifier les images de traumatisme.
Dans le deuxième chapitre nous détaillons les notions de base d’intelligence artificielle, nous
présentons l’état de l’art ainsi que les services cloud utilisés.
Ensuite dans le troisième chapitre, nous présentons un enchaînement précis pour traiter les
données, déterminer le bon modèle, entraîner et évaluer le modèle de classification des images
de traumatisme.
Dans le quatrième chapitre, nous détaillons la procédure de conteneurisation et de déploiement
dans AWS ECR .
Finalement dans le cinquième chapitre ,nous expliquons par étapes la procédure de déploiement
de l’application sur AWS Sagemaker et la création d’un API Gateway.
Enfin, nous clôturons le présent rapport en concluant le travail effectué et en exposant quelques
perspectives qui peuvent l’enrichir et pour améliorer de notre solution.

Mémoire pour l’obtention du diplôme d’ingénierie en génie civil Page 1


Chapitre

1
Contexte du projet

Sommaire
1.1 Présentation de l’organisme d’accueil . . . . . . . . . . . . . . 3
1.2 Présentation du projet . . . . . . . . . . . . . . . . . . . . . . . 3
1.2.1 Problématique . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2.2 Etude de l’existant . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2.3 Solution proposée . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.3 Organisation de travail . . . . . . . . . . . . . . . . . . . . . . . 7
1.3.1 Méthodes agiles . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.3.2 Méthodologie de travail adoptée : Agile CRISP-DM . . . . . . . 7

Mémoire pour l’obtention du diplôme d’ingénierie en génie civil Page 2


CONTEXTE DU PROJET

Introduction

L’objectif de ce premier chapitre est de situer le projet dans son cadre général. Nous commençons
par présenter l’organisme d’accueil "NewGen technologies". Ensuite, nous présenterons le contexte
du projet, la problématique, les objectifs et les résultats attendus. La dernière partie sera consacrée
à la méthodologie du travail.

1.1 Présentation de l’organisme d’accueil

NewGen Technologies est une jeune entreprise fondée en Février 2022 par Mr Firas Sghari,
spécialisée essentiellement dans l’ingénierie des systèmes d’information et des réseaux d’une
part, et le consulting en intelligence artificielle et Big Data dans les environnement hybrides et
Cloud d’autre part.

F IGURE 1.1 – Logo du NewGen Technologies

1.2 Présentation du projet

Dans cette section, nous présentons tout d’abord la problématique qui a été a l’origine de la
réalisation de notre projet, puis nous présentons la solution proposée.

Mémoire pour l’obtention du diplôme d’ingénierie en génie civil Page 3


CONTEXTE DU PROJET

1.2.1 Problématique

Les chutes, les collisions, les bagarres et autres mésaventures entraînent fréquemment des
fractures chez les nourrissons, les personnes âgées et les jeunes. De nombreux cliniciens utilisent
les images médicales pour évaluer la probabilité de fractures osseuses. Il existe de nombreuses
techniques permettant d’obtenir différents types d’images médicales de haute qualité grâce au
développement d’appareils médicalement complexes, notamment les rayons X et l’imagerie
par résonance magnétique (IRM). Il s’agit d’une méthode courante pour identifier la présence
et la gravité d’une fracture osseuse par l’évaluation visuelle d’une image radiographique et pour
tenter d’obtenir des traitements appropriés. Un médecin expert doit passer beaucoup de temps
à examiner l’emplacement exact d’une fracture osseuse sur une image radiographique. Dans
de nombreux hôpitaux, il n’y a pas assez de radiologues expérimentés pour traiter ces images
médicales. Le diagnostic assisté par ordinateur a été largement utilisé dans l’interprétation des
images médicales pour aider les chirurgiens à trouver les fractures osseuses, et il a gagné en
importance ces dernières années.

1.2.2 Etude de l’existant

MURA est une collection importante de radiographies musculo-squelettiques comprenant


40 561 images provenant de 14 863 études, chacune d’entre elles ayant été classée manuellement
comme normale ou pathologique par des radiologues. MURA recueille des étiquettes supplémentaires
sur l’ensemble de test, qui consiste en 207 études musculo-squelettiques, auprès de six radiologues
de StanfordMlGroup certifiés par le conseil d’administration,afin d’évaluer le modèle de manière
robuste et d’obtenir une estimation des performances des radiologues. La référence pour cet
ensemble de test est le vote majoritaire des trois radiologues.
En effet, sur l’ensemble de test, nous avons évalué la performance des radiologues et de modèle
développé par Stanfordmlgroup.

Mémoire pour l’obtention du diplôme d’ingénierie en génie civil Page 4


CONTEXTE DU PROJET

F IGURE 1.2 – Etude comparative entre les radiologues et le modèle développé par
Stanfordmlgroup [1]

Pour chaque type d’étude, y compris le coude, le doigt, l’avant-bras, la main, l’humérus,
l’épaule et le poignet, nous avons comparé les performances du modèle avec les meilleures
performances en termes de précision des radiologues. La meilleure précision du radiologue
sur les études du doigt était de 0,410, alors que la performance du modèle sur les mêmes
données était de 0,389. Comme dans les études sur les poignets, la performance du modèle
sur ces mesures, 0,931 , était égale à la performance du meilleur radiologue pour ces tests. Dans
l’ensemble, la performance du modèle était inférieure à celle du meilleur radiologue pour tous
les autres types d’études.
De plus, nous avons comparé la performance du modèle avec la performance la plus faible du
radiologue pour chaque type d’essai. La performance du radiologue le plus mauvais sur les
études de l’avant-bras était de 0,796, alors que la performance du modèle était de 0,737. De
même, la performance du modèle sur les études de l’humérus et de l’épaule était inférieure à
celle du radiologue le plus mauvais. Pour les études des doigts, le modèle a été aussi performant
que le plus mauvais radiologue, qui a obtenu un score de 0,304, avec une performance de 0,389.
Les performances du modèle sur les études du coude étaient également équivalentes à celles du
plus mauvais radiologue. La performance du modèle a été supérieure à celle du radiologue le
plus mauvais pour tous les autres types d’études. Dans l’ensemble, la performance du modèle
était inférieure à celle du radiologue le moins performant, qui était de 0,731, à 0,705.

Mémoire pour l’obtention du diplôme d’ingénierie en génie civil Page 5


CONTEXTE DU PROJET

1.2.3 Solution proposée

MURA est l’un des plus grands ensembles de données de radiographie disponibles publiquement,
cette base d’apprentissage est développé par Stanfordmlgroup. Nous avons exploité partagé la
même base d’apprentissage. Plus précisément, notre tâche consiste à résoudre les problèmes de
précision du modèle existant de Stanfordmlgroup. Pour commencer ,nous allons nous focaliser
sur les images radiologiques portant sur les traumatismes des doigts. Ensuite, nous allons tenter
de rendre notre modèle généraliste, c’est-à-dire une solution qui donne de bons résultats en
terme de précision dans tous les études de notre base d’apprentissage.

Notre solution consiste tout d’abord à recueillir les besoins auprès d’experts comme un
orthopédiste chez l’hôpital universitaire Habib Bourguiba et un radiologue chez hôpital régional
Bir Ali Ben Khelifa avant de commencer la création d’un modèle d’apprentissage profond.
Le pipeline de notre solution est présenté dans la figure ci-dessus 1.3.

F IGURE 1.3 – Pipeline du projet

Les principales étapes du pipeline sont les suivantes :

— L’utilisation de Tensorflow comme support pour la création d’un modèle d’apprentissage


profond.

— le développement d’un modèle d’apprentissage profond densenet-169.

Mémoire pour l’obtention du diplôme d’ingénierie en génie civil Page 6


CONTEXTE DU PROJET

— la conteneurisation de notre modèle sous forme d’une image docker.

— l’envoie de cette image à un registre Amazon Web Service.

— l’exécution d’Amazon Sagemaker à travers cette image.

— la géneration d’un rest API.

1.3 Organisation de travail

Afin de réussir notre projet en respectant les délais et les ressources, il est nécessaire que
l’équipe soit bien organisée et efficace. Dans ce contexte, nous avons dû fixer l’une des méthodes
de gestion des projets existantes afin de nous aider à organiser notre projet de façon rationalisée
et structurée.

1.3.1 Méthodes agiles

Le développement agile est un ensemble de méthodologies où les solutions et les projets


évoluent grâce à la collaboration entre des équipes auto organisées et travaillant sur plusieurs
domaines fonctionnels. Ces méthodologies reposent sur trois critères :

— Itérative : La capacité de planifier une itération de production en termes de fonctionnalités


et d’interdépendances.

— Incrémentale : La production des fonctionnalités s’effectue en plusieurs incréments.

— Adaptative : La capacité d’accepter les modifications, les changements et l’évolution du


livrable, avant, après et pendant la production. Cela permet au client de modifier ses
exigences en cours de projet.

1.3.2 Méthodologie de travail adoptée : Agile CRISP-DM

Le but de ce projet est d’établir des modèles permettant d’atteindre nos objectifs. Nous
avons décidé d’adapter le processus standard intersectoriel bien connu et largement accepté
pour le “Data Mining” CRISP-DM [2] (qui a été au départ développé par IBM dans les années

Mémoire pour l’obtention du diplôme d’ingénierie en génie civil Page 7


CONTEXTE DU PROJET

60 pour réaliser les projets Datamining) pour refléter les spécificités de l’apprentissage machine
et assurer une exécution réussie des projets d’apprentissage machine.
Cette méthodologie sépare les projets de Data Science en 6 étapes. La figure ci-contre 1.4 les
présente.

1. Connaissance du métier
2. Connaissance des données
3. Préparation des données
4. Modélisation des données
5. Évaluation
6. Déploiement

F IGURE 1.4 – La méthode CRISP illustrée

Conclusion

Ce premier chapitre nous a permis de définir en premier lieu le cadre général de notre projet
à travers la présentation de l’entreprise d’accueil. En second lieu, nous avons défini le contexte
général, la problématique, les objectifs de notre projet ainsi que la solution que nous avons
proposé.

Mémoire pour l’obtention du diplôme d’ingénierie en génie civil Page 8


CONTEXTE DU PROJET

Enfin, nous avons défini la méthodologie de travail adoptée pour la réalisation du projet. En vue
d’avoir une idée plus claire sur le projet, nous présentons dans le chapitre suivant les fondements
de l’intelligence artificielle et les service utilisés par le cloud.

Mémoire pour l’obtention du diplôme d’ingénierie en génie civil Page 9


Chapitre

2
Etude de l’art

Sommaire
2.1 Fondements de l’intelligence artificielle . . . . . . . . . . . . . 11
2.1.1 Intelligence Artificielle . . . . . . . . . . . . . . . . . . . . . . . 11
2.1.2 Machine Learning . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.1.3 Deep Learning . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.1.4 Convolution Neural Networks . . . . . . . . . . . . . . . . . . . 12
2.1.5 L’apprentissage par transfert . . . . . . . . . . . . . . . . . . . 16
2.2 Fonction de perte . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.3 Les métriques d’évaluation . . . . . . . . . . . . . . . . . . . . . 22
2.4 Docker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.5 Présention d’Amazon Web Service . . . . . . . . . . . . . . . . 25
2.5.1 Le cloud computing . . . . . . . . . . . . . . . . . . . . . . . . 25
2.5.2 Amazon Web Service . . . . . . . . . . . . . . . . . . . . . . . . 26
2.5.3 Avantages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.5.4 Les services utilisés . . . . . . . . . . . . . . . . . . . . . . . . . 28

Mémoire pour l’obtention du diplôme d’ingénierie en génie civil Page 10


ETUDE DE L’ART

Introduction

Dans ce chapitre, nous présentons d’abord les principes fondamentaux de l’intelligence


artificielle, notamment l’apprentissage automatique, l’apprentissage profond et les réseaux neuronaux
convolutifs. Ensuite, nous expliquons certaines idées clés, notamment les fonctions de perte et
les métriques d’évaluation, avant de conclure par une discussion sur Amazon Web Services et
les services qui sont proposés par son intermédiaire.

2.1 Fondements de l’intelligence artificielle

2.1.1 Intelligence Artificielle

L’IA désigne la possibilité pour une machine de reproduire des comportements liés aux
humains, tels que le raisonnement, la planification et la créativité. L’IA permet à des systèmes
techniques de percevoir leur environnement, gérer ces perceptions, résoudre des problèmes et
entreprendre des actions pour atteindre un but précis. L’ordinateur reçoit des données les analyse
et réagit. Les systèmes dotés d’IA sont capables d’adapter leurs comportements en analysant les
effets produits par leurs actions précédentes, travaillant de manière autonome.[3]

2.1.2 Machine Learning

Un sous-ensemble de l’intelligence artificielle appelé apprentissage automatique exige que


l’ordinateur découvre des règles par lui-même, sans instructions explicites des programmeurs.
Les programmes utilisés dans l’apprentissage automatique apprennent la correspondance entre
les entrées et les sorties sur la base d’équations mathématiques. Cela leur permet, quelle que
soit l’activité pour laquelle ils sont formés, de découvrir des indices que les humains pourraient
négliger et donc de produire de meilleurs résultats.[4]

Mémoire pour l’obtention du diplôme d’ingénierie en génie civil Page 11


ETUDE DE L’ART

2.1.3 Deep Learning

L’apprentissage profond est un sous-ensemble de l’apprentissage automatique qui repose


uniquement sur les réseaux neuronaux profonds, un paradigme informatique sous-jacent inspiré
du fonctionnement du cerveau humain.
Il est constitué de nombreuses cellules informatiques, ou neurones, dont chacune accomplit une
tâche simple avant d’interagir avec les autres pour parvenir à une conclusion.
L’apprentissage profond consiste à "attribuer des poids" de manière précise, efficace et non
supervisée à de nombreuses couches d’un réseau neuronal.
L’apprentissage profond s’est avéré très utile pour traiter des photos, des vidéos et des textes
qui étaient auparavant difficiles à gérer pour les algorithmes d’apprentissage automatique.
La figure 2.1 ci-contre montre l’analogie neurones humaines par rapport l’artificielles.[5]

F IGURE 2.1 – Analogie neurones humaines vs artificielles

2.1.4 Convolution Neural Networks

Une branche de l’intelligence artificielle connue sous le nom de vision par ordinateur est
souvent liée à l’apprentissage automatique, en particulier aux réseaux neuronaux. La vision par
ordinateur se concentre sur la manière dont les machines peuvent comprendre les images et les
vidéos numériques à un niveau profond. Elle vise à émuler les capacités du système visuel du
corps humain.
Dans de nombreuses tâches de vision par ordinateur, les réseaux de neurones convolutifs (CNN)

Mémoire pour l’obtention du diplôme d’ingénierie en génie civil Page 12


ETUDE DE L’ART

sont aujourd’hui la méthode de facto. Depuis leur invention il y a une dizaine d’années, les
réseaux de neurones convolutifs ont réalisé des percées révolutionnaires dans les applications
de vision par ordinateur, notamment la classification d’images et la reconnaissance d’objets,
comme la détection de gestes, d’iris, de plaques d’immatriculation, de visages et d’activités
humaines.
À première vue, le mode de fonctionnement d’un réseau neuronal convolutif semble simple :
l’utilisateur saisit une image sous la forme d’une matrice de pixels. Celle-ci a trois dimensions :

— Une image en niveaux de gris a deux dimensions.

— une troisième dimension avec une profondeur de trois pour représenter les couleurs primaires
(rouge, vert et bleu).

La conception d’un réseau neuronal convolutif se compose généralement de quatre couches :


une couche de convolution, une couche de mise en commun, une couche d’activation et une
couche entièrement connectée.[6]

2.1.4.1 Couche de convolution

Une opération mathématique simple est la convolution. Le travail de cette couche initiale
consiste à examiner les images d’entrée et à trouver l’existence d’un ensemble particulier de
caractéristiques [7]. Cette couche produit un ensemble de caractéristiques en sortie. Comme le
montre la figure suivante 2.2, son effet sur une image est comparable à celui d’un filtre :

F IGURE 2.2 – Parcours de la fenêtre de filtre sur l’image

Mémoire pour l’obtention du diplôme d’ingénierie en génie civil Page 13


ETUDE DE L’ART

— On commence par spécifier les dimensions de la fenêtre de filtrage dans le coin supérieur
gauche.

— Jusqu’à ce qu’elle atteigne la fin de l’image, la fenêtre de filtrage avance progressivement


de la gauche vers la droite d’un nombre prédéterminé de cellules (le pas).

— Une carte d’activation de sortie qui montre où se trouvent les caractéristiques dans l’image
est produite après avoir effectué un calcul de convolution sur chaque zone de l’image
rencontrée.

2.1.4.2 Couche de Pooling

Une procédure appelée couche de mise en commun est généralement utilisée entre deux
couches de convolution. Son rôle est de réduire la taille des images tout en conservant leurs
caractéristiques les plus importantes. Elle prend en entrée les caractéristiques créées à la sortie
de la couche de convolution.[7]
Le pooling maximum est parmi les types de pooling les plus populaires.Son objectif est de
réduire le coût de calcul en réduisant le nombre de paramètres à apprendre et de prendre le
maximum.Pour rendre plus concret l’action du Max-Pooling, voici l’exemple présenté par la
figure ci-dessous 2.3 : nous avons une matrice 4×4 représentant notre entrée initiale et un
filtre d’une fenêtre de taille 2×2 que nous appliquerons sur notre entrée. Pour chacune des
régions balayées par le filtre, le max-pooling prendra le maximum, créant ainsi par la même
occasion une nouvelle matrice de sortie où chaque élément correspondra aux maximums de
chaque région rencontrée.

F IGURE 2.3 – Maxpool

Mémoire pour l’obtention du diplôme d’ingénierie en génie civil Page 14


ETUDE DE L’ART

2.1.4.3 Couche d’activation

L’élément central des réseaux neuronaux convolutifs est la couche d’activation. Elle constitue
toujours la première couche. Son objectif est de trouver un certain groupe de caractéristiques
dans les images d’entrée.[7]

F IGURE 2.4 – Relu

Nous utilisons comme exemple la couche d’activation ReLU présenté par la figure ci-dessus
2.4, qui remplace toutes les valeurs d’entrée négatives par des zéros. Ces couches d’activation
sont motivées par la nécessité de non-linéariser le modèle.

2.1.4.4 Couche Fully Connected

La couche entièrement connectée d’un réseau neuronal est toujours la dernière couche.
Ce type de couche prend un vecteur en entrée et retourne un autre vecteur. Pour ce faire, elle
applique une combinaison linéaire et éventuellement une fonction d’activation aux données
d’entrée.
La dernière couche entièrement connectée du réseau est utilisée pour catégoriser l’image d’entrée
comme l’indique la figure ci-dessous 2.5. Elle produit un vecteur de taille N, où N est le nombre
total de classes dans notre problème de classification d’images. Chaque composante du vecteur
représente la probabilité que l’image d’entrée appartienne à une classe particulière.[7]

Mémoire pour l’obtention du diplôme d’ingénierie en génie civil Page 15


ETUDE DE L’ART

F IGURE 2.5 – Fully connected

2.1.5 L’apprentissage par transfert

Le Transfert Learning, ou apprentissage par transfert, désigne l’ensemble des méthodes qui
permettent de transférer les connaissances acquises à partir de la résolution de problèmes donnés
pour traiter un autre problème.
L’apprentissage par transfert, quant à lui, permet de développer rapidement des modèles performants
et de résoudre efficacement des problèmes de vision par ordinateur difficiles en employant des
modèles pré-entraînés comme point de départ.[8]
La figure ci-dessous 2.6 montre la différence entre l’approche traditionnelle et l’approche tranfert
learning.

F IGURE 2.6 – Approche traditionnelle vs. Approche de Transfert Learning

Mémoire pour l’obtention du diplôme d’ingénierie en génie civil Page 16


ETUDE DE L’ART

Plusieurs modèles bien connus ont été pré-entraînés tout au long de la longue histoire des
conceptions de réseaux neuronaux profonds, en particulier les réseaux neuronaux convolutifs,
et ils sont toujours utilisés pour de nombreux ensembles de données médicales ainsi que pour
des ensembles de données liés à d’autres domaines.
Ces modèles ont été régulièrement mis à jour et optimisés, et leurs performances en matière de
classification de photos de diverses catégories se sont améliorées et ont répondu aux attentes
dans de nombreux domaines.
Ci-dessous des exemples de modèles pré-entrainé, ainsi qu’une description de leurs attributs et
des mesures de leurs performances :

2.1.5.1 Alex Net

Il y a huit couches apprenables dans l’Alexnet. Le modèle se compose de cinq niveaux,


chacun d’entre eux utilisant l’activation Relu, à l’exception de la couche de sortie, qui utilise
Softmax comme fonction d’activation. Chaque couche du modèle combine le max-pooling avec
trois couches entièrement liées. Il y a 62,3 millions de paramètres dans l’ensemble de cette
architecture.[9]
La figure ci-dessous 2.7 présente l’architecture Alexnet.

F IGURE 2.7 – Architecture Alexnet

Mémoire pour l’obtention du diplôme d’ingénierie en génie civil Page 17


ETUDE DE L’ART

2.1.5.2 VGG

Le groupe de géométrie visuelle, ou VGG, est une conception standard de réseau neuronal
à convolution (CNN) profond comportant un certain nombre de couches. Le terme "profond"
décrit la quantité de couches VGG-16 ou VGG-19, qui se composent respectivement de 16
couches convolutifs pour le VGG-16 et de 19 pour le VGG-19. Le réseau VGG est construit
à l’aide de filtres convolutifs incroyablement petits. Le VGG-16 est composé de trois couches
entièrement liées et de 13 couches convolutives.
L’un de ses principaux inconvénients est sa taille, qui rend plus difficile l’apprentissage de ses
paramètres, est l’un de ses principaux inconvénients. En conséquence, le VGG16 est un grand
réseau avec un total de 138 millions de paramètres. Il s’agit d’un réseau énorme, même selon
les normes contemporaines.[10]
La figure ci-dessous 2.8 présente l’architecture VGG-16.

F IGURE 2.8 – Architecture VGG-16

2.1.5.3 Resnet

Auparavant, on pensait qu’il n’était pas possible de former des modèles comportant plus
de 20 couches. La meilleure architecture CNN avant ResNet était VGG19. Comme son nom
l’indique, ce modèle comporte 19 couches convolutifs. Et il n’était pas possible d’ajouter des
couches supplémentaires à cette architecture, car lors de l’ajout de couches supplémentaires,

Mémoire pour l’obtention du diplôme d’ingénierie en génie civil Page 18


ETUDE DE L’ART

nous nous heurtions à un problème appelé "vanishing gradient". Cela signifie que si nous avons
plus de 8 couches dans notre architecture, nous atteindrons un point pendant l’apprentissage où
les gradients deviendront infiniment grands ou deviendront nuls, rendant impossible l’apprentissage
du modèle.
ResNet offre une solution à ce problème en permettant la création de modèles comportant
jusqu’à 1000 couches, ce qui permet de représenter des caractéristiques plus complexes. nous
permettant de créer des modèles pouvant représenter des caractéristiques plus complexes.
ResNet nous a fourni la solution d’utiliser les Skip Connections. Cela signifie que si deux
couches convolutives sont combinées en un seul bloc, que nous appellerons le ResBlock, l’entrée
du ResBlock a un chemin différent menant à la sortie du ResBlock. La sortie finale de ce
ResBlock particulier est alors obtenue en ajoutant ces entrées à la sortie du ResBlock.[11]
La figure ci-dessous 2.9 présente l’architecture Resnet.

F IGURE 2.9 – Architecture resnet

2.1.5.4 Densenet

À l’exception de la première couche convolutive, qui utilise l’image d’entrée, toutes les
couches convolutives suivantes créent une carte de caractéristiques de sortie à partir de la sortie
de celle qui les précède. Il existe un nombre L de connexions directes entre chaque couche
et la couche qui la précède pour un nombre L de couches. La figure ci-dessous 2.10 présente
l’architecture Densenet.

Mémoire pour l’obtention du diplôme d’ingénierie en génie civil Page 19


ETUDE DE L’ART

F IGURE 2.10 – Architecture DenseNet

La conception de DenseNet consiste en les modifications suivantes de l’architecture CNN


normale : chaque couche d’une architecture DenseNet est liée à toutes les autres couches, d’où
le nom de "réseau convolutif à connexions denses". Pour L couches, il y a L(L+1)/2 connexions
directes. Les cartes de caractéristiques de toutes les couches précédentes sont utilisées comme
entrées pour chaque couche, et les cartes de caractéristiques propres à la couche sont utilisées
comme entrées pour chaque couche suivante.[12]

2.2 Fonction de perte

L’une des caractéristiques les plus cruciales des réseaux neuronaux est constituée par les
fonctions de perte, qui, avec les fonctions d’optimisation, sont directement chargées de l’ajustement
du modèle.
Cette section présente les fonctions de perte les plus courantes utilisées dans les réseaux neuronaux,
ainsi que les nombreux types de fonctions de perte. Mais d’abord, nous aborderons les concepts
de propagation vers l’avant et vers l’arrière des réseaux neuronaux, qui nous aideront à comprendre
les processus internes d’apprentissage du modèle.[13]

• Propagation vers l’avant


Comme son nom l’indique, les données d’entrée sont transmises tout au long du réseau. Les

Mémoire pour l’obtention du diplôme d’ingénierie en génie civil Page 20


ETUDE DE L’ART

données sont acceptées par chaque couche cachée, qui les traite ensuite en fonction de la
fonction d’activation avant de passer à la couche suivante.
Les données d’entrée ne peuvent être saisies qu’en avançant afin de produire une sortie. Lors de
la création de la sortie, les données ne peuvent pas revenir en arrière, car cela créerait un cycle
et empêcherait la création de la sortie. Un réseau feed-forward est une configuration de ce type
de réseau. Le réseau feed-forward facilite la diffusion de l’information.
Le traitement s’effectue à chaque neurone d’une couche cachée ou de sortie en deux étapes :

— Pré-activation : La transformation linéaire des poids par rapport aux entrées disponibles
aboutit à une somme pondérée des entrées. Le neurone décide de transmettre ou non cette
information en fonction de ce total agrégé et de la fonction d’activation.

— Activation : La fonction d’activation reçoit la somme pondérée calculée des entrées.


Une fonction mathématique appelée fonction d’activation confère au réseau une plus
grande non-linéarité. Quatre fonctions d’activation populaires et largement utilisées sont
la sigmoïde, la tangente hyperbolique (tanh), ReLU et Softmax.

• Propagation vers l’arrière Le processus fondamental d’apprentissage d’un réseau neuronal


est la rétropropagation. Il s’agit du processus d’ajustement des poids d’un réseau neuronal en
fonction de la perte atteinte lors de l’itération, ou de l’époque, ou du taux d’erreur précédent.
Le modèle devient plus fiable en augmentant sa généralisation lorsque les poids sont ajustés de
manière appropriée, ce qui garantit des taux d’erreur plus faibles.
Pour montrer efficacement la fonction de perte, nous devons d’abord comprendre ce principe.
En effet, une fonction de perte analyse l’efficacité avec laquelle le réseau neuronal modélise les
données d’apprentissage en comparant les valeurs de sortie cible et prédite. On essaie de réduire
cette différence de sortie entre la prédite et la cible pendant l’apprentissage.
Les fonctions de perte de régression et de classification sont les deux principales catégories de
fonctions de perte qui correspondent aux deux principales catégories de réseaux neuronaux.
Comme c’est notre cas, nous présenterons celles de classification.
La fonction de perte la plus populaire en classification d’images est la perte d’entropie croisée
catégorielle pour les modèles comportant plus de deux classes, et l’entropie croisée binaire pour

Mémoire pour l’obtention du diplôme d’ingénierie en génie civil Page 21


ETUDE DE L’ART

les modèles ne comportant que deux classes, comme c’est le cas dans notre projet, où le modèle
doit classer les entrées dans l’une des deux catégories prédéterminées.

2.3 Les métriques d’évaluation

Le modèle d’apprentissage prédit des résultats dans des problèmes de classification qui
doivent être comparés à la réalité pour évaluer son efficacité. Typiquement, on utilise la matrice
de confusion. Elle montrera non seulement quelles prévisions étaient bonnes et mauvaises, mais
aussi quels types d’erreurs ont été commises. Nous avons besoin d’un ensemble de données de
test et d’un ensemble de données de validation qui contiennent tous deux les valeurs des résultats
acquis afin de créer une matrice de confusion.
Les lignes des colonnes du tableau correspondent aux classes réelles, et chaque colonne contient
une classe prédite par l’algorithme.[14]
Nous divisons les résultats dans les 4 groupes suivants :

• True Positive (TP) :la prédiction et la valeur réelle sont positives.


• True Negative (TN) : la prédiction et la valeur réelle sont négatives.
• False Positive (FP) :la prédiction est positive alors que la valeur réelle est négative.
• False Negative (FN) : la prédiction est négative alors que la valeur réelle est négative.

Mémoire pour l’obtention du diplôme d’ingénierie en génie civil Page 22


ETUDE DE L’ART

F IGURE 2.11 – Matrice de confusion

La figure ci-dessus 2.11 présente la matrice de confusion qui nous fournit quatre mesures
distinctes et distinctives. D’autres métriques qui fournissent plus de détails sur le comportement
du modèle peuvent être générées à partir de ces quatre mesures :
• Accuracy :
La performance du modèle sur toutes les classes est souvent décrite par la précision, qui est une
mesure. Lorsque toutes les classes ont la même importance, elle est utile. Pour la calculer, on
utilise le nombre de prévisions exactes divisé par le nombre total de prévisions.

• Précision :
La précision est calculée comme la proportion d’échantillons positifs catégorisés avec précision
par rapport à tous les échantillons considérés comme positifs (correctement ou incorrectement).
La précision est une mesure de l’exactitude avec laquelle un modèle classe un échantillon
comme positif.

Mémoire pour l’obtention du diplôme d’ingénierie en génie civil Page 23


ETUDE DE L’ART

• Rappel ou Recall :
Le pourcentage d’échantillons positifs qui ont été correctement identifiés comme positifs sur
l’ensemble des échantillons positifs est utilisé pour calculer le rappel. Le rappel évalue la
capacité du modèle à identifier les échantillons positifs. Plus le nombre d’échantillons positifs
est élevé, plus le rappel est important.

2.4 Docker

Docker est un outil qui permet de conteneuriser une application.La conteneurisation est le
fait d’isoler une application de son environnement.
Avec Docker il y a deux mots qui sont omniprésents : les conteneurs et les images.

— Une image :
Une image est une version immuable d’une application. Une image Docker fournit les
dépendances,les fichiers de configuration et tout ce qui est nécessaire à l’exécution de
l’application.Nous pouvons construire une image en utilisant un Dockerfile.
Si nous faisons le parallèle avec la programmation orienté objet, une image peut être
comparée a une classe.

— Un conteneur (de l’anglais ’container’) :


Un conteneur est une instance d’une image. Ainsi, nous pouvons créer autant d’instances(conteneurs)
que le nous souhaitons basées sur une même image.
En programmation orientée objet une image peut être comparée à un objet.

Il faut aussi mentionner que par défaut une application conteneurisée est une application sans
état dit ”stateless”.En quelques mots une application ’stateless’ est une application qui ne stocke

Mémoire pour l’obtention du diplôme d’ingénierie en génie civil Page 24


ETUDE DE L’ART

pas des données de manière persistante.


Ainsi à chaque démarrage du conteneur, l’application est initialisée à son état d’origine.Pour
donner un exemple : il est impossible de faire une base de données sur un modèle d’applications
’stateless’, puisque le but d’une base de données est de sauvegarder les données, donc c’est une
application dite ’stateful’.
Toutefois, même si les applications Docker sont par défaut ’stateless’, il est possible de les
rendre ’stateful’. Pour ceci nous leur rajoutons un volume. Un volume est un espace disque que
nous attribuons au conteneur afin qu’il puisse conserver son état.
L’avantage des applications conteneurisées est qu’ils contiennent la totalité de leurs dépendances
avec une version correcte pour le fonctionnement de l’application.
Cela implique que lorsque le nous transférons une image Docker, l’environnement de travail est
déjà présent et aucune configuration supplémentaire n’est requise.
Ensuite, comme les conteneurs sont isolés les uns des autres, c’est très simple de changer la
version d’une application sans affecter les autres applications.
Ce sont tous ces avantages qui ont permis aux applications conteneurisées d’avoir une rapide
adoption dans la communauté des développeurs.
La conteneurisation donc par conséquent Docker possède de nombreux autres avantages.
Mais dans le cadre de mon stage cette technologie est au centre de toutes réflexions et représente
un point central du projet.
Et suite à ça, nous allons parler de comment nous avons crée notre dockerfile au service d’un
modèle d’apprentissage automatique.

2.5 Présention d’Amazon Web Service

2.5.1 Le cloud computing

Le terme "cloud" désigne à la fois les systèmes d’exploitation et les bases de données qui
fonctionnent sur des serveurs accessibles via l’internet. Des centres de données répartis dans le
monde entier hébergent les serveurs du nuage.

Mémoire pour l’obtention du diplôme d’ingénierie en génie civil Page 25


ETUDE DE L’ART

Les utilisateurs et les entreprises peuvent éliminer la nécessité de gérer des serveurs physiques
ou d’exécuter des programmes logiciels sur leur propre matériel en utilisant le cloud.
En raison du fait que les fonctions de calcul et de stockage sont gérées par des serveurs dans
un centre de données plutôt que directement sur l’ordinateur de l’utilisateur, le cloud permet
aux utilisateurs d’accéder aux mêmes fichiers et programmes depuis presque n’importe quel
appareil. Ainsi, un utilisateur d’Instagram qui perd son téléphone peut toujours accéder à son
compte à partir d’un nouveau téléphone et le trouver actif, avec toutes ses photos, ses vidéos et
son historique de chat. Il en va de même pour les services de stockage en ligne comme Dropbox
ou Google Drive et les services de messagerie en nuage comme Gmail ou Microsoft Office 365.
Les entreprises peuvent réduire leurs coûts et dépenses informatiques en passant au cloud.
Par exemple, elles n’ont plus à mettre à niveau et à entretenir leurs propres serveurs, car le
fournisseur de services en nuage s’occupe de tout. Ce facteur impacte particulièrement les
petites entreprises car elles manquent souvent de ressources pour maintenir leur propre infrastructure
interne. En utilisant le cloud, elles n’ont plus besoin de gérer des serveurs physiques ou d’exécuter
des programmes logiciels sur leur propre matériel.
Comme les utilisateurs peuvent accéder aux mêmes données et programmes de n’importe où,
le "cloud" peut également faciliter les opérations transfrontalières des entreprises.[15]

2.5.2 Amazon Web Service

La plateforme de cloud computing la plus complète et la plus utilisée au monde est Amazon
Web Services (AWS). Avec des centres de données situés dans le monde entier, elle fournit plus
de 200 services complets. Le nuage AWS fournit une large gamme de services d’infrastructure,
tels que des services d’optimisation de calcul, des options de stockage, des réseaux et des
bases de données proposés sous forme de ressources pratiques à la demande, accessibles en
quelques secondes et facturées en fonction de leur utilisation. Sans frais initiaux, de nouveaux
services peuvent être attribués immédiatement. Les entreprises, les jeunes pousses et les clients
du secteur public peuvent ainsi avoir accès aux éléments fondamentaux dont ils ont besoin pour
réagir rapidement à l’évolution de leurs besoins. En 2006, Amazon Web Services a commencé à

Mémoire pour l’obtention du diplôme d’ingénierie en génie civil Page 26


ETUDE DE L’ART

fournir aux entreprises des services web - aujourd’hui connus sous le nom de "cloud computing"
- sous la forme de services d’infrastructure informatique.[?]

2.5.3 Avantages

Nous disposons d’un environnement virtuel avec AWS qui nous permet de charger les
applications et les services requis par notre application. Par conséquent, les applications existantes
peuvent être plus facilement migrées tout en ayant la possibilité de développer de nouvelles
solutions.L’utilisation d’AWS offre les principaux avantages suivants :

— La simplicité d’utilisation : Qu’il s’agisse de nouveaux produits SaaS ou d’applications


existantes, AWS est conçu pour aider les fournisseurs d’applications à héberger leurs
applications rapidement et en toute sécurité. Pour accéder à la plateforme d’hébergement
d’applications AWS, on peut utiliser soit la "console de gestion", soit des services Web
bien documentés.

— La flexibilité : Le système d’exploitation, le langage de programmation, la plate-forme


d’application, la base de données et les autres services dont vous avez besoin peuvent tous
être sélectionnés via AWS. AWS offre un environnement virtuel dans lequel l’application
peut charger les services et les logiciels nécessaires. Par conséquent, les applications
existantes peuvent être plus facilement migrées tout en ayant la possibilité de développer
de nouvelles solutions.

— L’agilité : Vous ne payez que ce que vous utilisez avec AWS. L’équipement est élastique
et de taille adaptable. Les obligations et les coûts de résiliation sont absents.

— La rentabilité : Il n’y a pas de contrat à long terme ou de paiement initial requis ; vous
payez simplement pour la puissance de traitement, le stockage et les autres ressources que
vous utilisez réellement.

— La sécurité : La sécurité était une autre considération lors de la création d’AWS. Outre
la protection native du réseau, il existe toute une série de services qui vous permettent de
configurer précisément les services souscrits afin de filtrer les accès de manière rapide et

Mémoire pour l’obtention du diplôme d’ingénierie en génie civil Page 27


ETUDE DE L’ART

efficace. Aucun contrat ou paiement initial n’est requis ; vous payez simplement pour la
puissance de traitement, le stockage et les autres ressources que vous utilisez réellement.

2.5.4 Les services utilisés

Comme nous l’avons mentionné, AWS nous fournit un large éventail de services, dont
chacun est important pour notre projet :

2.5.4.1 Amazon S3

Selon AWS, un objet sur Amazon S3 est un fichier de données ou une "entité de base". Il
peut s’agir d’une vidéo, d’un document, d’une photo ou de tout autre type de fichier.
Une clé spéciale est associée à chaque objet. Ces clés sont utilisées pour distinguer et identifier
les objets dans l’environnement S3. Lors du téléchargement, un objet peut avoir une taille
maximale de 160 Go, bien qu’il existe un certain nombre de méthodes AWS pour contourner
cette restriction.[16]

2.5.4.2 Amazon ECR

Les développeurs peuvent rapidement stocker, gérer et déployer des images de conteneurs
Docker à l’aide d’Amazon Elastic Container Registry (ECR), un registre privé de conteneurs
Docker.
Comme Amazon ECR et Amazon Elastic Container Service (ECS) sont connectés, notre processus
de développement à la production est simplifié. Grâce à Amazon ECR, nous n’avons plus besoin
de gérer nos propres dépôts de conteneurs ni de nous soucier de la croissance de l’infrastructure
sous-jacente.
Vous pouvez déployer de manière fiable des conteneurs pour vos applications en utilisant l’architecture
hautement disponible et évolutive qu’Amazon ECR utilise pour héberger nos images.[17]

Mémoire pour l’obtention du diplôme d’ingénierie en génie civil Page 28


ETUDE DE L’ART

2.5.4.3 Amazon Sagemaker

Vous pouvez créer des pipelines d’apprentissage automatique de bout en bout à l’aide du
service Amazon SageMaker sur AWS, de l’apprentissage des modèles au déploiement de la
production. Il dispose d’une importante collection de modèles préinstallés qui peuvent être
utilisés immédiatement, mais vous pouvez également utiliser des images Docker pour créer
vos propres modèles uniques.
Les conteneurs Docker sont fréquemment utilisés par SageMaker pour permettre aux utilisateurs
de former et de déployer des algorithmes.
Les développeurs et les scientifiques des données peuvent conditionner les logiciels en unités
standardisées qui fonctionnent de manière fiable sur Docker grâce aux conteneurs.[18]

2.5.4.4 Amazon Lambda

Avec l’aide du service informatique AWS Lambda, vous pouvez exécuter du code sans
avoir à configurer ou à entretenir des serveurs. Lambda exécute le code sur une infrastructure
informatique hautement disponible et gère tous les aspects des ressources informatiques, notamment
l’allocation et la mise à l’échelle automatiques de la capacité, l’entretien du serveur et du
système d’exploitation, ainsi que la surveillance et la journalisation du code.
En utilisant l’un des langages pris en charge par Lambda (Java, Python, C, Node.js, Go, PowerShell,
Ruby, etc.), vous pouvez utiliser Lambda pour exécuter du code pour presque tout type d’application
ou de service dorsal.

Conclusion

Les principes fondamentaux de l’intelligence artificielle et de la vision par ordinateur, ainsi


que d’autres idées fondamentales, ont été abordés dans ce chapitre. Nous conclurons ce chapitre
par une description du cloud computing et des services offerts par Amazon Web Services.
La hiérarchie de notre base d’apprentissage sera présentée dans le chapitre suivant, après quoi

Mémoire pour l’obtention du diplôme d’ingénierie en génie civil Page 29


ETUDE DE L’ART

nous décrirons le prétraitement des données, la modélisation, l’évaluation et l’amélioration du


modèle.

Mémoire pour l’obtention du diplôme d’ingénierie en génie civil Page 30


Chapitre

3
Développement du modèle d’apprentissage
pour la classification des images radiologiques

Sommaire
3.1 Présentation de la base d’apprentissage . . . . . . . . . . . . . 32
3.2 Préparation de la base d’apprentissage . . . . . . . . . . . . . . 33
3.3 Prétraitement des données . . . . . . . . . . . . . . . . . . . . . 35
3.3.1 Normalisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.3.2 Réduction dimensionnelle . . . . . . . . . . . . . . . . . . . . . 36
3.4 Choix du modèle . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.4.1 CNN de zéro . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.4.2 Apprentissage par transfert . . . . . . . . . . . . . . . . . . . . 38
3.5 Amélioration et optimisation . . . . . . . . . . . . . . . . . . . 40
3.5.1 Data Augmentation . . . . . . . . . . . . . . . . . . . . . . . . 40
3.5.2 k-fold cross validation . . . . . . . . . . . . . . . . . . . . . . . 42
3.5.3 Les optimiseurs et leurs performances . . . . . . . . . . . . . . 43

Mémoire pour l’obtention du diplôme d’ingénierie en génie civil Page 31


DÉVELOPPEMENT DU MODÈLE D’APPRENTISSAGE
POUR LA CLASSIFICATION DES IMAGES RADIOLOGIQUES

Introduction

L’objectif d’un projet d’apprentissage automatique est de créer des modèles d’apprentissage
efficaces à partir d’un ensemble de données.
Mais pour ce faire, nous allons suivre une procédure spécifique qui implique la collecte et
la préparation des données, le choix du modèle approprié, l’apprentissage et l’évaluation du
modèle.
Dans ce chapitre, nous allons détailler toutes ces étapes.

3.1 Présentation de la base d’apprentissage

Nous travaillerons avec la base de données d’apprentissage MURA, une importante collection
de radiographies musculo-squelettiques comprenant 40 561 images provenant de 14 863 examens,
chacune d’entre elles comportant une ou plusieurs vues et ayant été classée manuellement
comme normale ou pathologique par des radiologues.
9045 de ces images radiographiques étaient normales, tandis que 5818 étaient pathologiques.
Il y a sept classes dans la base d’apprentissage MURA : coude, doigt, avant-bras, main,
poignet, épaule et humérus.
Afin d’obtenir des résultats notables, il était crucial de disposer d’une base d’apprentissage vaste
et de qualité.
Le tableau ci-dessous 3.1 présente le partitionnement de la base d’apprentissage MURA.

Mémoire pour l’obtention du diplôme d’ingénierie en génie civil Page 32


DÉVELOPPEMENT DU MODÈLE D’APPRENTISSAGE
POUR LA CLASSIFICATION DES IMAGES RADIOLOGIQUES

apprentissage Validation
Classe Total
Normal pathologique Normal pathologique

Coude 1094 660 92 66 1912

Doigt 1280 655 92 83 2110

Main 1497 521 101 66 2185

Humérus 321 271 68 67 727

Avant bras 590 287 69 64 1010

Epaules 1364 1457 99 95 3015

Poignet 2134 1326 140 97 3697

TABLE 3.1 – Le partitionnement de la base d’apprentissage MURA

3.2 Préparation de la base d’apprentissage

Nous discuterons de la structure de notre base d’apprentissage MURA après l’avoir présentée.
En effet, il y a deux sous-dossiers dans le dossier MURA l’un pour la formation et l’autre pour
la validation comme l’indique la figure ci-dessous 3.1.

F IGURE 3.1 – Les deux dossiers valid et test

Chacun de ces sous-dossiers comporte sept sous-dossiers comme il est presenté par la figure
ci-dessous 3.2 . A chaque sous-répertoire correspond une catégorie de classification qui sont le
coude, le doigt, l’avant-bras, la main, l’humérus, l’épaule et le poignet.

Mémoire pour l’obtention du diplôme d’ingénierie en génie civil Page 33


DÉVELOPPEMENT DU MODÈLE D’APPRENTISSAGE
POUR LA CLASSIFICATION DES IMAGES RADIOLOGIQUES

F IGURE 3.2 – Les dossiers des sept catégories

Chacun de ces sept sous-dossiers ou divisions dans la hiérarchie possède ensuite une collection
de tous les identifiants de patients qui ont ensuite été divisés en différentes études, chacune
d’entre elles pouvant être soit une étude positive, soit une étude négative.
La figure ci-contre 3.3 présente un exemple d’une étude négative correspondante à la catégorie
poignet.

F IGURE 3.3 – Le sous-dossier de la catégorie XR-WRIST

Mémoire pour l’obtention du diplôme d’ingénierie en génie civil Page 34


DÉVELOPPEMENT DU MODÈLE D’APPRENTISSAGE
POUR LA CLASSIFICATION DES IMAGES RADIOLOGIQUES

F IGURE 3.4 – Exemple d’un patientID

La structure de notre base d’apprentissage est trop complexe.


Par conséquent, nous devons modifier sa hiérarchie.Ainsi, nous avons créé un répertoire pour
chacun des études normales et pathologiques.
Grâce à cette amélioration, nous avons pu réaliser plus rapidement les activités de formation
telle que l’augmentation des données.
La figure ci-contre 3.5 montre la nouvelle hiérarchie de notre base d’apprentissage.

F IGURE 3.5 – Dossier Train contient tous les images négatives et positives

3.3 Prétraitement des données

Le prétraitement des données est crucial car de bonnes données représentent le fondement
d’un modèle d’apprentissage efficace et performant.
Afin de rendre nos modèles plus fiables, nous avons utilisé une variété de méthodes de prétraitement.

Mémoire pour l’obtention du diplôme d’ingénierie en génie civil Page 35


DÉVELOPPEMENT DU MODÈLE D’APPRENTISSAGE
POUR LA CLASSIFICATION DES IMAGES RADIOLOGIQUES

La normalisation et la réduction dimensionnelle sont les deux méthodes les plus fréquemment
utilisées pour améliorer les performances de notre CNN.

3.3.1 Normalisation

Les pixels peuvent être utilisés pour représenter n’importe quelle image. Les images ne sont
essentiellement que des tableaux dont les données de pixel sont stockées dans chaque cellule
unique et dont les valeurs vont de 0 à 255.
Les images d’entrée normalisées sont nécessaires pour que les réseaux neuronaux s’entraînent
plus rapidement.
En soustrayant le minimum, qui est égal à 0, et en le divisant par le maximum de toutes les
observations, qui est égal à 255, nous pouvons normaliser les variables et ramener les données
sur une échelle de 0 à 1.Cela permet de conserver la forme de la distribution de chaque variable
tout en facilitant la comparaison sur la même "échelle".[19]

3.3.2 Réduction dimensionnelle

Nous allons travailler avec une résolution spatiale très élevée car les photographies que nous
avons utilisées peuvent être très volumineuses.
Ainsi, avant d’utiliser les images pour entraîner notre modèle, nous avons effectué une réduction
de la dimensionnalité.
Rappelons que le RVB est le type de codage le plus courant et est utilisé pour la majorité des
images naturelles que nous voyons.D’ailleurs, la conversion en niveaux de gris des images RVB
est une forme de réduction de la dimensionnalité.
Nous avons utilisé cette méthode parce que les images de notre base d’apprentissage se composent
à la fois d’images de trois dimensions et d’images en niveaux de gris. Comme le modèle
n’accepte que les images de même dimension, nous devons rendre toutes les images de la même
dimension.

Mémoire pour l’obtention du diplôme d’ingénierie en génie civil Page 36


DÉVELOPPEMENT DU MODÈLE D’APPRENTISSAGE
POUR LA CLASSIFICATION DES IMAGES RADIOLOGIQUES

3.4 Choix du modèle

La préparation des données étant maintenant terminée, la sélection du modèle approprié est
l’étape suivante.
Les réseaux de neurones convolutifs (CNN) peuvent être construits à partir de zéro ou des
modèles pré-entraînés comme VGG, Resnet, Alexnet et Densenet peuvent être utilisés pour
construire un modèle d’apprentissage profond.

3.4.1 CNN de zéro

Dans cette section, en utilisant notre propre architecture, nous avons créé un modèle CNN à
partir de zéro. Nous avons employé un type de modèle séquentiel.
La technique la plus simple pour construire un modèle dans Keras est séquentielle.
Elle permet de construire un modèle couche par couche.
Afin d’ajouter des couches à notre modèle, nous utilisons la fonction ’add’.
Les couches Conv2D, qui sont nos deux premières couches, traitent nos images d’entrée, qui
sont considérées comme des matrices bidimensionnelles.
Le nombre de nœuds dans chaque couche est de 64 dans la première couche et de 32 dans la
deuxième. La taille de l’ensemble de données déterminera si cette valeur doit être augmentée
ou diminuée. Dans notre situation, 64 et 32 sont efficaces.
Pour notre convolution, la taille du noyau détermine la taille de la matrice de filtre.Par conséquent,
une taille de noyau de 3 indique que la matrice de filtre sera de 3x3.
L’activation linéaire rectifiée, souvent appelée ReLU, servira de fonction d’activation pour nos
deux premières couches. Il a été démontré que les réseaux neuronaux utilisent efficacement
cette fonction d’activation.
Notre première couche accepte également une forme en entrée. Chaque image d’entrée a la
forme suivante : (28,28,1), où 1 indique que les images sont en niveaux de gris.
Il y a une couche appelée "Flatten" qui se trouve entre les couches Conv2D et la couche dense ;
cette couche relie les couches Conv2D et dense.

Mémoire pour l’obtention du diplôme d’ingénierie en génie civil Page 37


DÉVELOPPEMENT DU MODÈLE D’APPRENTISSAGE
POUR LA CLASSIFICATION DES IMAGES RADIOLOGIQUES

Dans notre couche de sortie, nous aurons deux nœuds, un pour chaque résultat potentiel (0-1).
L’activation "Softmax" est utilisée. Afin que la sortie soit comprise comme des probabilités,
softmax additionne la sortie à 1. Le choix avec la plus grande probabilité sera alors utilisé par
le modèle pour baser sa prévision.
Nous avons donc décrit l’architecture de notre modèle CNN, qui permet la classification d’images.
En raison du petit nombre de couches dans notre modèle, la précision de notre modèle cnn de
zéro après trois époques est faible, comme le montre la figure ci-dessous 3.6. Comme notre
modèle ne comporte que deux couches convolutifs et qu’il ne dispose pas de l’augmentation
des données, une méthode permettant d’augmenter la quantité de données, ses performances
sont faibles. Donc, Nous avons utilisé l’apprentissage par transfert afin de résoudre le problème
des mauvaises performances.

F IGURE 3.6 – CNN avec une précision faible

3.4.2 Apprentissage par transfert

Les réseaux neuronaux convolutifs sont particulièrement coûteux à former, car des couches
supplémentaires signifient plus de convolutions et plus de paramètres à optimiser. L’ordinateur
doit être capable d’effectuer efficacement les calculs et de stocker plusieurs gigaoctets de données.
Grâce à l’apprentissage par transfert, l’apprentissage profond peut être réalisé sans avoir besoin
de consacrer un mois aux calculs. L’idée est d’utiliser les connaissances qu’un réseau de neurones
apprend en résolvant un problème pour en résoudre un autre plus ou moins similaire.
En fait, il n’est pas conseillé d’entraîner le réseau neuronal dès le départ lorsque la collection
d’images d’entrée est minuscule, comme dans notre cas. En effet, il y a beaucoup plus de

Mémoire pour l’obtention du diplôme d’ingénierie en génie civil Page 38


DÉVELOPPEMENT DU MODÈLE D’APPRENTISSAGE
POUR LA CLASSIFICATION DES IMAGES RADIOLOGIQUES

paramètres à apprendre que d’images, ce qui augmente le risque de sur-apprentissage.


L’apprentissage par transfert est la meilleure option, car il existe de nombreuses façons d’utiliser
un réseau neuronal pré-formé en fonction de la taille et de la similarité de l’ensemble de données
d’entrée par rapport à celui utilisé lors du pré-apprentissage.
• Stratégie 1 : fine-tuning total

Nous remplaçons la dernière couche entièrement connectée du réseau pré-entraîné par un classificateur
qui a été modifié pour le nouveau problème et qui a reçu une initialisation aléatoire. Les
nouvelles images sont ensuite utilisées pour entraîner toutes les couches.
Lorsqu’une nouvelle collection d’image est vaste, ce qui n’est pas le cas dans notre situation,
la stratégie 1 doit être appliquée. De plus, la phase d’apprentissage sera plus rapide que si
l’initialisation avait été aléatoire car les paramètres de chaque couche (sauf la dernière) sont
ceux du réseau pré-entraîné.
• Stratégie 2 : extraction des features

Cette méthode consiste à représenter les images du nouveau défi en utilisant les caractéristiques
du réseau pré-entraîné. Pour ce faire, nous fixons tous les autres paramètres tout en supprimant
la dernière couche entièrement liée. La représentation de chaque image d’entrée sera alors
calculée par ce réseau raccourci en utilisant les caractéristiques pré-apprises. Nous entraînons
ensuite un classificateur avec une initialisation aléatoire sur ces représentations.
Lorsque la nouvelle collection d’images est modeste et comparable aux images de pré-apprentissage,
cette approche devrait être employée. En effet, le risque de sur-apprentissage étant important,
il est risqué d’entraîner le réseau sur relativement peu d’images. De plus, si les nouvelles et
les anciennes images ont des caractéristiques communes, elles peuvent être représentées par les
mêmes caractéristiques.
• Stratégie 3 : fine-tuning partiel

En combinant les méthodes 1 et 2, nous remplaçons une fois de plus la dernière couche entièrement
connectée par le nouveau classificateur qui a été initialisé de manière aléatoire, et nous ajustons
les paramètres de quelques niveaux dans le réseau pré-entraîné.
Par conséquent, nous entraînons les couches non fixées - qui correspondent généralement aux
couches supérieures du réseau - sur les nouvelles images en plus du classificateur.

Mémoire pour l’obtention du diplôme d’ingénierie en génie civil Page 39


DÉVELOPPEMENT DU MODÈLE D’APPRENTISSAGE
POUR LA CLASSIFICATION DES IMAGES RADIOLOGIQUES

Lorsque la nouvelle collection d’images est minuscule mais significativement différente des
images de pré-apprentissage, comme dans notre cas, cette méthode est employée. D’une part,
comme il n’y a pas beaucoup d’images de formation, la méthode 1 - former le réseau entier -
n’est pas pratique en raison de la possibilité de sur-apprentissage.Inversement, la méthode 2 est
également abandonnée car il y a peu de similitudes entre les nouvelles et les anciennes images.
Comme mentionné précédemment, nous avons utilisé les modèles pré-entraînés VGG-16, Resnet,
Alexnet, Mobilenet et Densenet dans notre projet.
Sur notre base apprentissage, nous avons effectué une comparaison des performances de différents
modèles pré-entraînés.

modèle accuracy précision recall F1 score nombre des parametres(Million)

Densenet169 0.853 0.904 0.753 0.822 14

MobileNet 0.837 0.896 0.721 0.799 3.4

Resnet 0.842 0.902 0.725 0.805 24.3

Alexnet 0.787 0.854 0.632 0.727 25

VGG-16 0.846 0.917 0.721 0.808 138

VGG-19 0.844 0.901 0.727 0.807 144

TABLE 3.2 – Les performances des modèles pré-entrainé sur notre base d’apprentissage

Nous constatons que le modèle pré-entraîné Densenet-169 est le plus efficace en termes
de précision, et pour cette raison, nous avons choisi ce modèle comme classificateur d’images
pour notre application. Nous allons parler de la performance de ce modèle en utilisant différents
paramètres tels que l’optimiseur, la perte et les fonctions d’activation.

3.5 Amélioration et optimisation

3.5.1 Data Augmentation

Une stratégie visant à augmenter la quantité de données utilisées pour former un modèle est
appelée augmentation des données.

Mémoire pour l’obtention du diplôme d’ingénierie en génie civil Page 40


DÉVELOPPEMENT DU MODÈLE D’APPRENTISSAGE
POUR LA CLASSIFICATION DES IMAGES RADIOLOGIQUES

Les modèles d’apprentissage profond ont souvent besoin d’une grande quantité de données
d’apprentissage, qui ne sont pas toujours disponibles, pour obtenir des prédictions précises.
Par conséquent, les données existantes sont étendues pour fournir un modèle généralisé plus
précis. Bien qu’elle puisse être utilisée dans de nombreux domaines différents, l’augmentation
des données est fréquemment employée en vision par ordinateur.
Nous diviserons les transformations d’augmentation des données en 4 catégories pour les besoins
de notre projet :

• Transformations agissant sur l’orientation :


Nous choisissons d’effectuer ces modifications, qui ont des possibilités variables d’affecter
l’orientation des images tout en conservant leurs taille.

— verticalflip =True

— horizontalflip=True

— Rotation-range=90

• Transformations agissant sur la taille :


En utilisant "ZoomIn" ou "ZoomOut" ou en faisant un échantillonnage aléatoire (crop) d’un
morceau de l’image originale, nous avons appliqué des modifications sur la taille.
Les transformations que nous avons effectuées sur la taille sont :

— RandomZoom(0.3)

— RandomCrop(height,width)

• Transformations agissant sur la luminosité :


La luminosité de l’image peut être augmentée soit par l’assombrissement, soit par l’éclairage,
soit par les deux. L’idée est d’utiliser des photographies créées dans diverses conditions d’éclairage
pour aider le modèle à se généraliser.
Les modifications que nous avons apportées à la luminosité sont les suivantes :

— RandomBrightness([-0.8,0.8])

— RandomContrast(0.2)

Mémoire pour l’obtention du diplôme d’ingénierie en génie civil Page 41


DÉVELOPPEMENT DU MODÈLE D’APPRENTISSAGE
POUR LA CLASSIFICATION DES IMAGES RADIOLOGIQUES

• Transformations agissant sur la netteté :


Pour renforcer la résistance de nos modèles aux dures réalités qu’ils rencontreront dans la
pratique, nous devons délibérément introduire des défauts dans nos ensembles de données.
Selon les chercheurs, la capacité de la convolution à détecter les bords dans les premières étapes
de l’abstraction des caractéristiques peut être particulièrement obscurcie par le flou, ce qui
entraîne une abstraction erronée des caractéristiques au début du développement d’un réseau.
Pour créer ce que les humains perçoivent comme du flou, une image doit d’abord être brouillée
en faisant la moyenne des pixels proches, ce qui réduit les détails et brouille l’image en général.
L’impact d’un plus grand nombre de données sur la précision du modèle est illustré dans la
figure ci-dessous 3.7.

F IGURE 3.7 – L’effet du l’augmentation de donnée sur la précision d’un CNN

Nous observons une augmentation de la précision de notre modèle grâce à cette stratégie,
ce qui souligne l’importance de l’augmentation des données dans l’apprentissage profond.

3.5.2 k-fold cross validation

La validation croisée est une aide à l’évaluation des modèles d’apprentissage automatique.
Le terme "k-fold" décrit le nombre de fois que l’ensemble de données est divisé.
L’ensemble de données est divisé au point où chaque pli est utilisé dans l’ensemble de test.
Dans notre exemple, nous avons utilisé la validation croisée avec k = 5.
L’approche divise l’ensemble de données en cinq portions égales dans ce cas. Le modèle est
testé en utilisant le premier pli de l’itération initiale. Pour former le modèle, il utilise les autres

Mémoire pour l’obtention du diplôme d’ingénierie en génie civil Page 42


DÉVELOPPEMENT DU MODÈLE D’APPRENTISSAGE
POUR LA CLASSIFICATION DES IMAGES RADIOLOGIQUES

jeux de données. Le deuxième pli permet de tester le jeu de données et d’autres éléments liés à
la formation. La même procédure est répétée jusqu’à ce que les cinq plis aient été utilisés dans
l’ensemble de test.

3.5.3 Les optimiseurs et leurs performances

Les optimiseurs sont des algorithmes ou des techniques qui réduisent la fonction de perte
(fonction d’erreur) ou augmentent l’efficacité de la production.
Les optimiseurs sont des opérations mathématiques qui dépendent des poids et des biais, ou
paramètres apprenables, du modèle.
Les optimiseurs fournissent des indications sur la manière de modifier les poids et le taux
d’apprentissage du réseau neuronal afin de minimiser les pertes.
Nous aborderons les nombreux types d’optimiseurs et la manière dont ils réduisent précisément
la fonction de perte.
• Descente de gradient stochastique
La descente par gradient en est une version. Les paramètres du modèle sont mis à jour un par
un. SGD mettra à jour les paramètres du modèle 10 000 fois si l’ensemble de données pour le
modèle est de 10 000.
Les avantages de la descente de gradient stochastique sont :

— Mises à jour fréquentes des paramètres du modèle

— Nécessite moins de mémoire.

Les inconvénients de la descente de gradient stochastique sont :

— La fréquence peut également entraîner des gradients bruyants qui peuvent faire augmenter
l’erreur au lieu de la diminuer.

— Les mises à jour fréquentes sont coûteuses en calcul.

Nous avons donc décrit le fonctionnement du SGD, et nous allons maintenant observer comment
il réagit à notre modèle et à notre base d’apprentissage en termes de performances.

Mémoire pour l’obtention du diplôme d’ingénierie en génie civil Page 43


DÉVELOPPEMENT DU MODÈLE D’APPRENTISSAGE
POUR LA CLASSIFICATION DES IMAGES RADIOLOGIQUES

nombre des epoches Présicion d’apprentissage précision de validation Perte d’apprentissage perte de validation Loss

5 77 76.38 0.6902 0.6863

10 84.67 82.23 0.4708 0.5499

15 88.02 83.3 0.3756 0.5215

20 89.86 86.75 0.3224 0.3432

25 90.14 88.5 0.2964 0.322

Moyenne 85.94 83.43 0.4311 0.4846

TABLE 3.3 – Performance du modèle en utilisant SGD

Comme nous pouvons le voir dans le tableau ci-dessus 3.3,après 25 epoches le modèle
optimisé par SGD a atteint une précision d’apprentissage de 85.94% et une précision de validation
de 83,43%.De même, pour la perte, la perte de validation et d’apprentissage obtenus sont
respectivement 0.4846% et 0.3411%.
• AdaGrad (descente de gradient adaptative) :
L’intuition derrière AdaGrad est de pouvoir utiliser différents taux d’apprentissage pour chaque
neurone dans chaque couche cachée en fonction des différentes itérations.
L’avantages d’AdaGrad est :

— Le taux d’apprentissage change de manière adaptative avec les itérations.

L’inconvénient d’AdaGrad est :

— Si le réseau de neurones est profond, le taux d’apprentissage devient très petit, ce qui
entraînera un problème de neurones morts.

Après que nous avons présenté le fonctionnement du AdaGrad.Nous allons voir sa réaction en
terme de performance avec notre modèle et notre base d’apprentissage.

nombre des epoches Présicion d’apprentissage précision de validation Perte d’apprentissage perte de validation Loss

5 86.43 83.89 0.4129 0.4649

10 89.74 87.08 0.3139 0.4020

15 91.39 88.86 0.2667 0.3482

20 92.35 89.3 0.2367 0.3529

25 93.31 90.23 0.212 0.3334

Moyenne 90.64 87.87 0.2884 0.3803

TABLE 3.4 – Performance du modèle en utilisant AdaGrad

Mémoire pour l’obtention du diplôme d’ingénierie en génie civil Page 44


DÉVELOPPEMENT DU MODÈLE D’APPRENTISSAGE
POUR LA CLASSIFICATION DES IMAGES RADIOLOGIQUES

Comme nous pouvons le voir dans le tableau ci-dessus 3.4,après 25 epoches le modèle
optimisé par adaGrad a atteint une précision d’apprentissage de 90.64% et une précision de
validation de 87,87%.De même, pour la perte, la perte de validation et d’apprentissage obtenus
sont respectivement 0.3803% et 0.2884%.
• RMS-Prop (propagation racine quadratique moyenne) :
Contrairement à la somme cumulative des gradients au carré, le taux d’apprentissage dans
RMS-Prop est la moyenne exponentielle des gradients. L’avantage de RMS-Prop est qu’il :

— Dans RMS-Prop, le taux d’apprentissage est ajusté automatiquement et il choisit un taux


d’apprentissage différent pour chaque paramètre.

l’inconvénient d’RMS-Prop est :

— Apprentissage lent

Après avoir décrit le fonctionnement du RMS-Prop, nous allons voir comment il se comporte
lorsqu’il est utilisé avec notre modèle et notre base d’apprentissage.

nombre des epoches Présicion d’apprentissage précision de validation Perte d’apprentissage perte de validation Loss

5 87.98 88.03 0.4093 0.4134

10 87.02 85.67 0.4632 0.5476

15 85.07 82.23 0.584 0.9406

20 81.75 75.57 0.7684 0.7393

25 79.64 69.75 0.8068 0.9216

Moyenne 84.29 80.25 0.6063 0.7125

TABLE 3.5 – Performance du modèle en utilisant RMS-Prop

Comme nous pouvons le voir dans le tableau ci-dessus 3.5, après 25 epoches le modèle
optimisé par RMS-Prop a atteint une précision d’apprentissage de 84.29% et une précision de
validation de 80,25%.De même, pour la perte, la perte de validation et d’apprentissage obtenus
sont respectivement 0.7125% et 0.6063%.
• Adam
L’une des méthodes d’optimisation par descente de gradient les plus connues et les plus appréciées
est l’optimiseur d’Adam. Pour chaque paramètre, il s’agit d’une méthode qui détermine des taux
d’apprentissage adaptatifs. Les avantages d’Adam sont les suivants :

Mémoire pour l’obtention du diplôme d’ingénierie en génie civil Page 45


DÉVELOPPEMENT DU MODÈLE D’APPRENTISSAGE
POUR LA CLASSIFICATION DES IMAGES RADIOLOGIQUES

— Facile à mettre en œuvre.

— Calcul efficace.

— Peu de besoins en mémoire.

Après avoir exposé les avantages de l’Adam, nous allons voir comment il se comporte en
utilisant notre modèle et notre base d’apprentissage.

nombre des epoches Présicion d’apprentissage précision de validation Perte d’apprentissage perte de validation Loss

5 91.3 89.15 0.2752 0.3395

10 94.19 92.21 0.1919 0.266

15 95.02 92.33 0.1643 0.2685

20 95.83 92.46 0.1376 0.2709

25 95.98 92.7 0.11 0.2603

Moyenne 94.46 91.77 0.1757 0.28104

TABLE 3.6 – Performance du modèle en utilisant Adam

Comme nous pouvons le voir dans le tableau ci-dessus 3.6, après 25 epoches le modèle
optimisé par Adam a atteint une précision d’apprentissage de 94.46% et une précision de
validation de 91,77%.De même, pour la perte, la perte de validation et d’apprentissage obtenus
sont respectivement 0.281% et 0.1757%.
En général, l’optimiseur Adam est plus performant que les autres algorithmes d’optimisation,
et nous sommes convaincus que Adam a obtenu de meilleurs performances que les autres
optimiseurs. Adam est plus efficace en termes de temps de calcul et nécessite moins de paramètres
de réglage. En conséquence de tout cela, Adam est suggéré comme optimiseur par défaut pour
la majorité des applications.
Nous allons démontrer les performances d’Adam dans chaque classe de notre base d’aprentissage.
• La classe coude
L’optimiseur Adam a été exécuté pendant 50 époques afin de fournir les résultats de performance
présentés ci-dessous pour l’étude de la coude . Les résultats sont résumés dans le tableau
ci-dessous 3.7 en termes de précision et de perte.

Mémoire pour l’obtention du diplôme d’ingénierie en génie civil Page 46


DÉVELOPPEMENT DU MODÈLE D’APPRENTISSAGE
POUR LA CLASSIFICATION DES IMAGES RADIOLOGIQUES

nombre des epoches Perte d’apprentissage Précision d’apprentissage Perte de validation Précision de validation

10 0.2727 89.1 0.3341 90.54

20 0.1949 91.97 0.2167 92.47

30 0.1479 94.19 0.2009 93.55

40 0.1194 95.44 0.3073 92.26

50 0.1149 95.68 0.3262 91.4

TABLE 3.7 – Les performances du modèle sur la classe Coude en utilisant Adam

Comme nous pouvons le voir dans le tableau ci-dessus 3.7, le modèle optimisé par Adam
a atteint une précision d’apprentissage pour l’étude du coude de 95,68 % et une précision de
validation de 91,40 %.
• La classe doigt
En utilisant l’optimiseur Adam et en s’exécutant pendant 50 époques, nous avons obtenu les
résultats de performance indiqués ci-dessous pour l’étude des doigts. Les résultats pour la perte
et les résultats pour la perte et la précision sont mis en évidence dans le tableau 3.8.

nombre des epoches Perte d’apprentissage Précision d’apprentissage Perte de validation Précision de validation

10 0.3787 82.29 0.3916 85.33

20 0.3225 85.35 0.3395 86.25

30 0.299 86.63 0.3074 86.35

40 0.2743 87.88 0.304 86.47

50 0.2625 88.58 0.302 87.01

TABLE 3.8 – Les performances du modèle sur la classe doigt en utilisant Adam

Comme nous pouvons le voir dans le tableau ci-dessus 3.8, la précision d’apprentissage du
modèle amélioré pour l’étude des doigts était de 88,58 %, et sa précision de validation était de
87,01 %.
• La classe main
En utilisant l’optimiseur Adam et en l’exécutant pendant 50 époques, nous avons pu obtenir les
résultats de performance pour l’étude de la main qui sont présentés ci-dessous. Les résultats en
termes de perte et de précision sont présentés dans le tableau 3.9.

Mémoire pour l’obtention du diplôme d’ingénierie en génie civil Page 47


DÉVELOPPEMENT DU MODÈLE D’APPRENTISSAGE
POUR LA CLASSIFICATION DES IMAGES RADIOLOGIQUES

nombre des epoches Perte d’apprentissage Précision d’apprentissage Perte de validation Précision de validation

10 0.2931 87.43 0.3375 84.67

20 0.1979 92 0.2568 87.82

30 0.1507 94.13 0.2113 87.16

40 0.1177 95.52 0.202 86.57

50 0.1168 95.62 0.1866 88.33

TABLE 3.9 – Les performances du modèle sur la classe main en utilisant Adam

Comme nous pouvons le voir dans le tableau ci-dessus 3.9, la précision de formation du
modèle optimisé pour l’étude de la main était de 95,62 %, et sa précision de validation était de
88,33 %.
• La classe humérus
Nous avons utilisé l’optimiseur Adam au cours de l’exécution à 50 époques pour obtenir les
résultats de performance suivants pour l’investigation de l’humérus : Les résultats en termes de
perte et de précision sont mis en évidence dans le tableau 3.10.

nombre des epoches Perte d’apprentissage Précision d’apprentissage Perte de validation Précision de validation

10 0.0721 97.41 0.2513 91.18

20 0.0392 98.72 0.0685 93.61

30 0.0275 99.17 0.2296 91.18

40 0.0224 99.28 0.3026 91.53

50 0.0205 99.4 0.5226 90.83

TABLE 3.10 – Les performances du modèle sur la humérus en utilisant Adam

Comme nous pouvons le voir dans le tableau ci-dessus 3.10, la précision d’apprentissage du
modèle amélioré pour l’étude de l’humérus était de 99,4 %, et sa précision de validation était
de 90,83 %.
• La classe épaule
En utilisant l’optimiseur Adam au moment de l’exécution pour 50 époques, nous avons pu
obtenir les résultats de performance suivants pour l’étude de l’épaule. Les résultats en termes
de perte et de précision sont mis en évidence dans le tableau 3.11.

Mémoire pour l’obtention du diplôme d’ingénierie en génie civil Page 48


DÉVELOPPEMENT DU MODÈLE D’APPRENTISSAGE
POUR LA CLASSIFICATION DES IMAGES RADIOLOGIQUES

nombre des epoches Perte d’apprentissage Précision d’apprentissage Perte de validation Précision de validation

10 0.1266 85.96 0.2778 86.94

20 0.1358 86.03 0.2978 87.61

30 0.1125 91.73 0.2198 87.4

40 0.0720 93.69 0.2306 87.03

50 0.0613 94.22 0.2527 88.96

TABLE 3.11 – Les performances du modèle sur la classe épaule en utilisant Adam

Comme nous pouvons le voir dans le tableau ci-dessus 3.11, la précision de formation du
modèle amélioré pour l’étude de l’épaule était de 94,22 %, et sa précision de validation était de
88,96 %.
• La classe épaule
Nous avons utilisé l’optimiseur Adam pour fonctionner pendant 50 époques et obtenu les résultats
de performance pour l’étude du poignet présentés ci-dessous 3.12. Les résultats sont résumés
dans le tableau 3.11 en termes de perte et de précision.

nombre des epoches Perte d’apprentissage Précision d’apprentissage Perte de validation Précision de validation

10 0.1727 89.10 0.0241 91.54

20 0.1749 92.97 0.0967 93.47

30 0.1279 95.19 0.1009 94.55

40 0.1094 95.94 0.0973 95.26

50 0.1049 96.68 0.0162 96.40

TABLE 3.12 – Les performances du modèle sur la classe poignet en utilisant Adam

Comme nous pouvons le constater à partir des données ci-dessus 3.12, le modèle optimisé
par Adam a obtenu une précision d’apprentissage pour l’étude de l’épaule de 96,68 % et une
précision de validation de 96,4 %.

Conclusion

Toutes les procédures nécessaires à la mise en place de la base d’apprentissage, du modèle


et des méthodes utilisées pour améliorer et optimiser la tâche d’apprentissage sont couvertes en

Mémoire pour l’obtention du diplôme d’ingénierie en génie civil Page 49


DÉVELOPPEMENT DU MODÈLE D’APPRENTISSAGE
POUR LA CLASSIFICATION DES IMAGES RADIOLOGIQUES

détail dans ce chapitre.


Cependant, l’execution de notre solution de classification sur la machine locale est limitée par
la puissance de sa carte graphique.
Ce facteur laisse présager une activité d’apprentissage qui s’exécute assez lentement.
Par conséquent, nous avons besoin de ressources plus durables comme le cloud computing.
Nous montrerons comment nous avons conteneurisé notre modèle et l’avons migré vers le cloud
dans le chapitre suivant, ainsi que comment nous avons déplacé notre base d’apprentissage vers
Amazon Web Services.

Mémoire pour l’obtention du diplôme d’ingénierie en génie civil Page 50


Chapitre

4
Déploiement de la solution de classification
dans le cloud AWS

Sommaire
4.1 Étude comparative entre les fournisseurs du cloud . . . . . . 52
4.2 Transfert de la base d’apprentissage vers AWS S3 . . . . . . . 53
4.3 Conteneurisation . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
4.3.1 L’apport de GPU . . . . . . . . . . . . . . . . . . . . . . . . . . 54
4.3.2 La configuration de l’infrastructure d’un conteneur . . . . . . . 55
4.4 Déploiement de l’image Docker dans AWS ECR . . . . . . . . 60

Mémoire pour l’obtention du diplôme d’ingénierie en génie civil Page 51


DÉPLOIEMENT DE LA SOLUTION DE CLASSIFICATION DANS LE CLOUD
AWS

Introduction

Afin de résoudre le problème du temps d’exécution, nous avons déployé notre solution de
classification sur Amazon Web Services en la conteneurisant. Cette conteneurisation permet de
fournir à notre modèle toutes les ressources nécessaires pour l’exécution et elle est assuré par
Docker, un outil très populaire pour la conteneurisation.
Dans ce chapitre, nous allons présenter notre image Docker qui représente notre solution de
classification. Cette image est depoyé sur AWS ECR.Finalement, nous avons migré notre base
d’apprentissage vers AWS S3.

4.1 Étude comparative entre les fournisseurs du cloud

Après avoir donné une définition générale du cloud, nous allons maintenant aborder les
plates-formes de services de cloud.
Actuellement, AWS, Microsoft Azure et Google Cloud Platform sont les leaders du secteur pour
l’infrastructure en tant que service (IaaS) et la plate-forme en tant que service (PaaS).
Comme la figure 4.1 montre, avec 33 % du marché, Amazon occupe sans conteste la première
place depuis trois ans, même si la taille du marché a pratiquement triplé.

F IGURE 4.1 – Etude comparative entre aws , azure et gcp

Mémoire pour l’obtention du diplôme d’ingénierie en génie civil Page 52


DÉPLOIEMENT DE LA SOLUTION DE CLASSIFICATION DANS LE CLOUD
AWS

Chacun des trois géants fournisseurs du cloud présente en effet des avantages et des inconvénients.Nous
devons identifier les points forts et les points à améliorer des fournisseurs dans le tableau
ci-dessous 4.1 afin de parvenir à une conclusion équitable.

Fournisseur Forces Faiblesses

• Position dominante sur le marché avec une longueur d’avance de 5 ans


• Riche en fonctionnalités • Difficile à utiliser sans formation
Amazon (AWS)
• apprentissage intensif • La gestion des coûts
• Portée mondiale

• Intégration avec les outils et logiciels Microsoft

Microsoft Azure • Cloud hybride • Documentation inefficace

• Prise en charge de l’open source

• Vise à être portable

• Réductions et contrats flexibles

Google Cloud (GCP) • Expertise DevOps • Moins de fonctionnalités et de services

• Prise en charge de l’open source

• Portée en constante augmentation dans le monde

TABLE 4.1 – Les forces et les faiblesses de aws , azure et gcp

En outre, nous devons mettre en évidence que les plateformes des services cloud regroupent
plus de 100 services répartis en diverses catégories telles que le stockage cloud, la puissance
de calcul, l’analyse des données, l’intelligence artificielle ou même le développement des jeux
vidéo.

4.2 Transfert de la base d’apprentissage vers AWS S3

Comme nous l’avons vu précédemment, afin d’achever le travail d’apprentissage sur le


cloud, nous devons déplacer notre base d’apprentissage locale vers le fournisseur de cloud AWS.
Le transfert de la base d’apprentissage de la classe de poignet vers le service AWS S3 est illustré
dans la figure ci-dessous 4.2.

Mémoire pour l’obtention du diplôme d’ingénierie en génie civil Page 53


DÉPLOIEMENT DE LA SOLUTION DE CLASSIFICATION DANS LE CLOUD
AWS

F IGURE 4.2 – Le transfert de la classe poignet vers aws S3

4.3 Conteneurisation

La conteneurisation est une méthode qui permet de virtualiser, dans un conteneur, les ressources
matérielles systèmes de fichiers, réseau, processeur, mémoire vive,...nécessaires à l’exécution
d’une application. Dans cet espace sont aussi stockées toutes les dépendances des applications :
fichiers, bibliothèques, etc. Pour déplacer les applications virtuelles d’un système d’exploitation
à un autre, le conteneur se connecte à leur noyau, ce qui permet aux différents composants
matériels et logiciels de communiquer entre eux. Alors que la conteneurisation est cruciale pour
notre travail, le gpu sera crucial étant donné que le but de notre projet est de créer un modèle
d’apprentissage profond.

4.3.1 L’apport de GPU

Nous comparerons les avantages et les inconvénients d’un processeur et d’un processeur
graphique, ainsi que leur utilisation dans l’apprentissage profond, les réseaux neuronaux et
l’apprentissage automatique.
• CPU :
Une unité centrale de traitement, parfois appelée CPU, est un processeur qui gère les commandes
fondamentales d’un ordinateur, notamment les opérations arithmétiques, logiques et d’entrée/sortie.

Mémoire pour l’obtention du diplôme d’ingénierie en génie civil Page 54


DÉPLOIEMENT DE LA SOLUTION DE CLASSIFICATION DANS LE CLOUD
AWS

Il s’agit généralement d’une puce compacte mais puissante qui est intégrée à la carte mère de
l’ordinateur.Étant donné que l’unité centrale lit et exécute la majorité des instructions matérielles
et logicielles de l’ordinateur, on l’appelle le "cerveau de la machine". Un ou plusieurs cœurs,
une mémoire cache, une unité de gestion de la mémoire (MMU), l’horloge de l’unité centrale
et l’unité de contrôle sont tous des éléments communs d’une unité centrale. Ensemble, ils
permettent à l’ordinateur d’exécuter de nombreuses applications simultanément.
• GPU :
Un GPU, ou unité de traitement graphique, est un type de processeur informatique utilisé pour
créer des visuels et des images complexes en haute résolution. Les GPU d’aujourd’hui sont
utilisés dans des applications qui vont bien au-delà du traitement graphique, comme l’analyse
des données et l’apprentissage automatique, bien que leur conception initiale ait été destinée à
rendre des images, des films et des animations 2D et 3D sur un ordinateur. Ce type de calcul
est souvent appelé "GPGPU" ou "General Purpose GPU". Les GPU ont des performances
similaires à celles des CPU et possèdent des composants similaires (par exemple, des cœurs,
de la mémoire, etc.). Ils peuvent être discrets ou intégrés au CPU (c’est-à-dire séparés du CPU
avec leur propre RAM). En divisant les charges de travail en sous-tâches plus petites et en les
répartissant entre les nombreux cœurs de processeur du GPU, les GPU utilisent le traitement
parallèle.
En effet,Les GPU sont plus efficaces que les CPU lorsqu’il s’agit d’apprentissage profond, dont
les opérations sont simplement des multiplications de matrices.Pour cette raison, l’utilisation
des GPU a augmenté récemment. En effet, en raison de leur architecture massivement parallèle,
les GPU sont considérés comme le cœur de l’apprentissage profond.

4.3.2 La configuration de l’infrastructure d’un conteneur

Les GPU ne peuvent toutefois pas exécuter n’importe quelle application. En fait, ils emploient
un langage particulier s’appelle CUDA de NVIDIA pour tirer parti de leur conception.

Mémoire pour l’obtention du diplôme d’ingénierie en génie civil Page 55


DÉPLOIEMENT DE LA SOLUTION DE CLASSIFICATION DANS LE CLOUD
AWS

4.3.2.1 La technologie NVIDIA CUDA

L’architecture Compute Unified Device, également connue sous le nom de CUDA, est l’un
des cadres les plus appréciés pour la programmation des GPU. Avec l’aide de ce cadre, nous
pouvons utiliser efficacement la capacité de calcul parallèle du GPU.
Comme le runtime CUDA possède ses propres pilotes, il peut communiquer avec le GPU. En
outre, CUDA est un langage de programmation créé spécialement pour fournir des instructions
au GPU afin qu’il exécute une tâche.En effet,Le code d’application est converti par CUDA en
un ensemble d’instructions que les GPU peuvent utiliser.
Pour s’interfacer efficacement avec un GPU, un SDK CUDA et des bibliothèques comme
cuBLAS (basic linear algebra subroutines) et cuDNN (deep neural networks) ont été créés.
• cuDNN :
Comme elle est optimisée pour les GPU, la bibliothèque de réseaux de neurones cuDNN peut
utiliser pleinement les cartes graphiques Nvidia.
La convolution, la propagation avant et arrière, les fonctions d’activation et le pooling sont tous
implémentés dans cette bibliothèque.
il est impossible de former des réseaux neuronaux sur des GPU sans ce package. Par conséquent,
il s’agit d’un outil indispensable.
Il existe des versions CUDA pour C, C++ et Fortran. Pour d’autres langages comme Java,
Python et R, des wrappers sont disponibles. Par exemple, ces technologies constituent la base
des paquets d’apprentissage profond comme TensorFlow et Keras.

4.3.2.2 Nvidia-docker

Nvidia-docker permet aux développeurs qui souhaitent conteneuriser leurs applications et


les déployer sur des serveurs équipés de GPU NVIDIA. L’objectif est de créer une architecture
qui permet de créer et d’intégrer des modèles d’apprentissage profond dans des services accessibles
via une API. Ainsi, en mettant les ressources GPU à la disposition de nombreuses instances
d’applications, leur taux d’utilisation est optimisé.
Nous bénéficions également des avantages des environnements conteneurisés :

Mémoire pour l’obtention du diplôme d’ingénierie en génie civil Page 56


DÉPLOIEMENT DE LA SOLUTION DE CLASSIFICATION DANS LE CLOUD
AWS

— Isolation des instances de chaque modèle d’IA.

— Colocation de nombreux modèles, chacun ayant des dépendances uniques.

— Colocation d’un même modèle sur plusieurs itérations

— Déploiement cohérent des modèles.

— Le suivi des performances des modèles.

L’installation de CUDA et l’octroi de droits d’accès sont nécessaires avant d’utiliser un GPU
en natif dans un conteneur. Le programme nvidia-docker a été créé dans cet esprit, permettant
aux GPU NVIDIA d’être exposés dans des conteneurs de manière sécurisée et séparée. Les
éléments suivants sont nécessaires pour utiliser nvidia-docker :
• exécuteur des conteneurs :
Le NVIDIA Container Toolkit a besoin d’un runtime de conteneur pour fonctionner.Dans notre
projet nous avons utilisé le Docker comme un exécuteur des conteneurs.
• Les pilotes NVIDIA :
Pour utiliser un périphérique GPU, des pilotes de NVIDIA sont nécessaires
• Les outils de NVIDIA-docker :
Après avoir installé les pilotes Nvidia et un conteneur d’exécution,nous disposons actuellement
d’un système qui permet des réglages isolés avec accès aux ressources GPU. NVIDIA a créé un
certain nombre d’outils pour activer l’accélération GPU dans les applications :

— CUDA Toolkit : une collection d’outils pour créer des applications et des programmes
qui peuvent tourner simultanément sur les GPU, la RAM et les CPU.

— NVIDIA cuDNN : une bibliothèque de primitives permettant d’accélérer les réseaux


d’apprentissage profond et d’améliorer les performances des GPU pour des frameworks
populaires comme Tensorflow et Keras.

— CuBLAS de NVIDIA : une collection de fonctions d’algèbre linéaire accélérées par le


GPU.

Les tâches impliquant l’IA et l’algèbre linéaire sont accélérées par l’intégration de ces techniques
dans le code de l’application. L’application peut maintenant soumettre des données et des
actions à traiter sur le GPU car les GPU sont maintenant visibles. Le choix le plus basique

Mémoire pour l’obtention du diplôme d’ingénierie en génie civil Page 57


DÉPLOIEMENT DE LA SOLUTION DE CLASSIFICATION DANS LE CLOUD
AWS

est le CUDA Toolkit. Elle offre le plus de flexibilité (mémoire et instructions) pour développer
des applications uniques. Les bibliothèques offrent une abstraction de la fonctionnalité CUDA.
Elles nous permettent de nous concentrer sur le développement d’applications plutôt que sur
l’implémentation de CUDA.
L’architecture qui utilise le service Docker de nvidia est prête à être utilisée une fois que chacun
de ces composants a été développé. La figure ci-dessous 4.3 résume toute infrastructure de notre
conteneur.

F IGURE 4.3 – Boîte à outils pour conteneurs Nvidia

4.3.2.3 Autres installations

Après avoir créé une architecture qui prend en charge l’utilisation des GPU, nous sommes
prêts à installer TensorFlow , Python et d’autres dépendances.
• L’installation de tensorflow :
Les pilotes GPU pour Nvidia sont utilisés par Tensorflow. L’étape la plus importante consiste
à choisir la version et le tag CUDA appropriés, cuDNN pour l’image Docker de Nvidia, et
TensorFlow par rapport à celle-ci. de sorte que le matériel GPU sous-jacent puisse être utilisé
par le système ML. Étant donné que,la compatibilité des versions entre CUDA, cuDNN et
tensorflow est l’un des défis auxquels nous avons été confrontés. En effet, Tensorflow doit être

Mémoire pour l’obtention du diplôme d’ingénierie en génie civil Page 58


DÉPLOIEMENT DE LA SOLUTION DE CLASSIFICATION DANS LE CLOUD
AWS

compatible avec ces versions de CUDA et cuDNN en plus d’installer les versions exactement
identiques de ces bibliothèques dans l’image Docker. Par exemple, CUDA et cuDNN sont
incompatibles avec la version la plus récente de Tensorflow. Dans notre cas, il s’agissait de
Tensorflow=1.15, qui se trouvait dans un fichier requirements.txt, un type de fichier qui contient
généralement des informations sur toutes les bibliothèques, les modules et les paquets utilisés
pendant le développement d’un projet. Il conserve également tous les fichiers et paquets nécessaires
à l’exécution ou à la dépendance de ce projet.
La figure ci-dessous 4.4 présente les bibliothèques que nous avons utilisées et leurs versions
dans le fichier requirements.txt .

F IGURE 4.4 – Le fichier requirements

• L’installation de python :
Nous devons installer Python dans notre Dockerfile car nous avons créé notre modèle à l’aide
du langage de programmation Python. Les étapes requises pour installer Python dans notre
Dockerfile sont présentées dans la figure ci-dessous 4.5.

F IGURE 4.5 – L’installation du python

Mémoire pour l’obtention du diplôme d’ingénierie en génie civil Page 59


DÉPLOIEMENT DE LA SOLUTION DE CLASSIFICATION DANS LE CLOUD
AWS

• configuration du répertoire pour le service Sagemaker :


Aws Sagemaker a réservé quelques répertoires à son usage, comme le stockage des données
d’entrée ou la sauvegarde des fichiers de sortie une fois l’opération d’apprentissage terminée.
Les données de notre algorithme d’apprentissage doivent spécifiquement se trouver dans le
dossier /opt/ml/input, et les artefacts du modèle doivent être conservés dans le dossier /opt/ml/model.
SageMaker copiera tout le contenu du dossier modèle dans le seau S3 de sortie et toutes les
données d’apprentissage que nous avons téléchargées dans le dossier S3 dans le dossier input.
Les chemins d’accès à chaque dossier réservé par Sagemaker sont indiqués dans la figure
ci-dessous 4.6.

F IGURE 4.6 – Les répertoires

Nous avons mis en place une architecture qui permet l’utilisation ségréguée des ressources
GPU par notre application.En conclusion, les briques suivantes constituent la structure :

— Les systèmes d’exploitation : Linux

— Docker : utilisation de conteneurs Linux pour isoler l’environnement.

— Pilote NVIDIA : mise en place du pilote pour le matériel concerné

— NVIDIA container runtime

— Tensorflow/Keras cuDNN scuBLAS

4.4 Déploiement de l’image Docker dans AWS ECR

Nous avons construit l’image d’apprentissage et la télécharger sur Elastic Container Registry,
un registre de conteneurs AWS, avant de pouvoir utiliser notre Dockerfile pour créer les conteneurs

Mémoire pour l’obtention du diplôme d’ingénierie en génie civil Page 60


DÉPLOIEMENT DE LA SOLUTION DE CLASSIFICATION DANS LE CLOUD
AWS

d’apprentissage. Il s’agit du registre personnel d’AWS pour les conteneurs Docker. Il nous
permet de stocker et de distribuer les images Docker qui incluent nos applications.

Ces actions doivent être effectuées afin de pousser une image Docker vers ECR :
• Nous devons d’abord obtenir un jeton d’authentification du client Docker et l’utiliser pour
établir une connexion. Pour ce faire, nous avons exécuté la commande indiqué dans la figure
ci-dessous 4.7 et vu le message "Connexion réussie".

F IGURE 4.7 – Authentification à partir du client docker

• dans la deuxième phase nous avons stocké les images d’apprentissage dans un référentiel
ECR que nous appelons "sagemaker-xray" comme il est indiqué dans la figure ci-dessous 4.8

F IGURE 4.8 – Création d’un référentiel

• L’image Docker doit être créée et poussée vers le nouveau référentiel en tant que dernière
et troisième étape. la figure ci-dessous 4.9 présente la commande qui permet de créer notre
image.

Mémoire pour l’obtention du diplôme d’ingénierie en génie civil Page 61


DÉPLOIEMENT DE LA SOLUTION DE CLASSIFICATION DANS LE CLOUD
AWS

F IGURE 4.9 – La création d’une image docker

La commande et la procédure pour envoyer notre image à AWS ECR sont présentées dans
la figure ci-dessous 4.10.

F IGURE 4.10 – Faire un push vers l’ECR

Mémoire pour l’obtention du diplôme d’ingénierie en génie civil Page 62


DÉPLOIEMENT DE LA SOLUTION DE CLASSIFICATION DANS LE CLOUD
AWS

Pour confirmer que l’image a été envoyée, nous avons accédez au service Elastic Container
Registry dans le tableau de bord AWS comme il est indiqué dans la figure ci-dessous 4.11.

F IGURE 4.11 – Suivi de l’image docker avec la console AWS

Mémoire pour l’obtention du diplôme d’ingénierie en génie civil Page 63


DÉPLOIEMENT DE LA SOLUTION DE CLASSIFICATION DANS LE CLOUD
AWS

Conclusion

Les étapes nécessaires pour créer une image docker et la pousser sur AWS ECR sont décrites
en détail dans ce chapitre.
Nous détaillerons la manière de créer une tâche d’apprentissage sur AWS Sagemaker dans le
chapitre suivant.

Mémoire pour l’obtention du diplôme d’ingénierie en génie civil Page 64


Chapitre

5
Exécution de la solution en utilisant
le conteneur SageMAker
de amazon et generation de l’API

Sommaire
5.1 Etude comparative entre les fournisseurs MLaaS . . . . . . . 66
5.2 Utilisation des conteneurs Docker avec AWS SageMaker . . . 71
5.2.1 Création,configuration et lancement d’une tâche d’apprentissage
SageMaker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
5.2.2 Structure du conteneur Amazon SageMaker . . . . . . . . . . . 76
5.2.3 Déploiement d’application avec le service Amazon Sagemaker . 77
5.3 Création d’un rôle dans AWS IAM . . . . . . . . . . . . . . . . 80
5.4 Création de la fonction Lambda . . . . . . . . . . . . . . . . . 83
5.5 Création d’un API Gateway . . . . . . . . . . . . . . . . . . . 85

Mémoire pour l’obtention du diplôme d’ingénierie en génie civil Page 65


EXÉCUTION DE LA SOLUTION EN UTILISANT LE CONTENEUR SAGEMAKER
DE AMAZON ET GENERATION DE L’API

Introduction

Dnasce chapitre, nous comparons les fournisseurs de machine learning as a service. Nous
aborderons ensuite le processus de développement et de configuration de la tâche d’apprentissage
ainsi que le déploiement de l’application sur AWS Sagemaker. Enfin, nous conclurons par la
construction d’une passerelle API.

5.1 Etude comparative entre les fournisseurs MLaaS

Nous avons discuté de la variété des services offerts par les fournisseurs de cloud computing
dans les sections précédentes. Dans ce cas, nous nous concentrerons sur l’apprentissage en tant
que service (MLaaS), qui est un terme générique pour une variété de plates-formes basées sur le
cloud qui répondent à la majorité des problèmes d’infrastructure, y compris le prétraitement des
données, l’apprentissage du modèle et l’évaluation du modèle avec des prédictions supplémentaires.
Les quatre principaux services cloud MLaaS qui permettent un apprentissage et un déploiement
rapides des modèles sont Amazon Machine Learning, Azure Machine Learning, Google AI
Platform et IBM Watson Machine Learning.
Le projet doit être mené à bien dans le respect du calendrier, du budget et des normes requises.
Un projet a un objectif clair et doit être achevé dans les limites des coûts et des délais prévus au
budget.
Avant de comparer les API d’apprentissage automatique fournies par différents fournisseurs,
nous allons d’abord donner un aperçu des principales plateformes d’apprentissage automatique
en tant que service d’Amazon, Google, Microsoft et IBM comme il est présenté dans la figure
ci-dessous 5.1.

Mémoire pour l’obtention du diplôme d’ingénierie en génie civil Page 66


EXÉCUTION DE LA SOLUTION EN UTILISANT LE CONTENEUR SAGEMAKER
DE AMAZON ET GENERATION DE L’API

F IGURE 5.1 – Comparaison des services d’apprentissage automatique dans le cloud

AWS Sagemaker
La plateforme SageMaker d’Amazon Web Services facilite le développement, le test et le
déploiement de modèles d’apprentissage automatique. Les avantages d’Amazon SageMaker
sont :

1. Logiciel d’apprentissage automatique flexible :


Grâce à la flexibilité exceptionnelle d’AWS SageMaker, les modèles d’apprentissage
automatique peuvent être créés, appris et déployés dans Amazon Web Services à l’aide
d’un large éventail de langages de programmation et de cadres logiciels. Il offre trois
approches de modélisation uniques.

(a) Algorithmes intégrés :


Plus de quinze algorithmes intégrés distincts sont disponibles dans AWS SageMaker
et peuvent être rapidement accessibles et utilisés pour des applications d’apprentissage
automatique selon les besoins.

Mémoire pour l’obtention du diplôme d’ingénierie en génie civil Page 67


EXÉCUTION DE LA SOLUTION EN UTILISANT LE CONTENEUR SAGEMAKER
DE AMAZON ET GENERATION DE L’API

Il existe plusieurs algorithmes intégrés, notamment XGBoost pour la classification


discrète et l’analyse quantitative, les machines à factoriser pour les recommandations
de caractéristiques, K-Means pour le clustering basé sur les attributs, les algorithmes
de classification d’images, et bien d’autres encore.
(b) Algorithme personnalisé :
Pour une utilisation avec différents langages de programmation, des cadres logiciels
comme TensorFlow, PyTorch, Apache Spark et Apache MXNet sont disponibles.
(c) la création d’algorithmes par l’utilisateur :
AWS SageMaker permet également d’utiliser des algorithmes créés par l’utilisateur
dans les cas où les algorithmes ne sont pas accessibles via les bibliothèques intégrées
ou les algorithmes sur mesure, quel que soit le langage de programmation.
2. Exploration et traitement des données
L’exploration et la documentation des données sont rendues incroyablement simples par
la disponibilité de Jupyter Notebook dans AWS SageMaker pour le traitement des données,
l’exploration des données et la création, l’apprentissage, la validation, le test et le déploiement
de modèles d’apprentissage automatique.
AWS propose également des services comme AWS Data Pipeline et AWS Glue pour le
traitement des données et les pipelines de transformation.
3. Prise en charge concomitante de la modélisation et du déploiement
De nombreuses fonctionnalités et outils automatisés sont disponibles avec AWS SageMaker
et sont destinés à faciliter le processus de modélisation et de déploiement.
4. Réglage automatique du modèle
Les paramètres des hyperparamètres dans AWS SageMaker vous permettent de sélectionner
le meilleur modèle pour les méthodes préétablies et sur mesure. Afin d’évaluer l’efficacité
du modèle, il inclut également des mesures d’évaluation pour les algorithmes intégrés.
5. Surveillance des modèles
Grâce à l’utilisation des services d’AWS SageMaker, il est possible de suivre les différents
modèles déployés.

Plate-forme Google Cloud (GCP)


Le moteur ML de Google Cloud Platform (GCP) permet de créer, d’apprendre et de déployer des

Mémoire pour l’obtention du diplôme d’ingénierie en génie civil Page 68


EXÉCUTION DE LA SOLUTION EN UTILISANT LE CONTENEUR SAGEMAKER
DE AMAZON ET GENERATION DE L’API

modèles d’apprentissage automatique. Nous apprendrons comment AWS SageMaker et GCP


ML Engine diffèrent l’un de l’autre et l’un de l’autre.

1. Logiciel d’apprentissage automatique :


Si l’on regarde les cadres logiciels pris en charge, GCP ML Engine offre moins de
flexibilité pour la construction, l’apprentissage et le déploiement de modèles d’apprentissage
automatique que SageMaker d’Amazon.
Nous utilisons deux cadres de modélisation compatibles avec le GCP ML Engine à titre
d’exemple.
Tensorflow Tensorflow, une invention interne de Google créée à l’origine par l’équipe
Google Brain, est une plateforme d’apprentissage automatique open source qui permet
la création, l’apprentissage et le déploiement de modèles d’apprentissage automatique et
d’apprentissage profond.
En plus de TensorFlow, Keras, une API de haut niveau basée sur Python, permet un
développement rapide et est incroyablement simple à utiliser. Le moteur ML de GCP
prend largement en charge Tensorflow et Keras.
Il est probable que Google utilise la plateforme en nuage pour prendre en charge les
cadres d’apprentissage automatique et d’apprentissage profond qu’il a créés.

Scikit-Learn Scikit-learn est un autre cadre d’apprentissage automatique basé sur Python
qui a été créé dans le cadre du projet Google Summer of Code. Il est entièrement open
source.
Simplifier la création, l’apprentissage et le déploiement de modèles d’apprentissage automatique
en combinant les bibliothèques Python Scikit-learn et XGBoost.
Rétrospectivement, la modélisation est réalisée avec XGBoost et le traitement des données
est réalisé avec Scikit-learn.
2. Prise en charge concomitante de la modélisation et du déploiement
GCP ML Engine offre de nombreux outils et capacités automatisés pour faciliter la modélisation
et le déploiement, à l’instar du large éventail de services proposés par AWS SageMaker.
3. Surveillance des modèles
Le suivi des modèles est pris en charge par le moteur ML de Google. Le moteur ML offre

Mémoire pour l’obtention du diplôme d’ingénierie en génie civil Page 69


EXÉCUTION DE LA SOLUTION EN UTILISANT LE CONTENEUR SAGEMAKER
DE AMAZON ET GENERATION DE L’API

également le contrôle de la version d’exécution, la gestion des modèles et des tâches, et


plus encore.
4. Réglage automatique du modèle
Le moteur ML permet un raffinement simple de la meilleure version des modèles lorsque
le paramètre des hyperparamètres est activé.
5. Exploration et traitement des données
Les notebooks Jupyter ne sont pas pris en charge par le moteur ML de Google, contrairement
à Amazon SageMaker. Pour accéder aux carnets Jupyter sur la plateforme Google Cloud,
vous devez utiliser Datalab.
L’extraction, le traitement et la transformation des données relèvent de plusieurs divisions
de services des GCP.

DataLab permet l’extraction et le traitement des données, DataPrep effectue l’extraction


des données et nettoie les données non traitées en vue de leur traitement et de leur analyse,
et les services DataFlow déploient des pipelines de traitement des données par lots et en
continu, respectivement.
6. Méthodes de prédiction
On peut généralement présumer que deux fournisseurs distincts ne sont pas tenus de
proposer leurs services de la même manière.
Cela est évident dans la différence de coûts de prédiction entre le moteur ML de GCP et
AWS SageMaker.
Dans AWS SageMaker, les ressources sont laissées en fonctionnement, ce qui réduit
le délai de livraison des prédictions à un coût raisonnable, car l’exécution des services
inactifs est facturée même si aucune demande de prédiction n’est faite pendant leur
utilisation.
C’est ce qu’il en coûte pour obtenir une latence plus faible. Cependant, le moteur ML
permet de mettre en pause l’exécution des ressources, ce qui réduit les coûts liés aux
requêtes sporadiques et répétitives.
Comme les ressources sont dans l’état hors ligne jusqu’à ce que les requêtes de prédiction
soient reçues, cela a l’inconvénient d’augmenter la latence associée aux prédictions.

Mémoire pour l’obtention du diplôme d’ingénierie en génie civil Page 70


EXÉCUTION DE LA SOLUTION EN UTILISANT LE CONTENEUR SAGEMAKER
DE AMAZON ET GENERATION DE L’API

Microsoft Azure
Azure AI est la réponse de Microsoft à Amazon et Google, tout comme SageMaker d’Amazon
et ML Engine de Google.
Azure AI offre également une variété de plateformes gratuites et tout compris pour construire,
tester et déployer des modèles d’apprentissage automatique, ainsi qu’un large éventail de capacités
supplémentaires qui prennent en charge un certain nombre de cadres d’IA différents comme
PyTorch, TensorFlow, Sci-kit Learn, Chainer, Caffe2, MxNet et Suite. En outre, une variété
d’autres capacités et fonctionnalités inégalées sont offertes par Azure Machine Learning Studio
et Azure AI.

À la suite de cette analyse, nous avons opté pour AWS, qui propose des outils créés spécialement
pour les MLOps (machine learning operations), qui aident à automatiser et à normaliser les
procédures tout au long du cycle de vie des MLL. Pour stimuler la productivité des data
scientists et des ingénieurs ML tout en maintenant les performances des modèles en production,
nous pouvons rapidement former, tester, dépanner, déployer et gouverner des modèles ML à
grande échelle grâce aux outils MLOps de SageMaker.

5.2 Utilisation des conteneurs Docker avec AWS SageMaker

AWS SageMaker utilise largement les conteneurs Docker pour permettre aux clients de
former et de déployer des algorithmes.
Les développeurs et les scientifiques des données peuvent regrouper les logiciels en unités
standardisées à l’aide de conteneurs, qui s’exécutent de manière cohérente sur Docker.
La conteneurisation isole le code de son environnement, regroupe l’environnement d’exécution,
les outils système, les bibliothèques système et les paramètres en un seul endroit, et garantit une
exécution cohérente quel que soit l’endroit où il est exécuté.

Mémoire pour l’obtention du diplôme d’ingénierie en génie civil Page 71


EXÉCUTION DE LA SOLUTION EN UTILISANT LE CONTENEUR SAGEMAKER
DE AMAZON ET GENERATION DE L’API

5.2.1 Création,configuration et lancement d’une tâche d’apprentissage SageMaker

Nous devons d’abord construire un rôle qui accordera à AWS SageMaker l’accès à toutes
les ressources requises afin d’effectuer des tâches d’apprentissage sur AWS SageMaker. Pour
garder les choses simples, nous avons créé un rôle pour aws sagemaker " AmazonSagemakerFullAccess
". Ce rôle accorde à AWS SageMaker l’accès à tous les buckets S3, images ECR et autres
ressources, tant que leurs noms contiennent le mot "sagemaker". La figure ci-dessous 5.2 présente
le rôle créé pour aws sagemaker.

F IGURE 5.2 – Création d’un rôle pour la tâche d’apprentissage

Pour que nous puissions accéder au service S3, des permissions supplémentaires doivent
être créées.
la figure ci-dessous 5.3 présente les autorisations d’accès au service S3 en tenant compte des
autorisations supplémentaires.

Mémoire pour l’obtention du diplôme d’ingénierie en génie civil Page 72


EXÉCUTION DE LA SOLUTION EN UTILISANT LE CONTENEUR SAGEMAKER
DE AMAZON ET GENERATION DE L’API

F IGURE 5.3 – Autorisations supplémentaires d’accès pour S3

Comme indiqué précédemment, nous avons accordé au service Sagemaker l’accès à S3, qui
abrite notre base d’apprentissage.
Ensuite, nous avons conçu une tâche d’apprentissage afin d’apprendre notre modèle à l’aide de
aws sagemaker.
Un fichier appelé training-job-config.json a donc été créé il présenté par la figure ci-dessous 5.4.

Mémoire pour l’obtention du diplôme d’ingénierie en génie civil Page 73


EXÉCUTION DE LA SOLUTION EN UTILISANT LE CONTENEUR SAGEMAKER
DE AMAZON ET GENERATION DE L’API

F IGURE 5.4 – Configuration de tâche d’apprentissage

les significations des champs que nous avons remplis sont :

— TrainingJobName : un nom pour notre tâche d’apprentissage qui occupe le rôle d’identifiant.

— AlgorithmSpecification/TrainingImage : l’URL de notre image téléchargée .

— RoleArn : l’ARN du rôle créé précédemment .

— InputDataConfig/ChannelName : le nom de la chaîne. Chaque canal d’entrée sera monté


dans un dossier séparé dans /opt/ml/input

— InputDataConfig/ContentType : le type MIME de vos données.

— InputDataConfig/DataSource/S3DataSource/S3Uri : l’URI de la ressource S3 avec les


données .

— OutputDataConfig/S3OutputPath : le chemin S3 où nous voulons stocker les artefacts de


modèle que nous voulons utiliser pour l’apprentissage.

— ResourceConfig/InstanceType : le type d’instance que nous voulons utiliser pour l’apprentissage.

— ResourceConfig/InstanceCount : le nombre d’instances d’apprentissage.

Mémoire pour l’obtention du diplôme d’ingénierie en génie civil Page 74


EXÉCUTION DE LA SOLUTION EN UTILISANT LE CONTENEUR SAGEMAKER
DE AMAZON ET GENERATION DE L’API

— ResourceConfig/VolumeSizeInGB : la quantité de stockage que nous voulons avoir à


disposition.

— StoppingCondition : Nous pouvons spécifier des critères d’arrêt tels que le temps d’exécution
maximum en secondes. Amazon SageMaker arrête automatiquement les instances de
création après un jour.

Nous devons utiliser AWS Sagemaker pour exécuter la tâche d’apprentissage après l’avoir
générée et configurée.
La figure ci-dessous 5.5 montre que depuis la console AWS, nous pouvons maintenant garder
un œil sur la progression de la tâche d’apprentissage.

F IGURE 5.5 – Tableau de bord des tâches d’apprentissage Amazon SageMaker

Le tableau de bord de nos tâches d’apprentissage Amazon SageMaker montre les tâches qui
ont été terminées avec succès et celles qui ont échoué en raison de problèmes de codage.

Mémoire pour l’obtention du diplôme d’ingénierie en génie civil Page 75


EXÉCUTION DE LA SOLUTION EN UTILISANT LE CONTENEUR SAGEMAKER
DE AMAZON ET GENERATION DE L’API

5.2.2 Structure du conteneur Amazon SageMaker

Un schéma qui démontre comment former un modèle à l’aide d’AWS Sagemaker est fourni
par la figure ci-dessous 5.6.

F IGURE 5.6 – Une représentation schématique d’un conteneur Amazon Sagemaker

en effet, AWS Sagemaker est exécuté sur une instance de calcul pour l’apprentissage automatique.
La figure ci-dessus 5.6 présente une instance de calcul pour l’apprentissage, deux buckets
S3 et un ECR pour déployer l’image docker. Il existe quelques exigences pour que la tâche
d’apprentissage fonctionne :

— l’URL de la s3 bucket ou la base d’apprentissage est stocké.

— les ressources coté instance de calcul.

— l’URL de la s3 bucket ou le résultat du modèle sera stocké.

— le chemin du aws ECR ou le code d’apprentissage est sauvegardé.

L’instance de calcul est lancée par AWS Sagemaker une fois la tâche d’apprentissage préparée,
et l’apprentissage du modèle à l’aide du code d’apprentissage et de la base d’apprentissage
commence.
Une fois la tâche d’apprentissage terminée, nous pouvons obtenir les poids de notre modèle à
partir de la sortie aws S3 .
Les artefacts du modèle d’apprentissage sont affichés dans la figure ci-dessous 5.7 dans un
dossier de sortie qui est hébergé dans AWS S3.

Mémoire pour l’obtention du diplôme d’ingénierie en génie civil Page 76


EXÉCUTION DE LA SOLUTION EN UTILISANT LE CONTENEUR SAGEMAKER
DE AMAZON ET GENERATION DE L’API

F IGURE 5.7 – La sortie du modèle

5.2.3 Déploiement d’application avec le service Amazon Sagemaker

Amazon SageMaker est un service qui fournit des pipelines d’apprentissage automatique
complets de bout en bout, de l’apprentissage des modèles au déploiement en production, et cela
mérite d’être mentionné.
Trois étapes doivent être suivies afin de déployer l’application à l’aide du service Amazon
Sagemaker :

— Création d’un modèle .

— Configuration de point de terminaison

— Création d’un point de terminaison (Endpoint) .

5.2.3.1 Création du modèle sur Amazon Sagemaker

Nous devons spécifier la référence de la tâche d’apprentissage (1 dans la figure 5.8) et


l’emplacement du modèle produit par cette tâche (2 dans la figure 5.8)), qui a été enregistré
dans AWS S3 comme décrit dans la figure 5.7 , afin d’établir l’environnement de conteneur que
nous souhaitons utiliser pour ce modèle comme il est indiqué dans la figure ci-dessous 5.8.

Mémoire pour l’obtention du diplôme d’ingénierie en génie civil Page 77


EXÉCUTION DE LA SOLUTION EN UTILISANT LE CONTENEUR SAGEMAKER
DE AMAZON ET GENERATION DE L’API

F IGURE 5.8 – Création du modèle

Jusqu’à présent, nous avons réussi à utiliser Amazon Sagemaker pour générer une définition
de modèle qui relie l’artefact du modèle au conteneur qui abrite la tâche d’apprentissage.

5.2.3.2 Création de la configuration de point de terminaison

Nous devons d’abord établir une configuration, choisir le modèle déployé et fournir les
ressources que nous voulons qu’Amazon Sagemaker provisionne avant de pouvoir construire
un point de terminaison.

Mémoire pour l’obtention du diplôme d’ingénierie en génie civil Page 78


EXÉCUTION DE LA SOLUTION EN UTILISANT LE CONTENEUR SAGEMAKER
DE AMAZON ET GENERATION DE L’API

F IGURE 5.9 – Création de la configuration de point de terminaison

5.2.3.3 Création de point de terminaison

La dernière étape avant le déploiement de l’application consiste à construire un point de


terminaison qui permet l’inférence en temps réel à l’aide d’une API REST tout en éliminant les
problèmes liés à l’exécution de nos propres instances EC2 sur AWS, au chargement des artefacts
depuis S3, à l’encapsulation du modèle dans une application REST légère, à la connexion des
GPU, et bien plus encore.
Il suffit d’identifier la configuration du point de terminaison spécifiée dans la section précédente,
comme le montre la figure ci-dessous 5.10, pour créer ce point de terminaison :

F IGURE 5.10 – Création du point de terminaison

Mémoire pour l’obtention du diplôme d’ingénierie en génie civil Page 79


EXÉCUTION DE LA SOLUTION EN UTILISANT LE CONTENEUR SAGEMAKER
DE AMAZON ET GENERATION DE L’API

Finalement, on a créé notre point de terminaison comme il est indiqué dans la figure ci-dessous
5.11

F IGURE 5.11 – Le point de terminaison

5.3 Création d’un rôle dans AWS IAM

Afin d’accorder à une fonction lambda toutes les autorisations nécessaires pour exécuter sa
fonction et appeler le service Sagemaker, nous devons d’abord définir un rôle pour la fonction.
Le processus de définition d’un rôle pour notre fonction à l’aide du service IAM dans AWS est
décrit en détail.
La figure ci-dessous 5.12 présente la sélection de Lambda comme cas d’utilisation pour ce rôle
est la première étape :

F IGURE 5.12 – Sélection de l’entité de confiance

Mémoire pour l’obtention du diplôme d’ingénierie en génie civil Page 80


EXÉCUTION DE LA SOLUTION EN UTILISANT LE CONTENEUR SAGEMAKER
DE AMAZON ET GENERATION DE L’API

Ensuite, pour que la fonction lambda fonctionne correctement, les autorisations requises
doivent être ajoutées :
- L’accès complet aux journaux de surveillance du cloud est fourni par CloudWatchLogsFullAccess
comme il est indiqué par la figure ci-dessous 5.13.

F IGURE 5.13 – Autorisation « CloudWatchLogs »

- Pour permettre à notre fonction Lambda d’invoquer le point de terminaison Sagemaker que
nous avons défini précédemment (InvokeEndpoint) et de l’associer au rôle que nous construisons,
nous devons élaborer une politique d’autorisation. La figure ci-dessous 5.14 présente la politique
d’autorisation créé.

Mémoire pour l’obtention du diplôme d’ingénierie en génie civil Page 81


EXÉCUTION DE LA SOLUTION EN UTILISANT LE CONTENEUR SAGEMAKER
DE AMAZON ET GENERATION DE L’API

F IGURE 5.14 – Création d’une politique d’autorisation

La figure ci-dessous 5.15 indique que nous avons ajouté ces permissions.

F IGURE 5.15 – Ajout du politique au rôle

La dernière étape comme elle presenté dans la figure ci-dessous 5.16 est juste de nommer,
vérifier et créer le rôle.

Mémoire pour l’obtention du diplôme d’ingénierie en génie civil Page 82


EXÉCUTION DE LA SOLUTION EN UTILISANT LE CONTENEUR SAGEMAKER
DE AMAZON ET GENERATION DE L’API

F IGURE 5.16 – Vérification et création du rôle

5.4 Création de la fonction Lambda

Dans cette section, nous allons expliquer comment créer une fonction lambda qui appellera
le point de terminaison du modèle qu’Amazon Sagemaker a été utilisé pour générer précédemment.
Nous sélectionnons en premier lieu le rôle que nous avons déjà crée comme il est indiqué dans
la figure ci-dessous 5.17.

Mémoire pour l’obtention du diplôme d’ingénierie en génie civil Page 83


EXÉCUTION DE LA SOLUTION EN UTILISANT LE CONTENEUR SAGEMAKER
DE AMAZON ET GENERATION DE L’API

F IGURE 5.17 – Sélection du rôle

Ensuite, en collaboration avec l’équipe de développement, nous avons pu créer le code de


la fonction Lambda, qui importait d’abord les bibliothèques nécessaires au fonctionnement
de Lambda, puis appelait le point de terminaison, et enfin indiquait si l’image traitée était
considérée comme positive ou négative.

F IGURE 5.18 – Code de la fonction Lambda

La figure ci-dessus 5.18 présente le code de la fonction lambda. Nous arrivons alors à créer
avec succès notre fonction Lambda.
Il nous reste juste de créer un API Gateway et l’accrocher à cette fonction.

Mémoire pour l’obtention du diplôme d’ingénierie en génie civil Page 84


EXÉCUTION DE LA SOLUTION EN UTILISANT LE CONTENEUR SAGEMAKER
DE AMAZON ET GENERATION DE L’API

5.5 Création d’un API Gateway

Afin de construire, publier, maintenir, surveiller et protéger des API, les développeurs peuvent
utiliser le service entièrement géré connu sous le nom d’Amazon API Gateway. Les applications
utilisent les API comme leur "porte d’entrée" vers les données, la logique commerciale ou les
fonctionnalités de nos services dorsaux.
Nous commencons par construire notre API Gateway en ajoutant une méthode POST comme il
est indiqué dans la figure ci-dessous 5.19

F IGURE 5.19 – Ajout de la méthode POST

La seule chose qui reste à faire est de mettre notre API en production.La figure ci-dessous
5.20 présente l ’étape de déploiement de l’API Gateway.

Mémoire pour l’obtention du diplôme d’ingénierie en génie civil Page 85


EXÉCUTION DE LA SOLUTION EN UTILISANT LE CONTENEUR SAGEMAKER
DE AMAZON ET GENERATION DE L’API

F IGURE 5.20 – Déploiement de l’API Gateway

Nous recevons une URL d’invocation comme il est indiqué dans la figure ci-dessous 5.21
après l’installation de l’API Gateway qui peut être utilisée pour tester l’application en utilisant,
par exemple, le logiciel Postman (un client API qui permet aux développeurs de créer, partager,
tester et documenter facilement les API).

F IGURE 5.21 – L’URL d’invocation

Ainsi, en utilisant le service Amazon Sagemaker, qui nous donne accès à un point de
terminaison qui sera utilisé par une fonction Lambda et livré par une passerelle API, nous avons
finalement terminé de mettre l’application en production.

Conclusion

Ce chapitre a commencé par une comparaison des fournisseurs de MLaaS, suivie d’une
explication sur la façon de créer, de configurer et de commencer une mission d’apprentissage.
Enfin, une passerelle API a été créée.

Mémoire pour l’obtention du diplôme d’ingénierie en génie civil Page 86


Conclusion générale

Ce travail a été réalisé dans le cadre du projet de fin d’études pour l’obtention du Diplôme
National d’ingénieur en Génie Informatique, il a été élaboré au sein de la société "NewGen
technologies". Dans le cadre de ce stage, nous avons réussi à développer un Api Rest permet de
classifier les images de traumatisme radiologique en utilisant aws sagemaker.

Comme dans tout processus de réalisation d’un projet et recherche, nous avons dû nous
entraîner à resoudre une variété de problèmes qui se sont présentés. Ces problèmes étaient
principalement liés à notre compréhension d’un nouveau domaine, à la lecture non seulement
de références théoriques mais aussi de se familiariser avec des nouvelles outils. De plus, pendant
la période de stage on a dû se familiariser à de nouveaux concepts comme : amazon web
services , docker et tensorflow. En outre, la résolution des problèmes de performance du modèle
développé par StanfordMlgroup a été un défi qui a été relevé avec succès. De plus, l’utilisation
du cloud computing et un outil de conteneurisation était une opportunités de s’intégrer dans un
tout nouveau domaine comme MlOps.

Bien que la majorité des exigences soient satisfaites par notre projet puisque la majeure
partie du travail a été consacrée à la classification des os fracturés et non fracturés, sans
élargir la tâche aux différents types de fractures, il reste ouvert à de nouvelles idées,
comme la classification générique qui est capable de différencier les différentes formes
de fracture.C’est-à-dire que chaque os est séparé en sous-groupes successifs de fractures
selon l’emplacement et la configuration des lignes de fracture.En effet, cette stratégies de
classification a une meilleure reproductibilité que les autres méthodes de classification et sa
configuration la rend idéale pour une tâche de classification. L’approche pourrait également
être simplement étendue car différents os du corps humain partagent la même structure. Un

Mémoire pour l’obtention du diplôme d’ingénierie en génie civil Page 87


CONCLUSION GÉNÉRALE

ensemble de données suffisant est sans aucun doute l’un des composants les plus cruciaux
pour qu’une application basée sur l’apprentissage profond fonctionne bien après la définition
d’un système de classification approprié. Si possible, plus d’un expert de diverses spécialités
devrait être engagé pour l’étiquetage et l’évaluation afin d’obtenir de nombreux points de vue.
L’objectif ultime de cet outil serait de démontrer dans quelle mesure cette solution aide les
médecins dans leurs diagnostics.

Au terme de ce projet, nous pouvons s’assurer qu’il nous a été très bénéfique dans la mesure
ou il nous a donné l’occasion d’apprendre de nouveaux domaines et concepts. Les avantages
se sont fait sentir aussi bien dans la pratique qu’au niveau théorique. Nous étions bien intégrés
dans le monde professionnel, conscients de nos limites, de nos forces et de nos faiblesses, ce
qui a rendu ce projet très précieux sur le niveau personnel.

En guise de conclusion, il est important de noter que la réalisation de ce projet a été une
expérience très agréable qui nous a donné la chance d’être sur la pointe de la technologies
et d’élargir notre compréhension existante de l’analyse, de l’analyse, de l’interprétation et de
synthèse.

Mémoire pour l’obtention du diplôme d’ingénierie en génie civil Page 88


WEBOGRAPHIE

Webographie

[1] https://stanfordmlgroup.github.io/competitions/mura/. [Consulté le : mars 2022].

[2] https://fr.blog.businessdecision.com/methode-crisp-la-cle-de-la-reussite-en-data-science/.
[Consulté le : avril 2022].

[3] https://www.oracle.com/fr/artificial-intelligence/what-is-ai/7. [Consulté le : mars 2022].

[4] https://datascientest.com/machine-learning-tout-savoir. [Consulté le : mars 2022].

[5] https://www.futura-sciences.com/tech/definitions/intelligence-artificielle-deep-learning-17262/.
[Consulté le : mars 2022].

[6] https://towardsdatascience.com/a-comprehensive-guide-to-convolutional-neural-networks-the-eli5-way-
[Consulté le : avril 2022].

[7] https://openclassrooms.com/fr/courses/4470531-classez-et-segmentez-des-donnees-visuelles/
5083336-decouvrez-les-differentes-couches-dun-cnn/. [Consulté le : avril 2022].

[8] https://machinelearningmastery.com/transfer-learning-for-deep-learning/. [Consulté le :


mai 2022].

[9] https://towardsdatascience.com/alexnet-the-architecture-that-challenged-cnns-e406d5297951.
[Consulté le : mai 2022].

[10] Wikipédia, “Gestion des ressources numériques — wikipédia, l’encyclopédie libre.” https:
//datacorner.fr/vgg-transfer-learning/, 2019. [Consulté le le 16 juin 2019].

[11] https://towardsdatascience.com/introduction-to-resnets-c0a830a288a4. [Consulté le le 16


juin 2019].

[12] https://www.kaggle.com/datasets/pytorch/densenet169. [Consulté le le 16 juin 2019].

[13] https://towardsdatascience.com/what-is-loss-function-1e2605aeb904. [Consulté le le 16


juin 2019].

Mémoire pour l’obtention du diplôme d’ingénierie en génie civil Page 89


WEBOGRAPHIE

[14] https://www.saagie.com/fr/blog/machine-learning-comment-evaluer-vos-modeles-analyses-et-metriques
[Consulté le le 16 juin 2019].

[15] https://www.ibm.com/fr-fr/cloud/learn/cloud-computing-gbl. [Consulté le le 16 juin


2019].

[16] https://aws.amazon.com/fr/s3/. [Consulté le le 16 juin 2019].

[17] https://aws.amazon.com/fr/ecr/. [Consulté le le 16 juin 2019].

[18] https://aws.amazon.com/fr/sagemaker/. [Consulté le le 16 juin 2019].

[19] https://dataanalyticspost.com/Lexique/normalisation/. [Consulté le le 16 juin 2019].

Mémoire pour l’obtention du diplôme d’ingénierie en génie civil Page 90


Développement d’un api rest qui permet
de classifier des images de traumatisme
radiologique en utilisant AWS Sagemaker
Oussema OULEDABDALLAH

Résumé :Ce projet a été réalisé dans le cadre du projet de fin d’études pour
l’obtention du Diplôme National d’ingénieur en Génie Informatique, il a été élaboré
au sein de la société "NewGen technologies" à pour but de développer un Api Rest
permet de classifier les images de traumatisme radiologique en utilisant aws
sagemaker. Nous avons commencé par le prétraitement de notre base
d’apprentissage MURA puis choisir le modèle d’apprentissage le plus performant
ainsi que l’optimiseur le plus efficace. Ensuite, nous avons déployé notre solution
conteneurisée sous forme d'image docker à un référentiel sur un fournisseur de
cloud qui est amazon, où elle a été utilisée pour exécuter une tâche d'apprentissage
AWS Sagemaker. En fin, nous avons créé un api rest qui contient notre solution et le
mettre en production à travers AWS API Gateway.

Abstract : This project was carried out within the framework of the project for the end
of studies for the obtaining of the National Diploma of Engineer in Data-processing
Engineering. It was worked out within the company "NewGen Technologies" with the
goal to develop an API Rest that makes it possible to classify the images of
radiological trauma by using AWS Sagemaker. We started by preprocessing our
MURA learning base and then choosing the most efficient learning model and the
most efficient optimizer. Next, we deployed our containerized solution as a Docker
image to a repository on a cloud provider, which is Amazon, where it was used to run
an AWS Sagemaker learning task. Finally, we created an API Rest that contains our
solution and put it into production through AWS API Gateway.

Mots clés :intelligence artificielle , réseau neural de convolution ,


Amazon web services , amazon s3 , amazon ecr , amzon sagemaker , amazon api
gateway.
Key-words : artificial intelligence , deep convolution neural networks, amazon web
services , amazon s3 , amazon ecr , amzon sagemaker , amazon api gateway.

Vous aimerez peut-être aussi