Vous êtes sur la page 1sur 107

République Algérienne démocratique et populaire

Ministère de l’Enseignement Supérieur et de la Recherche Scientifique

Université L'arbi Ben M'hidi Oum El Bouaghi

Faculté des sciences exactes et sciences de la nature et de la vie


Département Mathématiques Et Informatique
Mémoire de fin d'étude en vue de l'obtention du diplôme de Master
En Informatique
Spécialité : Architecture Distribuée

Une Nouvelle Approche Basée Deep Learning pour

La Classification de Services Cloud

Présenté Par : Encadrante :

RIZI MEROUA ZERTAL SOUMIA

MAAZAOUI SOUMIA Devant le jury:

Benaboud Rouhallah

Amiar Lotfi

2020/2021
Remerciement

Je tiens en premier lieu à remercier Dieu pour l’aide qu’il n’aaccordé pour
arriver au terme de mon projet.

Ce travail n'aurait pu être mené jusqu'à son terme sans la bienveillance de ma


encadrante de projet de fin d’étude, madame ZERTAL SOUMIA, Maitre de
conférence Classe A /Université d'Oum El Bouaghi, qui m'a toujours accordée
sa confiance. Je la remercie profondément pour ses conseils, ses
encouragements et son soutien constant.

Mes remerciements s'adressent aussi aux membres de jury pour avoir accepté
de discuter ce mémoire

Je remercie aussi mes éminents enseignants qui m’ont permis de pénétrer le


monde informatique.

C’est un énorme remerciement que j’adresse maintenant à toute ma famille :


ma mére mes filles Bissane , Dida , Ania

Je remercie mon mari Attef : dans mon esprit tu es celle qui occupe la première
place. Un énorme merci pour ton amour et ton soutien

Je remercie aussi l'ingenieur égyptien Mouhammed Imed.

pour la coopération qu’il m’accordé tout au long de mon travail,

mais surtout sa gentillesse.

-Meroua-
Remerciement

"Au début, nous remercions Allah qui nous a aidés à accomplir ce


travail, et qui a été avec nous à tous les moments de notre chemin
d’étude. A mes chers parent ma mèreet mon père pour leur Patience,
leur amour, leur soutien et leur Encouragement.

mes sincères remerciements à mon encadrante de projet de fin d'étude


madame ZERTAL SOUMIA, je la remercie de m’avoir encadré,
orienté, aidé et conseillé .

à tous les membres du jury qui nous ont fait l’honneur de réviser ce
travail.

Un remerciement spécial à mon mari Mohamed Elarbi, Merci pour


votre amour et vos encouragements

Tout l'amour à ma fille Mayssane, A mes sœurs et frères, que Dieu les
protège

-Soumia-
Résumé

Avec l'évolution rapide des services web dans le Cloud, en nombre et en


fonctionnalités, le besoin de la classification et de la découverte de services
devient une nécessité incontournable. Selon la littérature, les services web sont
classés selon plusieurs critères tel que leurs fonctionnalité, leurs valeurs de
qualité de services, …

L‟intelligence artificielle est largement utilisée dans la vie quotidienne et dans


de nombreux domaines différents tels que l‟industrie, l‟automatisation et les
systèmes experts, la médecine et la biologie, l‟éducation et même les jeux vidéo.

L‟apprentissage profond est l‟une des branches les plus importantes et les plus
exploitées de l‟apprentissage automatique. Grâce à son succès, il a réalisé un
saut quantique dans le domaine de l'intelligence artificielle. Par conséquent, il
est devenu le domaine le plus important dans le monde de l'informatique.
L'apprentissage profond est basé sur l‟apprentissage et l‟acquisition
d‟expériences. Il simule la façon dont les humains pensent et apprennent.

Dans ce travail, nous nous sommes intéressées à la classification des services


web dans le Cloud, en se basant sur leurs valeurs de qualités (temps d‟exécution,
le cout, la disponibilité, …). Pour atteindre cet objectif, nous allons utiliser une
branche de l‟intelligence artificielle qui est l‟apprentissage profond supervisé.
Par conséquent, nous proposons dans ce mémoire une nouvelle approche pour la
classification des services web dans le cloud, basée sur l‟apprentissage profond
LSTM. Cette dernière est nommée « Web Services Classificataion based
LSTM » (WSC-LSTM). Le modèle proposé a été évalué et testé sur la base de
données « QWS-2.0 ». Les résultats obtenus sont encourageants et prometteurs.

i
‫‪Mots-clés : Service web ; classification des services ; QoS ; apprentissage‬‬
‫‪profond (deep learning) ; LSTM ; Cloud Computing.‬‬

‫ملــــخص‬

‫يغ انرطٌس انسشٌغ نخذياخ انٌٌة فً انسساتح ‪ ،‬ين زٍث انؼذد ًانٌظائف ‪ ،‬أصثسد انساخح‬
‫إنى ذصنٍف انخذياخ ًاكرشافيا ضشًسج ال يفش ينيا‪ً .‬فمًا نألدتٍاخ ‪ٌ ،‬رى ذصنٍف خذياخ‬
‫انٌٌة ًفمًا نؼذج يؼاٌٍش يثم ًظٍفريا ًخٌدج لٍى انخذيح ًيا إنى رنك‪.‬‬

‫ٌسرخذو انزكاء االصطناػً ػهى نطاق ًاسغ فً انسٍاج انٌٍيٍح ًفً انؼذٌذ ين انًداالخ‬
‫انًخرهفح يثم انصناػح ًاألنظًح انخثٍشج ًانطة ًانثٌٍنٌخٍا ًانرؼهٍى ًزرى أنؼاب انفٍذٌٌ‪.‬‬

‫ً‬
‫اسرغالال‪ .‬تفضم ندازو ‪ ،‬زمك لفزج‬ ‫ٌؼذ انرؼهى انؼًٍك أزذ أىى فشًع انرؼهى اَنً ًأكثشىا‬
‫نٌػٍح فً يدال انزكاء االصطناػً‪ً .‬ين ثى ‪ ،‬فمذ أصثر أىى يدال فً ػانى انكًثٌٍذش‪ .‬زٍث‬
‫ٌؼرًذ انرؼهى انؼًٍك ػهى انرؼهى ًاكرساب انخثشاخ‪ .‬إنو ٌساكً طشٌمح ذفكٍش انثشش ًذؼهًيى‪.‬‬

