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

Types de systèmes d'apprentissage automatique

Transféré par

Monday ABDOUL
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)
5 vues10 pages

Types de systèmes d'apprentissage automatique

Transféré par

Monday ABDOUL
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

1.

3 Types de systèmes d’apprentissage automatique 15

Figure 1.14 – Utilisation de l’apprentissage en ligne pour traiter de gros volumes de données

tendance à oublier tout aussi rapidement les anciennes (mais vous ne souhaitez pas
qu’un ltre anti-spam ne repère que les tout derniers modèles de spam qu’on lui a
montrés). Inversement, si le taux d’apprentissage est lent, le système aura une plus
grande inertie : il apprendra plus lentement, mais il sera aussi moins sensible aux
parasites dans les nouvelles données ou aux suites de données non représentatives.
Une des grosses dif cultés de l’apprentissage en ligne est que si l’on introduit de
mauvaises données dans le système, ses résultats vont se dégrader progressivement.
S’il s’agit d’un système en production, vos clients vont le remarquer. De mauvaises
données peuvent provenir par exemple d’un capteur défectueux sur un robot. Mais
il peut s’agir aussi d’une personne submergeant de données un moteur de recherche
a n d’améliorer son classement. Pour réduire ce risque, vous devez surveiller soi-
gneusement votre système et interrompre rapidement l’apprentissage (en revenant
éventuellement à un état de fonctionnement antérieur) si vous détectez une dégra-
dation des résultats. Vous pouvez aussi surveiller les données d’entrée (par exemple
grâce à un algorithme de détection des anomalies) et réagir en cas de données
anormales.
© Dunod – Toute reproduction non autorisée est un délit.

1.3.3 Apprentissage à partir d’observations


ou apprentissage à partir d’un modèle
On peut aussi catégoriser les systèmes de Machine Learning selon leur mode de géné-
ralisation. La plupart des tâches d’apprentissage automatique consistent à effectuer
des prédictions. Ceci signi e qu’à partir d’un certain nombre d’exemples d’appren-
tissage, le système doit être capable de généraliser à des exemples qu’il n’a jamais
vus auparavant. Obtenir de bons résultats sur le jeu d’entraînement c’est bien, mais
c’est insuf sant : le véritable objectif est d’obtenir de bons résultats sur de nouvelles
observations.
Il existe deux approches principales de la généralisation : l’apprentissage à partir
d’observations et l’apprentissage à partir d’un modèle.
16 Chapitre 1. Vue d’ensemble du Machine Learning

Apprentissage à partir d’observations


La forme la plus banale d’apprentissage consiste probablement à apprendre par cœur.
En créant un ltre anti-spam de cette manière, vous repéreriez uniquement les e-mails
absolument identiques à ceux préalablement repérés par des utilisateurs. Ce n’est pas
la pire solution, mais certainement pas la meilleure non plus.
Au lieu de se contenter de repérer les e-mails identiques à des spams connus, vous
pouvez programmer votre ltre de sorte qu’il repère les e-mails très similaires à des
spams connus. Ceci requiert une mesure de similarité entre deux e-mails. Une mesure
de similarité (très élémentaire) entre deux e-mails pourrait être le nombre de mots
qu’ils ont en commun. Le système classerait en spam un e-mail ayant de nombreux
mots en commun avec un e-mail de spam connu.
C’est ce qu’on appelle l’apprentissage à partir d’observations (en anglais, instance
based learning) : le système apprend les exemples par cœur, puis il généralise à de nou-
veaux cas en utilisant une mesure de similarité (voir gure 1.15).

Figure 1.15 – Apprentissage à partir d’observations

Apprentissage à partir d’un modèle


Une autre manière de généraliser à partir d’un ensemble d’exemples consiste à
construire un modèle de ces exemples, puis à l’utiliser pour effectuer des prédictions.
C’est ce qu’on appelle l’apprentissage à partir d’un modèle (voir gure 1.16).

Figure 1.16 – Apprentissage à partir d’un modèle


1.3 Types de systèmes d’apprentissage automatique 17

Supposons par exemple que vous vouliez savoir si l’argent fait le bonheur, et que
vous téléchargiez pour cela les données (en anglais) de l’Indicateur du vivre mieux
fournies par l’OCDE5 ainsi que les statistiques de PIB par habitant du FMI6, en com-
binant ensuite ces tableaux puis en triant selon le PIB par habitant. Le tableau 1.1
donne un aperçu de ce que vous obtenez :

