Vous êtes sur la page 1sur 11

Machine Learning

DEFINITION :
L'apprentissage automatique est une application de l'intelligence artificielle (IA) qui offre aux systèmes la
capacité d'apprendre et de s'améliorer automatiquement à partir de l'expérience sans être explicitement
programmé. L'apprentissage automatique se concentre sur le développement de programmes
informatiques qui peuvent accéder aux données et les utiliser pour eux-mêmes. Une autre définition un
peu plus générale : L'apprentissage automatique est le domaine d'études qui donne aux ordinateurs
capacités d'apprendre sans être explicitement programmé.
Et plus orienté vers l'ingénierie : On dit qu'un programme informatique apprend de l'expérience E avec en
ce qui concerne une tâche T et une mesure de performance P, si ses performances sur T, mesurées par P,
s'améliorent avec l'expérience E.
Par exemple : Votre filtre anti-spam est un programme d'apprentissage automatique qui, à partir
d'exemples des courriers indésirables (par exemple, signalés par les utilisateurs) et des exemples de
courriers réguliers (non-spam, également appelé «jambon»), le système peut apprendre à signaler le
spam. Les exemples que le système utilise pour apprendre sont appelés « ensemble d’entrainement » ou
« training set ». Chaque exemple d’entrainement est appelé une instance (ou échantillon). Dans ce cas, la
tâche T consiste à signaler le spam pour les nouveaux e-mails, l'expérience E sont les données
d’entrainement « training set », et la mesure de performance P doit être défini ; par exemple, vous
pouvez utiliser le pourcentage de courriels correctement classifiés. Cette mesure de performance
particulière est appelée précision, et elle est souvent utilisé dans les tâches de classification.

Pourquoi utiliser le machine Learning :


Considérez comment vous écririez un filtre anti-spam en utilisant techniques de programmation
1. Tout d'abord, vous devriez considérer à quoi ressemble le spam. Vous remarquerez peut-être que
certains mots ou expressions (tels que «4U», «Carte de crédit», «gratuit» et «incroyable») ont tendance à
la ligne d'objet. Vous remarquerez peut-être aussi quelques autres paternes dans le nom de l'expéditeur,
le corps de l'e-mail et d'autres parties de l'e-mail.
2. Vous écririez un algorithme de détection pour chacun des paternes que vous avez remarqués, et votre
programme marquera les e-mails comme spam si un certain nombre de ces modèles ont été détectés.
3. Vous testez votre programme et répétez les étapes 1 et 2 jusqu'à ce qu'il est assez bon pour se lancer.
La figure suivante illustre les étapes d’écriture d’un programme anti-spam en utilisant les méthodes de
programmation :
Figure 1 : approche traditionnelle

Comme le problème est difficile, votre programme deviendra probablement une longue liste de règles
complexes - assez difficile à maintenir. En revanche, un filtre anti-spam basé sur les techniques
d'apprentissage automatique apprend automatiquement quels mots et expressions sont de bons
prédicteurs de spam en détectant des modèles de mots inhabituellement fréquents dans le spam
exemples comparés aux exemples de jambon (figure 1-2). Le programme est beaucoup plus court, plus
facile à entretenir et probablement plus précis.

Figure 2 approche par apprentissage automatique

Que faire si les spammeurs remarquent que tous leurs e-mails contenant «4U» sont bloqué? Ils
pourraient plutôt commencer à écrire «Pour U». Un filtre anti-spam utilisant les techniques de
programmation traditionnelles devraient être mises à jour pour signaler Courriels «Pour U». Si les
spammeurs continuent de contourner votre filtre anti-spam, vous devrez continuer à écrire de nouvelles
règles pour toujours. En revanche, un filtre anti-spam basé sur les techniques d'apprentissage
automatique remarque automatiquement que «For U» est devenu inhabituellement fréquent dans spam
signalé par les utilisateurs, et il commence à les signaler sans votre intervention

Figure 3 autoadaptation

Résoudre des problèmes plus complexes


