Intelligence Artificielle - Introduction¶

1956 - Darthmouth workshop¶

image-2.png

John Mc Carthy¶

No description has been provided for this image pionnier de l'intelligence artificielle (jeux : élagage alpha-beta) - (1956)

inventeur du langage LISP (list processing) - (1958)

crée le laboratoire IA à Stanford - (1962)

prix Turing - (1971)
John Mac Carthy

Intelligence Artificielle¶

« vouloir doter des systèmes informatiques de capacités intellectuelles comparables à celles des hommes »¶

Tâches intellectuelles à faire réaliser par une machine¶

  • Jeux : stratégie pour gagner ?

  • Analyse d'image (fixe, vidéo) : classification, segmentation ...

  • Reconnaissance de la parole

  • Traduction

  • Raisonnement automatique

  • Conduire une voiture

  • Rédiger un mémoire de recherche

Principe d'une IA¶

image.png

Système avec ou sans apprentissage¶

sans apprentissage :¶

  • le programmeur implémente l'"intelligence"

avec apprentissage :¶

  • le système se nourrit de données extérieures : avant et/ou pendant l'utilisation du système

Apprentissages ...¶

Utiliser des données extérieures pour améliorer le modèle :

  • apprentissage supervisé : on donne des exemples au système, et la réponse attendue

  • apprentissage non-supervisé : on donne des exemples au système (et c'est tout !)

  • apprentissage par renforcement (HP) : on réinjecte dans le système des exemples corrigés

  • apprentissage profond (HP) : le modèle interne se complexifie (réseaux de neurones multicouches ...)

Explosion des usages :¶

modèles performants :¶

  • réseaux de neurones (1960) remis au goût du jour par Y.Le Cun (1990) (prix Turing 2018)

puissance de calcul¶

  • loi de Moore + cloud computing

données disponibles¶

  • big data : internet + données personnelles + appareils connectés

puissance financière :¶

  • des millions / milliards de $ : GAFAM, et autres

Problèmes éthiques :¶

on délègue des décisions à des algorithmes ...¶

  • ce n'est pas la première fois ... : trajectoire de fusées / missiles / avion, déclenchement ABS des voitures ...

... mais cette fois, l'algorithme est "flou"¶

  • dépend souvent des données d'entraînement (qui entraine le système ?)

  • peut dépendre des entrées utilisateurs (reflète le mode de pensée des utilisateurs ?)

  • le modèle interne devient souvent inintelligible (réseau de neurones HP), mais pas "doué d'intelligence" ...

dangers ?¶

  • faire croire que la sortie d'une IA est "la vérité" (ce n'est que la sortie d'un algorithme)

solutions ?¶

  • éducation : comment ça marche ? qui "tire les ficelles" ?

Au programme MPI :¶

Une introduction à l'intelligence artificielle avec des objectifs variés, et algorithmes relativement simples :

  • classification supervisée : KNN, ID3

  • classification non supervisée (clustering) : CAH, K-means

  • jeux à 1 joueur : exploration de graphe

  • jeux à deux joueurs : attracteurs, algorithme min-max, élagage $\alpha\beta$

  • déplacement "orienté" dans un graphe : **algorithme A***

Exemple de "tâche simple" : classification¶

  • classer un mail automatiquement : spam / non-spam

image.png

Exemple de "tâche simple" : régression¶

  • A quel prix évaluer un bien immobilier ?

image.png

Exemple de "tâche simple" : regroupement (clustering)¶

  • Regrouper ces aliments en 5 classes

image-2.png

Quelle modélisation informatique ?¶

vecteur de caractéristiques¶

Chaque objet est représenté par un vecteur de $d$ caractéristiques (en anglais : features)

Quelles caractéristiques ?

  • discret : {oui, non} ; {appartement, maison, terrain} ; {0,1,2,3,4,5}

  • continu : $[0;100]$, $\mathbb{R}$, ...

distance¶

De nombreux algorithmes utilisent une notion de distance entre objets.

  • Si les caractéritiques sont continues, on peut utiliser les distances mathématiques classiques :

$dist(\vec{x}, \vec{y}) = \sum_{i=1}^d (x_i-y_i)^2)^{1/2}$ (distance euclidienne - norme 2)

$dist(\vec{x}, \vec{y}) = \sum_{i=1}^d |x_i-y_i|$ (distance "manhattan" - norme 1)

  • Sinon ... à adapter au cas par cas

par exemple : $dist(oui, oui) = dist(non, non) = 0$; $dist(oui, non) = dist(non, oui) = 1$

NB : attention aux unités¶

image.png

Quels sont les objets les plus proches avec la distance euclidienne ?

à gauche : $d(A,B) = \sqrt{(12-9)^2 + (3-3)^2} = ...$

à gauche : $d(A,B) = \sqrt{9}$ ; $d(A,C) = \sqrt{5} $ ; $d(B,C) =\sqrt{2}$

à gauche : B et C sont les plus proches

NB : attention aux unités¶

image.png

à gauche : B et C sont les plus proches

à droite : $d(A,B) = \sqrt{9}$ ; $d(A,C) = \sqrt{10004} $ ; $d(B,C) =\sqrt{10001}$

à droite : A et B sont les plus proches !

NB : attention aux unités¶

En pratqiue : on pondère la contribution de chaque dimension

$dist(\vec{x}, \vec{y}) = (\sum_{i=1}^d \alpha_i (x_i-y_i)^2)^{1/2}$ avec $\alpha_i > 0$

Le choix des caractéristiques, et de la distance utilisée sont points cruciaux en intelligence artificielle ...¶

En MPI, on simplifie. On se contentera de travailler :

  • avec des vecteurs de $\mathbb{R}^d$ et la distance euclidienne pour KNN, CAH et K-means

  • avec des vecteurs à valeurs discrètes pour ID3