Tableau 1.1 – L’argent rend-il les gens plus heureux ?

Pays PIB par habitant (USD) Satisfaction individuelle


Hungary 12 240 4,9
Korea 27 195 5,8
France 37 675 6,5
Australia 50 962 7,3
United States 55 805 7,2

Représentons sur un diagramme les données correspondant à quelques pays pris au


hasard (voir gure 1.17).

Figure 1.17 – Distinguez-vous une tendance ?


© Dunod – Toute reproduction non autorisée est un délit.

Hum, il semble bien y avoir une tendance ! Bien que les données paraissent enta-
chées de bruit (que les statisticiens dénomment aussi aléa), il semble que le niveau de
satisfaction individuelle augmente plus ou moins linéairement à mesure que le PIB
par habitant augmente. Vous décidez alors que le modèle de satisfaction individuelle
est une fonction linéaire du PIB par habitant. Cette étape s’appelle la sélection de
modèle : vous avez sélectionné un modèle linéaire de satisfaction individuelle compor-
tant une seule variable explicative, le PIB par habitant (voir équation 1.1).

5. [Link]
6. [Link]
18 Chapitre 1. Vue d’ensemble du Machine Learning

Équation 1.1 – Un modèle linéaire simple


satisfaction_individuelle = θ0 + θ1 × PIB_par_habitant
Ce modèle comporte deux paramètres de modèle, θ0 et θ1.7 En modi ant ces para-
mètres, vous pouvez changer la fonction linéaire associée à votre modèle, comme
présenté sur la gure 1.18.

Figure 1.18 – Quelques-uns des modèles linéaires possibles

Avant de pouvoir utiliser votre modèle, vous devez dé nir les valeurs des para-
mètres θ0 et θ1. Comment pouvez-vous savoir quelles valeurs permettront à votre
modèle de fournir les meilleurs résultats ? Pour répondre à cette question, vous
devez dé nir une mesure de performance. Vous pouvez soit dé nir une fonction de
tness (encore appelée fonction d’adaptation) dont les valeurs seront d’autant plus
élevées que votre modèle est bon, ou une fonction de coût dont les valeurs seront
élevées lorsque votre modèle est mauvais. Pour les problèmes de régression linéaire,
on utilise en général une fonction de coût mesurant la distance entre les prédic-
tions du modèle linéaire et les exemples d’entraînement : l’objectif est de minimiser
cette distance.
Et c’est là que l’algorithme de régression linéaire apparaît : vous lui fournissez vos
exemples d’entraînement et il trouve les paramètres permettant d’ajuster au mieux le
modèle linéaire à vos données. C’est ce qu’on appelle l’entraînement du modèle. Dans
notre cas, l’algorithme trouve que les valeurs optimales des paramètres sont θ0 = 4,85
et θ1 = 4,91 × 10–5.
Maintenant le modèle s’ajuste aussi précisément que possible (pour un modèle
linéaire) aux données d’entraînement, comme vous pouvez le voir sur la gure 1.19.

7. Par convention, la lettre grecque θ (thêta) est fréquemment utilisée pour représenter les paramètres du
modèle.
1.3 Types de systèmes d’apprentissage automatique 19

Figure 1.19 – Le modèle linéaire s’ajustant le mieux aux données d’entraînement

Vous êtes prêt maintenant à exécuter le modèle pour faire des prédictions. Si vous
voulez connaître par exemple le degré de satisfaction personnelle des Chypriotes, les
données de l’OCDE ne comportent pas la réponse, mais vous pouvez heureusement
utiliser votre modèle pour effectuer une bonne prédiction : vous recherchez le PIB
par habitant de Chypre et trouvez 22 587 $, puis vous appliquez votre modèle et
trouvez que la satisfaction personnelle se situe vraisemblablement aux alentours de
4,85 + 22 587 × 4,91 × 10–5 = 5,96.
Pour aiguiser votre appétit, l’exemple 1.1 vous présente le code Python qui charge
les données, les prépare8, les visualise sous forme d’un nuage de points, puis entraîne
un modèle linéaire et effectue une prédiction9.