Un autre domaine où le Machine Learning brille est celui des problèmes qui sont trop complexes pour les
approches traditionnelles, soit des problèmes qui n’ont pas d’algorithme pour les résoudre. Par exemple,
considérez la reconnaissance vocale, pour commencer simple vous décidez d’écrire un programme
capable de distinguer les mots «un» et «deux». Vous remarquerez peut-être que le mot «deux»
commence avec un son aigu ("D"), vous pouvez donc coder en dur un algorithme qui mesure l'intensité du
son aigu et l'utiliser pour distinguer un et deux, mais cette technique ne sera pratique pour distinguer des
milliers de mots prononcés par des millions de personnes très différentes environnements bruyants et
dans des dizaines de langues. La meilleure solution (au moins aujourd'hui) consiste à écrire un algorithme
qui apprend par lui-même, étant donné de nombreux exemples d'enregistrements pour chaque mot.
Enfin,

Aidé les humaines à comprendre :


le Machine Learning peut aider les humains à apprendre, les algorithmes de ML peuvent être inspectés
pour voir ce qu'ils ont appris (bien que pour certains algorithmes, cela peut être délicat). Par exemple,
une fois un spam filtre a été formé sur suffisamment de spam, il peut facilement être inspecté pour
révéler la liste des mots et des combinaisons de mots qui, selon lui, sont les meilleurs prédicteurs de
spam. Parfois, cela révélera insoupçonné corrélations ou nouvelles tendances, conduisant ainsi à une
meilleure compréhension du problème. Appliquer les techniques de ML pour creuser de grandes
quantités de données peuvent aider à découvrir des modèles qui n'étaient pas immédiatement apparent.
C'est ce qu'on appelle l'exploration de données.
Figure 4 comment le ML peut aider à mieux comprendre les données
Pour résumer, le Machine Learning est idéal pour :
 Problèmes pour lesquels les solutions existantes nécessitent beaucoup de mise au point ou
longues listes de règles : un algorithme d'apprentissage automatique peut souvent simplifier le
code et fonctionner mieux que l’approche traditionnelle.
 Problèmes complexes pour lesquels l'utilisation d'une approche traditionnelle ne donne aucune
bonne solution
 Environnements fluctuants : un système d'apprentissage automatique peut s'adapter aux
nouvelles données.
 Obtenir une meilleure connaissance sur des problèmes complexes et de grandes quantités des
données.

Catégories des Algorithmes de ML :


Il existe de nombreux types de systèmes d'apprentissage automatique qui il est utile de les classer en
grandes catégories, sur la base des critères suivants :
 Qu'ils soient formés ou non sous supervision humaine (supervisé, non supervisé, semi-supervisé
et Apprentissage par renforcement)
 Qu'ils puissent ou non apprendre progressivement (en ligne par rapport à l'apprentissage par
lots)
 Qu'ils fonctionnent en comparant simplement de nouveaux points de données à points de
données connus, ou à la place en détectant des modèles dans le la formation des données et la
construction d'un modèle prédictif, un peu comme les scientifiques le font (apprentissage basé
sur une instance versus basé sur un modèle)
Ces critères ne sont pas exclusives on peut les combinés dans n’importe quelle façon qu’on veut, par
exemple un filtre anti-spam qui utilise l’algorithme de réseaux de neurones peut apprendre en utilisant un
ensemble de e-mails libellés, ce en fait un système d’apprentissage supervisé basé sur modèle
Apprentissage supervisé/non-supervisé :
Les systèmes d'apprentissage automatique peuvent être classés selon quantité et type de supervision
qu'ils reçoivent pendant la phase d’entrainement. Il y a quatre grandes catégories : apprentissage
supervisé, apprentissage non supervisé, apprentissage semi-supervisé et apprentissage par renforcement.

Apprentissage supervisé :
En apprentissage supervisé, l'ensemble de données d’entrainement qui alimente à l'algorithme comprend
les solutions souhaitées, appelées étiquettes ou labelle, on peut distinguer deux type de système
d’apprentissage supervisé selon le type du variable cible,
Le premier type est la classification, on parle d’un problème de classification lorsque la variable cible est
une variable qualitatif discrète, Le filtre anti-spam est un bon exemple de cela : il est formé avec de
nombreux exemples de courriels avec leur classe (spam ou jambon), et il doit apprendre à classer les
nouveaux courriels

Figure 5 exemple d'un problème de classification


