architecture dapplication lapprentissage automatique appliqué à larchitecture 3-tiers

36
Architecture d’application L’apprentissage automatique appliqué à l’architecture 3-tiers

Upload: fleuretta-carriere

Post on 04-Apr-2015

110 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Architecture dapplication Lapprentissage automatique appliqué à larchitecture 3-tiers

Architecture d’applicationL’apprentissage automatique appliqué à l’architecture 3-tiers

Page 2: Architecture dapplication Lapprentissage automatique appliqué à larchitecture 3-tiers

Plan de présentation Introduction L’architecture 3-tiers L’apprentissage automatique L’algorithme du perceptron Application

Page 3: Architecture dapplication Lapprentissage automatique appliqué à larchitecture 3-tiers

Introduction L’objectif de ce cours de

vous montrer l’architecture 3-tiers.

Comme vous êtes des passionnés, nous allons utiliser un algorithme d’IA pour appliquer à l’architecture 3-tiers.(Algorithme du perceptron).

Page 4: Architecture dapplication Lapprentissage automatique appliqué à larchitecture 3-tiers

Le modèle 3-tiers Son nom provient de l'anglais tier signifiant étage ou niveau. Il s'agit d'un modèle logique

d'architecture applicative qui vise à modéliser une application comme un empilement de trois couches logicielles (étages, niveaux, tiers ou strates) dont le rôle est clairement défini : la présentation des données(GUI, Graphic User Interface)  : correspondant à l'affichage, la

restitution sur le poste de travail, le dialogue avec l'utilisateur ; le traitement métier des données (La couche métier (BLL, Business Logic Layer)): correspondant

à la mise en œuvre de l'ensemble des règles de gestion et de la logique applicative ; et enfin l'accès aux données persistantes (La couche d’accès aux données (DAL, Data Access

Layer))  : correspondant aux données qui sont destinées à être conservées sur la durée, voire de manière définitive.

BD

Utilisateur

Couche GUI

Couche Métier(BL

L)

Couche Accès

données (DAL)

Page 5: Architecture dapplication Lapprentissage automatique appliqué à larchitecture 3-tiers

La couche présentation(GUI)

BD

Utilisateur

Couche GUI

Couche Métier(BL

L)

Couche Accès

données (DAL)

Page 6: Architecture dapplication Lapprentissage automatique appliqué à larchitecture 3-tiers

La couche présentation(GUI)

Elle correspond à la partie de l'application visible et interactive avec les utilisateurs. On parle d'interface homme machine.

La couche présentation relaie les requêtes de l'utilisateur à destination de la couche métier, et en retour lui présente les informations renvoyées par les traitements de cette couche. Il s'agit donc ici d'un assemblage de services métiers et applicatifs offerts par la couche inférieure.

La vue n'effectue aucun traitement, elle se contente d'afficher les résultats des traitements effectués.

Page 7: Architecture dapplication Lapprentissage automatique appliqué à larchitecture 3-tiers

Couche métier(BLL)

BD

Utilisateur

Couche GUI

Couche Métier(BL

L)

Couche Accès

données (DAL)

Page 8: Architecture dapplication Lapprentissage automatique appliqué à larchitecture 3-tiers

Couche métier(BLL) Elle correspond à la partie fonctionnelle de l'application, celle

qui implémente la « logique », et qui décrit les opérations que l'application opère sur les données en fonction des requêtes des utilisateurs, effectuées au travers de la couche présentation.

Les différentes règles de gestion et de contrôle du système sont mises en œuvre dans cette couche.

La couche métier offre des services applicatifs et métier à la couche présentation. Pour fournir ces services, elle s'appuie, le cas échéant, sur les données du système, accessibles au travers des services de la couche inférieure. En retour, elle renvoie à la couche présentation les résultats qu'elle a calculés.

Page 9: Architecture dapplication Lapprentissage automatique appliqué à larchitecture 3-tiers

Couche accès aux données(DLL)

BD

Utilisateur

Couche GUI

Couche Métier(BL

L)

Couche Accès

données (DAL)

Page 10: Architecture dapplication Lapprentissage automatique appliqué à larchitecture 3-tiers

Couche accès aux données(DLL)

Cette couche est responsable de la gestion et de l'accès aux données du système. Ces données peuvent être propres au système, ou gérées par un autre système. La couche métier n'a pas à s'adapter à ces deux cas, ils sont transparents pour elle, et elle accède aux données de manière uniforme.

Cette couche assure la gestion des données et garantit leur intégrité. Dans le cas typique d'une base de données, c'est le modèle qui la gère. Cette couche offre généralement des méthodes pour mettre à jour ces données (insertion, suppression, changement de valeur). Il offre aussi des méthodes pour récupérer ces données.