Exemple 1.1 – Entraînement et exécution d’un modèle linéaire à l’aide de Scikit-Learn


import matplotlib
import [Link] as plt
import numpy as np
import pandas as pd
© Dunod – Toute reproduction non autorisée est un délit.

import sklearn

# Chargement des données


oecd_bli = pd.read_csv("oecd_bli_2015.csv", thousands=',')
gdp_per_capita = pd.read_csv("gdp_per_capita.csv",thousands=',',delimiter='\t',
encoding='latin1', na_values="n/a")

8. Le code suppose que la fonction prepare_country_stats() est déjà dé nie : elle combine les
données de PIB et de satisfaction personnelle dans un même dataframe Pandas.
9. Si vous ne comprenez pas le code pour l’instant, ce n’est pas grave car nous vous présenterons Scikit-
Learn dans les chapitres suivants.
20 Chapitre 1. Vue d’ensemble du Machine Learning

# Préparation des données


country_stats = prepare_country_stats(oecd_bli, gdp_per_capita)
X = np.c_[country_stats["GDP per capita"]]
y = np.c_[country_stats["Life satisfaction"]]

# Visualisation des données


country_stats.plot(kind='scatter', x="GDP per capita", y='Life satisfaction')
[Link]()

# Sélection d’un modèle linéaire


lin_reg_model = sklearn.linear_model.LinearRegression()

# Entraînement du modèle
lin_reg_model.fit(X, y)

# Réalisation d’une prédiction pour Chypre


X_new = [[22587]] # PIB par habitant pour Chypre
print(lin_reg_model.predict(X_new)) # imprime [[ 5.96242338]]

Si au lieu de cela vous aviez utilisé un algorithme d’apprentissage basé sur


des observations, vous auriez vu que le pays dont le PIB par habitant se rap-
prochait le plus de celui de Chypre était la Slovénie (22 732 $) et comme les
données de l’OCDE indiquent que le niveau de satisfaction des Slovènes est
de 5,7, vous auriez prédit une satisfaction individuelle de 5,7 pour Chypre.
En prenant un peu de recul et en recherchant les deux pays suivants les
plus proches, vous constatez qu’il s’agit du Portugal et de l’Espagne avec des
niveaux de satisfaction respectifs de 5,1 et 6,5. En prenant la moyenne de
ces trois valeurs, vous obtenez 5,77. C’est assez proche de votre prédiction
à partir d’un modèle. Cet algorithme très simple s’appelle la méthode des
k plus proches voisins (dans cet exemple, k = 3).
Pour remplacer le modèle de régression linéaire par la méthode des k plus
proches voisins dans le code ci-dessus, il suffit de remplacer cette ligne-ci :
clf = sklearn.linear_model.LinearRegression()
par celle-là :
clf = [Link](n_neighbors=3)

Si tout s’est bien passé, votre modèle fournira de bonnes prédictions. Si ce n’est
pas le cas, il vous faudra peut-être utiliser davantage de variables (données sur l’em-
ploi, la santé, la pollution, etc.), obtenir davantage de données d’entraînement ou en
améliorer la qualité, ou peut-être sélectionner un modèle plus perfectionné (comme
un modèle de régression polynomiale).
En résumé :
vous avez étudié les données,
vous avez sélectionné un modèle,
vous l’avez entraîné sur des données d’entraînement (c.-à-d. que l’algorithme
d’apprentissage a recherché les valeurs des paramètres du modèle minimisant
la fonction de coût),
1.4 Principales difficultés de l’apprentissage automatique 21

puis vous avez appliqué le modèle pour effectuer des prédictions sur de nouveaux
cas (ce qu’on appelle une inférence), en espérant que ce modèle se généralisera
bien.
Voici à quoi ressemble en général un projet de Machine Learning. Au chapitre 2,
vous en ferez l’expérience en direct en parcourant de bout en bout toutes les étapes
d’un projet.
Nous avons abordé beaucoup de sujets jusqu’à maintenant : vous savez désormais
ce que signi e réellement le Machine Learning, pourquoi c’est utile, quelles sont les
principales catégories de systèmes ML, et à quoi ressemble le déroulement normal
d’un tel projet. Maintenant, examinons ce qui peut ne pas fonctionner dans l’appren-
tissage et vous empêcher d’effectuer de bonnes prédictions.

