Fonctions et applications : pourquoi tout modèle d’IA est une fonction
Ensemble de départ, image, injectivité, composition, réciproque, fonctions de plusieurs variables et convexité — avec les courbes de la sigmoïde, de ReLU et du paysage de l’erreur.
Série Bases de l’IA Partie 6 sur 52
- Carte de l’intelligence artificielle : qu’est-ce qui est quoi et comment tout s’emboîte
- Brève histoire de l’intelligence artificielle : de Turing aux modèles de langage
- Données, modèle, entraînement, inférence : les notions de base sur un seul exemple
- Lire la notation mathématique : symboles, indices, sommes et quantificateurs
- Ensembles et relations : les briques dont sont faites les définitions en IA
- Fonctions et applications : pourquoi tout modèle d’IA est une fonction
- Logique et démonstrations : les règles selon lesquelles on raisonne en IA
- Graphes et arbres : la structure sur laquelle reposent la recherche et les réseaux de neurones
- Algèbre linéaire pour l’apprentissage automatique : vecteurs, matrices et pourquoi l’IA multiplie surtout
- Dérivées, gradient et règle de dérivation en chaîne : comment un modèle sait dans quelle direction apprendre
- Descente de gradient : comment un modèle apprend
- Qu’est-ce que la probabilité : du lancer de dé aux axiomes de Kolmogorov
- Probabilité conditionnelle et théorème de Bayes : comment réviser une estimation quand on apprend du nouveau
- Variable aléatoire et fonction de répartition : une seule fonction qui dit tout de la loi
- Fonction de densité et fonction de masse : pourquoi une variable continue a une probabilité nulle en chaque point
- Espérance, variance et covariance : où se situe une loi, quelle est sa largeur et ce qui varie avec quoi
- Panorama des lois de probabilité : Bernoulli, binomiale, Poisson, uniforme, normale et exponentielle
- Loi des grands nombres et théorème central limite : pourquoi les moyennes sont si prévisibles
- Statistique et estimation de paramètres : maximum de vraisemblance, MAP et intervalles de confiance
- Théorie de l’information : entropie, entropie croisée et divergence KL — d’où viennent les fonctions de perte
- Recherche dans l’espace d’états : BFS, DFS, UCS et A* en animations
- Jeux et adversaires : minimax, élagage alpha-bêta et Monte Carlo tree search
- Satisfaction de contraintes : backtracking, propagation de contraintes et AC-3 sur un sudoku et une carte des régions tchèques
- Logique et systèmes à base de connaissances : chaînage avant et arrière, résolution et systèmes experts
- Planification : STRIPS, monde des blocs, heuristiques par relaxation et planification dans les agents IA
- Recherche locale et recuit simulé : un voyageur de commerce à travers les chefs-lieux de région tchèques
- Algorithmes génétiques : population, croisement, mutation et sélection sur un sac à dos de randonnée
- Stratégies d’évolution et programmation génétique : de la règle du cinquième à la loi de Kepler
- Optimisation par colonies de fourmis : comment une piste de phéromone trouve un chemin court
- Optimisation par essaim de particules : inertie, expérience propre et expérience de l’essaim
- Neuroévolution : faire évoluer les poids et la forme des réseaux de neurones, et l’algorithme NEAT
- Ensembles flous et fonctions d’appartenance : comment écrire « un peu chaud »
- Logique floue et probabilité : pourquoi « un peu chaud » ne veut pas dire « probablement chaud »
- Logique floue : t-normes, implications et règles SI–ALORS
- Commande floue : Mamdani et Sugeno, du ventilateur au pendule inversé sur un chariot
- Clustering flou : l’algorithme fuzzy c-means et les points entre les clusters
- Systèmes neuro-flous (ANFIS) : des règles floues qui apprennent à partir des données
- Chaînes de Markov : matrice de transition, distribution stationnaire et PageRank
- Modèles de Markov cachés : l’algorithme de Viterbi et le casino malhonnête
- Réseaux bayésiens : pourquoi l’herbe est mouillée et ce que cela implique pour l’arroseur
- Le filtre de Kalman : comment estimer, à partir de mesures imprécises, où se trouve une voiture et à quelle vitesse elle roule
- Types d’apprentissage automatique : supervisé, non supervisé, semi-supervisé et plus
- Prompts, contexte et RAG : comment donner au modèle les bonnes informations
- Autoencodeurs variationnels (VAE) : de nouvelles images à partir d’un espace latent continu
- Réseaux antagonistes génératifs (GAN) : le faussaire contre le détective
- Modèles de diffusion : comment une image naît du bruit pur
- Processus de décision markoviens : états, actions, récompenses et équations de Bellman
- Q-learning et DQN : apprendre la valeur des actions, du tableau au réseau de neurones
- Policy gradient et PPO : apprendre directement la politique
- Comment fonctionne un agent IA : un modèle de langage en boucle avec des outils
- Programmer avec des agents IA : consigne, tests et vérification
- Évaluation et sécurité des systèmes d’IA : comment mesurer et comment surveiller
Programme complet de la série 52 sur 83 sujets publiés
- Ce qu’est une fonction, son ensemble de départ et son image — et quelles fonctions vous croiserez le plus souvent en IA.
- Ce que signifient injective, surjective et bijective, pourquoi un réseau de neurones est une composée de fonctions et quand la réciproque existe.
- Pourquoi la fonction de perte est un paysage et pourquoi la convexité compte quand on en cherche le fond.
Utile à connaître avant : Lire la notation mathématique : symboles, indices, sommes et quantificateurs, Ensembles et relations : les briques dont sont faites les définitions en IA
Tout modèle d’intelligence artificielle est une fonction. Un filtre anti-spam prend un e-mail et renvoie « spam » ou « pas spam », un modèle de langage prend un texte et renvoie les probabilités du mot suivant, un réseau de neurones est une fonction composée de milliers de fonctions plus petites. Et l’apprentissage n’est rien d’autre que la recherche de la bonne fonction.
La partie précédente s’est terminée sur la définition d’une fonction comme relation particulière. Nous partons de là : à quoi ressemblent les fonctions, quelles propriétés elles ont, comment on les compose et pourquoi tout cela compte en IA.
1. Qu’est-ce qu’une fonction
Définition — fonction (application)
Une fonction f : X → Y associe à chaque élément x ∈ X exactement un élément f(x) ∈ Y. Le mot application signifie la même chose.
X est l’ensemble de départ (domaine), Y l’ensemble d’arrivée (codomaine). L’image de la fonction est l’ensemble des valeurs qu’elle prend réellement : f(X) = {f(x) : x ∈ X} ⊆ Y.
Le graphe de la fonction est l’ensemble des couples {(x, f(x)) : x ∈ X} ⊆ X × Y.
Une fonction est un distributeur automatique : vous y mettez une entrée et il en sort exactement une sortie — toujours la même. L’ensemble de départ dit ce que l’on a le droit de mettre dans le distributeur, l’ensemble d’arrivée ce qui peut en sortir. L’image, c’est ce qui en sort vraiment.
La différence entre ensemble d’arrivée et image se voit sur la sigmoïde σ : ℝ → ℝ : elle a le droit de renvoyer n’importe quel nombre réel, mais ne renvoie en réalité que des nombres entre 0 et 1. C’est pourquoi on peut la lire comme une probabilité.
2. Les fonctions que vous croiserez en IA
Une fonction d’une variable se comprend le mieux à partir de sa courbe. Celles-ci reviennent sans cesse en intelligence artificielle — comme modèles, comme fonctions d’activation des réseaux de neurones ou comme fonctions de perte :
- La fonction linéaire est le modèle le plus simple — la régression linéaire n’est rien d’autre.
- La fonction quadratique est la base de l’erreur quadratique moyenne : la pénalité croît avec le carré de l’écart.
- L’exponentielle et le logarithme sont réciproques l’une de l’autre ; le logarithme transforme la multiplication en addition, et c’est pourquoi vous le trouverez dans toute fonction de perte fondée sur des probabilités.
- La sigmoïde et tanh « écrasent » n’importe quel nombre dans l’intervalle (0, 1), respectivement (−1, 1).
- ReLU laisse passer les nombres positifs et met les négatifs à zéro. Elle est si simple qu’on a longtemps douté qu’elle puisse fonctionner — c’est aujourd’hui la fonction d’activation la plus utilisée.
3. Injective, surjective et bijective
Définition — fonction injective, surjective et bijective
f : X → Y est injective lorsque des entrées différentes donnent des sorties différentes : ∀x1, x2 : f(x1) = f(x2) ⇒ x1 = x2.
f est surjective lorsqu’elle atteint chaque élément de Y : ∀y ∈ Y ∃x ∈ X : f(x) = y, autrement dit f(X) = Y.
f est bijective (correspondance biunivoque) lorsqu’elle est à la fois injective et surjective.
Injective : deux entrées ne partagent jamais une sortie — à la sortie, on reconnaît d’où elle vient. Surjective : rien dans l’ensemble d’arrivée n’est laissé à l’abandon. Bijective : à chaque entrée correspond exactement une sortie et inversement — comme au vestiaire, où chaque manteau a son ticket.
En IA, presque tout modèle est non injectif : un classifieur envoie des milliers de photos de chats différentes dans une seule classe, « chat ». L’information sur la photo dont il s’agissait est ainsi perdue — et c’est très bien, c’est justement ce qu’on attend d’un classifieur. À l’inverse, les modèles de compression (auto-encodeurs) cherchent à être « presque injectifs », pour que l’on puisse reconstruire l’entrée à partir de sa forme compressée.
4. Composition de fonctions
Définition — fonction composée
Pour f : X → Y et g : Y → Z, la fonction composée g ∘ f : X → Z est définie par (g ∘ f)(x) = g(f(x)).
La composition est associative, h ∘ (g ∘ f) = (h ∘ g) ∘ f, mais en général pas commutative : g ∘ f ≠ f ∘ g.
La composition est une chaîne de montage : la sortie d’une machine entre directement dans la suivante. L’ordre compte — s’habiller puis se laver ne donne pas le même résultat que l’inverse.
Prenons f(x) = 2x + 1 et g(x) = x2 :
(g ∘ f)(3) = g(f(3)) = g(7) = 49
(f ∘ g)(3) = f(g(3)) = f(9) = 19
C’est exactement ainsi qu’est construit un réseau de neurones. Chaque couche est une fonction — une étape linéaire suivie d’une fonction d’activation — et le réseau entier est leur composée : f = f3 ∘ f2 ∘ f1. Un réseau « profond » n’est qu’une longue composition. Et quand, dans les parties suivantes, nous apprendrons à dériver, la règle de dérivation en chaîne dira justement comment dériver des fonctions composées.
5. Fonction réciproque
Définition — fonction réciproque
Une fonction f−1 : Y → X est la réciproque (l’inverse) de f : X → Y lorsque f−1(f(x)) = x pour tout x ∈ X et f(f−1(y)) = y pour tout y ∈ Y.
Théorème. La fonction réciproque existe si et seulement si f est bijective.
La fonction réciproque fait un pas en arrière : à partir de la sortie, elle retrouve l’entrée. Ce n’est possible que si deux entrées ne mènent jamais à la même sortie (sinon, on ne saurait pas où revenir) et si chaque sortie mène vraiment quelque part.
L’exponentielle et le logarithme forment un couple de fonctions réciproques : ln(ex) = x. La réciproque de la sigmoïde est la fonction logit, logit(p) = ln(p / (1 − p)) — elle refait d’une probabilité un nombre réel quelconque. C’est pourquoi on appelle « logits » les sorties du réseau avant la sigmoïde ou le softmax.
6. Fonctions de plusieurs variables
Définition — fonction de plusieurs variables
Une fonction f : ℝn → ℝ associe au vecteur (x1, …, xn) un nombre ; une fonction f : ℝn → ℝm associe à un vecteur un vecteur (fonction vectorielle).
La plupart des vraies fonctions prennent plusieurs entrées à la fois : le prix d’un appartement dépend de la surface, de l’emplacement et de l’ancienneté. Une couche de réseau de neurones prend un vecteur entier et renvoie un autre vecteur.
Une fonction de deux variables peut se dessiner comme une carte : on colore chaque point (x, y) selon la valeur f(x, y). Voici la fonction de Himmelblau, un test classique des algorithmes d’optimisation. Les zones sombres sont des vallées de faible valeur, les points blancs sont les quatre minima, où la fonction vaut zéro :
C’est exactement ainsi qu’il faut imaginer la fonction de perte d’un modèle : l’entrée, ce sont ses paramètres, la sortie, l’erreur. L’entraînement est la recherche du point le plus bas du paysage — sauf qu’au lieu de deux dimensions, le paysage d’un vrai modèle en compte des millions.
7. Monotonie et convexité
Définition — fonction croissante et fonction convexe
f est strictement croissante lorsque x1 < x2 ⇒ f(x1) < f(x2). Une fonction strictement croissante est toujours injective.
f est convexe lorsque pour tous x1, x2 et t ∈ [0, 1] on a f(tx1 + (1 − t)x2) ≤ t f(x1) + (1 − t) f(x2).
Théorème. Tout minimum local d’une fonction convexe est aussi un minimum global.
Une fonction convexe a la forme d’un bol : le segment entre deux points de la courbe est toujours au-dessus de la courbe. Un bol n’a qu’un seul fond — qui descend sans cesse le trouve. Avec une fonction non convexe, on peut finir dans un petit creux sans jamais apprendre qu’il y en a un plus profond juste à côté.
convexe : x², un seul minimum
non convexe : x⁴ − 3x² + x
La fonction non convexe x4 − 3x2 + x a deux minima : un global en x ≈ −1,30, de valeur ≈ −3,51, et un local en x ≈ 1,13, de valeur ≈ −1,07. Qui commence à chercher à droite et descend toujours finit dans le moins bon. Les fonctions de perte de la régression linéaire et de la régression logistique sont convexes — c’est pourquoi leur entraînement trouve à coup sûr la meilleure solution. Les pertes des réseaux de neurones ne sont pas convexes ; la manière de faire avec sera le sujet de la partie sur la descente de gradient.
8. Les fonctions en intelligence artificielle
On peut désormais dire tout l’apprentissage automatique dans le langage des fonctions :
- Un modèle est une fonction fθ : X → Y de paramètres θ — toute une famille de fonctions, une pour chaque choix de paramètres.
- La fonction de perte L : Y × Y → ℝ dit combien coûte la réponse ŷ quand la bonne réponse est y.
- L’apprentissage consiste à choisir une fonction dans la famille : l’argmin sur θ de la perte moyenne — la fonction des paramètres que nous venons de dessiner comme un paysage.
- Les fonctions d’activation (sigmoïde, tanh, ReLU) font de couches linéaires un réseau non linéaire ; sans elles, la composée de fonctions linéaires ne serait encore qu’une fonction linéaire.
9. Résumé
- Une fonction associe à chaque entrée exactement une sortie ; l’image, c’est là où elle tombe réellement.
- Une fonction injective ne confond pas deux entrées, une surjective couvre toute l’arrivée, une bijective a une réciproque.
- La composition de fonctions est une chaîne de montage — et un réseau de neurones est une composée de couches.
- La fonction de perte est un paysage au-dessus de l’espace des paramètres ; un paysage convexe n’a qu’un seul fond, un non convexe peut en avoir plusieurs.
Vous voyez les choses autrement ? Écrivez à support@coden-app.com.