0% ont trouvé ce document utile (0 vote)
97 vues10 pages

INF365 Chap4 22

Transféré par

Armando Franck Ngue
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
97 vues10 pages

INF365 Chap4 22

Transféré par

Armando Franck Ngue
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
Vous êtes sur la page 1/ 10

In

INF 365 : INGÉNIERIE DES DONNÉES


CHAPITRE 4
Chapitre 4 : Principales familles de modèles d’apprentissage
Introduction

La faculté d’apprendre de ses expériences passées et de s’adapter est une caractéristique


essentielle des formes de vies supérieures. Elle est essentielle à l’être humain dans les
premières étapes de la vie pour apprendre des choses aussi fondamentales que reconnaître
une voix, un visage familier, apprendre à comprendre ce qui est dit, à marcher et à parler.
L’apprentissage automatique ou encore appelé en anglais machine learning est une tentative
de comprendre et reproduire cette faculté d’apprentissage dans des systèmes artificiels. Il
s’agit, très schématiquement, de concevoir des algorithmes capables, à partir d’un nombre
important d’exemples (les données correspondant à “l’expérience passée”), d’en assimiler la
nature afin de pouvoir appliquer ce qu’ils ont ainsi appris aux cas futurs.
Il s’agit d’un domaine captivant. Issu de nombreuses disciplines comme les statistiques,
l’optimisation, l’algorithmique ou le traitement du signal, c’est un champ d’études en
mutation constante qui s’est maintenant imposé dans notre société. Déjà utilisé depuis des
décennies dans la reconnaissance automatique de caractères, de la voix ou les filtres anti-
spam, il sert maintenant à protéger contre la fraude bancaire, recommander des livres, films,
ou autres produits adaptés à nos goûts, identifier les visages dans le viseur de notre appareil
photo, ou traduire automatiquement des textes d’une langue vers une autre.
Dans les années à venir, l’apprentissage automatique nous permettra vraisemblablement
d’améliorer la sécurité routière (y compris grâce aux véhicules autonomes), la réponse
d’urgence aux catastrophes naturelles, le développement de nouveaux médicaments, ou
l’efficacité énergétique de nos bâtiments et industries.
Le but de ce chapitre est de présenter les différentes familles d’apprentissage qui existent et
de présenter quelques applications et algorithmes y référentes.
3.1. Définitions
Qu’est-ce qu’apprendre, comment apprend-on, et que cela signifie-t-il pour une machine ? La
question de l’apprentissage fascine les spécialistes de l’informatique et des mathématiques
tout autant que neurologues, pédagogues, philosophes ou artistes.
Une définition qui s’applique à un programme informatique comme à un robot, un animal de
compagnie ou un être humain est celle proposée par Fabien Benureau (2015) :
« l’apprentissage est une modification d’un comportement sur la base d’une expérience ».
Dans le cas d’un programme informatique, qui est celui qui nous intéresse dans ce cours, on
parle d’apprentissage automatique, ou machine learning, quand ce programme a la capacité
d’apprendre sans être programmé. Cette définition est celle donnée par Arthur Samuel
(1959). On peut ainsi opposer un programme classique, qui utilise une procédure et les
données qu’il reçoit en entrée pour produire en sortie des réponses, à un programme
d’apprentissage automatique, qui utilise les données et les réponses afin de produire la
procédure qui permet d’obtenir les secondes à partir des premières.
L’apprentissage automatique peut être vu comme une formalisation du domaine du Machine
Learning, terme anglais consacré, traduit en français tantôt par apprentissage artificiel selon
la sensibilité des auteurs. Mitchell (1997) définit le concept d’apprentissage de la manière
suivante : « On dit qu’un programme apprend d’une expérience E pour une classe de tâches
donnée T et pour une mesure de performance donnée P si sa performance à accomplir les
tâches dans T, mesurée par P, s’améliore avec l’expérience E ». Cette définition suggère l’idée
qu’un algorithme d’apprentissage est capable d’inférer un comportement, des règles à partir
d’exemples qui lui sont fournis et de les généraliser à des situations nouvelles.
L’apprentissage automatique peut servir à résoudre plusieurs problèmes :