1.4 PRINCIPALES DIFFICULTÉS DE L’APPRENTISSAGE


AUTOMATIQUE
En bref, sachant que votre principale tâche consiste à sélectionner un algorithme
d’apprentissage et à l’entraîner sur certaines données, les deux écueils peuvent être
un « mauvais algorithme » et de « mauvaises données ». Commençons par quelques
exemples de mauvaises données.

1.4.1 Données d’apprentissage en nombre insuf�sant


Pour qu’un bébé apprenne ce qu’est une pomme, il suf t de lui montrer une pomme et
de dire « pomme » (en répétant éventuellement la procédure plusieurs fois). L’enfant
devient alors capable de reconnaître des pommes de couleur et de taille différentes.
Génial.
L’apprentissage automatique n’en est pas encore vraiment là : la plupart de ses
algorithmes requièrent un grand nombre de données pour travailler correctement.
Même pour des problèmes très simples, il faut en général des milliers d’exemples ; et
pour des problèmes complexes tels que l’analyse d’image ou la reconnaissance vocale,
des millions d’exemples peuvent être nécessaires (à moins que vous puissiez réutiliser
certaines parties d’un modèle existant).
© Dunod – Toute reproduction non autorisée est un délit.
22 Chapitre 1. Vue d’ensemble du Machine Learning

La déraisonnable ef�cacité des données


Dans un fameux article publié en 2001, Banko et Brill10, chercheurs chez Microsoft,
ont montré que des algorithmes de Machine Learning très différents, dont certains
plutôt simples, donnaient d’aussi bons résultats sur le problème complexe de la
désambiguïsation du langage naturel11 une fois qu’ils avaient reçu suffisamment de
données (comme vous pouvez le constater sur la figure 1.20).

1,00

0,95

0,90
Exactitude du test

0,85

0,80

En mémoire
Winnow
0,75
Perceptron
Bayésien naïf
0,70
0,1 1 10 100 1 000
Millions de mots

Figure 1.20 – Importance des données par rapport aux algorithmes12

Ainsi que l’expliquent les auteurs, « […] ces résultats suggèrent que nous devrions recons-
idérer le compromis réalisé entre le temps et l’argent que nous consacrons au développe-
ment d’un algorithme par rapport à ce que nous consacrons à la constitution du corpus ».
L’idée que les données sont plus importantes que les algorithmes pour les problèmes
complexes a été popularisée plus avant par Peter Norvig et al. dans un article intitulé
« The unreasonable effectiveness of data »13 (la déraisonnable efficacité des données)
publié en 2009. Il convient de noter cependant que les jeux de données de petite
et moyenne taille sont encore très courants, et qu’il n’est pas toujours aisé ni bon
marché d’obtenir davantage de données d’apprentissage, c’est pourquoi il ne faut
pas encore abandonner les algorithmes.

10. [Link]
11. Comme par exemple lorsqu’il s’agit de savoir si l’on va écrire « tant », « tend », « temps » ou « taon »,
compte tenu du contexte.
12. Figure reproduite avec la permission de Banko & Brill (2001). Titre originel : « Learning Curves for
Confusion Set Disambiguation ».
13. [Link]
1.4 Principales difficultés de l’apprentissage automatique 23

1.4.2 Données d’entraînement non représentatives


Pour obtenir une bonne généralisation, il est essentiel que vos données d’entraîne-
ment soient représentatives des nouveaux cas auxquels vous voulez généraliser. Ceci
reste vrai quel que soit l’apprentissage, à partir d’observations ou à partir d’un modèle.
Ainsi, l’ensemble de pays que nous avons utilisé pour entraîner notre modèle
linéaire ci-dessus n’était pas parfaitement représentatif : certains pays manquaient.
La gure 1.21 nous montre à quoi ressemblent les données lorsque nous ajoutons ces
pays manquants :

Figure 1.21 – Un échantillon d’entraînement plus représentatif

