Formation ML / Bayesian Statistics

Regression Lineaire Bayesienne

Intermediaire 45 min 11 sections

Revisitez la regression lineaire avec des lunettes bayesiennes. Posterior exact des coefficients, faisceaux de droites plausibles, bandes d'incertitude predictive, et le lien cache entre Ridge et prior gaussien.

Objectifs d'apprentissage

  • Passer de coefficients ponctuels a des distributions de coefficients
  • Calculer le posterior analytique d'une regression lineaire gaussienne
  • Visualiser l'incertitude: faisceau de droites et bandes de credibilite
  • Comprendre pourquoi Ridge est un prior gaussien deguise (MAP)
  • Produire des predictions avec incertitude quantifiee

Prerequis

Modules Regression Lineaire et Inference Bayesienne

Theorie

Des coefficients ponctuels aux distributions

Dans le module Regression Lineaire, le modele $y = a \cdot x + b$ produit UNE pente $a$

et UN intercept $b$: les valeurs qui minimisent l'erreur quadratique (moindres carres, OLS).

Question genante: avec seulement quelques dizaines de ventes immobilieres, a quel point

peut-on faire confiance a ces deux nombres ? Une pente de 3500 EUR/m2 estimee sur 20 ventes

n'a pas la meme solidite qu'estimee sur 20000 ventes. L'OLS ne repond pas: il rend les memes

nombres, sans indication de fiabilite.

La reponse bayesienne: traiter les coefficients comme des variables aleatoires.

  • Prior sur les coefficients: $w \sim \mathcal{N}(0, \tau^2)$

("les coefficients sont probablement modestes")

  • Vraisemblance gaussienne: $y \mid x, w \sim \mathcal{N}(w^\top x, \sigma^2)$