Le deuxième type est la régression, on parle d’un problème de régression lorsque la variable cible est une
variable quantitatif continue, par exemplela prédiction du prix d'une voiture, compte tenu d'un ensemble
de fonctionnalités (kilométrage, âge, marque, etc.)appelés prédicteurs. Ce type de tâche est appelé
régression. Pour entraîner le système, vous devez lui donner de nombreux exemples de voitures, y
compris leurs prédicteurs et leurs étiquettes (c'est-à-dire leurs prix).

Figure 6 exemple d'un problème de régression


Parmi les algorithmes d’apprentissage supervisé on a : LinearRegression, Support Vector Machine (SVM) ,
KNN , Neural Networks, Naive Base,
Apprentissage non-supervisé :
Dans ce type d’apprentissage les donné qui alimente l’algorithme ne sont pas labélisées, parmi les
algorithmes non supervisés on trouve :

Les algorithmes de clustering : dans ce type d’algorithme le but est de construire des groupes ou des
segments d’individue de tels façon ou les individue de même groupe soit les plus similaire possible et les
individues qui appartient aux deux groupes différents soit le plus distinctifs possible, supposons que vous
disposez de nombreuses données sur les visiteurs de votre blog. Vous souhaiterez peut-être exécuter un
algorithme de clustering pour essayer de détecter des groupes de visiteurs similaires (figure 1-8). À aucun
moment, vous ne dites à l'algorithme à quel groupe un visiteur appartient : il trouve ces connexions sans
votre aide. Par exemple, il pourrait remarquer que 40% de vos visiteurs sont des hommes qui aiment les
bandes dessinées et lisent généralement votre blog le soir, tandis que 20% sont de jeunes amateurs de
science-fiction qui visitent le week-end. Si vous utilisez un algorithme de clustering hiérarchique, il peut
également subdiviser chaque groupe en petits groupes. Cela peut vous aider à cibler vos publications pour
chaque groupe

Figure 7 algorithme de clustering

Les algorithmes de réduction de dimensionnalité :


Les algorithmes de visualisation sont également de bons exemples d'algorithmes d'apprentissage non
supervisés : vous leur fournissez beaucoup de données complexes et non étiquetées, et ils produisent une
représentation 2D ou 3D de vos données qui peut facilement être tracée. Ces algorithmes essaient de
préserver autant de structure que possible (par exemple, en essayant d'empêcher les clusters séparés
dans l'espace d'entrée de se chevaucher dans la visualisation) afin que vous puissiez comprendre
comment les données sont organisées et peut-être identifier des modèles insoupçonnés.
Détection d’anomalie :
Encore une autre tâche importante non supervisée est la détection des anomalies - par exemple, la
détection de transactions de carte de crédit inhabituelles pour éviter la fraude, la capture de défauts de
fabrication ou la suppression automatique des valeurs aberrantes d'un ensemble de données avant de le
transmettre à un autre algorithme d'apprentissage. Le système est alimenté principalement par des
instances normales pendant la phase d’apprentissage, il apprend donc à les reconnaître ; puis, quand il
voit une nouvelle instance, il peut dire s'il ressemble à une instance normale ou s'il s'agit probablement
d'une anomalie

Figure 8 exemple d'un as de détection d'anomalie

Les règles d’association :


Une autre tâche courante non supervisée est l'apprentissage des règles d'association, dans lequel le but
est de creuser de grandes quantités de données et de découvrir des relations intéressantes entre les
attributs. Par exemple, supposons que vous possédez un supermarché. L'exécution d'une règle
d'association sur vos journaux de vente peut révéler que les personnes qui achètent de la sauce barbecue
et des croustilles ont également tendance à acheter du steak. Par conséquent, vous souhaiterez peut-être
placer ces éléments les uns à côté des autres.

Apprentissage semi-supervisé :
Étant donné que l'étiquetage des données est généralement long et coûteux, vous aurez souvent de
nombreuses instances non étiquetées et peu d'instances étiquetées. Certains algorithmes peuvent traiter
des données partiellement étiquetées. C'est ce qu'on appelle l'apprentissage semi-supervisé
Figure 9: exemple d'apprentissage semi-supervisé
Certains services d'hébergement de photos, tels que Google Photos, en sont de bons exemples. Une fois
que vous avez téléchargé toutes vos photos de famille sur le service, il reconnaît automatiquement que la
même personne A apparaît sur les photos 1, 5 et 11, tandis qu'une autre personne B apparaît sur les
photos 2, 5 et 7. Il s'agit de la partie non supervisée de l'algorithme (clustering). Maintenant, tout ce dont
le système a besoin, c'est que vous lui disiez qui sont ces personnes. Ajoutez simplement une étiquette
par personne et elle pourra nommer tout le monde sur chaque photo, ce qui est utile pour rechercher des
photos. La plupart des algorithmes d'apprentissage semi-supervisés sont des combinaisons d'algorithmes
non supervisés et supervisés.

Apprentissage par renforcement :


L'apprentissage par renforcement est une bête très différente. Le système d'apprentissage, appelé agent
dans ce contexte, peut observer l'environnement, sélectionner et exécuter des actions et obtenir des
récompenses en retour (ou des pénalités sous forme de récompenses négatives, comme le montre la
figure 1-12). Il doit ensuite apprendre par lui-même quelle est la meilleure stratégie, appelée politique,
pour obtenir le plus de récompenses au fil du temps. Une politique définit l'action que l'agent doit choisir
lorsqu'il se trouve dans une situation donnée.

Batch and Online Learning :


Un autre critère utilisé pour classer les systèmes d'apprentissage automatique est de savoir si le système
peut ou non apprendre de manière incrémentielle à partir d'un flux de données entrantes.

Apprentissage par lots


Dans l'apprentissage par lots, le système est incapable d'apprendre de manière incrémentielle : il doit être
entrainé en utilisant toutes les données disponibles. Cela prendra généralement beaucoup de temps et de
ressources informatiques, donc cela se fait généralement hors ligne. D'abord, le système est entrainé,
puis il est lancé en production et fonctionne sans apprentissage; il applique simplement ce qu'il a appris.
C'est ce qu'on appelle l'apprentissage hors ligne. Si vous voulez qu'un système d'apprentissage par lots
connaisse les nouvelles données (comme un nouveau type de spam), vous devez former une nouvelle
version du système à partir de zéro sur l'ensemble de données complet (pas seulement les nouvelles
données, mais aussi les anciennes données).), puis arrêtez l'ancien système et remplacez-le par le
nouveau. Heureusement, l'ensemble du processus de formation, d'évaluation et de lancement d'un
système d'apprentissage automatique peut être automatisé assez de sorte que même un système
d'apprentissage par lots peut s'adapter au changement. Mettez simplement à jour les données et
entraînez une nouvelle version du système à partir de zéro aussi souvent que nécessaire.
L’apprentissage en ligne :
Dans l'apprentissage en ligne, vous entraînez le système de manière incrémentielle en lui fournissant des
instances de données de manière séquentielle, individuellement ou en petits groupes appelés mini-lots.
Chaque étape d'apprentissage est rapide et bon marché, de sorte que le système peut s'informer des
nouvelles données à la volée, à mesure qu'elles arrivent, L'apprentissage en ligne est idéal pour les
systèmes qui reçoivent des données sous forme de flux continu (par exemple, les cours des actions) et
doivent s'adapter pour changer rapidement ou de manière autonome. C'est également une bonne option
si vous avez des ressources informatiques limitées : une fois qu'un système d'apprentissage en ligne a pris
connaissance des nouvelles instances de données, il n'en a plus besoin, vous pouvez donc les supprimer
(sauf si vous voulez pouvoir revenir à une précédente état et « rejouer» les données). Cela peut
économiser énormément d'espace. Les algorithmes d'apprentissage en ligne peuvent également être
utilisés pour entraîner des systèmes sur d'énormes ensembles de données qui ne peuvent pas tenir dans
la mémoire principale d'une machine (c'est ce qu'on appelle un apprentissage hors cœur). L'algorithme
charge une partie des données, exécute une étape de formation sur ces données et répète le processus
jusqu'à ce qu'il s'exécute sur toutes les données

