88 lines
4.4 KiB
Plaintext
88 lines
4.4 KiB
Plaintext
---
|
|
title: "ML 02 Méthode des moindres carrés"
|
|
output:
|
|
pdf_document:
|
|
number_section: yes
|
|
html_notebook:
|
|
number_sections: yes
|
|
toc: false
|
|
classoption: fleqn
|
|
---
|
|
|
|
```{r, include=FALSE}
|
|
source("ML1_01_intro.R", local = knitr::knit_global())
|
|
source("ML1_02_moindres_carres.R", local = knitr::knit_global())
|
|
```
|
|
|
|
# Espace de fonctions
|
|
|
|
Soit un espace vectoriel composé de fonctions. Une base de cet espace est un ensemble de fonctions ($f_1, f_2, \dots f_N$) tel que toute fonction de l'espace s'exprime comme combinaison linéaire des fonctions de base.
|
|
\[
|
|
f(\mathbf{x}) = a_1 f_1(\mathbf{x}) + a_2 f_2(\mathbf{x}) + \dots + a_N f_N(\mathbf{x})
|
|
\]
|
|
Pour un jeu de données $\left\{ \mathbf{x^{(k)}},y^{(k)}\right\}_{k=1}^{N}$ de taille $N$, les coefficients $a_i$ sont solution d'un système linéaire.
|
|
\[
|
|
\left( \begin{array}{ccccc}
|
|
f_1(\mathbf{x^{(1)}}) & f_2(\mathbf{x^{(1)}}) & \dots & f_N(\mathbf{x^{(1)}}) \\
|
|
f_1(\mathbf{x^{(2)}}) & f_2(\mathbf{x^{(2)}}) & \dots & f_N(\mathbf{x^{(2)}}) \\
|
|
\dots & \dots & \dots & \dots \\
|
|
f_1(\mathbf{x^{(N)}}) & f_2(\mathbf{x^{(N)}}) & \dots & f_N(\mathbf{x^{(N)}})
|
|
\end{array} \right)
|
|
\left( \begin{array}{c}
|
|
a_1 \\ a_2 \\ \dots \\ a_N
|
|
\end{array} \right)
|
|
=
|
|
\left( \begin{array}{c}
|
|
y^{(1)} \\ y^{(2)} \\ \dots \\ y^{(N)}
|
|
\end{array} \right)
|
|
\]
|
|
Nous notons ce système linéaire $\mathbf{Ax} = \mathbf{b}$.
|
|
|
|
# Expression matricielle
|
|
|
|
Le système linéaire $\mathbf{Ax} = \mathbf{b}$ avec $\mathbf{A} \in \mathbb{R}^{M \times N}$ n'a pas de solution quand le nombre d'observations dépasse le nombre de fonctions de base (c'est-à-dire, $M>N$). Une approche possible est alors de chercher une approximation $\mathbf{Ax} \approx \mathbf{b}$ qui minimise la somme des carrés des erreurs : $\|\mathbf{Ax}-\mathbf{b}\|^2_2$.
|
|
|
|
\begin{align*}
|
|
& \|\mathbf{A}\mathbf{x}-\mathbf{b}\|^2_2 \\
|
|
= \{ & \|\mathbf{x}\|_2 = \sqrt{\mathbf{x}\cdot\mathbf{x}} \} \\
|
|
& \left(\mathbf{A}\mathbf{x}-\mathbf{b}\right) \cdot \left(\mathbf{A}\mathbf{x}-\mathbf{b}\right) \\
|
|
= \{ & \text{Par définition du produit scalaire euclidien} \} \\
|
|
& \left(\mathbf{A}\mathbf{x}-\mathbf{b}\right)^T \left(\mathbf{A}\mathbf{x}-\mathbf{b}\right) \\
|
|
= \{ & \text{propriété de la transposition} \} \\
|
|
& \left(\mathbf{x}^T\mathbf{A}^T - \mathbf{b}^T \right) \left(\mathbf{A}\mathbf{x}-\mathbf{b}\right) \\
|
|
= \{ & \text{multiplication} \} \\
|
|
& \mathbf{x}^T\mathbf{A}^T\mathbf{A}\mathbf{x} - \mathbf{x}^T\mathbf{A}^T\mathbf{b} - \mathbf{b}^T\mathbf{A}\mathbf{x} + \mathbf{b}^T\mathbf{b} \\
|
|
= \{ & \mathbf{b}^T\mathbf{A}\mathbf{x} \text{ étant une valeur scalaire, } \mathbf{b}^T\mathbf{A}\mathbf{x} = \left(\mathbf{b}^T\mathbf{A}\mathbf{x}\right)^T = \mathbf{x}^T\mathbf{A}^T\mathbf{b} \} \\
|
|
& \mathbf{x}^T\mathbf{A}^T\mathbf{A}\mathbf{x} - 2\mathbf{x}^T\mathbf{A}^T\mathbf{b} + \mathbf{b}^T\mathbf{b}
|
|
\end{align*}
|
|
|
|
Cette dernière expression quadratique en $\mathbf{x}$ correspond à une surface convexe. Donc son minimum peut être calculé en annulant sa dérivée (penser à une courbe $y = a+bx+cx^2$ dont l'unique extremum est atteint lorsque la pente est nulle).
|
|
|
|
\begin{align*}
|
|
& \mathbf{0} = 2\mathbf{A}^T\mathbf{A}\mathbf{x} - 2\mathbf{A}^T\mathbf{b} \\
|
|
=& \\
|
|
& \mathbf{A}^T\mathbf{A}\mathbf{x} = \mathbf{A}^T\mathbf{b}
|
|
\end{align*}
|
|
|
|
Ainsi, quand $M>N$, la solution approximée $\mathbf{x}$, telle que $\mathbf{Ax} \approx \mathbf{b}$ par minimisation de la somme des carrés des erreurs, est la solution du système linéaire suivant où $\mathbf{A}^T\mathbf{A}$ est appelée la matrice de Gram.
|
|
\[
|
|
\mathbf{A}^T\mathbf{A} \mathbf{x} = \mathbf{A}^T\mathbf{b}
|
|
\]
|
|
|
|
# Méthode des moindres carrés appliquée à la régression polynomiale
|
|
|
|
Pour un polynôme de degré $N-1$, les fonctions de bases mentionnées ci-dessus sont : $f_1(x)=1$, $f_2(x)=x$, $f_3(x)=x^2$,..., $f_N(x)=x^{N-1}$. Elles permettent de définir la matrice des données $\mathbf{A}$ et la matrice de Gram $\mathbf{A}^T\mathbf{A}$.
|
|
|
|
Nous reprenons l'exemple synthétique du précédent chapitre et nous résolvons le système linéaire correspondant à la matrice de Gram pour un polynôme de degré fixé.
|
|
|
|
```{r}
|
|
set.seed(1123)
|
|
# Image par f d'un échantillon uniforme sur l'intervalle [0,1], avec ajout d'un
|
|
# bruit gaussien de moyenne nulle et d'écart type 0.2
|
|
data = gendat(10,0.2)
|
|
coef = polyreg2(data,3)
|
|
plt(data,f)
|
|
pltpoly(coef)
|
|
```
|
|
|
|
Ce polynôme de degré trois modélise mieux la fonction génératrice inconnue que celui de degré quatre qui ne commettait aucune erreur sur les données observées. |