Cours IFT6266, Introduction
Buts du cours:
- Comprendre les concepts de base derrière les algorithmes
d'apprentissage.
pré-requis: gros bon sens.
- Comprendre les éléments de la théorie de l'apprentissage.
pré-requis: probabilités, statistiques, algèbre
linéaire.
- Acquérir de l'expérience dans l'application d'algorithmes
d'apprentissage.
pré-requis: algorithmique, programmation, et analyse numérique.
Algorithmes d'apprentissage: introduction et motivation
- L'apprentissage: une caractéristique essentielle de l'intelligence
humaine.
- Inné + Acquis = somme des informations que nous utilisons.
- Apprendre = changer pour le mieux (selon un certain
critère) = intégrer de nouvelles informations en vue de s'en
servir dans le futur (probablement dans des situations nouvelles).
- Situation d'apprentissage typique:
- On nous donne des exemples (des données)
- On nous présente un nouveau cas et il faut prendre une décision
- e.g., classifier le nouvel exemple (CLASSIFICATION),
- e.g., faire une prédiction à partir du nouvel exemple
(RÉGRESSION),
- e.g., dire si le nouvel exemple ressemble aux exemples déjà
vus (ESTIMATION DE DENSITÉ).
- Pour pouvoir GÉNERALISER à de nouvelles situations,
il n'est pas suffisant (et peut-être nuisible) d'apprendre par coeur.
- Il est facile d'apprendre par coeur (e.g., mémoire
d'ordinateur), mais il est difficile d'apprendre pour généraliser
à de nouveaux cas.
- Apprentissage chez un animal ou un robot
- Entrée = perception
- Sortie = action
- Feedback = objectif inné
- action desirée = apprentissage supervisé,
- PLUS FACILE CAR PLUS D'INFORMATION DISPONIBLE
- signal bon/mauvais après un certain délai = apprentissage
par renforcement,
- pas de feedback explicite = apprentissage non-supervisé.
- Pourquoi généraliser est difficile
- Étant donné un nombre fini d'exemples, beaucoup
de solutions (manières de généraliser) sont en principe
possibles! Elles donnent toutes les bonnes réponses sur les exemples
d'apprentissage mais des réponses différentes sur de nouveaux
cas.
- Si on considère que les données sont tirées d'une certaine loi, on aurait
pu avoir un échantillon différent, mais on ne voudrait pas que la solution
obtenue soit très différente (car dans ce cas il y a de bonnes chances
pour la solution particulière que nous avons choisie ne soit pas très bonne,
puisque plusieurs solutions foncièrement différentes ne peuvent être toutes
correctes en même temps).
- Comment choisir une solution parmi un ensemble de solutions (toutes
compatibles avec les exemples d'apprentissage)?
- Rasoir d'Occam: choisir la plus "simple" (mais que
veut dire "simple"?).
- Exemple avec l'apprentissage d'une fonction de R vers R: on préfère
une fonction plus lisse.
![[lisse]](lisse.jpeg)
Preference pour une solution plus lisse"
- Plus généralement, on utilise deux principes:
- Préférer les solutions plus "simples".
- Utiliser des connaissances à priori pour établir
une échelle de préférence entre les solutions.
- Combiner exemples + connaissances à priori
![[magic]](magic.jpeg)
En general, sans connaissances a priori, "garbage in, garbage out"
- Approche classique en informatique, basée principalement sur
les connaissances à priori:
- Compréhension du problème (définition des
connaissances à priori appropriées).
- Design d'une solution algorithmique basée sur ces connaissances.
- Réalisation de la solution (e.g., en logiciel).
- Difficultés pratiques avec l'approche classique:
- Connaissances incomplètes.
- Connaissances floues ou pas sures à 100%.
- Algorithme trop coûteux (temps ou mémoire).
- Solutions basées sur l'apprentissage: on extraie beaucoup
d'informations des données (des exemples d'apprentissage), i.e., les
relations entre les variables observées.
- On combine les deux sources d'information:
- données (exemples)
- connaissances à priori
- On obtient une solution approximative.
- Apprendre: chercher dans un ensemble de fonctions
- Approches sans apprentissage:
- très bonne connaissance du problème: programmation
"classique"
- connaissances incomplètes: "engineering" = essais et erreurs
guidés par l'expérience (et feedback des essais).
- Approches avec apprentissage:
- On automatise la recherche d'une solution.
- Prix à payer:
- données (exemples) à acquérir
- ressources informatiques (temps + mémoire)
- Apprentissage incrémental:
- On commence avec une solution initiale (en se basant sur des
connaissances à priori), dans un ensemble de solutions (aussi choisi
avec des connaissances à priori).
- On modifie graduellement la solution afin d'optimiser un certain
critère d'apprentissage.
- On arrête quand on ne peut plus améliorer de manière
significative ou que nos ressources informatiques sont toutes dépensées.
Retour au site du cours