Les défis majeurs du machine Learning :


Quantité insuffisante de données :
Pour qu'un enfant apprenne ce qu'est une pomme, il vous suffit de pointer du doigt une pomme et de
dire « pomme » (en répétant éventuellement cette procédure plusieurs fois). L'enfant est maintenant
capable de reconnaître les pommes dans toutes sortes de couleurs et de formes. L'apprentissage
automatique n'est pas encore tout à fait là ; il faut beaucoup de données pour que la plupart des
algorithmes d'apprentissage automatique fonctionnent correctement. Même pour des problèmes très
simples, vous avez généralement besoin de milliers d'exemples, et pour des problèmes complexes tels
que la reconnaissance d'image ou de la parole, vous pouvez avoir besoin de millions d'exemples (à moins
que vous ne puissiez réutiliser des parties d'un modèle existant).

Données de mauvaise qualité :


De toute évidence, si vos données d'entraînement sont pleines d'erreurs, de valeurs aberrantes et de
bruit (par exemple, en raison de mesures de mauvaise qualité), il sera plus difficile pour le système pour
détecter les modèles sous-jacents, donc votre système est moins susceptibles de bien performer. Il vaut
souvent la peine de consacrer du temps nettoyer vos données d'entraînement. La vérité est que la plupart
des scientifiques des données passer une partie importante de leur temps à faire exactement cela. Les
éléments suivants sont quelques exemples de cas où vous souhaitez nettoyer les données de formation:
 Si certains cas sont clairement aberrants, il peut être utile de simplement jetez-les ou essayez de
corriger les erreurs manuellement.
 Si certaines instances manquent quelques fonctionnalités (par exemple, 5% des vos clients n'ont
pas précisé leur âge), vous devez décider si vous voulez ignorer complètement cet attribut,
ignorez ces instances, remplissez les valeurs manquantes (par exemple, avec le âge médian), ou
entraînez un modèle avec la fonction et un modèle sans elle.
En d’autre coté ça peut arrivé que votre ensmble de données d’entrainement soit non-représentative,
Pour bien généraliser, il est essentiel que vos données d'entraînement soient représentatif des nouveaux
cas que vous souhaitez généraliser. C'est vrai que vous utilisiez un apprentissage basé sur des instances ou
basé sur un modèle apprentissage.
En d’autre partie Une partie essentielle de la réussite d'un projet d'apprentissage automatique consiste à
proposer un bon ensemble de variable explicatifs sur lesquelles vous entraîner. Ce processus, appelé
ingénierie des vaiables, implique les étapes suivantes:
 Sélection des fonctionnalités (sélection des fonctionnalités les plus utiles à formerparmi les
fonctionnalités existantes)
 Extraction de fonctionnalités (en combinant des fonctionnalités existantes pour en produire une
plus utile - comme nous l'avons vu précédemment, les algorithmes de réduction de
dimensionnalité peuvent aider)
 Créer de nouvelles fonctionnalités en collectant de nouvelles données

Overfitting (sur-apprentissage) :
L’Overfitting (sur-apprentissage) désigne le fait que le modèle prédictif produit par l’algorithme de Machine
Learning s’adapte bien au Training Set, En effet, quand je dis que la fonction prédictive s’adapte bien
au Training Set, je sous-entends qu’elle s’adapte même trop bien aux données d’apprentissage. Par
conséquent, le modèle prédictif capturera tous les “aspects” et détails qui caractérisent les données
du Training Set. Dans ce sens, il capturera toutes les fluctuations et variations aléatoires des données
du Training Set. En d’autres termes, le modèle prédictif capturera les corrélations généralisables ET le bruit
produit par les données. Quand un tel événement se produit, le modèle prédictif pourra donner de très bonnes
prédictions sur les données du Training Set (les données qu’il a déjà “vues” et auxquelles il s’y est adapté),
mais il prédira mal sur des données qu’il n’a pas encore vues lors de sa phase d’apprentissage. On dit que la
fonction prédictive se généralise mal. Et que le modèle souffre d’Overfitting.

Voici un exemple de sur-apprentissage dans le cas de la régression

L’image ci-dessus montre un exemple d’Overfitting. Le tracé en bleu représente une fonction de prédiction qui
passe par toutes les données du Training Set (points en vert). On voit bien que la fonction est instable (grande
variance) et qu’elle s’écarte beaucoup des points rouges qui représentent des données non vues lors de la
phase d’apprentissage (Test Set).

Underfitting (sous-apprentissage) :
L’Underfitting (sous-apprentissage), sous entend que le modèle prédictif généré lors de la phase
d’apprentissage, s’adapte mal au TRAINING SET.

Autrement dit, le modèle prédictif n’arrive même pas à capturer les corrélations du Training Set. Par
conséquent, le coût d’erreur en phase d’apprentissage reste grand. Bien évidemment, le modèle prédictif ne
se généralisera pas bien non plus sur les données qu’il n’a pas encore vu. Finalement, le modèle ne sera viable
car les erreurs de prédictions seront grandes.

Dans ce cas de figure, on dit que le modèle souffre d’Underfitting. On dit également qu’il souffre d’un
grand biais.

Voici un exemple qui illustre une situation de sous-apprentissage dans le cas du régression

L’image ci-dessus montre un exemple d’Underfitting. La courbe approche les 4 points et l’erreur est grande
pour les autres.

Vous aimerez peut-être aussi