• Que l’on ne sait pas résoudre (comme dans l’exemple de la prédiction d’achats) ;
• Que l’on sait résoudre, mais dont on ne sait formaliser en termes algorithmiques
comment nous les résolvons (c’est le cas par exemple de la reconnaissance d’images
ou de la compréhension du langage naturel) ;
• Que l’on sait résoudre, mais avec des procédures beaucoup trop gourmandes en
ressources informatiques (c’est le cas par exemple de la prédiction d’interactions entre
molécules de grande taille, pour lesquelles les simulations sont très lourdes).
L’apprentissage automatique est donc utilisé quand les données sont abondantes
(relativement), mais les connaissances peu accessibles ou peu développées. Ainsi, il peut aussi
aider les humains à apprendre : les modèles créés par des algorithmes d’apprentissage
peuvent révéler l’importance relative de certaines informations ou la façon dont elles
interagissent entre elles pour résoudre un problème particulier.
Par le vocable d’apprentissage automatique, on désigne à la fois la conception de méthodes
pour décrire, analyser et prédire des phénomènes (partie algorithmique) mais aussi l’étude
théorique des garanties (e.g. consistance, bornes sur l’erreur de généralisation) qu’offrent les
algorithmes ainsi produits (partie statistique). Les applications de l’apprentissage
automatique sont nombreuses et touchent des domaines aussi variés que le traitement du
signal et des images, la reconnaissance de formes, la recherche d’information, la bio-
informatique ou la finance, entre autres. On distingue généralement trois types de
problèmes : apprentissage supervisé, non supervisé et semi-supervisé.
3.2. Apprentissage supervisé
La formulation du problème de l’apprentissage supervisé est simple : on dispose d’un nombre
fini d’exemples d’une tâche à réaliser, sous forme de paires (entrée, sortie désirée), et on
souhaite obtenir, d’une manière automatique, un système capable de trouver de façon
relativement fiable la sortie correspondant à toute nouvelle entrée qui pourrait lui être
présentée.
L’apprentissage supervisé est peut-être le type de problèmes de machine learning le plus
facile à appréhender : son but est d’apprendre à faire des prédictions, à partir d’une liste
d’exemples étiquetés, c’est-à-dire accompagnés de la valeur à prédire (voir figure 1). Les
étiquettes servent de « professeur » et supervisent l’apprentissage de l’algorithme.
On distingue en général trois types de problèmes auxquels l’apprentissage supervisé est
appliqué. Ces tâches diffèrent essentiellement par la nature des paires (entrée, sortie) qui y
sont associées :
Classification
Dans les problèmes de classification, l’entrée correspond à une instance d’une classe, et la
sortie qui y est associée indique la classe. Par exemple pour un problème de reconnaissance
de visage, l’entrée serait l’image bitmap d’une personne telle que fournie par une caméra, et
la sortie indiquerait de quelle personne il s’agit (parmi l’ensemble de personnes que l’on
souhaite voir le système reconnaître).
Dans le cas où les étiquettes sont binaires, elles indiquent l’appartenance à une classe.
On parle alors de classification binaire. Un problème d’apprentissage supervisé dans lequel
l’espace des étiquettes est binaire, autrement dit Y = {0, 1} est appelé un problème de
classification binaire.
Voici quelques exemples de problèmes de classification binaire :
• Identifier si un email est un spam ou non.
• Identifier si une image contient ou non une girafe.
• Identifier si une molécule peut ou non traiter la dépression.
• Identifier si une transaction financière est frauduleuse.

Dans le cas où les étiquettes sont discrètes, et correspondent donc à plusieurs classes, on
parle de classification multi-classe. Un problème d’apprentissage supervisé dans lequel
l’espace des étiquettes est discret et fini, autrement dit Y = {1, 2, . . . ,n} est appelé un
problème de classification multi-classe. n est le nombre de classes.
Régression
Dans les problèmes de régression, l’entrée n’est pas associée à une classe, mais dans le cas
général, à une ou plusieurs valeurs réelles (un vecteur). Par exemple, pour une expérience
de biochimie, on pourrait vouloir prédire le taux de réaction d’un organisme en fonction des
taux de différentes substances qui lui sont administrées.
Voici quelques exemples de problèmes de régression :
• Prédire le nombre de clics sur un lien.
• Prédire le nombre d’utilisateurs et utilisatrices d’un service en ligne à un moment
donné.
• Prédire le prix d’une action en bourse.
• Prédire l’affinité de liaison entre deux molécules.
• Prédire le rendement d’un plant de maïs.

