Académique Documents
Professionnel Documents
Culture Documents
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.
Mes remerciements s'adressent aussi aux membres de jury pour avoir accepté
de discuter ce mémoire
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
-Meroua-
Remerciement
à tous les membres du jury qui nous ont fait l’honneur de réviser ce
travail.
Tout l'amour à ma fille Mayssane, A mes sœurs et frères, que Dieu les
protège
-Soumia-
Résumé
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.
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.
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.
iii
Liste des acronymes
IA Intelligence Artificiel.
iv
Table des figures
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
v
Figure 2.13 Schéma d'un réseau de neurones récurrents à une unité relian……………...26
Figure2.21 Mise à jour du cell state par addition du vecteur candidat filtré……………….34
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
vi
Figure 4.8 Editeur QT……………………………………………………………..………..66
Figure 4.21 Les mesures d‟évaluation de notre modèle accuracy et loss ………………..80
vii
Liste des tableaux
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
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.
(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
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
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 :
La figure 1.2 présente une description générale du Cloud Computing selon NIST (National
Institute of Standards and Technology) [4].
5|Page
Chapitre01 : le cloud computing et la classification des services web dans le 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]
Les ressources sont accessibles sur le réseau depuis des plateformes hétérogènes (tablettes,
stations de travail, smart phones, etc.) [7].
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].
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
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
7|Page
Chapitre01 : le cloud computing et la classification des services web dans le cloud
Les Capacités SaaS, fournis en ligne comprennent des outils pour: [8]
Les systèmes PaaS comprennent généralement une partie ou l'ensemble des fonctions
suivantes [3]:
8|Page
Chapitre01 : le cloud computing et la classification des services web dans le cloud
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
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).
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]
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.
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,
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]
13 | P a g e
Chapitre01 : le cloud computing et la classification des services web dans le 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 ».
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.
• Raisonner
17 | P a g e
Chapitre 02 : l’apprentissage automatique et l’apprentissage profond
• Apprendre progressivement
- La recherche mathématique
- La finance
- La médecine
- 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.
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]
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
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.
20 | P a g e
Chapitre 02 : l’apprentissage automatique et l’apprentissage profond
1. Le Machine learning
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.
Apprentissage supervisé:
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.
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
23 | P a g e
Chapitre 02 : l’apprentissage automatique et l’apprentissage profond
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
25 | P a g e
Chapitre 02 : l’apprentissage automatique et l’apprentissage profond
Regroupement ou Clustering
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.
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
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.
27 | P a g e
Chapitre 02 : l’apprentissage automatique et l’apprentissage profond
Selon [26] la réponse à cette question varie selon les facteurs suivants :
✓ L‟urgence de la tâche.
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.
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).
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]
✓ 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 .
✓ La robotique.
✓ La santé et la bioinformatique.
✓ La sécurité.
Avant les réseaux de neurones convolutifs, les méthodes de classification automatiques les
plus couramment utilisées pour les images étaient les algorithmes :
30 | P a g e
Chapitre 02 : l’apprentissage automatique et l’apprentissage profond
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.
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].
L‟image est :
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.
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
sigmoïde ou logistique,
.(2.2)
tangente hyperbolique,
.(2.3)
.(2.4)
Bien souvent, la fonction ReLU est choisie, car elle maximise la décision de la fonction affine
appliquée par convolution.
34 | P a g e
Chapitre 02 : l’apprentissage automatique et l’apprentissage profond
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
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.
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
.(2.5)
avec:
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.
38 | P a g e
Chapitre 02 : l’apprentissage automatique et l’apprentissage profond
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.
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.
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
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
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.
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
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é
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
46 | P a g e
Chapitre 02 : l’apprentissage automatique et l’apprentissage profond
IV. Conclusion
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.
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.
49 | P a g e
Chapitre03 : l’approche proposé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 :
50 | P a g e
Chapitre03 : l’approche proposée
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)
51 | P a g e
Chapitre03 : l’approche proposée
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 une constante utilisée pour ajuster la sortie avec la somme pondérée des
entrées du neurone.
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.
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
52 | P a g e
Chapitre03 : l’approche proposée
.(3.3)
53 | P a g e
Chapitre03 : l’approche proposée
Tel que :
54 | P a g e
Chapitre03 : l’approche proposée
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
55 | P a g e
Chapitre03 : l’approche proposée
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
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
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
. (3.4)
.(3.5)
Tel que :
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.
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).
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
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.
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.
60 | P a g e
Chapitre04 : Expérimentations et étude des performances
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
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
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
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.
66 | P a g e
Chapitre04 : Expérimentations et étude des performances
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] .
67 | P a g e
Chapitre04 : Expérimentations et étude des performances
confortablement.
sont très complexes, mais Python est le secours avec une large gamme de
TensorFlow.
✓Lisibilité : Python est facile à lire, de sorte que les développeurs peuvent
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.
69 | P a g e
Chapitre04 : Expérimentations et étude des performances
70 | P a g e
Chapitre04 : Expérimentations et étude des performances
2. Applications
71 | P a g e
Chapitre04 : Expérimentations et étude des performances
Dans cette section, nous présentons les codes principales d‟implémentation de notre approche
proposée « CWS-LSTM».
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):
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.
73 | P a g e
Chapitre04 : Expérimentations et étude des performances
74 | P a g e
Chapitre04 : Expérimentations et étude des performances
75 | P a g e
Chapitre04 : Expérimentations et étude des performances
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
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
77 | P a g e
Chapitre04 : Expérimentations et étude des performances
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
(4.2)
Tel que :
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)
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.
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
82 | P a g e
Chapitre04 : Expérimentations et étude des performances
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.
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
85 | P a g e
Bibliographie
[1] : John W. Rittinghouse, James F. Ransome. Cloud Computing
Implementation, Management, and Security. CRC Press 2010;
[4] :Timothy Grance, Peter Mell. «The NIST definition of cloud computing».
National Institute of Standards and Technology. Septembre 2011;
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.
[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/
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),
[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
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 .
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