ajout fichiers modifiés knn, programmation et representation base chapitre 2

This commit is contained in:
2026-04-03 09:55:52 +02:00
parent 1ee25b23fe
commit f6d652784a
3 changed files with 56 additions and 17 deletions

View File

@@ -114,6 +114,45 @@ Une fois ces données modélisées, on peut formuler notre algorithme:
- Trouver la classification majoritaire parmi les voisins les plus proches
- Renvoyer cette classification
### Application concrète : Google compresse ses modèles IA avec KNN
Vous venez d'apprendre à trouver le voisin le plus proche d'un point dans un espace de coordonnées. Google utilise exactement ce principe pour réduire la mémoire nécessaire à ses modèles d'IA (comme Gemini).
**Le problème :** un modèle d'IA contient des milliards de paramètres — des vecteurs de nombres décimaux très précis. Les stocker tels quels nécessite des dizaines de gigaoctets de RAM.
**La solution (quantification vectorielle) :**
1. On construit un petit **dictionnaire** de vecteurs représentatifs (quelques milliers d'entrées)
2. Pour chaque vecteur du modèle, on cherche lequel dans le dictionnaire est le **plus proche** — en calculant une distance, exactement comme en KNN
3. On stocke uniquement **l'indice** de ce voisin le plus proche, au lieu du vecteur complet
C'est du KNN avec **K = 1**, appliqué non pas à une classification, mais à une **compression**. Le gain en mémoire peut atteindre un facteur 8.
```python
import math
vecteur_du_modele = [0.83, -1.47, 0.21]
dictionnaire = [
[1.0, -1.5, 0.0], # indice 0
[0.8, -1.4, 0.2], # indice 1
[-0.5, 0.3, 1.1], # indice 2
]
def distance(a, b):
return math.sqrt(sum((x - y) ** 2 for x, y in zip(a, b)))
# On cherche le plus proche voisin dans le dictionnaire (K=1)
plus_proche = min(range(len(dictionnaire)),
key=lambda i: distance(vecteur_du_modele, dictionnaire[i]))
print(f"On stocke juste l'indice {plus_proche} au lieu de {vecteur_du_modele}")
# → On stocke juste l'indice 1 au lieu de [0.83, -1.47, 0.21]
```
> L'algorithme KNN n'est donc pas réservé à la classification : dès qu'on cherche "le plus ressemblant" dans un ensemble connu, on fait du KNN.
--------------
### Pour résumer...
L'algorithme des k plus proches voisins a pour objectif d'identifier les voisins les plus proches d'un point de requête donné, afin d'attribuer une classe à ce point