Séries temporelles
Dans les problèmes de séries temporelles, il s’agit typiquement de prédire les valeurs futures
d’une certaine quantité connaissant ses valeurs passées ainsi que d’autres informations. Par
exemple le rendement d’une action en bourse. . . Une différence importante avec les
problèmes de régression ou de classification est que les données suivent typiquement une
distribution non stationnaire.

Quelques algorithmes supervisés


- Réseaux de neurones
C’est un modèle de raisonnement basé sur le cerveau humain.

• Le cerveau est constitué d’un ensemble de cellules nerveuses, ou unités de traitement


d’information, appelés neurones.
• Cerveau
o Près de 10 milliards de neurones
o 60 trillions de connexions, des synapses, entre eux.
• Un neurone est constitué de :
o Un corps de cellule, le soma
o Un nombre de fibres appelés dendrites
o Un fibre long appelé axone.
Qu’est-ce qu’un réseau de neurones ?
C’est un ensemble de processeurs très simples, appelés neurones.

• Les neurones sont branchés ensemble à l’aide de liens pondérés qui passent des
signaux d’un neurone à un autre.
• Le signal de sortie est transmis à travers la connexion de sortie du neurone.
• La sortie se divise en un nombre de branches qui transmettent tous le même signal.
• Les branches de sortie se terminent à l’entrée d’autres neurones dans le réseau.
• Chaque neurone reçoit un nombre de signaux d’entrée xi à travers ses connexions.
• Un ensemble de poids réels 𝑤" sont utilisés pour décrire la force de la connexion.
• Le niveau d’activation∑ 𝑥" 𝑤" détermine la force cumulative des signaux d’entrée.
• Une fonction seuil f calcule l’état final de la sortie. Ça simule le comportement ON/OFF
de neurones réels.
• Chaque réseau est aussi caractérisé par des propriétés globales telles que :
o Topologie du réseau
o Algorithme d’apprentissage
o Technique d’encodage
Neurone McCulloch-Pitts

• Les entrées sont excitatrices (+1) ou inhibitrices (-1)


• La fonction d’activation multiplie chaque entrée par son poids correspondant et fait
la somme du résultat.
• Si le résultat est >= 0, la sortie du neurone est 1 ; sinon -1.
• Les neurones peuvent être construites pour calculer n’importe quelle fonction
logique.
• Un système de ces neurones peut produire un modèle informatique complet.

Calcul de la sortie

• Le neurone calcule la somme pondérée des entrées et compare le résultat avec la


valeur seuil θ.
• Si l’entrée nette est moins que la valeur seuil, la sortie du neurone est -1.
• Si l’entrée nette est plus grande que la valeur seuil, le neurone est activé et la sortie
est +1.
• La fonction d’activation (ou fonction de transfert) du neurone est :

• Ce type de fonction est la fonction sign.

- Règle de Bayes
- Régression multivariée
- Les K plus proches voisins
- Arbre de décision
- Perceptrons
- Forêt aléatoire
- Deep learning
- Support Vecteurs Machines (SVM)

3.3. Apprentissage non supervisé


Dans l’apprentissage non supervisé il n’y a pas de notion de sortie désirée, on dispose
seulement d’un nombre fini de données d’apprentissage, constituées “d’entrées”, sans
qu’aucun label n’y soit rattaché.

Partitionnement
Le problème du partitionnement ou clustering est le pendant non-supervisé de la
classification. Un algorithme de partitionnement tente de partitionner l’espace d’entrée en
un certain nombre de “classes” en se basant sur un ensemble d’apprentissage fini, ne
contenant aucune information de classe explicite. Les critères utilisés pour décider si deux
points devraient appartenir à la même classe ou à des classes différentes sont spécifiques à
chaque algorithme, mais sont très souvent liés à une mesure de distance entre points.
Tout d’abord, le clustering, ou partitionnement, consiste à identifier des groupes dans les
données (voir figure 3). Cela permet de comprendre leurs caractéristiques générales, et
éventuellement d’inférer les propriétés d’une observation en fonction du groupe auquel elle
appartient.