Page 11: Architecture dapplication Lapprentissage automatique appliqué à larchitecture 3-tiers

Communication entre les couches

Dans cette approche, les couches communiquent entre elles au travers d'un « modèle d'échange », et chacune d'entre elles propose un ensemble de services rendus.

Les services d'une couche sont mis à disposition de la couche supérieure. On s'interdit par conséquent qu'une couche invoque les services d'une couche plus basse que la couche immédiatement inférieure ou plus haute que la couche immédiatement supérieure (chaque couche ne communique qu'avec ses voisins immédiats).

BD

Utilisateur

Couche GUI

Couche Métier(BL

L)

Couche Accès

données (DAL)

Page 12: Architecture dapplication Lapprentissage automatique appliqué à larchitecture 3-tiers

En résumé En résumé, lorsqu'un client envoie une requête à

l'application :1. la requête envoyée depuis la couche présentation est

analysée par la couche métier (par exemple un clic de souris pour lancer un traitement de données),

2. la couche métier fait le traitement et demande à la couche d’accès aux données de faire les modifications voulues dans la base de données,

3. La couche d’accès aux données retourne la mise à jour à la couche métier, qui à son tour, la remettra à la couche présentation.

Page 13: Architecture dapplication Lapprentissage automatique appliqué à larchitecture 3-tiers

Avantages Un avantage apporté par ce modèle

est la clarté de l'architecture qu'il impose. Cela simplifie la tâche du développeur qui tenterait d'effectuer une maintenance ou une amélioration sur le projet. En effet, la modification des traitements ne change en rien la vue.

Par exemple on peut passer d'une base de données de type SQL à XML en changeant simplement les traitements d'interaction avec la base, et les vues ne s'en trouvent pas affectées.

Page 14: Architecture dapplication Lapprentissage automatique appliqué à larchitecture 3-tiers

Exemple Aller chercher les documents d’exercice sur le

http://www.coupdeklaxon.ca

L’interface graphique (GUI, Graphic User Interface) : Demander le nom d’un fichier. Ajouter un bouton pour activer la lecture du fichier Ajouter un RichTextBox pour afficher les résultats

La couche métier (BLL, Business Logic Layer) Vide pour le moment

La couche d’accès aux données (DAL, Data Access Layer) Nous allons remplir une structure de données pour les données et

une pour les résultats. Résultat:

Afficher les données dans le RichTextBox.

Page 15: Architecture dapplication Lapprentissage automatique appliqué à larchitecture 3-tiers

Apprentissage automatique: Les réseaux de neurones Attention aux

coeurs sensibles s’abstenir!! La poubelle se trouve près de la porte…

Page 16: Architecture dapplication Lapprentissage automatique appliqué à larchitecture 3-tiers

Comparaison avec l’humain Le cerveau utilise un

réseau très complexe ayant un grand nombre de cellules de base interconnectées. Il y a ∼100 milliards de neurones et1015 connexions.

Aujourd’hui, nous essaierons de créer un neurone informatique.

Page 17: Architecture dapplication Lapprentissage automatique appliqué à larchitecture 3-tiers

Apprentissage automatique Apprendre c’est la capacité de s’améliorer

à l’accomplissement d’une tâche en interagissant avec un environnement.

Toute question peut être reformulée sous la forme d’une question booléenne.

L’objectif sera de conditionner un neurone pour détermine les règles qui régissent une réponse à une question booléenne.

Page 18: Architecture dapplication Lapprentissage automatique appliqué à larchitecture 3-tiers

Comment apprendre? Dans la vrai vie L’apprentissage se fait

grâce à l’interaction entre les données et la conception de l’apprenant.

L’apprennant essait de trouver un modèle(pattern) à travers les données pour en déduire une conclusion.

Si l’apprenant fait une erreur, il ajuste sa conception en fonction du résultat.

Page 19: Architecture dapplication Lapprentissage automatique appliqué à larchitecture 3-tiers

Le perceptron Dans ce cours, nous allons utiliser un

classificateur de type perceptron. Le perceptron a été inventé en 1957 par Frank

Rosenblatt au Cornell Aeronautical Laboratory. L’objectif de l’algorithme est de construire une

“bonne” fonction h(x) à partir de l’observation d’un échantillon d’exemples S. Idéalement, nous aurions h(x) =y pour tout exemple (xi; y)non observé par l’algorithme. i.e., h(x) est une “bonne” fonction ssi elle prédit bien la valeur de sortie des exemples à venir.

Page 20: Architecture dapplication Lapprentissage automatique appliqué à larchitecture 3-tiers

Apprentissage automatique sur un échantillon d’apprentissage Un algorithme d’apprentissage est un

algorithme qui a pour fonction d’apprendre à répondre à une question à partir d’un ensemble S de données contenant un nombre fini m d’exemples de la tâche à apprendre.

Cet ensemble S se nomme l’échantillon d’apprentissage (“training set”)

Chaque exemple est constitué d’un “objet” d’entrée xi et d’une valeur de sortie y

Page 21: Architecture dapplication Lapprentissage automatique appliqué à larchitecture 3-tiers

L’idée Modéliser un ensemble de données

dans un plan cartésien. Essayer de tracer une droite qui

séparera correctement les éléments. Voir le document Excel

La question est de savoir si une personne est riche?

Page 22: Architecture dapplication Lapprentissage automatique appliqué à larchitecture 3-tiers

Limite du perceptron• Le perceptron est incapable de distinguer

les patterns non séparables linéairement

input P 0 1 0 1input Q 1 0 0 1ET 0 0 0 1XOR 1 1 0 0

0

0

0

1

0

1 0

1

P

Q

fonction ET logique

patterns séparables linéairement

P

Q

fonction XOR (ou exclusif)

patterns non séparables linéairement

010

1

10

1

0

Page 23: Architecture dapplication Lapprentissage automatique appliqué à larchitecture 3-tiers

Comment s’opère la magie maintenant?

Page 24: Architecture dapplication Lapprentissage automatique appliqué à larchitecture 3-tiers

Algorithme d’apprentissage

Page 25: Architecture dapplication Lapprentissage automatique appliqué à larchitecture 3-tiers

Algorithme d’apprentissage

Page 26: Architecture dapplication Lapprentissage automatique appliqué à larchitecture 3-tiers

Descente en gradien

http://www.iro.umontreal.ca/~bengioy/ift6266/H12/html/gradient_fr.html

Page 27: Architecture dapplication Lapprentissage automatique appliqué à larchitecture 3-tiers

Algorithme d’apprentissagePrincipales étapes :

1. Initialiser aléatoirement les poids synaptiques

2. Faire passer les observations unes à unes Calculer l’erreur de prédiction pour

l’observation Mettre à jour les poids synaptiques si nécessaire

3. Jusqu’à convergence du processus

Page 28: Architecture dapplication Lapprentissage automatique appliqué à larchitecture 3-tiers

Algorithme d’apprentissage

Page 29: Architecture dapplication Lapprentissage automatique appliqué à larchitecture 3-tiers

3- Descente en gradien

1- Valeur des poids

2- Équation

http://www.iro.umontreal.ca/~bengioy/ift6266/H12/html/gradient_fr.html

Page 30: Architecture dapplication Lapprentissage automatique appliqué à larchitecture 3-tiers

Algorithme d’apprentissage

Ancienne frontière :

Page 31: Architecture dapplication Lapprentissage automatique appliqué à larchitecture 3-tiers

Ancienne frontière :

Page 32: Architecture dapplication Lapprentissage automatique appliqué à larchitecture 3-tiers
Page 33: Architecture dapplication Lapprentissage automatique appliqué à larchitecture 3-tiers

Algorithme d’apprentissageEntrée :un échantillon S

Pour i = 0. . . n initialiser aléatoirement les poids wi

Faire

Pour chacun des exemples dans SPrendre un exemple(x, yvrai ) dans S

Calculer la sortie yestimé pour l'entrée x

Si yvrai != yestimé Alors

Pour i= 0. . . n

wi ←wi + ConstanteApprentissage × (yvrai−yestimé)× xi

Fin Pour

Fin Répéter

Jusqu’à obtention de la convergence

Sortie :Un perceptron P défini par(w0, w1, . . . , wn)

Page 34: Architecture dapplication Lapprentissage automatique appliqué à larchitecture 3-tiers

La tolérance à l’erreurIl peut être avantageux d’être tolérant à l’erreur plutôt que de ne pas trouver de solution… à vous de trouver la bonne méthode de convergence.

Selon vous quels sont les possibilités de critère de convergence?

Page 35: Architecture dapplication Lapprentissage automatique appliqué à larchitecture 3-tiers

Conclusion L’architecture 3-tiers est un

modèle étoffé qui permet aisément la modification et l’extension d’une application.

Le but de l’apprentissage automatique est de définir un vecteur de valeur qui permet de définir si oui ou non un vecteur d’entré appartient à un groupe ou non.

Page 36: Architecture dapplication Lapprentissage automatique appliqué à larchitecture 3-tiers

Période de questions Vous avez des questions?