Si vous entraînez un modèle linéaire sur ces données, vous obtenez la ligne continue,
tandis que l’ancien modèle est représenté par la ligne en pointillé. Comme vous pouvez le
constater, ajouter quelques pays manquants non seulement améliore signi cativement le
modèle, mais aussi montre clairement qu’un simple modèle linéaire ne conviendra proba-
blement jamais parfaitement. Il semble que les pays très riches ne soient pas plus heureux
que les pays moyennement riches (de fait, ils semblent moins heureux) et à l’inverse,
certains pays pauvres semblent plus heureux que nombre de pays riches.
En utilisant un jeu de données non représentatif, nous avons entraîné un modèle
qui ne fera vraisemblablement pas de bonnes prédictions, tout particulièrement pour
© Dunod – Toute reproduction non autorisée est un délit.

les pays très pauvres et très riches.


Il est essentiel d’utiliser un jeu d’entraînement qui soit représentatif des cas aux-
quels vous voulez généraliser. C’est souvent plus dif cile qu’il n’y paraît : si l’échan-
tillon est trop petit, vous aurez un bruit d’échantillonnage (données non représentatives
résultant du hasard), mais même des échantillons très importants peuvent être non
représentatifs si la méthode d’échantillonnage est défectueuse. C’est ce qu’on appelle
le biais d’échantillonnage.
24 Chapitre 1. Vue d’ensemble du Machine Learning

Un exemple célèbre de biais d’échantillonnage


L’exemple le plus célèbre de biais d’échantillonnage est probablement celui de l’élec-
tion présidentielle américaine de 1936 qui opposait Landon à Roosevelt : le magazine
Literary Digest avait effectué un très large sondage d’opinion, en s’adressant par
courrier à plus de 10 millions de personnes. Il avait obtenu 2,4 millions de réponses
et prédit avec un indice de confiance élevé que Landon obtiendrait 57 % des votes.
Au lieu de cela, Roosevelt l’a emporté avec 62 % des votes. Le défaut résidait dans la
méthode d’échantillonnage adoptée par les sondeurs du Literary Digest :
Premièrement, pour obtenir les adresses auxquelles envoyer les questionnaires,
ils avaient utilisé des annuaires téléphoniques, des listes d’abonnés, des listes de
membres de clubs, etc. Toutes ces listes ont tendance à regrouper des gens plus
fortunés qui voteront plus vraisemblablement Républicain (c’est-à-dire Landon).
Deuxièmement, moins de 25 % des personnes ayant reçu le questionnaire
ont répondu. Là encore, la méthode introduisait un biais d’échantillonnage en
excluant les personnes ne se souciant guère de politique, celles n’aimant pas le
Literary Digest, etc. Ceci constitue un type particulier de biais d’échantillonnage
appelé biais de non-réponse.
En voici un autre exemple : supposons que vous vouliez mettre au point un système
pour reconnaître les vidéos de musique funk. L’une des façons de construire votre jeu
d’entraînement consiste à rechercher « musique funk » sur YouTube et à utiliser les
vidéos obtenues. Mais ceci suppose que le moteur de recherche de YouTube renvoie
un ensemble de vidéos qui soit représentatif de toutes les vidéos de musique funk sur
YouTube. En pratique, les résultats de recherche seront vraisemblablement biaisés vers
les artistes en vogue (et si vous vivez au Brésil, vous obtiendrez beaucoup de vidéos
de « funk carioca » qui n’ont rien à voir avec la musique de James Brown). Mais d’un
autre côté, comment constituer autrement un jeu d’entraînement de grande taille ?

1.4.3 Données de mauvaise qualité


Manifestement, si votre jeu d’entraînement est rempli d’erreurs, de données aber-
rantes et de bruit (dû à la mauvaise qualité des mesures), le système aura plus de mal
à détecter les structures sous-jacentes, et par conséquent votre système aura moins
de chances de donner de bons résultats. Cela vaut souvent la peine de consacrer du
temps à nettoyer vos données d’apprentissage. En vérité, la plupart des experts en
données consacrent une part non négligeable de leur temps à cette seule tâche. Par
exemple :
Si certaines données sont manifestement aberrantes, il peut être utile de les
supprimer ou d’essayer de corriger manuellement les erreurs.
S’il manque quelques valeurs dans certaines observations (comme par exemple
lorsque 5 % des clients n’ont pas indiqué leur âge), vous devez décider si vous
voulez ignorer totalement cette variable, ou ignorer ces observations, ou
remplir ces valeurs manquantes (par exemple avec l’âge moyen), ou entraîner
un modèle avec cette variable et un autre sans, etc.

Vous aimerez peut-être aussi