Exemple
Voici quelques exemples de problèmes de partitionnement
La segmentation de marché consiste à identifier des groupes d’usagers ou de clients ayant un
comportement similaire. Cela permet de mieux comprendre leur profil, et cibler une
campagne de publicité, des contenus ou des actions spécifiquement vers certains groupes.

• Identifier des groupes de documents ayant un sujet similaire, sans les avoir au
préalable étiquetés par sujet. Cela permet d’organiser de larges banques de textes.
• La compression d’image peut être formulée comme un problème de partitionnement
consistant à regrouper des pixels similaires pour ensuite les représenter plus
efficacement.
• La segmentation d’image consiste à identifier les pixels d’une image appartenant à la
même région.
• Identifier des groupes parmi les patients présentant les mêmes symptômes permet
d’identifier des sous-types d’une maladie, qui pourront être traités différemment.

Estimation de densité

• Dans un problème d’estimation de densité, on cherche à modéliser convenablement


la distribution des données. L’estimateur obtenu 𝑓& (𝑥) doit pouvoir donner un bon
estimé de la densité de probabilité à un point de test 𝑥 issu de la même distribution
(inconnue) que les données d’apprentissage.
Quelques algorithmes non supervisés
- K moyennes
- Réduction de dimension
- Maximum de vraisemblance
- Cartes auto-organisatrices

3.4. Apprentissage semi supervisé


Comme on peut s’en douter, l’apprentissage semi-supervisé consiste à apprendre des
étiquettes à partir d’un jeu de données partiellement étiqueté. Le premier avantage de cette
approche est qu’elle permet d’éviter d’avoir à étiqueter l’intégralité des exemples
d’apprentissage, ce qui est pertinent quand il est facile d’accumuler des données mais que
leur étiquetage requiert une certaine quantité de travail humain.
Prenons par exemple la classification d’images : il est facile d’obtenir une banque de données
contenant des centaines de milliers d’images, mais avoir pour chacune d’entre elles l’étiquette
qui nous intéresse peut requérir énormément de travail. De plus, les étiquettes données par
des humains sont susceptibles de reproduire des biais humains, qu’un algorithme entièrement
supervisé reproduira à son tour. L’apprentissage semi-supervisé permet parfois d’éviter cet
écueil.
3.5. Implémentations logicielles

De nombreux logiciels et librairies open source permettent de mettre en oeuvre des


algorithmes de machine learning. Nous en citons ici quelques-uns :

• Les exemples de ce livre ont été écrits en Python, grâce à la très utilisée librairie scikit-learn
(http://scikit-learn.org) dont le développement, soutenu entre autres par Inria et Télécom
ParisTech, a commencé en 2007.
• De nombreux outils de machine learning sont implémentés en R, et recensés sur la page
http://cran.r-project.org/web/views/MachineLearning.html.
• Weka (Waikato environment for knowledge analysis,
https://www.cs.waikato.ac.nz/ml/weka/) est une suite d’outils de machine learning écrits en
Java et dont le développement a commencé en 1993.
• Shogun (http://www.shogun-toolbox.org/) interface de nombreux langages, et en
particulier Python, Octave, R, et C#. Shogun, ainsi nommée d’après ses fondateurs Søren
Sonnenburg et Gunnar Rätsch, a vu le jour en 1999.
• De nombreux outils spécialisés pour l’apprentissage profond et le calcul sur des
architectures distribuées ont vu le jour ces dernières années. Parmi eux, TensorFlow
(https://www.tensorflow.org) implémente de nombreux autres algorithmes de machine
learning.

Conclusion

• Un algorithme de machine learning ou d’apprentissage automatique est un algorithme


qui apprend un modèle à partir d’exemples, par le biais d’un problème d’optimisation.
• On utilise l’apprentissage automatique lorsqu’il est difficile ou impossible de définir les
instructions explicites à donner à un ordinateur pour résoudre un problème, mais que
l’on dispose de nombreux exemples illustratifs.
• Les algorithmes d’apprentissage automatique peuvent être divisés selon la nature du
problème qu’ils cherchent à résoudre, en apprentissage supervisé, non supervisé, et
semi-supervisé.
Références bibliographiques
Chloé-Agathe Azencott, Introduction au Machine Learning, Dunod, 2018.
L’intelligence artificielle et les systèmes experts : une nouvelle approche économique, Nada et Nadia
Berchane, 12 décembre 2017.

Vous aimerez peut-être aussi