(le bruit d'observation)

  • Posterior: une distribution complete sur les coefficients, calculable EXACTEMENT

(conjugaison gaussienne, comme la Beta-Binomiale du module precedent)

Le scoop de ce module: vous faisiez deja du bayesien sans le savoir.

La regression Ridge (penalite L2) du monde sklearn s'ecrit:

$$\hat{w}_{ridge} = \arg\min_w \; \|y - Xw\|^2 + \alpha \|w\|^2$$

On demontrera que c'est EXACTEMENT le maximum du posterior (MAP) avec un prior gaussien,

avec la correspondance $\alpha = \sigma^2 / \tau^2$:

  • prior large ($\tau$ grand) $\Leftrightarrow$ $\alpha$ petit $\Leftrightarrow$ peu de regularisation
  • prior serre ($\tau$ petit) $\Leftrightarrow$ $\alpha$ grand $\Leftrightarrow$ forte regularisation

La regularisation n'est pas une astuce d'ingenieur: c'est un prior qui dit son nom.

Theorie

Schema: la regression vue comme une inference

Le meme cycle bayesien, applique aux coefficients:

flowchart LR PRIOR["Prior sur (a, b)
N(0, tau2)"] DATA["Ventes observees
vraisemblance gaussienne"] BAYES["Theoreme
de Bayes"] POST["Posterior sur (a, b)
gaussienne exacte"] PRED["Predictions
avec incertitude"] PRIOR --> BAYES DATA --> BAYES BAYES --> POST POST --> PRED style PRIOR fill:#E5D7F5,color:#1A1A1A style DATA fill:#d4edda,color:#1A1A1A style BAYES fill:#9B7AC4,color:#fff style POST fill:#F7E64D,color:#1A1A1A style PRED fill:#fff3cd,color:#1A1A1A

Exemple numerique en une dimension:

Supposons une pente estimee par les donnees seules a $\textcolor{#3498db}{\hat{a}_{data} = 2.0}$

avec une variance d'estimation $\textcolor{#3498db}{0.25}$ (les donnees sont peu nombreuses),

et un prior $\textcolor{#9B7AC4}{a \sim \mathcal{N}(0, 1)}$.

Pour des gaussiennes, le posterior combine les deux sources au prorata de leur precision

(precision = 1/variance):

$$a_{post} = \frac{\textcolor{#9B7AC4}{\frac{0}{1}} + \textcolor{#3498db}{\frac{2.0}{0.25}}}{\textcolor{#9B7AC4}{\frac{1}{1}} + \textcolor{#3498db}{\frac{1}{0.25}}} = \frac{0 + 8}{1 + 4} = \textcolor{#27ae60}{1.6}$$

Legende des couleurs:

  • $\textcolor{#9B7AC4}{Violet}$ : le prior (centre 0, variance 1, donc precision 1)
  • $\textcolor{#3498db}{Bleu}$ : l'information des donnees (centre 2.0, precision 4)
  • $\textcolor{#27ae60}{Vert}$ : le posterior, moyenne ponderee par les precisions

Les donnees sont 4 fois plus precises que le prior: le posterior (1.6) est donc 4 fois

plus proche de 2.0 que de 0. La variance du posterior, elle, vaut

$1/(1+4) = 0.2$: combiner deux sources reduit toujours l'incertitude.

Avance Exercice manuel: A vous de calculer!

## Le bras de fer prior contre donnees

Meme mecanique que dans le schema ci-dessus, a faire a la main.

Un coefficient a un prior $a \sim \mathcal{N}(0, \tau^2)$ et les donnees seules

l'estiment a $\hat{a}_{data} = 3.0$ avec une variance d'estimation $s^2 = 0.5$.

La formule de combinaison gaussienne:

$$a_{post} = \frac{\mu_{prior}/\tau^2 + \hat{a}_{data}/s^2}{1/\tau^2 + 1/s^2} \qquad \text{Var}_{post} = \frac{1}{1/\tau^2 + 1/s^2}$$

Question 1: prior LARGE $\tau^2 = 10$. Calculez $a_{post}$ et $\text{Var}_{post}$.

Question 2: prior SERRE $\tau^2 = 0.1$. Calculez $a_{post}$ et $\text{Var}_{post}$.

Question 3: dans quel cas le posterior colle-t-il aux donnees ? Au prior ?

Reliez ce comportement au parametre $\alpha$ de Ridge ($\alpha = \sigma^2/\tau^2$):

quel cas correspond a une forte regularisation ?

Avance Solution de l'exercice manuel

## Solution detaillee

Question 1: prior large ($\tau^2 = 10$)

Precisions: prior $1/10 = 0.1$, donnees $1/0.5 = 2$.

$$a_{post} = \frac{0 \times 0.1 + 3.0 \times 2}{0.1 + 2} = \frac{6}{2.1} \approx 2.86$$

$$\text{Var}_{post} = \frac{1}{2.1} \approx 0.476$$

Le posterior (2.86) reste tres proche de l'estimation des donnees (3.0).

Question 2: prior serre ($\tau^2 = 0.1$)

Precisions: prior $1/0.1 = 10$, donnees $2$.

$$a_{post} = \frac{0 \times 10 + 3.0 \times 2}{10 + 2} = \frac{6}{12} = 0.5$$

$$\text{Var}_{post} = \frac{1}{12} \approx 0.083$$

Le prior ecrase les donnees: le posterior (0.5) est tire vers 0.

Question 3: le lien avec Ridge

Prior__MATH_75d1def5____MATH_41b764b4__Comportement
Large10petitle posterior suit les donnees (regularisation faible)
Serre0.1grandle posterior est tire vers 0 (regularisation forte)

Un prior serre autour de zero "retient" les coefficients exactement comme la

penalite Ridge les retient. C'est la meme operation mathematique, vue de deux

fenetres differentes. La cellule d'exercice en fin de module le verifie

numeriquement avec sklearn.

Contenu verrouille section restante
4 / 11

Continuez votre apprentissage

Vous avez explore 4 sections de ce module. Connectez-vous pour debloquer le reste du cours, incluant les exercices pratiques et les solutions.

Console Python

Raccourcis clavier
Ctrl/Cmd+Enter Executer
Ctrl/Cmd+Shift+/ Commenter
Tab Indenter
Shift+Tab Desindenter
Ctrl/Cmd+Z Annuler
Ctrl/Cmd+Y Retablir
Ctrl+Enter pour executer
Cliquez sur "Executer" pour voir le resultat