‫فً ىزا انؼًم ‪ ،‬كنا ييرًٍن ترصنٍف خذياخ انٌٌة فً انسساتح ‪ ،‬تنا ًء ػهى لٍى اندٌدج‬
‫انخاصح تيا (ًلد انرنفٍز ‪ ،‬انركهفح ‪ ،‬انرٌفش ‪ .)... ،‬نرسمٍك ىزا انيذف ‪ ،‬سنسرخذو فشػًا ين‬
‫انزكاء االصطناػً ٌششف ػهٍو انرؼهى انؼًٍك‪ .‬نزنك ‪ ،‬فً ىزه األطشًزح نمرشذ نيدًا خذٌذًا‬
‫نرصنٍف خذياخ انٌٌة فً انسساتح ‪ ،‬تنا ًء ػهى انرؼهى انؼًٍك انزي ٌؼرًذ ػهى ‪. LSTM‬ىزا‬
‫األخٍش ٌسًى )‪(WSC-LSTM‬‬
‫‪ .‬ذى ذمٍٍى اننًٌرج‬ ‫أي » ‪« Web Services Classificataion based LSTM‬‬
‫انًمرشذ ًاخرثاسه ػهى لاػذج تٍاناخ ‪ "QWS-2.0".‬اننرائح انرً ذى انسصٌل ػهٍيا يشدؼح‬
‫ًًاػذج‪.‬‬

‫الكلمات الرئيسية‪ 9‬خذيح انٌٌة ؛ ذصنٍف انخذياخ خٌدج انخذيح ذؼهى ػًٍك؛ ‪ LSTM‬؛‬
‫زٌسثح سساتٍح‪.‬‬

‫‪ii‬‬
Abstract

With the rapid evolution of web services in the Cloud, in number and
functionality, the need for classification and discovery of services is becoming
an unavoidable necessity. According to the literature, web services are classified
according to several criteria such as their functionality, their quality of service
values, etc.

Artificial intelligence is widely used in everyday life and in many different


fields such as industry, automation and expert systems, medicine and biology,
education and even video games.

Deep learning is one of the most important and most exploited branches of
machine learning. Thanks to his success, he has made a quantum leap in the
field of artificial intelligence. Hence, it has become the most important field in
the computer world. Deep learning is based on learning and gaining experiences.
It simulates the way humans think and learn.

In this work, we were interested in the classification of web services in the


Cloud, based on their quality values (execution time, cost, availability, ...). To
achieve this goal, we are going to use a branch of artificial intelligence which is
supervised deep learning. Therefore, in this thesis we propose a new approach
for the classification of web services in the cloud, based on LSTM deep
learning. The latter is called "Web Services Classification based LSTM"
(WSC-LSTM). The proposed model has been evaluated and tested on the
“QWS-2.0” database. The results obtained are encouraging and promising.

Keywords: Web service; classification of services; QoS; deep learning; LSTM;


Cloud computing.

iii
Liste des acronymes

IA Intelligence Artificiel.

LSTM Long Short-Term Memory LSTM .

RNN Réseaux Neuronaux Récurrents.

SVM Support Vector Machine.

CNN Convolutional Neural Network.

CWS-LSTM Classification Web Services Lstm

SOA Architectures Orientées Services.

SaaS Software as a Service.

PaaS plateforme as a service.

IaaS Infrastructure as a Service.

NIST National Institute of Standards and Technology.

iv
Table des figures

Figure 1.1 Evolution vers le cloud ………………………………..……………………..3

Figure 1.2 Description du Cloud Computing selon NIST ………………………………..4

Figure 1.3 Les différentes couches du cloudcoputing ……………………………………6

Figure 1.4 La pille de cloud computing ………………………………….………………9

Figure 1.5 Cloud public …………………………………………………….…………….10

Figure 1.6 Cloud privé ……………………………………………………………………..11

Figure 1.7 Cloud Communautaire ……………………………………………………….11

Figure 1.10 Cloud hybride ……………………………………………………………….12

Figure 2.1 Le schéma d'un neurone biologique et neurone formel de 1943………….....98

Figure2.2 Deep Learning vs Machine Learning…………………………………………..19

Figure 2.3 Apprentissage supervisé ……………………………………………..……….12

Figure 2.4 La Classification et de la Régression………………………………….……..12

Figure 2.5 Apprentissage non supervisé ………………………………………….….......14

Figure 2.6 Apprentissage non supervisé ……………………………………….………….14

Figure 2.7 Les approches et les algorithmes de l‟apprentissage automatique…………. 16

Figure 2.8 Un perceptron multicouche …………………………………………….…..18

Figure 2.9 Un neurone artificiel ………………………………………………….……29

Figure 2.10 Schéma d‟une convolution avec un noyau de taille 3*3 et un pas de
2………………………………………………………………………………………………22

Figure 2.11 Schéma d‟une opération de pooling avec un noyau MaxPool de taille 2*2 et
d‟un pas de 2…………………………………………………………………….………….24

Figure 2.12 Schéma d‟une couche entièrement connectée avec 6 classes......................25

v
Figure 2.13 Schéma d'un réseau de neurones récurrents à une unité relian……………...26

Figure2. 14 Représentation simplifiée d‟une cellule LSTM……………………..….........28

Figure 2.15 Input d 'une celuule LSTM…………………………………………………….34

Figure2. 16 Filtre de la forget gate………………………………………..………………..39

Figure 2.17 Cell state filtré par la forget gate……………….…………………………….31

Figure 2.18 Filtre de l‟input gate………………………………………………………….31

Figure 2.19 Vecteur candidat à la mise à jour du cell state…………………………….…32

Figure2.20 Vecteur candidat filtré par l‟input gate…………………………………….……33

Figure2.21 Mise à jour du cell state par addition du vecteur candidat filtré……………….34

Figure2.22 Filtre de l‟output gate………………………………………………..…….......34

Figure 2.23 Nouveau hidden state…………………………………………..……………35

Figure 3.1 Architecture CWS-LSTM………………………………………………………50

Figure 3.2 Fonction tanh……………………………………………………………………51

Figure 3.3 Fonction softmax……………………………………………………………….53

Figure 3.4 Fonction pour calculer l'erreur ................................................................55

Figure 3.5 Exemple de courbe de la fonction lossFigure …………………..……………55

Figure 4.1 Des bibliothèques de programmation……………………………………..…….60

Figure 4.2 Logo de GOOGLE COLABORATORY…………………………………….….61

Figure 4.3 Comment utiliser les commandes de terminal dans l'environnement Colab…….62

Figure 4.4 Les boutons pour télécharger vos fichiers ou monter votre Google Drive……..63

Figure4.5 Comment se connecter à un runtime……………………………….………….64

Figure 4.6 Comment changer le type d'exécution……………………………..…………..65

Figure 4.7 Logo de QT Designer ………………………………………………….………66

vi
Figure 4.8 Editeur QT……………………………………………………………..………..66

Figure 4.9 Logo de python……………………………………………………….………..67

Figure 4.10 les quatre classe de notre modèle …………………………………….………71

Figure 4.11 La forme de la base de données au début……………………………………..72

Figure 4.12 La fonction preprocess_raw_data……………………………….…………….73

Figure 4.13 La fonction (compute_wsrf)…………………………………….…………..74

Figure 4.12 partie de Code de la normalisation de la base de données……………..….75

Figure 4.15 l'exposition de notre base de données…………………………………….……76

Figure 4.16 La base de données en deux parties TRAIN,TEST…………….……………76

Figure 4.17 Défini le modèle SVM………………………………………………….………77

Figure 4.18 Les résultats du modèle SVM………………………………………………….77

Figure 4.19 Défini le modèle LSTM……………………………………………………..78

Figure 4.20 Forme des couches dans notre application…………………………….……..78

Figure 4.21 Les mesures d‟évaluation de notre modèle accuracy et loss ………………..80

Figure 4.22 Fenêtre de bienvenue………………………………………………..…………81

Figure4.23 Input de notre modèle…………………………………………………………82

Figure 4.24 Fenêtre de résultat……………………………………………………...…….83

vii
Liste des tableaux

Tableau 1.1 La relation entre la composition de service et la sélection des


clouds

Tableau 2.1 Comparaison entre l‟apprentissage automatique et l‟apprentissage


en profondeur

viii
Table de matières

Résumé ........................................................................................................................................ i
‫ يهــــخص‬........................................................................................................................................ ii
Abstract ..................................................................................................................................... iii
Liste des acronymes .................................................................................................................. iv
Table des figures ........................................................................................................................ v
Liste des tableaux .................................................................................................................... viii
Introduction générale ................................................................................................................. 1
Chapitre09 le cloud computing et la classification des services web dans le cloud
I. Introduction ............................................................................................................................ 3
II. Historique ............................................................................................................................. 3
III. Définition ............................................................................................................................ 4
IV. Les caractéristiques essentielles du cloud ............................................................................ 6
1. service à la demande ............................................................................................................. 6
2. Accès ubiquitaire au réseau ................................................................................................... 6
3. Mise en commun des ressources ........................................................................................... 6
4. Le cloud est un service mesurable ......................................................................................... 6
5. L‟élasticité des ressources du cloud ...................................................................................... 7
V. Modèles de services .............................................................................................................. 7
1. Le SaaS (Software as a Service) ...................................................................................... 7
2. le PaaS (plateforme as a service) ...................................................................................... 8
3. Le IaaS (Infrastructure as a Service) ................................................................................ 9
VI. Modèles de déploiement du Cloud.................................................................................... 11
1. Le Cloud public .............................................................................................................. 11
2. Cloud privé .................................................................................................................... 11
3. Le Cloud Communautaire .............................................................................................. 12
4. Cloud hybride ................................................................................................................ 13
VII. Les avantages et les inconvénients du Cloud ................................................................... 13
1. Les avantages du cloud computing .................................................................................. 13
2. les inconvénients du Cloud .............................................................................................. 14
Un service web ......................................................................................................................... 15
VIII. La classification des services Web dans le cloud .......................................................... 15

ix
IX. Conclusion ........................................................................................................................ 16
Chapitre 02 l'apprentissage automatique et l'apprentissage
I. Introduction .......................................................................................................................... 17
II. Intelligence artificielle ........................................................................................................ 17
III. Deep Learning vs Machine Learning :quelles sont leurs différences ? ............................. 21
1. Le Machine learning ..................................................................................................... 21
1.1 Types d‟apprentissage automatique ............................................................................ 22
1.2 Le choix d‟ un type d‟apprentissage automatique..................................................... 28
2. Le Deep Learning (apprentissage profond) .................................................................. 28
2.1. Les architectures d‟apprentissage en profondeur ...................................................... 30
2.1.1 Réseaux neuronaux convolutionnels (CNN) ...................................................... 30
2.2.2 Réseaux de neurones récurrents RNN: .............................................................. 37
IV. Conclusion ........................................................................................................................ 47
Chapitre 03 L'approche proposée
I. Introduction .......................................................................................................................... 49
II. L‟architecture de l‟approche proposée CWS-LSTM.......................................................... 49
1. Description de l‟architecture proposée ............................................................................ 50
1.1 La couche d‟entrée .................................................................................................... 50
1.2 La couche cachée ..................................................................................................... 52
1.3 La couche de sortie .................................................................................................... 52
III. Le fonctionnement de l‟approche ...................................................................................... 56
1. Prétraitements de l‟approche .......................................................................................... 56
2. la normalisation .............................................................................................................. 56
3. la classification ............................................................................................................... 57
IV. La Back-propagation ......................................................................................................... 58
V. Conclusion ......................................................................................................................... 59
Chapitre 04 Expérimentations et étude des performances
I. Introduction ......................................................................................................................... 60
Figure 4.1:Des bibliothèques de programmation. .................................................................... 60
II. Les outils............................................................................................................................ 61
1. Environnement de développement ................................................................................ 61
1.1 Google Colaboratory .................................................................................................. 61

x
1.2 QT Designer ................................................................................................................ 65
III. Langage de programmation .............................................................................................. 67
1. Python ........................................................................................................................... 67
2. Pour quoi Python ? ....................................................................................................... 67
IV. Base de données ............................................................................................................... 68
1. Description de l'ensemble de données QWS ................................................................... 69
2. Applications .................................................................................................................... 71
V. Les codes d‟implémentation .............................................................................................. 72
1. Nettoyer la base de données QWS version 2.0 ............................................................. 72
2. Le calcul de WSRF ....................................................................................................... 73
3. La normalisation des données.......................................................................................... 75
4. L‟apprentissage du modèle SVM ................................................................................. 77
5. L‟apprentissage du modèle proposé ............................................................................... 78
VI. Evaluation des performances ............................................................................................ 79
VII. L‟interface et les fenêtres du modèle proposé dans l 'application .................................. 81
VIII. Les avantages de l‟approche proposée ........................................................................... 83
IX. Conclusion ......................................................................................................................... 84
Conclusion générale ................................................................................................................. 85
Perspectives .............................................................................................................................. 85
Bibliographie ............................................................................................................................ 86

xi
Introduction générale

La demande croissante pour de nouveaux services informatiques plus


économiques a permis l‟émergence d‟une nouvelle architecture qu‟est le cloud
computing. Le cloud computing représente la cinquième génération de
l‟informatique après les mainframes, les ordinateurs personnels, le paradigme
client/serveur et le web (world wide web). Il désigne un modèle dans lequel les
ressources telles que la puissance de calcul, le stockage ou encore la bande
passante sont fournies comme des services qui peuvent être loués par des
utilisateurs via internet à la demande.

La découverte et la classification de ces services web devient une tâche très


difficile à faire d‟une manière manuelle de la part d‟un groupe des experts, vu le
nombre des services qui est en évolution continu. Pour cela, nous proposons une
nouvelle approche pour la classification automatique des services Web. Notre
approche est essentiellement basée sur l‟apprentissage profond supervisé
(LSTM), et elle prend en considération les valeurs de qualité de services.

Ce mémoire est organisé comme suit :

✓ Chapitre 1 : Le Cloud Computing

Dans ce chapitre, nous allons introduire le domaine du Cloud par la description


de ses principales définitions existantes dans la littérature, ses caractéristiques,
ses modèles de services et ses différents modèles de déploiement. Ensuite, il se
focalise sur la présentation de la différence entre les services web /services
Cloud et la description de la découverte des services.

1|Page
✓ Chapitre 2 : Apprentissage automatique et Apprentissage profond
Au début de ce chapitre, nous allons fournir un regard sur le domaine de
l‟intelligence artificielle et ses différentes branches « l‟apprentissage
automatique et l‟apprentissage en profondeur », en définissant ce domaine, ses
branches et ses différentes caractéristiques.

✓ Chapitre 3 : L‟approche proposée


Ce chapitre détaille notre contribution, notamment (1) une description détaillée
de l‟approche et l‟architecture proposée, ensuite (2) une explication détaillée de
la méthode de fonctionnement de notre proposition.

✓ Chapitre 4 : Expérimentations et étude des performances.


Ce chapitre se compose de quatre parties :
(1) Nous allons, d‟abord, décrire l‟implémentation de notre approche.

(2) Ensuite, nous allons montrer une évaluation des performances de notre
approche et une comparaison des résultats obtenus avec les résultats des travaux
antérieurs.

Le mémoire s‟achève par une conclusion, qui récapitule notre approche, et des
perspectives de recherche.

2|Page
Chapitre01
Le Cloud Computing et La Classification
Des Services web dans le Cloud
Chapitre01 : le cloud computing et la classification des services web dans le cloud

I. Introduction
Les progrès de la technologie de l'information exigent un nouveau paradigme informatique
qui prend en charge la fourniture des services informatique sans les installer sur les sites
locaux avec un cout minimal. Le Cloud Computing propose le même modèle décrit ci-dessus,
il présente des services qui sont fournis sur Internet d'une manière élastique, à la demande
pour laquelle les frais sont payés au moment de la libération des ressources. En général, un
Cloud est un paradigme technologique, qui est une extension de plusieurs technologies
existantes à savoir, le calcul parallèle et distribué, les architectures SOA, la virtualisation, la
mise en réseau, etc

Ainsi, l‟objectif principal de ce chapitre est d‟éclaircir la notion de Cloud Computing en


présentant son historique et ses différentes définitions, ses principales caractéristiques, ses
différentes couches et modes de déploiements, ses avantages et inconvénients et une
description de ses principaux acteurs.

II. Historique

Le concept du Cloud Computing n'est pas vraiment nouveau puisqu'il fut introduit par John
McCarthy dès 1961avec l'idée d'un « système informatique disponible comme un outil public
». Il peut être considéré comme la cinquième évolution des architectures informatique d‟après
Microsoft. Cette évolution peut être présentée selon les phases suivantes (Figure 1.1) [7] :

1- Elle débute en 1980 avec des entreprises de fourniture d‟accès aux réseaux de recherche
régionaux aux Etats Unis d‟Amérique. Et c'est seulement en 1989 que le premier fournisseur
d'Accès Internet (FAI 1.0) via le réseau téléphonique, est devenu opérationnel. Ils ne
permettent d'offrir qu'un accès limité au réseau Internet via le réseau téléphonique afin
d'assurer le raccordement des personnes où les entreprises ;

2- La seconde phase est l‟apparition de la deuxième génération des FAI 2.0 qui permet aux
navigateurs web d'utiliser la messagerie électronique et d'accéder aux serveurs mail ;

3- La troisième génération, le FAI 3.0 a connue l‟apparition des centres de colocations qui
permet d‟offrir, au navigateur web, la possibilité de télécommuniquer et de se connecter avec
d‟autre réseaux Internet, d‟accéder aux serveurs de stockage et de traitement, de sécuriser les

3|Page
Chapitre01 : le cloud computing et la classification des services web dans le cloud

ressources physiques et le transfert des données. Il offre aux fournisseurs la possibilité


d‟héberger des applications métiers des entreprises ;

4- La quatrième génération, le FAI 4.0. Un fournisseur de service d'applications (FSA)


(appelé aussi fournisseur d'applications en ligne) est une entreprise qui fournit des logiciels où
des services informatiques à ses clients à travers l‟internet. Il met en place des plateformes de
génération d‟applications à la demande, dont les « Software as a Service » sont des dérivés.
L‟avantage de ce modèle est de fournir un accès à des applications particulières (comme un
programme de facturation médicale) en utilisant un protocole standard comme le protocole
http ;

5- La cinquième génération, le FAI 5.0, permet à un groupe d'utilisateur de partager les


mêmes ressources physiques (sous les modèles Infrastructure-as-a-Service) et logique
(Software-as-a-Service) en même temps et à moindre coût. Les FAI 5.0 fournissent également
un modèle économique, qui permet aux utilisateurs, de payer seulement les ressources qu'ils
utilisent, tel que Google et Salesforce ont lancé le premier site web public pour les services
Cloud en 1999. [7]

Figure 1.1 : Evolution vers le cloud [7].

III. Définition

La définition exacte du Cloud Computing est encore en évolution. Le Cloud Computing est un
nuage de services et de données. Plus précisément, c‟est un paradigme, et à ce titre il est

4|Page
Chapitre01 : le cloud computing et la classification des services web dans le cloud

difficile de lui donner une définition exacte et de dire avec certitude s‟il s'agit ou non de
Cloud. De nombreuses définitions ont été proposées pour le Cloud Computing, en mettant
l'accent sur les différents aspects qui caractérisent le paradigme [3]. Nous considérons la
définition de Cloud Computing proposée par l'Institut national de la norme et de la
technologie (NIST) [4], car elle illustre les aspects essentiels du Cloud :

"Cloud computing is a model for enabling convenient, on-demand network access to a


shared pool of configurable computing resources (e.g., networks, servers, storage,
applications, and services) that can be rapidly provisioned and released with minimal
management effort or service provider interaction." [5].

L‟expression « Cloud Computing », ou « informatique dans les nuages » peut se définir


comme une approche visant à disposer des applications, des puissances de calcul, des moyens
de stockage, etc. comme autant de « services ». Ceux-ci seront mutualisés, dématérialisés
(donc indépendants de toutes contingences matérielles, logicielles et de communication),
contractualisés (en termes de performances, coûts…), évolutifs (en volume, fonction,
caractéristiques…) et en libre-service. Avec le Cloud Computing, Les machines, les
applications et les données pourront être disséminées ou centralisées dans un, ou dans
différents sites internes, chez des prestataires, dans un data center [3].

La figure 1.2 présente une description générale du Cloud Computing selon NIST (National
Institute of Standards and Technology) [4].

Figure 1.2 : Description du Cloud Computing selon NIST [4].

5|Page
Chapitre01 : le cloud computing et la classification des services web dans le cloud

IV. Les caractéristiques essentielles du cloud

1. service à la demande

Un service cloud est un service à la demande, cela veut dire que le client doit faire une
demande pour n‟importe quel type de ressources et à n‟importe quel instant, c‟est-à-dire que
le Cloud doit permettre un accès libre-service « Self-Service » afin que les clients puissent
demander, personnaliser, payer et utiliser les services sans l'intervention d'opérateurs
humains. Les ressources sont accessibles sur le réseau depuis des plateformes hétérogènes
(tablettes, stations de travail, smart phones, etc.). [8]

2. Accès ubiquitaire au réseau

Les ressources sont accessibles sur le réseau depuis des plateformes hétérogènes (tablettes,
stations de travail, smart phones, etc.) [7].

3. Mise en commun des ressources

Les mêmes ressources sont mises en commun et assignées aux différents clients de manière
dynamique. Sur le Cloud une même application peut être utilisée par plusieurs clients en
même temps, en préservant la sécurité et les données privées de chaque client. Cela est
possible en utilisant des outils de virtualisation qui permettent de partager un serveur entre
plusieurs utilisateurs. Les différentes ressources physiques et virtuelles (par exemple, le
stockage, le traitement, la mémoire et la bande passante du réseau) sont attribuées
dynamiquement et réaffectées aux clients en fonction de la demande des consommateurs. Le
client ne peut pas contrôler l‟emplacement exact des ressources fournies. Néanmoins, il peut
exiger l‟emplacement souhaité pour ses ressources par exemple le pays où le continent, à
travers l‟intégration d‟un niveau d‟abstraction plus élevé [7].

4. Le cloud est un service mesurable

Le client et le fournisseur doivent mesurer l‟usage des ressources. Le client ne paye que ce
qu‟il utilise. [8]

6|Page
Chapitre01 : le cloud computing et la classification des services web dans le cloud

5. L’élasticité des ressources du cloud

Elle représente la capacité d‟allouer dynamiquement des ressources en fonction des besoins,
de façon durable ou de façon temporaire et ceci d‟une façon très rapide. On peut dire que Les
capacités de calcul semblent à l‟utilisateur comme un vaste réservoir de ressources
dynamiques qui peuvent être payées lorsque cela est nécessaire [9].

V. Modèles de services

Les modèles de services cloud sont représentés comme suite :

Figure 1.3: Les différentes couches du cloudcoputing [7].


1. Le SaaS (Software as a Service)

C‟est une couche applicative permet de mettre à disposition des applications


complètes fournies à la demande. On y trouvera différents types d'application allant du CRM
(Customer Relationship Management), à la gestion des ressources humaines, outils
collaboratifs, messagerie, BI (Business Intelligence) et d'autres applications métiers. Le
déploiement, la maintenance, la supervision du bon fonctionnement de l'application et la
sauvegarde des données, sont alors de la responsabilité du fournisseur de services [8]. Sur
cette couche, des acteurs tels que Salesforce.com, proposent des applications à la demande de
type CRM et des outils de collaboration. Cela permet à un client de bénéficier d'une
application de manière instantanée et à la demande sans aucun frais en immobilisation
(serveur ou licence), aucun déploiement ou maintenance à assurer. Il suffit de créer un compte

7|Page
Chapitre01 : le cloud computing et la classification des services web dans le cloud

et de profiter immédiatement d‟un service de collaboration ou d‟un CRM prêt à l‟emploi.


L'exemple le plus populaire et familière du SaaS est « e-mail » dans un navigateur web, mais
les applications SaaS sont de plus en plus sophistiqués.

Les Capacités SaaS, fournis en ligne comprennent des outils pour: [8]

 La gestion financière, les stocks et la commerce électronique;


 La collaboration entre les employés et les clients sur des projets;
 Créer des organigrammes, des schémas, des plans et autres dessins techniques;
 Les relations clientèles (CRM);
 L'édition, le stockage et le partage de documents, présentations, feuilles de calcul,
blogs, pages Web et des vidéos;
 La gestion de projet;
 Web-mail, agenda, messagerie instantanée, la vidéoconférence et les réseaux sociaux.

Les avantages des services en ligne de type SaaS sont :

 Souplesse et facilité de mise en œuvre


 Fin du déploiement de solution monolithique et lourde
 Mise à jour du côté éditeur
 Tarification plus réelle à la consommation
 Migration des données vers les services en ligne. [3]

2. le PaaS (plateforme as a service)

Elle représente la plate-forme d‟exécution, de déploiement et de développement des


applications. PaaS met à disposition des environnements prêts à l‟emploi, fonctionnels et
performants et offre aux consommateurs un environnement stable en ligne où ils peuvent
créer, tester et déployer des applications Web en utilisant des outils de développement de
logiciels. Il y a moins de travail impliquée dans la création d'une application utilisant PaaS
que dans l'approche traditionnelle.

Les systèmes PaaS comprennent généralement une partie ou l'ensemble des fonctions
suivantes [3]:

Environnement de développement basé sur un navigateur pour créer des BDs et


éditer le code des applications soit directement, soit à travers des outils visuels;
Sécurité, contrôle d'accès et interfaces de services Web;

8|Page
Chapitre01 : le cloud computing et la classification des services web dans le cloud

Intégration facile avec d'autres applications sur la même plate-forme;


Outils pour se connecter à des applications en dehors de la plate-forme;
Outils pour la conception de formulaires web, la définition des règles d'affaires et la
création de workflows.

Certaines solutions PaaS permettent aux non-développeurs de créer des applications


Web en utilisant des outils visuels plutôt qu'un langage de programmation, et certains donnent
le meilleur des deux : utiliser les outils visuels pour créer des applications et utiliser les
langages de programmation pour étendre les fonctionnalités si nécessaire.

Grâce aux PaaS, le déploiement des applications dans différents environnements est très
facile (test, pré-production et production sans se soucier de l'infrastructure et de la plateforme
dans lesquelles vont s'exécuter l‟application ou le stockage de données).

Exemples PaaS

Amazon Web Services (AWS) : permet aux développeurs d'héberger, de déployer et


gérer des applications dans le nuage.
Google AppEngine : est la réponse de Google à la tendance actuelle de Cloud
Computing dans l'industrie. Il permet aux organisations de créer et d'héberger leurs
applications Web. Le vendeur promet une administration centralisée, de disponibilité
de 99,9%, et de la sécurité.
Microsoft Azure: Microsoft offre des services de plate-forme PaaS à l'aide de
Windows Azure. Ces services de middleware de nuage comprennent Service Bus,
contrôle d'accès, la mise en cache, l'intégration et application Composite. Le vendeur
assure la compatibilité avec tous les langages de programmation et les cadres de
développement, y compris les langages de programmation .NET, Java, Ruby et PHP
[3].

3. Le IaaS (Infrastructure as a Service)

L‟infrastructure fournit des capacités de calcul et de stockage ainsi qu'une connectivité réseau.
Les serveurs, les systèmes de stockage, les commutateurs, les routeurs et autres équipements,
sont mis à disposition pour gérer une charge de travail demandée par les applications.

L'IaaS permet de disposer une infrastructure à la demande, pouvant héberger et exécuter des
applications, des services ou encore stocker des données. Concrètement, cela se caractérise

9|Page
Chapitre01 : le cloud computing et la classification des services web dans le cloud

par une infrastructure physique souvent mise à disposition par un fournisseur de services. La
solution de virtualisation permet la création des «centres de données virtuels » [3].

Grâce aux solutions de virtualisation existantes, il est possible de créer très facilement des
machines virtuelles connectées sur des réseaux, aussi virtuels, et qui seront exécutés sur les
Hyperviseurs des machines physiques. Cette virtualisation donne une grande flexibilité parce
qu‟elle permet d'abstraire la couche matérielle sur laquelle les applications qui vont pouvoir
être déployées et redéployées sans être liées à un serveur spécifique. La virtualisation répond
de manière dynamique là où les serveurs physiques fournissent un ensemble de ressources
allouées selon les besoins, et où la relation entre les applications et les ressources de calcul, de
stockage et de réseau, pourront s'adapter de manière automatique pour répondre à la charge de
travail et aux exigences demandées.

Exemple d’IaaS

 Amazon Elastic Compute Cloud : Amazon EC2, fournit une grande infrastructure
informatique, où les utilisateurs peuvent louer des environnements virtualisés
 Nimbus : Nimbus, est une application open-source IaaS conçu pour les besoins
informatiques de la communauté scientifique.
 Open Nebula : fournit des services d‟IaaS entièrement open source conçus pour
répondre aux besoins des entreprises (RequIrement of business) dans de nombreux
secteurs, telles que l'hébergement web, télécommunications, administration en ligne
(e-Government).

Figure 1.4 : La pille de cloud computing [3].

10 | P a g e
Chapitre01 : le cloud computing et la classification des services web dans le cloud

Autrement dit :
 Le SaaS : fournit des applications
 Le PaaS : permet de développer et de déployer une application
 L‟IaaS : permet d‟héberger les applications
VI. Modèles de déploiement du Cloud
Il existe différents types de Cloud :
1. Le Cloud public
Le Cloud publique, est généralement ouvert pour une utilisation par le grand public sur
Internet. Ce dernier peut être défini par des utilisateurs, un organisme commercial,
universitaire où gouvernemental, ou une combinaison entre. Amazon, Google, Microsoft, et
Salesforce représentent un Cloud public dans lequel n'importe quel particulier ou n‟importe
quelle entreprise peut y héberger ses applications, ses services ou ses données. [7]
En général, le Cloud est exploité et géré dans un centre de données appartenant à un
fournisseur de services qui héberge plusieurs clients et utilise le provisionnement dynamique.
La mise en œuvre d'une plate-forme évolutive de services et la licence « pay-as-you-go » sont
également des éléments attrayants de Cloud public. La Mise en œuvre du Cloud public peut
être d'une grande aide à éliminer la charge paralysante de la maintenance des infrastructures
sur les organisations informatiques. [3]

Figure 1.5 : Cloud public [3].

2. Cloud privé
L‟infrastructure Cloud est fournie à l‟usage exclusif d‟une seule organisation. Elle peut être
détenue, gérée et exploitée par l‟organisation, un tiers, ou une combinaison entre eux. Elle

11 | P a g e
Chapitre01 : le cloud computing et la classification des services web dans le cloud

peut exister au sein des locaux de l‟organisation ou en dehors de cette dernière. Eucalyptus,
OpenNebula et OpenStack sont des exemples de solution pour la mise en place du Cloud
privé. Le Déploiement de Cloud privé semble être dirigé principalement par les grandes
organisations et agences gouvernementales, plutôt que par les petites entreprises et les
utilisateurs finaux.

Figure 1.6 : Cloud privé [3].

3. Le Cloud Communautaire
C‟est un modèle de déploiement qui est en cours de mise en œuvre rapide. Sur le plan
conceptuel, il réside quelque part entre un Cloud privé et un Cloud public. Un Cloud
communautaire est partagé entre deux ou plusieurs organisations qui ont des exigences
similaires de nuages, telles que, les tâches de gestion de ressources, la sécurisation des
données, le déploiement d‟applications, l‟authentification, … etc.
Le Cloud est détenu et géré par un ou plusieurs des collaborateurs dans la communauté. Un
exemple de ceci est OpenCirrus formé par HP, Intel, Yahoo, et autres,

Figure 1.7 : Cloud Communautaire [3].

12 | P a g e
Chapitre01 : le cloud computing et la classification des services web dans le cloud

4. Cloud hybride
L‟infrastructure d‟un Cloud hybride est essentiellement une combinaison d'au moins deux
nuages, où les nuages sont un mélange de Clouds public, privé ou communautaire qui
demeurent des entités uniques, mais sont liés entre eux par des technologies normalisées ou
propriétaires qui permet la portabilité des applications. Par exemple, on pourra exporter nos
applications dans un Cloud public, mais les applications utiliseront également des données
stockées sur un Cloud privé, où bien procéder à la communication de deux applications
hébergées dans deux Cloud distincts. [7]

Figure 1.10 : cloud hybride [3].

VII. Les avantages et les inconvénients du Cloud

1. Les avantages du cloud computing

Le Cloud Computing offre beaucoup d'avantages et de flexibilité aux utilisateurs. Le client


peut opérer n'importe où et à tout moment de manière sécurisée. Vu le nombre croissant
d'appareils compatibles avec le Web qui sont utilisés aujourd‟hui (par exemple, les tablettes,
les téléphones intelligents, etc.), l'accès à l'information et aux données doit être rapide et plus
simple. Parmi ces avantages on peut citer les suivants : [7]
 Réduire le coût de gestion et de l‟investissement initial : avec le Cloud les entreprises
ne se soucient pas de la gestion des ressources où du personnel nécessaire à la
supervision de leurs plateformes. Le Cloud minimise les risques commerciaux ;
 Fournir une infrastructure dynamique qui offre des coûts réduits et des services
améliorés avec moins de coûts de développement et de maintenance ;

13 | P a g e
Chapitre01 : le cloud computing et la classification des services web dans le cloud

 Fournir des services à la demande, flexibles, évolutifs, améliorés et adaptables grâce au


modèle de paiement à l‟usage « Pay-as-you-go » ;
 Fournir une disponibilité et des performances cohérentes avec des charges maximales
provisionnées automatiquement ;
 Se rétablir rapidement et améliorer les capacités de restauration pour améliorer la
résilience des entreprises ;
 Accès n‟importe où : Les services de Cloud sont basé sur le Web et ne dépend pas de
l'ordinateur utilisé. Les documents et les applications hébergés dans le Cloud sont
accédés de n‟importe où ;
 L‟épreuve du futur : Avec SaaS et PaaS, l‟obtention de la dernière version du logiciel «
la mise à jour » est automatique.
 Réduction des déplacements : Naturellement, le Cloud Computing signifie que les
utilisateurs de Cloud n'ont plus à se rendre à un bureau pour faire le travail, ni les
administrateurs système doivent rendre aux centres de données pour installer de
nouveaux serveurs.
 Collaboration de groupe plus facile, c‟est à dire plusieurs utilisateurs peuvent
facilement collaborer sur des documents et projets sur le cloud.

2. les inconvénients du Cloud

Certains des inconvénients lors de l'utilisation d'un Cloud sont comme suit :
 La vitesse d'accès aux données pourrait diminuer parce qu‟à chaque fois que
l'utilisateur envoie une demande d'accéder aux données, toutes les données sont
extraites du Cloud et renvoyé à nouveau. Il est très différent du système informatique
traditionnel, où les données sont accessibles localement.
 Les données et les applications sur un Cloud public pourraient ne pas être très
sécurisées, ce qui pose le problème de la confidentialité et de la sécurité ;
 Le système Cloud dépend totalement de la connexion internet. Si la connexion internet
échoue, l'accès aux services de nuage échoue aussi.
 Vie privée et lois de confidentialités : les lois qui régissent la préservation des données
privées est différente d'un pays à un autre (par exemple les USA n'a pas les mêmes lois
que L'union européenne), ce qui peut mettre les clients en situation de confusion par

14 | P a g e
Chapitre01 : le cloud computing et la classification des services web dans le cloud

rapport aux services Cloud à utiliser, et cela peut limiter le transfert de données d'une
ressource Cloud vers une autre qui se trouve dans un autre pays [10].

Un service web
Le groupe de travail sur les architectures de services web du consortium W3C dans son
document de référence1 et dans son glossaire2 est conjointement parvenu à s‟accorder sur la
définition suivante du service web :

« Un service Web est un système logiciel conçu pour permettre l’interopérabilité machine-à-
machine sur un réseau, il est identifié par une URI, dont les interfaces publiques et les
liaisons sont définies et décrites en utilisant un langage dérivé de XML. Sa définition peut être
découverte par d'autres systèmes logiciels. Ces systèmes logiciels peuvent interagir avec le
service Web d'une manière prescrite par sa définition, en utilisant des messages basés XML
véhiculés par les protocoles Internet ».

VIII. La classification des services Web dans le cloud

Dans cette section, nous présentons la classification de services en vue de la publication, de la


découverte et de la substitution. Les répertoires de services Web constituent des espaces qui
sont des éléments clés dans les systèmes où l‟information partagée doit être gérée de façon
efficace. La classification a pour but d‟organiser ces espaces. Au sens courant et général du
terme, la classification fait référence à un système de classement, à l‟action de distribuer par
classes, par catégories. Une seconde définition plus spécifique est celle de la classification
automatique. Cette notion fait référence à un ensemble de méthodes automatiques permettant
de répartir les éléments d‟un ensemble en groupes, c‟est-à-dire d‟établir une partition de cet
ensemble.

Parmi les critères utilisés pour la classification, nous pouvons citer selon une granularité
décroissante : le domaine d‟application, la description textuelle, l‟interface qui comprend le
nombre et le nom des opérations, et la signature des opérations qui comprend le nombre, le
nom, le type et le concept des paramètres.

1
https://www.w3.org/TR/wsa-reqs/#id2604831, Le 07/02/2018.
2
https://www.w3.org/TR/2004/NOTE-ws-gloss-20040211/#webservice. Le 07/02/2018.

15 | P a g e
Chapitre01 : le cloud computing et la classification des services web dans le cloud

La classification peut être bénéfique pour plusieurs activités du cycle de vie des services Web.
Elle peut permettre de faciliter, d‟optimiser, d‟automatiser l‟efficacité et l‟efficience des
processus de découverte, de composition, d‟exécution et de gestion des services Web. Dans le
cadre de la découverte, l‟efficacité et l‟efficience des algorithmes peuvent être améliorées en
utilisant une classification des services basée sur le domaine d‟intérêt, sur les propriétés
fonctionnelles ou sur les propriétés non fonctionnelles. De la même façon, la composition
peut tirer parti de la classification des services en sélectionnant les services relativement à un
domaine d‟intérêt à chaque étape de la synthèse de la composition. Le processus de
substitution peut faire appel à la catégorisation en organisant les services en ensembles de
services aux fonctionnalités similaires. Lors de l‟exécution, si certains services deviennent
indisponibles, alors le processus d‟exécution ne peut aboutir. La classification offre ainsi la
possibilité de trouver, en temps réel, des services similaires remplaçants. La publication d‟un
grand nombre de services est plus efficace quand les services sont organisés en catégories.
L‟enregistrement des services dans un registre peut se faire directement selon des catégories.

IX. Conclusion

Dans ce chapitre, nous avons survolé les principaux concepts et points clés de la technologie
Cloud Computing, en commençant par la présentation du contexte historique de cette
technologie, ensuite nous avons défini le Cloud en exposant ses principales caractéristiques.
Nous avons également montré ses différents modèles de services et de déploiement. Ce qui
nous a mené par la suite à une étude sur les différents avantages et inconvénients. Et pour
terminer, nous avons défini les services web et l‟intérêt de la classification des services web
déployédans le Cloud.

16 | P a g e
Chapitre02
L’apprentissage automatique &
l’apprentissage profond
Chapitre 02 : l’apprentissage automatique et l’apprentissage profond

I. Introduction
Aujourd'hui l'informatique est partout, dans les magasins, les distributeurs, les stations de
services, les écoles, les bibliothèques, les aéroports, ou le travail. Cette présence se reflète
dans la vie quotidienne de l‟individu et elle a permis des facilités d‟utilisation et de
compréhension de plusieurs complexes domaines. Le développement de l‟informatique et de
la technologie continue à prendre une place de plus en plus importante dans presque tous les
domaines. Cela a donné une grande attention par les scientifiques, en particulier les
spécialistes dans les domaines : de l‟intelligence artificielle, les systèmes experts,
l‟apprentissage automatique « Machine Learning », et l‟apprentissage en profondeur « Deep
Learning ».

Dans ce chapitre, nous allons d‟abord présenter les techniques d‟apprentissage automatique «
Machine Learning ». Ensuite, nous décrivons l‟apprentissage profond. Et enfin, nous finissons
le chapitre par une conclusion.

II. Intelligence artificielle


Selon le dictionnaire Larousse, l‟intelligence Artificielle se définirait comme étant
«l‟ensemble de théories et de techniques mises en œuvre en vue de réaliser des machines
capables de simuler l‟intelligence.»

Ce serait , de ce fait , des ordinateurs ou des machines dotées de programmes capables


de performances similaires à l‟intelligence humaine, ou même, amplifiées par la technologie.

Ces machines sont en mesure de [17] :

• Raisonner

• Traiter de grandes quantités de données

• Discerner des modèles indétectables par l‟œil d‟un humain

• Comprendre et analyser ces modèles

• Interagir avec l‟Homme

17 | P a g e
Chapitre 02 : l’apprentissage automatique et l’apprentissage profond

• Apprendre progressivement

• Améliorer continuellement ses performances

Comment fonctionne l’Intelligence Artificielle ?


Selon Harry Shum , Président Exécutif de Microsoft , l‟IA fonctionne seulement s‟il y a
présence « d‟une vaste quantité de data ; d‟une puissance informatique extraordinaire,
notamment grâce au cloud; et des algorithmes révolutionnaires, basés sur le deeplearning ».

L‟IA s‟applique aujourd‟hui dans des domaines variés tels que:

- Les jeux de réflexion

- La recherche mathématique

- La finance

- La médecine

- Les assistants personnels et la domotique

- La reconnaissance faciale et la compréhension des langues

- La robotique

Le monde de demain se voit promettre des perspectives d‟avenir positives telles que le
développement durable et les progrès de la médecine.

L‟intelligence artificielle est un domaine qui est apparu récemment et qui a une soixantaine
d‟années environ. Ce domaine complexe qui mélange sciences, théories et techniques a
pour ambition d‟imiter les capacités cognitives et intelligentes d‟un être humain.

Tout commence en 1940-1960, l‟idée de faire le lien entre le fonctionnement des machines
et des êtres organiques émerge.

L‟objectif ultime de Norbert Wiener, pionnier de la cybernétique, était d‟allier différents


domaines qui sont les mathématiques, l‟électronique et l‟automatisation tout en
conjuguant la dimension animale.

18 | P a g e
Chapitre 02 : l’apprentissage automatique et l’apprentissage profond

Ce projet avait déjà été entamé par les scientifiques Warren McCulloch et Walter Pitts
en créant le tout premier neurone biologique modélisé mathématiquement par un neurone
formel. [97]

Figure 2.1 : le schéma d'un neurone biologique et neurone formel de 1943

Donald Hebb, neuropsychologue, invente en 1949, la règle du neurone formel doté de


capacités d‟apprentissages. Selon lui, quand un axone d‟une cellule A est assez près d‟une
cellule B, de manière répétitive, un processus de croissance et de métabolisme de
changement se mettent en place, ce qui augmente l‟efficacité de ces cellules.

Ce principe explique le phénomène de la mémoire qui va être formalisée comme un


processus de rétroaction dans les réseaux de neurones formels. Cette approche est sensée
reproduire le cerveau humain afin d‟essayer d‟imiter la pensée.

Le cognitivisme considère que la pensée peut être décrite par l‟utilisation de symboles.

Cette approche établit un lien entre la pensée et le langage. Cela permet aux machines de
manipuler le langage en supposant que cela les rendra intelligentes.

En 1950, la logique décimale et la logique binaire se mettent en place dans des machines
automatisées, les premiers véritables ordinateurs, qui permettent d‟exécuter ce qu‟on leur a
programmé. Le scientifique qualifie cet effet de « jeu de l‟imitation ». Il entame le débat sur le
questionnement de la limite entre l‟humain et la machine.

19 | P a g e
Chapitre 02 : l’apprentissage automatique et l’apprentissage profond

Entre 1980 et 1990 apparaissent les systèmes experts qui s‟appuient sur

un « moteur d‟inférence », c‟est à dire un logiciel qui correspond à un algorithme de


simulation des raisonnements déductifs, qui était programmé pour être un miroir logique
d‟un raisonnement humain. De ce fait, en entrant des données, le moteur fournit des réponses
d‟un haut niveau d‟expertise.

En mai 1997, le système expert d‟IBM « Deep Blue » gagne au jeu d‟échec contre le
champion du monde Garry Kasparov. Deep Blue a été conçu en s‟appuyant sur un algorithme
systématique de force brute, c‟est à dire que tous les coups e nvisageables étaient évalués
et pondérés.

Ce phénomène a été marqué par la défaite de l‟humain face à la machine et resta très
symbolique dans l‟histoire, bien que Deep blue n‟était en réalité parvenu à ne traiter qu'un
périmètre bien limité qui est celui des règles du jeu des échecs.

Depuis 2010 est apparu un nouvel essor dû à la collecte de données massives et d‟une
nouvelle puissance de calcul résultant de deux facteurs explicatifs de cette nouvelle ère de
l‟IA.

Le premier facteur est celui qui donne accès à des volumes massifs de données afin d‟établir
des algorithmes de classification d‟image.

Le deuxième facteur est celui de la découverte de la très grande efficacité des processeurs
de cartes graphiques des ordinateurs, pour accélérer le calcul des algorithmes
d‟apprentissage, c‟est à dire que les ordinateurs sont dotés d‟une performance leur
permettant de résoudre des tâches, sans être explicitement programmés pour chacune.

Cela concerne la conception, l‟analyse, le développement et l‟implémentation de ce


processus. Elle consiste à estimer un modèle à partir de données qui sont disponibles en
nombre fini, lors de la phase de conception du système. Puis à le produire en déterminant de
nouvelles données pouvant être soumises, afin d‟obtenir le résultat correspondant à la tâche
souhaitée. [98]

20 | P a g e
Chapitre 02 : l’apprentissage automatique et l’apprentissage profond

III. Deep Learning vs Machine Learning :quelles sont leurs différences ?

Beaucoup de personnes se méfient de l‟intelligence artificielle. Elles ne comprennent pas


comment les ordinateurs peuvent apprendre et prendre des décisions intelligentes. Pourtant,
les principes fondamentaux de l‟IA sont à la portée de tous.

Le Machine learning (apprentissage automatique) et le Deep learning (apprentissage profond)


sont les deux concepts les plus importants qui rendent l‟intelligence artificielle possible. On
confond bien souvent ces deux termes, alors qu‟ils désignent deux méthodes bien distinctes
employées dans des champs d‟application différents.

(voir figure 2.2)

Figure2.2: Deep Learning vs Machine Learning [20].

1. Le Machine learning

L’apprentissage automatique (Machine Learning) est la technologie la plus ancienne et


la plus simple. Elle s‟appuie sur un algorithme qui adapte lui-même le système à partir
des retours faits par l‟humain. La mise en place de cette technologie implique l‟existence
de données organisées. Le système est ensuite alimenté par des données structurées et
catégorisées lui permettant de comprendre comment classer de nouvelles données
similaires. En fonction de ce classement, le système exécute ensuite les actions

21 | P a g e
Chapitre 02 : l’apprentissage automatique et l’apprentissage profond

programmées. Il sait par exemple identifier si une photo montre un chien ou un chat et
classer le document dans le dossier correspondant.

Après une première phase d‟utilisation, l‟algorithme est optimisé à partir des feedbacks du
développeur, qui informent le système des classifications erronées et lui indiquent les bonnes
catégories.

1.1 Types d’apprentissage automatique

Dans le domaine du Machine Learning (apprentissage automatique en français), il existe


deux principaux types d‟apprentissages : supervisées et non supervisées. La principale
différence entre les deux types réside dans le fait que l‟apprentissage supervisé se fait sur
la base d‟une vérité. En d‟autres termes, nous avons une connaissance préalable de ce que
devraient être les valeurs de sortie de nos échantillons. Par conséquent, l‟objectif de
l‟apprentissage supervisé est d‟apprendre une fonction qui, à partir d‟un échantillon de
données et des résultats souhaités, se rapproche le mieux de la relation entre entrée et sortie
observable dans les données. En revanche, l‟apprentissage non supervisé n‟a pas de résultats
étiquetés. Son objectif est donc de déduire la structure naturelle présente dans un ensemble
de points de données. Dans cet article, nous allons voir toutes les différences entre
l‟apprentissage supervisé et non supervisé. [21]

 Apprentissage supervisé:

La majorité des apprentissages automatiques utilisent un apprentissage supervisé


(supervisedlearning).

L‟apprentissage supervisé consiste en des variables d‟entrée (x) et une variable de sortie
(Y). Vous utilisez un algorithme pour apprendre la fonction de mapping de l‟entrée à la
sortie.

Y = f (X) . (2.1)

Le but est d‟appréhender si bien la fonction de mapping que, lorsque vous avez de
nouvelles données d‟entrée (x), vous pouvez prédire les variables de sortie (Y) pour ces
données.

22 | P a g e
Chapitre 02 : l’apprentissage automatique et l’apprentissage profond

C‟est ce qu‟on appelle l‟apprentissage supervisé, car le processus d‟un algorithme tiré de
l‟ensemble de données de formation (training set) peut être considéré comme un enseignant
supervisant le processus d‟apprentissage. Nous connaissons les réponses correctes,
l‟algorithme effectue des prédictions itératives sur les données d‟apprentissage et est
corrigé par l‟enseignant. L‟apprentissage s‟arrête lorsque l‟algorithme atteint un niveau
de performance acceptable.

Figure2.3 : Apprentissage supervisé [22].

Les algorithmes de l‟apprentissage automatique supervisé sont les plus couramment utilisés, il
y deux types d‟apprentissage supervisé : LaClassification et de la Régression

Figure 2.4 : La Classification et de la Régression

23 | P a g e
Chapitre 02 : l’apprentissage automatique et l’apprentissage profond

 Classification: Un problème de classification survient lorsque la variable de sortie


est une catégorie, telle que «rouge», «bleu» ou «maladie» et «pas de maladie».
 Exemples :
o En finance et dans le secteur bancaire pour la détection de la fraude par carte
de crédit (fraude, pas fraude).
o Détection de courrier électronique indésirable (spam, pas spam).
o Dans le domaine du marketing utilisé pour l‟analyse du sentiment de texte
(heureux, pas heureux).
o En médecine, pour prédire si un patient a une maladie particulière ou non.
 Régression: Un problème de régression se pose lorsque la variable de sortie est une
valeur réelle, telle que «dollars» ou «poids».
 Exemples :
o Prédire le prix de l‟immobilier
o Prédire le cours de bourse

Certains types courants de problèmes fondés sur la classification et la régression incluent la


prévision et la prévision de séries temporelles, respectivement.

Voici quelques exemples populaires d‟algorithmes d‟apprentissage automatique supervisé:

 Arbres de décision
 K NearestNeighbours
 SVC linéaire (classificateur de vecteur de support)
 Régression logistique
 Naive Bayes
 Les réseaux de neurones
 Régression linéaire
 Régression vectorielle de support (SVR)
 Arbres de régression

24 | P a g e
Chapitre 02 : l’apprentissage automatique et l’apprentissage profond

 Apprentissage automatique non supervisé

L‟apprentissage non supervisé (Unsupervised Learning) consiste à ne disposer que de


données d‟entrée (X) et pas de variables de sortie correspondantes.

L‟objectif de l‟apprentissage non supervisé est de modéliser la structure ou la distribution


sous-jacente dans les données afin d‟en apprendre davantage sur les données.

On l‟appelle apprentissage non supervisé car, contrairement à l‟apprentissage supervisé ci-


dessous , il n‟y a pas de réponse correcte ni d‟enseignant. Les algorithmes sont laissés à
leurs propres mécanismes pour découvrir et présenter la structure intéressante des données.

Figure 2.5 : Apprentissage non supervisé [22]

L‟apprentissage non supervisé comprend deux catégories d‟algorithmes: Algorithmes de


regroupement et d‟association.

Figure 2.6 : Apprentissage non supervisé [22]

25 | P a g e
Chapitre 02 : l’apprentissage automatique et l’apprentissage profond

il y a deux types d‟apprentissage non supervisé :[22]

 Regroupement ou Clustering

La mise en cluster consiste à séparer ou à diviser un ensemble de données en un certain


nombre de groupes, de sorte que les ensembles de données appartenant aux mêmes
groupes se ressemblent davantage que ceux d‟autres groupes. En termes simples, l‟objectif
est de séparer les groupes ayant des traits similaires et de les assigner en grappes.

Voyons cela avec un exemple. Supposons que vous soyez le chef d‟un magasin de location
et que vous souhaitiez comprendre les préférences de vos clients pour développer votre
activité. Vous pouvez regrouper tous vos clients en 10 groupes en fonction de leurs
habitudes d‟achat et utiliser une stratégie distincte pour les clients de chacun de ces 10
groupes. Et c‟est ce que nous appelons le Clustering.

 Association

L‟association consiste à découvrir des relations intéressantes entre des variables dans de
grandes bases de données. Par exemple, les personnes qui achètent une nouvelle maison
ont aussi tendance à acheter de nouveaux meubles. Il découvre la probabilité de co-
occurrence d‟éléments dans une collection.

En résumé, le clusteringconsisteà grouper des points de données en fonction de leurs


similitudes, tandis que l‟association consiste à découvrir des relations entre les attributs de
ces points de données. [13]

Voici une liste de certains algorithmes d‟apprentissage automatique non supervisés:

 K-meansclustering
 DimensionalityReduction (Réduction de la dimensionnalité)
 Neural networks / Deep Learning
 Principal Component Analysis (Analyse des composants principaux)
 Singular Value Decomposition (Décomposition en valeur singulière)
 Independent Component Analysis (Analyse en composantes indépendantes)

26 | P a g e
Chapitre 02 : l’apprentissage automatique et l’apprentissage profond

 Distribution models (Modèles de distribution)


 Hierarchicalclustering (Classification hiérarchique)

 Apprentissage par renforcement


L'apprentissage par renforcement est une approche de l'intelligence artificielle qui met l'accent
sur l'apprentissage du système à travers ses interactions avec l'environnement. Avec
l'apprentissage par renforcement, le système adapte ses paramètres en fonction des réactions
reçues de l'environnement, qui fournit ensuite un retour d'information sur les décisions prises.

Par exemple, un système qui modélise un joueur d'échecs qui utilise le résultat des étapes
précédentes pour améliorer ses performances, est un système qui apprend avec le
renforcement. La recherche actuelle sur l'apprentissage avec renforcement est hautement
interdisciplinaire et comprend des chercheurs spécialisés dans les algorithmes génétiques, les
réseaux de neurones, la psychologie et les techniques de contrôle.

Parmi les premiers algorithmes d‟apprentissage par renforcement, c‟est l‟algorithme «


Temporal différence Learning », proposé par « Richard Sutton » en 1988 [24] . Aussi
l‟algorithme « Q-Learning » mis au point lors d'une thèse soutenue par « Chris Watkins » en
1989 et publié réellement en 1992 [25].

La figure ci-dessus exprime les différentes branches et algorithmes de l‟apprentissage


automatique

Figure 2.7 : Les approches et les algorithmes de l‟apprentissage automatique [26].

27 | P a g e
Chapitre 02 : l’apprentissage automatique et l’apprentissage profond

1.2 Le choix d’ un type d’apprentissage automatique

Avec la présence de différents types de classifier pour l‟apprentissage automatique,


l‟opération de choix d‟un type est une question typique « Quel algorithme dois-je utiliser ? ».

Selon [26] la réponse à cette question varie selon les facteurs suivants :

✓ La taille, la qualité et la nature des données.

✓ Le temps de calcul disponible.

✓ L‟urgence de la tâche.

✓ Le but d‟utilisation de ces données.

2. Le Deep Learning (apprentissage profond)

Le système fonctionne à partir de plusieurs couches de réseaux neuronaux, qui combinent


différents algorithmes en s‟inspirant du cerveau humain. Ainsi, le système est capable de
travailler à partir de données non structurées.

Cette approche est particulièrement adaptée pour les tâches complexes, lorsque tous les
aspects des objets à traiter ne peuvent pas être catégorisés en amont. Le système du Deep
Learning identifie lui-même les caractéristiques discriminantes. Dans chaque couche, il
recherche un nouveau critère spécifique de l‟objet, qui sert de base pour décider de la
classification retenue pour l‟objet à la fin du processus.

Important : avec le Deep learning, le système identifie lui-même les caractéristiques


discriminantes des données, sans avoir besoin d‟une catégorisation préalable.

Le système n‟a pas besoin d‟être entraîné par un développeur. Il évalue lui-même le
besoin de modifier le classement ou de créer des catégories inédites en fonction des
nouvelles données.

28 | P a g e
Chapitre 02 : l’apprentissage automatique et l’apprentissage profond

Tandis que le Machine learning fonctionne à partir d‟une base de données contrôlable, le
Deep learning a besoin d’un volume de données bien plus considérable. Le système doit
disposer de plus de 100 millions d‟entrées pour donner des résultats fiables.

Par ailleurs, la technologie nécessaire pour le Deep learning est plus sophistiquée. Elle
exige plus de ressources IT et s‟avère nettement plus coûteuse que le Machine learning :
elle n‟est donc pas intéressante, du moins à l‟heure actuelle, pour une utilisation de masse
par les entreprises; D‟après [27] l‟apprentissage profond est un réseau neuronal avec un
grand nombre de paramètres et de couches, l‟exemple de base c‟est le perceptron
multicouche MLP « multi layer perceptron » (Voir figure 2.8).

Figure 2.8 : Un perceptron multicouche [27].

Perceptrons a été inventé en 1958 au « Cornell Aviation Laboratory » par « Frank Rosenblat »
financé par le bureau de recherche navale des États-Unis, Le mot vient de verbe latin «
Percipio» qui signifie en Anglais understand ; en Français comprendre, qui montre que Le
robot ou l‟appareil peut apprendre et comprendre le monde extérieur [28]

Un perceptron multicouche avec plusieurs couches cachées entre la couche d'entrée et la


couche de sortie est un réseau de neurones profonds (DNN), le DNN est une fonction
mathématique, qui mappe certains ensembles de valeurs d‟entrée aux valeurs de sortie. La
fonction est formée par la composition de nombreuses fonctions plus simples [29].

Certaines de ses caractéristiques [27]:

✓ Plus de neurones.

29 | P a g e
Chapitre 02 : l’apprentissage automatique et l’apprentissage profond

✓ Des moyens plus complexes de connecter les couches neurones dans les réseaux neuronal.

✓ Puissance de calcul .

✓ Extraction automatique des fonctionnalités .

L'apprentissage profond s'applique dans divers domaines [29] tel que :

✓ L'intelligence artificielle en général.

✓ La reconnaissance visuelle et la comparaison de forme.

✓ La robotique.

✓ La santé et la bioinformatique.

✓ La sécurité.

2.1. Les architectures d’apprentissage en profondeur


Les trois grandes architectures de réseaux profonds selon [27]:

➢ Réseaux de neurones pré-entraînés non supervisés.

➢ Réseaux neuronaux convolutionnels (CNN).

➢ Réseaux neuronaux récurrents (RNN)

2.1.1 Réseaux neuronaux convolutionnels (CNN)

Avant les réseaux de neurones convolutifs, les méthodes de classification automatiques les
plus couramment utilisées pour les images étaient les algorithmes :

 des plus proches voisins (en anglais k-Nearest Neighbors, k-NN),


 des machines à vecteurs de support ou les séparateurs à vaste marge (en anglais
Support Vector Machine, SVM), et
 des forêts aléatoires (en anglais Random Forest, RF) [12].

30 | P a g e
Chapitre 02 : l’apprentissage automatique et l’apprentissage profond

Comment fonctionnent les réseaux de neurones convolutifs ?

L‟intelligence artificielle est l'utilisation de méthodes et techniques permettant la simulation


de l‟intelligence humaine. Dans cette partie nous expliquerons le fonctionnement d‟un
neurone artificiel, puis présenterons l’architecture des réseaux de neurones convolutifs et
ses principales composantes.

Qu’est-ce qu’un neurone artificiel ?

Un neurone artificiel est un ensemble d‟opérations mathématiques. Tout d‟abord un poids


et un biais sont appliqués de manière affine à une valeur d‟entrée : en analyse d‟images
celle-ci est la valeur d’un pixel. Puis, une fonction d’activation est appliquée au résultat
intermédiaire pour représenter les données dans l‟espace des données de cette fonction.
Souvent, cette fonction d‟activation est non-linéaire, car elle permet de représenter des
données complexes où la combinaison linéaire ne fonctionne pas.

Figure 2.9:Un neurone artificiel

Quelle forme à l’architecture d’un réseau de neurones convolutifs ?

Cette architecture de réseaux est inspirée du fonctionnement du cortex visuel des animaux.
L‟analyse du champ visuel est faite au travers d‟un ensemble de sous-régions se
chevauchant et pavant l‟image. Chaque sous-région est analysée par un neurone du cerveau

31 | P a g e
Chapitre 02 : l’apprentissage automatique et l’apprentissage profond

de l‟animal, afin de pré-traiter de petites quantités d‟information. C'est ce que l‟on nomme le
traitement convolutif [30].

L‟architecture d‟un réseau de neurones convolutifs est formée par une succession de
blocs de traitement pour extraire les caractéristiques discriminant la classe d‟appartenance
de l‟image des autres.

Un bloc de traitement se compose d‟une à plusieurs :

 couches de convolution (CONV) qui traitent les données d'un champ récepteur ;
 couches de correction (ReLU), souvent appelée par abus « ReLU » en référence à la
fonction d'activation (Unité de rectification linéaire) ;
 couches de pooling (POOL), qui permet de compresser l'information en réduisant la
taille de l'image intermédiaire (souvent par sous-échantillonnage).

Les blocs de traitement s‟enchaînent jusqu‟aux couches finales du réseau qui réalisent la
classification de l‟image et le calcul de l‟erreur entre la prédiction et la valeur cible :

 couche « entièrement connectée » (FC), qui est une couche de type perceptron ;
 couche de perte (LOSS) [13].

Comment fonctionne une convolution ?

L‟image est :

1. découpée en sous-régions, appelées tuiles ; et


2. analysée par un noyau de convolution.

Ce noyau de convolution a la taille d‟une tuile, souvent 3*3 ou 5*5. La zone analysée
(champ réceptif) est légèrement plus grande que le noyau, car un pas est ajouté ; de façon à
ce que les champs réceptifs se chevauchent. Cette astuce permet d'obtenir une meilleure
représentation de l'image et d‟améliorer la cohérence du traitement de celle-ci.

L‟analyse des caractéristiques de l‟image par le noyau de convolution est une opération de
filtrage avec une association de poids à chaque pixel. L‟application du filtre à l'image est
appelée une convolution [30].

32 | P a g e
Chapitre 02 : l’apprentissage automatique et l’apprentissage profond

Après une convolution, une carte de caractéristiques (en anglais featuresmap) est obtenue,
c‟est une représentation abstraite de l‟image. Ses valeurs dépendent des paramètres du
noyau de convolution appliqué et des valeurs de pixels de l‟image d‟entrée.

Qu’est-ce qu’une couche de convolution (CONV) ?

Une couche de convolution est un empilement de convolutions. En effet, l‟image est


parcourue par plusieurs noyaux de convolution qui donnent lieu à plusieurs cartes de
caractéristiques de sorties. Chaque noyau de convolution possède des paramètres
spécifiques à l‟information qui est recherchée dans l‟image (par exemple: un noyau de
convolution de type filtre Sobel a des paramètres permettant de rechercher les contours
dans l'image).

Le choix des paramètres du noyau de convolution dépend de la tâche à résoudre. Avec les
méthodes deep learning, ces paramètres sont automatiquement appris par l‟algorithme à
partir des données d‟entraînement [31]. Notamment, grâce à la technique de rétro
propagation du gradient, qui permet l‟ajustement des paramètres en fonction de la valeur du
gradient de la fonction de perte. La fonction de perte calcule l‟erreur entre la valeur prédite
et la valeur cible.

Figure 2.10 : Schéma d‟une convolution avec un noyau de taille 3*3 et un pas de 2

33 | P a g e
Chapitre 02 : l’apprentissage automatique et l’apprentissage profond

Comment fonctionne une couche de correction (ReLU) ?

La couche de correction ou d‟activation est l‟application d‟une fonction non-linéaire aux


cartes de caractéristiques en sortie de la couche de convolution. En rendant les données
non-linéaires, elle facilite l‟extraction des caractéristiques complexes qui ne peuvent pas
être modélisées par une combinaison linéaire d‟un algorithme de régression.

Les fonction non-linéaires les plus utilisées sont :

 sigmoïde ou logistique,

.(2.2)

 tangente hyperbolique,

.(2.3)

 Unité de rectification linéaire (ReLU).

.(2.4)

Bien souvent, la fonction ReLU est choisie, car elle maximise la décision de la fonction affine
appliquée par convolution.

Qu’est-ce-qu’une couche de pooling (POOL) ?

L‟étape de pooling est une technique de sous-échantillonnage. Généralement, une couche de


pooling est insérée régulièrement entre les couches de correction et de convolution. En

34 | P a g e
Chapitre 02 : l’apprentissage automatique et l’apprentissage profond

réduisant la taille des cartes de caractéristiques, donc le nombre de paramètres du réseau,


cela accélère le temps de calcul et diminue le risque de sur-apprentissage.

L‟opération de pooling la plus courante est celle du maximum : MaxPool(2*2, 2). Elle est
plus efficace que la moyenne, car elle maximise le poids des activations fortes. Elle est
appliquée à la sortie de la couche précédente comme un filtre de convolution de taille
(2*2) et se déplace avec un pas de 2. En sortie de la couche de pooling est obtenue une
carte de caractéristique compressée par un facteur de 4.

Figure 2.11 : Schéma d‟une opération de pooling avec un noyau MaxPool de taille 2*2 et
d‟un pas de 2

Comment fonctionne une couche “entièrement connectée” (FC) ?

Cette couche est à la fin du réseau. Elle permet la classification de l‟image à partir des
caractéristiques extraites par la succession de bloc de traitement. Elle est entièrement
connectée, car toutes les entrées de la couche sont connectées aux neurones de sorties de
celle-ci. Ils ont accès à la totalité des informations d'entrée. Chaque neurone attribue à

35 | P a g e
Chapitre 02 : l’apprentissage automatique et l’apprentissage profond

l‟image une valeur de probabilité d‟appartenance à la classe i parmi les C classes possibles.

Figure 2.12 : Schéma d‟une couche entièrement connectée avec 6 classes.

Contrairement à la phase d‟extraction des caractéristiques où les neurones de traitement


sont indépendants entre eux et ont uniquement accès à l‟information du champ réceptif
qu‟ils traitent.

Qu’est-ce-qu’une couche de perte (LOSS) ?

La couche de perte est la dernière couche du réseau. Elle calcule l‟erreur entre la prévision du
réseau et la valeur réelle. Lors d‟une tâche de classification, la variable aléatoire est discrète,
car elle peut prendre uniquement les valeurs 0 ou 1, représentant l‟appartenance (1) ou non
(0) à une classe. C'est pourquoi la fonction de perte la plus courante et la plus adaptée est la
fonction d‟entropie croisée (en anglais cross-entropy).

36 | P a g e
Chapitre 02 : l’apprentissage automatique et l’apprentissage profond

Celle-ci est issue du domaine de la théorie de l‟information, et mesure la différence globale


entre deux distributions de probabilité (celle de la prévision du modèle, celle du réel) pour
une variable aléatoire ou un ensemble d'évènements [32]. Formellement, elle s‟écrit :

.(2.5)

avec:

 y la probabilité estimée d‟appartenance de x à la classe i,


 p la probabilité réelle d‟appartenance de x à la classe i, sachant qu‟il y a C classes.

2.2.2 Réseaux de neurones récurrents RNN:

Un réseau de neurones récurrents est un réseau de neurones artificiels présentant des


connexions récurrentes. Un réseau de neurones récurrents est constitué d'unités (neurones)
interconnectées interagissant non-linéairement et pour lequel il existe au moins un cycle dans
la structure. Les unités sont reliées par des arcs (synapses) qui possèdent un poids. La sortie
d'un neurone est une combinaison non linéaire de ses entrées.

Figure 2.13: Schéma d'un réseau de neurones récurrents à une unité reliant l'entrée et la sortie
du réseau. A droite la version « dépliée » de la structure.

37 | P a g e
Chapitre 02 : l’apprentissage automatique et l’apprentissage profond

Les réseaux de neurones récurrents sont adaptés pour des données d'entrée de taille variable.
Ils conviennent en particulier pour l'analyse de séries temporelles. Ils sont utilisés en
reconnaissance automatique de la parole ou de l'écriture manuscrite - plus en général en
reconnaissance de formes - ou encore en traduction automatique. « Dépliés », ils sont
comparables à des réseaux de neurones classiques avec des contraintes d'égalité entre les
poids du réseau (voir schéma à droite). Les techniques d'entraînement du réseau sont les
mêmes que pour les réseaux classiques (rétro propagation), néanmoins les réseaux de
neurones récurrents se heurtent au problème de disparition du gradient pour apprendre à
mémoriser des évènements passés. Des architectures particulières répondent à ce dernier
problème, on peut citer en particulier les réseaux Long short-termmemory. On peut étudier
les comportements des réseaux de neurones récurrents avec la théorie des bifurcations, mais
la complexité de cette étude augmente très rapidement avec le nombre de neurones.

2.2.3 Long short-termmemory (RNN amélioré)


Un réseau Long short-termmemory (LSTM), en français réseau récurrent à mémoire court et
long terme ou plus explicitement réseau de neurones récurrents à mémoire court-terme et long
terme, est l'architecture de réseau de neurones récurrents la plus utilisée en pratique qui
permet de répondre au problème de disparition de gradient. Le réseau LSTM a été proposé par
Sepp Hochreiter et Jürgen Schmidhuber en 1997[34]. L'idée associée au LSTM est que
chaque unité computationnelle est liée non seulement à un état caché h mais également à un
état c de la cellule qui joue le rôle de mémoire. Le passage de Ct-1aCtse fait par transfert à
gain constant et égal à 1. De cette façon les erreurs se propagent aux pas antérieurs (jusqu'à 1
000 étapes dans le passé) sans phénomène de disparition de gradient. L'état de la cellule peut
être modifié à travers une porte qui autorise ou bloque la mise à jour (input gate). De même
une porte contrôle si l'état de cellule est communiqué en sortie de l'unité LSTM (output gate).
La version la plus répandue des LSTM utilise aussi une porte permettant la remise à zéro de
l'état de la cellule (forgetgate) [34]. On peut représenter une cellule LSTM de la façon
suivante :

38 | P a g e
Chapitre 02 : l’apprentissage automatique et l’apprentissage profond

Figure 2.14:Représentation simplifiée d‟une cellule LSTM.

Comme le RNN, le LSTM définit donc une relation de récurrence, mais utilise une variable
supplémentaire qui est le cell state c :

.(2.6)

L‟information transite d‟une cellule à la suivante par deux canaux, h et c. À l‟instant t, ces
deux canaux se mettent à jour par l‟interaction entre leurs valeurs précédentes ht-1et ct-1ainsi
que l‟élément courant de la séquence xt.

La cellule LSTM pas à pas:

1- La tèmecellule LSTM prend 3 vecteurs en entrée :

 L‟élément courant de la séquence xt : représentation vectorielle du tème caractère


(vecteur de taille M)
 Le hidden state de la cellule précédente ht-1(vecteur de taille R)
 Le cell state de la cellule précédente ct-1 (vecteur de taille R).

C‟est ce dernier vecteur que nous allons suivre particulièrement. Il s‟agit d‟une route
privilégiée de transmission d‟information sur la séquence. Pour éviter le problème du

39 | P a g e
Chapitre 02 : l’apprentissage automatique et l’apprentissage profond

vanishing gradient, le cell state est en effet mis à jour de façon additive à chaque étape, sans
passer par une activation.

Figure 2.15 : Input d 'une celuule LSTM

2- La forgetgate est une couche dense de taille R avec une activation sigmoïde. À partir de
ht-1 et xt, cette forgetgate produit un vecteur ft de taille R, dont les valeurs sont comprises
entre 0 et 1.

40 | P a g e
Chapitre 02 : l’apprentissage automatique et l’apprentissage profond

Figure 2.16: Filtre de la forget gate

3-La forget gate agit comme un filtre pour « oublier » certaines informations du cell state. En
effet, on effectue une multiplication terme à terme entre ft et ct-1, ce qui a tendance à annuler
les composantes de ct-1 dont les homologues côté ft sont proches de 0. On obtient alors un cell
state filtré, toujours de taille R.

41 | P a g e
Chapitre 02 : l’apprentissage automatique et l’apprentissage profond

Figure 2.17: Cell state filtré par laforgetgate

4- L‟input gate produit un filtre it de valeurs comprises entre 0 et 1 et de taille R, à partir de


ht-1 et xt, de façon similaire à laforgetgate.

Figure 2.18: Filtre de l‟input gate

42 | P a g e
Chapitre 02 : l’apprentissage automatique et l’apprentissage profond

5- En parallèle, un vecteur kt de taille R est créé par une couche tanh. kt est le vecteur
candidat pour mettre à jour le cell state.

Figure 2.19: Vecteur candidat à la mise à jour du cell state

6-Le candidat kt est filtré par l‟input gateit via une multiplication terme à terme. On obtient le
vecteur de mise à jour du cell state.

43 | P a g e
Chapitre 02 : l’apprentissage automatique et l’apprentissage profond

Figure2.20: Vecteur candidat filtré par l‟input gate

7- Le cell state filtré (obtenu à l‟étape 3) est mis à jour grâce au vecteur candidat filtré
(obtenu à l‟étape 6). La mise à jour est une simple addition terme à terme de ces deux
vecteurs. On obtient alors le nouveau cell state ct.

44 | P a g e
Chapitre 02 : l’apprentissage automatique et l’apprentissage profond

Figure 2.21: Mise à jour du cell state par addition du vecteur candidat filtré

8- De façon analogue à ft et it, l‟output gate produit un filtre ot de valeurs entre 0 et 1, et de


taille R.

Figure2.22:Filtre de l‟output gate

9- Les valeurs du nouveau cell statect sont ramenées à l‟intervalle ]-1, 1[ par une activation
tanh. Un filtrage par l‟output gateot est ensuite effectué pour enfin obtenir la sortie ht.

45 | P a g e
Chapitre 02 : l’apprentissage automatique et l’apprentissage profond

Figure2.23: Nouveau hidden state

Tableau 2.1 : Comparaison entre l‟apprentissage automatique et l‟apprentissage en


profondeur[97]

46 | P a g e
Chapitre 02 : l’apprentissage automatique et l’apprentissage profond

IV. Conclusion

Nous avons consacré ce chapitre à la présentation des notions de base de l‟intelligence


artificielle et son évolution, l'apprentissage automatique et ses types et nous concluons ce
chapitre avec les algorithmes les plus populaires et les plus utilisés.

47 | P a g e
Chapitre03
L’approche proposée
Chapitre03 : l’approche proposée

I. Introduction
La découverte, la sélection, la composition et le tri de services, représentent les opérations de
base pour tout système de manipulation de services sur Internet. Ces opérations reposent
essentiellement sur des techniques et des technologies Informatique et linguistique
développées récemment.

Au cours de ces dernières années, divers systèmes basés sur l‟apprentissage en profondeur «
Deep Learning » ont été mis au point pour améliorer la classification des services web dans le
cloud. Dans ce chapitre, nous allons présenter notre approche nommée (Classification Web
Services Basée LSTM) CWS-LSTM, qui consiste à classifier les services web en utilisant
l‟apprentissage en profondeur « Deep Learning » supervisé. Ensuite nous allons expliquer son
fonctionnement. Finalement, nous concluons ce chapitre.

II. L’architecture de l’approche proposée CWS-LSTM

L‟architecture réseau proposée dans notre travail nommé : CWS-LSTM (Classification Web
Services using LSTM); est une architecture basée sur l‟apprentissage en profondeur « Deep
Learning » supervisé.

L'idée de cette architecture est axée principalement sur l'utilisation de l‟architecture LSTM
(détaillée dans le chapitre 2, page54), pour la classification des services web dans le cloud.

CWS-LSTM est représentée par trois couches principalles :

la couche d‟entrée : type LSTM


la couche cachée: type LSTM
la couche de sortie: type Dense

49 | P a g e
Chapitre03 : l’approche proposée

1. Description de l’architecture proposée

Cette architecture est montrée dans la figure 3.2

Figure 3.1: Architecture CWS-LSTM

1.1 La couche d’entrée

Nous avons utilisé une couche de type LSTM comme une couche d‟entrée, nous avons
défini les paramètres de cette couche comme suit :

loss_function = 'categorical_crossentropy' Utilisé comme une fonction de


perte pour un modèle de classification multi-catégorique et effectue ces données qui ont deux
étiquettes de sortie ou plus. Chaque valeur de codage de classe est définie dans le format
array de 0 et 1. La fonction de perte fonctionne pour calculer les échantillons identifiés
correctement et ceux qui ne les identifient pas,

50 | P a g e
Chapitre03 : l’approche proposée

Epochs = 25 c'est le nombre de cycle d'entrenement

Batch_Size = 20 c'est la gamme de base de donnée utilisé

dans chaque cycle d' entrenement

Input_Shape = (1, 9) notre donnée en entrée( les neuf s attribus)

num_classes = 4 les quatre classes en sortie

Tel que le nombre d‟entrées est 9, chaque entrée représente un attribut de qualité de service de
notre base de données. Le nombre 4 représente les valeurs de classification dans notre base de
données

Nous avons adopté la fonction tangente hyperbolique comme une fonction d'activation dans
notre modèle , notée tanh (ou th) est la fonction complexe suivante :

.(3.1)

Figure 3.2 : Fonction tanh

51 | P a g e
Chapitre03 : l’approche proposée

 La fonction tanh est simplement la fonction de la tangente hyperbolique.


 tanh donne un résultat entre -1 et 1

Tel que x représente l‟entrée d‟un neurone, en d‟autres termes c‟est la somme pondérée du
poids et la valeur d‟entrée d‟un neurone.

(3.2)

Tel que :

 𝒘 Est la valeur de poids associée à l‟entrée i.

 𝒖𝒕 Représente la valeur d‟entrée i.


 𝒘 Représente la longueur du vecteur d‟entrée par rapport au poids 𝒘

 𝒃 𝒂𝒔 est une constante utilisée pour ajuster la sortie avec la somme pondérée des
entrées du neurone.

1.2 La couche cachée

Est une couche de type LSTM, elle définit la relation entre les 9 attributs de chaque service.
Afin de classifier les services dans l‟étape suivante.

1.3 La couche de sortie

Cette couche est une couche Dense, elle est entièrement connectée (fully connected layer),
une couche standard issue d'un réseau de neurones standard (fully connected NN), en d'autre
terme

La couche Dense est une couche entièrement connectée.

Elle utilise la fonction d'activation SoftMax pour classifier les résultats

52 | P a g e
Chapitre03 : l’approche proposée

 La fonction Softmax permet de transformer un vecteur réel en vecteur de


probabilité.de 0 jusqu‟a 3 (selon le nombre de classes dans notre approche )
 On l‟utilise souvent dans la couche finale d‟un modèle de classification, notamment
pour les problèmes multi classe.
 Dans la fonction Softmax, chaque vecteur est traité indépendamment. L‟argument axis
définit l‟axe d‟entrée sur lequel la fonction est appliquée.

En mathématiques, la fonction softmax, ou fonction exponentielle normalisée, est une

généralisation de la fonction logistique qui prend en entrée un vecteur de

K nombres réels et qui en sort un vecteur de K nombres réels strictement positifs et de


somme 1.

La fonction est définie par :

.(3.3)

Figure 3.3:fonction softmax

Pour augmenter la précision de notre modèle CWS-LSTM nous utilisons l'algorithme


d'optimisation ADAM disponible dans la bibliothèque KIRAS

53 | P a g e
Chapitre03 : l’approche proposée

Cet algorithme fusionne deux méthodes d'optimisation.

Tel que :

α - Taux d'apprentissage pour l'étape de descente de gradient.

β1 - Paramètre du pas de moment (également appelé premier moment en Adam).


Généralement 0,9

β2 - Paramètre pour l'étape RMSProp (également appelé second moment en Adam).


Généralement 0,99 ϵ - Paramètre de stabilité numérique.

Généralement 10 ^ -8 m, v - Estimations des premier et deuxième moments, respectivement.


Les valeurs initiales des deux sont définies sur 0.

t - Le paramètre de pas de temps pour les étapes de correction de biais. g et

f - Gradient et valeurs de fonction à θ.

Finalement, pour calculer l‟erreur nous avons utilisé la fonction categorical-crossentropy

54 | P a g e
Chapitre03 : l’approche proposée

Figure 3.4 fonction pour calculer l'erreur (3.3)

 C - nombre de classes
 log - le naturel log
 t- indicateur binaire (0 or 1)
 f - l'observation de probabilité prédite o est de classe c

Figure 3.5: Exemple de courbe de la fonction loss

55 | P a g e
Chapitre03 : l’approche proposée

La fonction categorical_crossentropy : il est utilisé comme fonction de perte d'un modèle de


classification multi catégorie et nous entendons les données qui ont deux étiquettes de sortie
ou plus. La valeur de codage de chaque catégorie est fixée sous forme d'avis composés de 0 et
1. La fonction de perte calcule les échantillons qui ont été correctement identifiés et ceux qui
ont échoué.

III. Le fonctionnement de l’approche

1. Prétraitements de l’approche

Dans notre approche, nous avons utilisé un apprentissage supervisé, dans le but de classifier
les services web dans le cloud. En se basant sur les valeurs des attributs suivants:

1 -Temps de réponse : temps pris pour envoyer une demande et recevoir une réponse

2 -Disponibilité : nombre d'invocations réussies/invocations totales

3 -Débit : nombre total d'appels pour une période de temps donnée

4 -Réussite : nombre de réponses/nombre de messages de requête

5 -Fiabilité : rapport entre le nombre de messages d'erreur et le nombre total de messages

6 -Conformité : la mesure dans laquelle un document WSDL suit Spécification WSDL

7 -Les meilleures pratiques : la mesure dans laquelle un service Web suit le profil de base
WS-I

8 - Latence : temps mis par le serveur pour traiter une requête donnée

9 -Documentation : mesure de la documentation (c'est-à-dire les balises de description) dans


wsdl

avant l'étape de normalisation de la base de données nous calculons le WSRF

2. la normalisation

Avant de classifier les services, nous devrons normaliser leurs valeurs de QoS (qualités de
services), afin qu‟elle a appartiennent à l‟intervalle [0,1]. Pour cela nous avons utilisé les
formules mathématiques suivantes :

56 | P a g e
Chapitre03 : l’approche proposée

1. Si la valeur de QoS est à augmenter nous avons utilisé la formule suivante :

. (3.4)

2. si la valeur de QoS est à diminuer, nous avons utilisé la formule suivante :

.(3.5)

Tel que :

 : est la valeur de qualité de service non-normalisée


 : est la valeur de qualité de service normalisée
 𝒂𝒙 : est la valeur de qualité de service maximale parmi les services disponibles
 : est la valeur de qualité de service minimaleparmi les services disponibles

Ensuite, on devise la base de données en deux parties entrainement et test,et on applique


notre architecture proposée.

3. la classification

Avant de commencer la classification des services web, nous avons initialisé les valeurs des
poids d‟entrée d‟une manière aléatoire.

En se basant sur la valeur du cout dans notre modèle c'est le wsrf

57 | P a g e
Chapitre03 : l’approche proposée

notre modèle effectue la classification des services.(nous avons utilisé 4 classes seront définit
dons le chapitre suivant).

C‟est la couche de sortie qui fournit la classe de service.

IV. La Back-propagation

Une fois la classe de chaque service a été trouvé en la comparant avec la classe désirée
qui se trouve dans la base de données.

Dans le but d‟effectuer la mise à jour des poids en utilisant l 'algorithme de Adam

déjà vu( page 54)

58 | P a g e
Chapitre03 : l’approche proposée

V. Conclusion

Ce chapitre décrit notre approche proposée, nommée CWS-LSTM. Cette dernière est une
approche pour la classification des services web dans le cloud, basée sur l‟apprentissage en
profondeur « Deep Learning » supervisé. Elle utilise un modèle basé sur 3 couches « couche
d‟entrée, couche cachée, et la couche de sortie). Tel que nous avons utilisé la base données
QWS que nous avons changé quelque paramètres pour obtenir les résultats voulu.

Tout au long de ce chapitre, nous avons expliqué le fonctionnement de l‟architecture


proposée CWS-LSTM, ainsi nous avons détaillé également chaque étape de notre approche, et
les différentes formules mathématiques utilisées.

Dans le chapitre suivant, nous allons présenter l‟implémentation de l‟approche proposée, afin
de montrer son efficacité.

59 | P a g e
Chapitre04
Expérimentations et étude des performances
Chapitre04 : Expérimentations et étude des performances

I. Introduction
L'apprentissage automatique (ML) est la dernière tendance dans le domaine de l'informatique
et toute personne ayant une inclination vers la science des données peut être vue en train
d'essayer d'en apprendre davantage sur le ML et comment l'appliquer pour résoudre des
problèmes du monde réel ou simplement créer un produit commercialisable.

Avec la publication de bibliothèques de programmation comme Keras ,ScikitLearn ,


TensorFlow et PyTorch pour n'en nommer que quelques-unes, le processus de développement
de modèles ML a été considérablement simplifié. Cependant, les gens sont toujours
confrontés à des défis pour configurer des environnements de codage capables de gérer de
telles bibliothèques et de nombreuses personnes ont des ordinateurs qui prennent très
longtemps pour exécuter des opérations d'apprentissage automatique sur des ensembles de
données, même modérément grands. [99]

Figure 4.1:Des bibliothèques de programmation.

Dans le chapitre précédent nous avons détaillé l‟approche proposée CWS-LSTM


(Classification of web services using LSTM) qui consiste à effectuer la classification des
services web sur le cloud computing selon la qualité de ce dernier en utilisant l‟apprentissage
profond supervisé.

60 | P a g e
Chapitre04 : Expérimentations et étude des performances

Ce chapitre s„attèlera à la présentation des outils utilisés, la description du simulateur


implémenté et une évaluation de l„approche proposée. Il est divisé en trois parties principales:

- La première partie décrit les outils utilisés

- La deuxième partie présente le langage de programmation

- La troisième partie représente une description de la base de données utilisée

- La quatrième partie représente les détails du code d‟implémentation de l‟approche


proposée, et une évaluation des performances de l‟approche proposée.

- La cinquième partie représente l‟interface et les fenêtres du modèle proposé dans


l'application

- La dernière partie représente les avantages de l‟approche proposée et quelque perspectives

II. Les outils

Pour évaluer et tester les performances de l‟approche proposée, nous devrons d‟abord passer
par l‟étape de l‟implémentation. Dans cette section, nous décrivons les différents outils, et les
langages de programmation utilisés

1. Environnement de développement

Pour implémenter l‟approche CWS-LSTM, nous avons choisi Colab(Voir


Figure 4.1) comme une plate-forme en ligne de développement.

1.1 Google Colaboratory

Figure 4.2 : Logo de GOOGLE COLABORATORY


61 | P a g e
Chapitre04 : Expérimentations et étude des performances

 En 2018, Google a lancé une plate-forme incroyable appelée « Google Colaboratory »


(communément appelée « Google Colab » ou simplement « Colab »). Colab est une
plate-forme en ligne basée sur le cloud basée sur le frameworkJupyterNotebook ,
conçue principalement pour une utilisation dans les opérations de ML et
d'apprentissage en profondeur. Il existe de nombreuses caractéristiques distinctives qui
le distinguent de tout autre environnement de codage.
 L'un des principaux avantages de l'utilisation de Colab est qu'il contient la plupart des
bibliothèques courantes nécessaires à l'apprentissage automatique telles que
TensorFlow ,Keras , ScikitLearn , OpenCV , numpy , pandas , etc. préinstallées.
Avoir toutes ces dépendances signifie que vous pouvez simplement ouvrir un cahier et
commencer à coder sans avoir à configurer quoi que ce soit. Toutes les bibliothèques
qui ne sont pas préinstallées peuvent également être installées à l'aide des commandes
de terminal standard. Alors que la syntaxe d'exécution des commandes de terminal
reste la même, vous devez ajouter un point d'exclamation (!) Au début de la
commande afin que le compilateur puisse l'identifier comme une commande de
terminal.

Figure 4.3 : Comment utiliser les commandes de terminal dans l'environnement Colab

 Une autre caractéristique est que l' environnement Colab est indépendant de la
puissance de calcul de votre ordinateur lui-même. Comme il s'agit d'un système basé

62 | P a g e
Chapitre04 : Expérimentations et étude des performances

sur le cloud, tant que vous disposez d'une connectivité Internet, vous pouvez exécuter
des opérations d'apprentissage automatique même lourdes à partir d'un ordinateur
relativement ancien qui, normalement, ne serait pas en mesure de gérer la charge de
l'exécution de ces opérations localement. De plus, Google propose également
gratuitement un GPU ( Graphics Processing Unit ) et un TPU ( Tensor Processing
Unit ). Ces accélérateurs matériels peuvent vous permettre d'exécuter des opérations
de machine learning lourdes sur de grands ensembles de données beaucoup plus
rapidement que n'importe quel environnement local.
 Bien que Colab vous permette de télécharger vos fichiers sur le runtime à chaque fois
que vous l'utilisez, je trouve que télécharger et re-télécharger de grands ensembles de
données chaque fois que vous redémarrez votre runtime peut être frustrant. Colab vous
offre également la polyvalence des données, une alternative simple en vous permettant
de «monter» Google Drive sur votre ordinateur portable. Cette opération ne nécessite
que deux lignes de code que Colab insère pour vous en un clic et cela vous permet de
lire les fichiers que vous avez téléchargés sur Google Drive. Cela signifie que vous
n'avez pas à télécharger à nouveau vos fichiers après chaque redémarrage de
l'exécution. Vous pouvez simplement les télécharger une fois et y accéder simplement
en montant le Google Drive.

Figure 4.4: Les boutons pour télécharger vos fichiers ou monter votre Google Drive.

63 | P a g e
Chapitre04 : Expérimentations et étude des performances

Trucs et astuces pour utiliser Colab


Lorsque vous ouvrez Google Colab pour la première fois , vous pouvez accéder
immédiatement à quelques blocs-notes de didacticiels pré-écrits pour commencer. Ceux-ci
peuvent être très utiles si vous avez peu ou même aucune expérience préalable du ML. Vous
pouvez également ouvrir un nouveau bloc-notes ( Python 3 pris en charge). Vous pouvez
également accéder à vos blocs-notes récents. Alternativement, si vous suivez certains des
didacticiels de base sur les sites Web TensorFlow ou PyTorch , des liens vers les
implémentations Colab de ceux-ci sont souvent présents sur le site Web lui-même.

Figure4.5 : Comment se connecter à un runtime

Une fois que vous avez ouvert votre notebook, vous devez cliquer sur le bouton «Connecter»
en haut à droite avant de pouvoir exécuter du code, mais parfois, cela se fait
automatiquement. Si vous exécutez du code avant de cliquer sur ce bouton, il se connecte
automatiquement à un runtime, puis l'exécute.

64 | P a g e
Chapitre04 : Expérimentations et étude des performances

Figure 4.6 : Comment changer le type d'exécution

Dans la barre d'outils en haut à gauche, si vous passez la souris sur `` Runtime '', vous pouvez
sélectionner l'option `` Changer le type d'exécution '', puis sélectionner l'accélérateur matériel
à utiliser (GPU ou TPU) si vous avez besoin de plus de ressources de calcul et de vitesse que
quoi est offert par le runtime CPU standard. Le GPU est nettement plus rapide que le temps
d'exécution par défaut (CPU) et le TPU est beaucoup plus rapide que même le GPU, donc ces
accélérateurs vous permettent de travailler avec de gros volumes de données à un coût
beaucoup plus rapide, sans que vous ayez à dépenser de grosses sommes d'argent pour acheter
somme de toute un Google Colabest sans contestel'outil gratuity ultime pour les personnes
souhaitant se lancer dans la science des données. Les différents avantages d'avoir un code
enregistré automatiquement lié à votre Google Drive couplé à leur pièce de séparation - le
GPU et le TPU gratuits font de Colabune plate-forme conviviale dans laquelle les personnes
qui cherchent à s'impliquer dans le domaine de la science des données trouveront beaucoup
d'utilité.

1.2 QT Designer

Est un logiciel qui permet de créer des interfaces graphiques Qt dans un environnement
convivial. L'utilisateur, par glisser-déposer, place les composants d'interface graphique et y
règle leurs propriétés facilement. Les fichiers d'interface graphique sont formatés en XML et
portent l'extension .ui

65 | P a g e
Chapitre04 : Expérimentations et étude des performances

La bibliothèque embarque divers thèmes de widgets qui lui donnent une bonne intégration
visuelle sur toutes les plateformes. Sur les environnements de bureau GNOME, Mac OS X et
Windows les applications Qt ont ainsi l'apparence d'applications natives.

Qt permet de personnaliser l'apparence des différents composants d'interface graphique en


utilisant le principe des feuilles de style en cascade (CSS).

Figure 4.7: Logo de QT Designer

Figure 4.8: Editeur QT

66 | P a g e
Chapitre04 : Expérimentations et étude des performances

III. Langage de programmation


De nos jours, il existe plusieurs langages de programmation et chaque langage possède ses
propres caractéristiques. Parmi ses langages, notre choix s‟est focalisé sur Python.

1. Python

Il est l'un des langages de programmation les plus intéressants du moment, il est inventé par «
Guido van Rossum », la première version de python est sortie en 1991. C‟est est un langage
de programmation interprété, multi paradigme et multiplateformes. Il favorise la
programmation impérative structurée, fonctionnelle et orientée objet [36].

Python est à la fois simple et puissant, il permet d'écrire des scripts très simples, et grâce à ses
nombreuses bibliothèques, nous pouvons travailler sur des projets plus ambitieux [36] .

Figure 4.9:Logo de python

2. Pour quoi Python ?


Python est un langage stable, flexible et il fournit divers outils pour les développeurs. Ce qui
permet de le classer en premier choix pour l‟apprentissage automatique, à partir du
développement, la mise en œuvre, et la maintenance. Python aide les développeurs de
développer des produits confiants [98].

Selon [98] Python possède de nombreux avantages:

67 | P a g e
Chapitre04 : Expérimentations et étude des performances

✓ Simple et cohérent : la simplicité de Python aide les développeurs à gérer

l‟algorithme complexe de l‟apprentissage automatique.

✓ La flexibilité : Le facteur de flexibilité réduit la possibilité d‟erreurs, il a laissé

les programmeurs prendre le contrôle complètement, et de travailler sur elle

confortablement.

✓ Bibliothèques et Framework : Les algorithmes de l‟apprentissage automatique

sont très complexes, mais Python est le secours avec une large gamme de

bibliothèques comme Scikit-learn, Keras et de Framework, à titre d‟exemple

TensorFlow.

✓Lisibilité : Python est facile à lire, de sorte que les développeurs peuvent

facilement comprendre le code.

✓ Indépendance de la plateforme : Python est un langage indépendant de la

plate-forme. Il est supporté par de nombreuses plateformes, y compris

Windows, LINUX et macOS.

IV. Base de données

Pour évaluer et tester notre approche, nous avons utilisé la base de données QWS
2.0(Quality of Web Service) Cest le premier base de données de services Web qui a mesuré
la qualité de service (QoS) des services Web réels introduit en 2007 et fait partie du travail de
thèse de doctorat d'Eyhab Al-Masri. la base de données QWS a été largement accepté dans la
communauté des chercheurs et téléchargé plus de 9 000 fois depuis sa première introduction
en 2007. L'objectif principal de cette base de données est d'offrir une base aux chercheurs de
services Web. Les services Web ont été collectés à l'aide du moteur de recherche de services
Web (WSCE) et la majorité de ces services ont été obtenus à partir de sources publiques sur le
Web, notamment les registres de description, de découverte et d'intégration universelles
(UDDI), les moteurs de recherche et les portails de services.

68 | P a g e
Chapitre04 : Expérimentations et étude des performances

La base de données QWS version 2.0 comprend un ensemble de 2 507 services Web et leurs
mesures de qualité de service Web (QWS) qui ont été effectuées au cours de l'année 2008 à
l'aide de notre cadre Web Service Broker (WSB). Chaque ligne de cette base de données
représente un service Web et ses neuf mesures QWS correspondantes (séparées par des
virgules). Les neuf premiers éléments sont des métriques QWS qui ont été mesurées à l'aide
de plusieurs outils de référence de services Web sur une période de six jours. Les valeurs
QWS représentent des moyennes des mesures recueillies au cours de cette période. Les deux
derniers paramètres représentent le nom du service et la référence au document WSDL.

1. Description de l'ensemble de données QWS

Chaque ligne de la base de données correspond à une implémentation de service Web


existante. L'ensemble de données contient une collection de services Web de notre référentiel
de services qui ont été surveillés en permanence pour des qualités de service particulières,
notamment :

69 | P a g e
Chapitre04 : Expérimentations et étude des performances

Les concepts clés utilisés dans la base de données QWS:

 Quality of Web Service (QWS):Capacité du service Web à fournir un traitement


sélectif à divers clients de la manière la plus efficace.

 Web Service RelevancyFunction (WsRF):WsRF est utilisé pour mesurer le


classement de qualité d'un service Web basé sur des métriques de qualité (1 à 9 ci-
dessus). qui se trouve dans la dixième ligne
 Documentation:L'une des principales propriétés des services Web est d'avoir une
documentation appropriée. La propriété QWS de documentation fournit une mesure
dans laquelle un service Web est auto descriptible et est basée sur l'examen de
documents WSDL, notamment le nom du service, la description, le nom de
l'opération, la description, le nom du message et les balises de description du message.
 Service Classification: La classification des services représente différents niveaux de
qualités d'offre de services. Il existe quatre catégories de services :

1. Platine (Haute qualité)


2. Or
3. Argent
4. Bronze (faible qualité)

70 | P a g e
Chapitre04 : Expérimentations et étude des performances

Figure 4.10: les quatre classe de notre modèle


La classification est basée sur la note de qualité globale fournie par notre WsRF. En utilisant
les valeurs WsRF obtenues pour chaque service Web, nous utilisons un schéma de
classification pour associer chaque service Web à un groupe de services particulier. La
classification peut être utile pour différencier les différents services qui offrent la même
fonctionnalité.

2. Applications

La base de données QWS a été appliqué à un large éventail de projets de


recherche/thèses dans des domaines couverts par l'informatique on trouve:

 Web Service Classification


 Web Service Composition
 Web Service QoS Performance
 Web Service QoSPrediction
 Web Service Ranking
 Web Service Discovery
 Web Service Modeling

71 | P a g e
Chapitre04 : Expérimentations et étude des performances

 Web Services' Resource Management


 Web Service Coordination
 Service OrientedAnalysis
 Web Service Transaction
 Business processIntegration and Management
V. Les codes d’implémentation

Dans cette section, nous présentons les codes principales d‟implémentation de notre approche
proposée « CWS-LSTM».

1. Nettoyer la base de données QWS version 2.0

Figure 4.11: La forme de la base de données au début.

72 | P a g e
Chapitre04 : Expérimentations et étude des performances

nous trouvons des lignes qui n 'ont pas d'importance entre des caractères # donc nous
avons décidé de supprimer ces lignes pour une base de données net , par l‟utilisation de la
fonction (preprocess_raw_data):

Figure 4.12: La fonction preprocess_raw_data

2. Le calcul de WSRF
Ensuite nous avons ajouté un champ WsRF et un label service classification .Puis nous
avons divisé la base de données en deux parties différentes, partie pour l‟entrainement «
training » et une partie pour les tests.

 LE WSRF : il faut calculer wsrf par l‟utilisation de la fonction (compute_wsrf):

73 | P a g e
Chapitre04 : Expérimentations et étude des performances

Figure 4.13 : La fonction (compute_wsrf).

En mathématique: voir figure 4.14

74 | P a g e
Chapitre04 : Expérimentations et étude des performances

Figure 4.14: le calcul de WSRF (4.1)

3. La normalisation des données


Nous avons utilisé cette méthode de prétraitement des données, qui permet de réduire la
complexité de la base des données. Elle consiste à rendre les valeurs de la base de données
entre 1 et 0. En utilise la fonction MinMaxScaler

(Voir le détaille dans le chapitre 3)

75 | P a g e
Chapitre04 : Expérimentations et étude des performances

Figure 4.12 : partie de Code de la normalisation de la base de données

En suite dans ce code nous exposons le modèle ou bien la forme de notre base c'est un array
tel que chaque service comporte 9 attribues et le wsrf associe

Figure 4.15: l'exposition de notre base de données

Puis nous avons divisé la base de données en deux parties différentes, partie pour
l‟entrainement « training » 70 pour cent et une partie pour les tests 30 pour cent et utilise la
fonction StandardScaler pour refaire la normalisation

76 | P a g e
Chapitre04 : Expérimentations et étude des performances

Figure 4.16: La base de données en deux parties TRAIN,TEST

4. L’apprentissage du modèle SVM


Pour construire notre modèle d‟apprentissage, nous avons d'abord défini le modele SVM pour
faire une petite comparaison

Figure 4.17: défini le modèle SVM

Et on trouve le résultat suivant :

Figure 4.18: Les résultats du modèle SVM

77 | P a g e
Chapitre04 : Expérimentations et étude des performances

5. L’apprentissage du modèle proposé


Pour effectuer l‟apprentissage de notre modèle proposé, nous avons défini les paramètres
suivants :

Déjà vu l'explication de ces paramètres dans le chapitre précédent

Figure 4.19 défini le modèle LSTM

Figure 4.20 : Forme des couches dans notre application

78 | P a g e
Chapitre04 : Expérimentations et étude des performances

nous avons d'abord défini deux couches LSTM et une couche Dense et on utilise la
fonction TANH et la fonction SOFTMAX pour l'activation

VI. Evaluation des performances


Nous avons utilisé les mesures de performances suivantes pour évaluer l‟efficacité de notre
modèle :

 la justesse (accuracy) : La justesse où (the accuracy en Anglais) est l'un des


critères
permettant d'évaluer les modèles de classification. Elle désigne la proportion des prédictions

correctes effectuées par le modèle, l‟équation suivante représente la formule de calcul de


cette mesure :

(4.2)
Tel que :

 𝑻𝒓𝒖 𝑷𝒐𝒔 𝒕 𝒗 Le résultat où le modèle prédit correctement ; c‟est la classe positive


(valeur 1), la prédiction est effectuée sur la base de données de test.

 𝑻𝒓𝒖 𝒈𝒂𝒕 𝒗 Le résultat où le modèle prédit correctement ; la classe négative


(valeur 0), la prédiction est effectuée sur la base de données de test.

 𝑭𝒂 𝒔 𝑷𝒐𝒔 𝒕 𝒗 Le résultat où le modèle prédit incorrectement la classe positive


(valeur 1), la prédiction est effectuée sur la base de données de test.

 𝑭𝒂 𝒔 𝒈𝒂𝒕 𝒗 Le résultat où le modèle prédit incorrectement la classe négative


(valeur 0), la prédiction est effectuée sur la base de données de test.

 LOSS : Perte d'entropie croisée (ou perte de log) La perte d'entropie croisée est
souvent simplement appelée « entropie croisée », « perte logarithmique », « perte
logistique » ou « perte logarithmique ». Chaque probabilité prédite est comparée à la
valeur de sortie de classe réelle (0 ou 1) et un score est calculé qui pénalise la
probabilité en fonction de la distance par rapport à la valeur attendue. La pénalité est
logarithmique, offrant un petit score pour les petites différences (0,1 ou 0,2) et un
score énorme pour une grande différence (0,9 ou 1,0). La perte d'entropie croisée est
79 | P a g e
Chapitre04 : Expérimentations et étude des performances

minimisée, où des valeurs plus petites représentent un meilleur modèle que des valeurs
plus grandes. Un modèle qui prédit des probabilités parfaites a une entropie croisée ou
une perte logarithmique de 0,0. L'entropie croisée pour un problème de prédiction
binaire ou à deux classes est en fait calculée comme l'entropie croisée moyenne dans
tous les exemples.
Voici la formule mathématique :

.(4.3)

Figure 4.21 : Les mesures d‟évaluation de notre modèle accuracy et loss

80 | P a g e
Chapitre04 : Expérimentations et étude des performances

Globalement, LSTM fonctionne mieux que SVM dans tous les scénarios. C'est à cause de sa
capacité à se souvenir ou à oublier les données d'une manière efficace que SVM.

VII. L’interface et les fenêtres du modèle proposé dans l 'application

Au début on trouve une fenêtre de bienvenue

Figure 4.22 : Fenêtre de bienvenue

Apres une autre fenêtre pour saisir le input de notre modèle qui sont les 9 attribues qui mesure
la qualité de services et lancer le calcule de classement

81 | P a g e
Chapitre04 : Expérimentations et étude des performances

Figure4.23: Input de notre modèle

Et après la classification nous représentons le résultat dans la fenêtre suivante

Si on apparaitre le joutons donc c'est la classe qui nous désirons

82 | P a g e
Chapitre04 : Expérimentations et étude des performances

Figure 4.24 : Fenêtre de résultat

VIII. Les avantages de l’approche proposée


Les avantages de notre approche CWS-LSTM peuvent se résumer comme suit :

 classifier les services web dans le cloud computing


 mesurer les performances des services web et faire une relation ou une liaison
entre eux
 Une exécution efficace des tâches de routine.
 facilite la recherche d un service selon les besoin
 Le traitement des données non structurées(l‟apprentissage profond est capable
d’analyser des données stockées sous un format non structuré (documents,
photos, mails, etc.).
 Elle est efficace, vu qu‟elle se base sur le réseaux LSTM, dont leurs efficacités a
été déjà prouvée dans la littérature.
 La possibilité d‟intégrer ou de combiner notre modèle avec d'autres modèles.
 Une approche adaptative, elle peut être utilisée pour la classification d‟autres
type de services . elle peut être adaptée à diverses bases de données similaires à
notre problème.

83 | P a g e
Chapitre04 : Expérimentations et étude des performances

IX. Conclusion

A travers ce chapitre, nous avons présenté une partie décrit les outils utilisés et une partie
présente le langage de programmation et le les détails du code d‟implémentation de
l‟approche proposée, et une évaluation des performances de l‟approche proposée.

Et autre partie représente l‟interface et les fenêtres du modèle proposé dans l'application et
la dernière partie représente les avantages de l‟approche proposée et quelque perspectives.

84 | P a g e
Conclusion générale

La classification des services web dans le cloud computing est une tâche
importante. Malgré les travaux réalisés dans le domaine de classification des
services web sont nombreux, aucune méthode n'est jugée fiable à 100%. Les
nouveaux travaux améliorent les scores pour des meilleurs résultats.

C‟est dans ce cadre que s‟inscrit notre travail, qui a pour objectif de proposer
architecture basée sur l‟apprentissage automatique supervisée « deep learning »,
pour réaliser une classification des services selon les valeurs de leurs attributs.
Notre approche est basée sur l‟apprentissage profond LSTM. Cette dernière a
montré ses performances ces dernières années. Ce choix est justifié par la
simplicité et l'efficacité de la méthode.

Pour montrer l‟efficacité de notre approche (CWS-LSTM), nous l‟avons évalué,


en utilisant la base de données (QWS 2.0). Les résultats obtenu confirme
l`efficacité de notre approche.

Notre travail n`est que dans sa version initiale, on peut dire que ce travail reste
ouvert pour des travaux de comparaison et/ou d'hybridation avec d'autres
méthodes de classification.

Perspectives

Comme perspectives, nous envisageons d‟améliorer notre approche pour faire :


- classification basée fonctionnalité.

- classification des services cloud.

- découverte des services

85 | P a g e
Bibliographie
[1] : John W. Rittinghouse, James F. Ransome. Cloud Computing
Implementation, Management, and Security. CRC Press 2010;

[2] : Maurice Audin. «Etat de l'art du Cloud Computing et adaptation au


Logiciel Libre». 2009

[3] : Fellah Hadjer. Memoire pour l‟obtention du diplome de magister en


informatique option : intelligence artificielle et imagerie. Thème: cloud
computing et securite : une architecture organique pour la surete de
fonctionnement des processus metiers. 2013-2014

[4] :Timothy Grance, Peter Mell. «The NIST definition of cloud computing».
National Institute of Standards and Technology. Septembre 2011;

[5] :introduction to cloud computing . ID2210 JIM DOWLING.PDF -


https://www.kth.se/social/files/554fa451f276544829be2e5e/9-cloud-
computing.pdf-

[6] : Ronald L. Krutz, Russell Dean Vines. Cloud Security: A Comprehensive


Guide to Secure Cloud Computing. WILEY 2010;

[7] : Dr. ZERTAL Soumia. Cours Sur Le Cloud et la Virtualisation Niveau :


2ème année Master -Spécialité : Architecture Distribuée Proposé par Edition
2.0

[8] : Wygwam TM : bureau d‟expertise technologique. Le Cloud Computing :


Réelle révolution ou simple évolution ?. 2010 ;

[9] https://www.youtube.com/watch?v=RwbIMBSr8o8&t=196s – accée le 8/


avril/2021

86 | P a g e
[10] : SAOULI Hamza. thèse pour l‟obtention de grade de docteur 3 eme cycle
en informatique option : techniques de l‟image et de l‟intelligence artificielle
titre decouverte de services web via le cloud computing a base d‟agents mobiles.

[11] Mather, T. Kumaraswamy, S. and Latif, S. (2009) „Cloud Security and


Privacy: An

Enterprise Perspective on Risks and Compliance‟, O‟Reilly Media, ISBN-13:


978- 0596802769.

[12] http://fr.wikipedia.org/wiki/Fournisseur_de_services_d%27applications

[13] Caryer, G., Rings, T., Gallop, J. and Schulz, S. (2009) „Grid/cloud
computing interoperability, standardization and the Next Generation Network
(NGN)‟, Proceeding of 13th International Conference on Intelligence in Next
Generation Networks, Bordeaux, France, pp. 1-6.

[14] http://www.w3.org/TR/2004/NOTE-ws-gloss-20040211/

[15] A. Jula, E. Sundararajan, and Z. Othman, “Cloud computing service


composition: A systematic literature review,” in Expert Systems with
Applications, vol. 41, no. 8,

Elsevier, 2014, pp. 3809–3824.

[16] Dr. DEHIMI Nour El Houda. Niveau : 2ème année master en


Informatique Spécialité :Architectures Orientées Services (SOA)

[17]:Disponible sur le lien: https://www.ionos.fr/digitalguide/web-


marketing/search-engine-marketing/deep-learning-vs-machine-
learning/(consulté le 02-05-2021)

87 | P a g e
[18] Microsoft Experiences, Tout savoir sur l‟Intelligence Artificielledisponible
sur le lien : https://experiences.microsoft.fr/business/intelligenceartificielle-ia-
business/comprendre-utiliser-intelligence-artificielle/, (consulté le 02/05/2021),

[19] Frédéric Fürst, Histoire de l‟Intelligence Artificielle – 3- naissance de


l‟Intelligence Artificielle, disponible sur :
https://home.mis.upicardie.fr/~furst/docs/3-Naissance_IA.pdf (consulté le
10/04/2021)

[21] Conseil de l‟Europe, L‟ IA, C‟est quoi – Histoire de l‟Intelligence


Artificielle, disponible sur : https://www.coe.int/fr/web/artificial-
intelligence/history-of-ai , (consulté le 10/04/2021)

[22] Géron, A. (2017). Hands-On_Machine_Learning_with_Scikit-learn and


trensflow. USA: O‟Reilly Media.

[23] disponible sur le lien: https://analyticsinsights.io/apprentissage-supervise-


vs-non-supervise//(consulté le 02-05-2021)

[24] Sutton, R. S. (1988). Learning to predict by the method of temporal


differences. Machine Learning.

[25] Watkins, C. J., & Dayan, P. (1992). Q-learning. Machine Learning.

[26] Li, H. (2017, 04 24). Which ML Algorithms to Use? Retrieved 03 20, 2020,
from The Eponymous

Pickle: http://eponymouspickle.blogspot.com/2017/04/which-ml-algorithms-to-

use.html

[27] Patterson, J., & Gibson, A. (2017). Deep Learning : A Practitioner‟s


Approach. Beijing: OReilly Media.

88 | P a g e
[28] Rosenblatt, F. (1958). THE PERCEPTRON: A PROBABILISTIC MODEL
FOR. Psychological

Review, 65.

[29] Goodfellow, I., Bengio, Y., & Courville, A. (2016). Deep Learning. MIT
Press .

[30] disponible sur le lien:https://www.ionos.fr/digitalguide/web-


marketing/search-engine-marketing/deep-learning-vs-machine-
learning/(consulté le 02-05-2021)

[31] Loussaief S., Abdelkrim A. "Machine learning framework for image


classification," 2016 7th International Conference on Sciences of Electronics,
Technologies of Information and Telecommunications (SETIT), Hammamet,
2016, pp. 58-61, https://doi.org/10.1109/SETIT.2016.7939841. (consulté le 02-
04-2021)

[32] disponible sur le lien:


https://fr.wikipedia.org/wiki/R%C3%A9seau_neuronal_convolutif

[33] disponible sur le lien: https://www.actuia.com/contribution/cyrille-kone/a-


travers-les-reseaux-de-neurones-a-convolution-en-deep-learning/ (consulté le
02-04-2021)

[34] (en) Hochreiter, Sepp et Schmidhuber, Jürgen, « Long Short-Term


Memory », Neural Computation, vol. 9, no 8, 1997,p. 1735 1780
https://fr.m.wikipedia.org/wiki/R%C3%A9seau_de_neurones_r%C3%A9current
s?fbclid=IwAR0r4OdH4WYwpgxWRvozY0zTHtZGBrRr0gobk3tSZthbFb-
kNOKgfS2GhDI

[35] (en) Gers, Felix, Schraudolph, Nicol et Schmidhuber, Jürgen, « Learning


Precise Timing with LSTM Recurrent Networks », Journal of Machine
Learning Research, vol. 3, 2002, p. 115-143

89 | P a g e
[36] Site Web TensorFlow, site Web Scikit-Learn, site Web PyTorch, site Web
Keras

REFERENCE

1:site Web TensorFlow, site Web Scikit-Learn, site Web PyTorch, site Web
Keras

90 | P a g e

Vous aimerez peut-être aussi