diff --git a/01_intro.R b/01_intro.R index 87a0e28..4d07b7e 100644 --- a/01_intro.R +++ b/01_intro.R @@ -6,12 +6,12 @@ f <- function(x) {exp(x) * cos(2*pi*sin(pi*x))} # Génération d'un jeu de données synthétique qui est l'image par f d'un # échantillon uniforme de l'intervalle [0,1] auquel nous ajoutons un bruit # gaussien de moyenne nulle et d'écart type sd. -gendat <- function(N, sd) { - # N: nombre d'observations à générer +gendat <- function(n, sd) { + # n: nombre d'observations à générer # sd: écart type d'un bruit gaussien de moyenne nulle - X = runif(N) - Y = f(X) + rnorm(N, mean=0, sd=sd) - dim(X) <- c(N,1) # en général chaque observation est décrite par plusieurs + X = runif(n) + Y = f(X) + rnorm(n, mean=0, sd=sd) + dim(X) <- c(n,1) # en général chaque observation est décrite par plusieurs # variables et X est une matrice avec autant de lignes que # d'observations et autant de colonnes que de variables. Sur # notre exemple, chaque observation n'est décrite que par une diff --git a/01_intro.Rmd b/01_intro.Rmd index 432dba3..a49fd66 100644 --- a/01_intro.Rmd +++ b/01_intro.Rmd @@ -33,60 +33,60 @@ Pour faciliter l’acquisition des connaissances, le cours est accompagné de no # Ajustement de courbe -$\mathbf{x}^{(1)} \dots \mathbf{x}^{(P)}$ sont des vecteurs de $\mathbb{R}^N$ associés aux valeurs, aussi appelées étiquettes, $y^{(1)} \dots y^{(P)}$ de $\mathbb{R}$. Nous cherchons une fonction $f(\mathbf{x}) : \mathbb{R}^N \rightarrow \mathbb{R}$ qui modélise la relation entre les observations $\mathbf{x}$ et les étiquettes $y$. +$\mathbf{x}^{(1)} \dots \mathbf{x}^{(n)}$ sont des vecteurs de $\mathbb{R}^p$ associés aux valeurs, aussi appelées étiquettes, $y^{(1)} \dots y^{(n)}$ de $\mathbb{R}$. Nous cherchons une fonction $f(\mathbf{x}) : \mathbb{R}^p \rightarrow \mathbb{R}$ qui modélise la relation entre les observations $\mathbf{x}$ et les étiquettes $y$. La fonction $f$ peut avoir une forme paramétrique, comme par exemple : \[ -f(\mathbf{x}) = a_0 + a_1x_1 + a_2x_2 + \dots + a_Nx_N +f(\mathbf{x}) = \beta_0 + \beta_1x_1 + \beta_2x_2 + \dots + \beta_px_p \] -Si $P=N+1$, les paramètres $a_0, a_1, \dots a_N$ sont solution d'un système linéaire : +Si $n=p+1$, les paramètres $\beta_0, \beta_1, \dots \beta_p$ sont solution d'un système linéaire : \[ \begin{cases} -y^{(1)} &= a_0 + a_1 x_1^{(1)} + a_2 x_2^{(1)} + \dots + a_N x_N^{(1)} \\ -y^{(2)} &= a_0 + a_1 x_1^{(2)} + a_2 x_2^{(2)} + \dots + a_N x_N^{(2)} \\ +y^{(1)} &= \beta_0 + \beta_1 x_1^{(1)} + \beta_2 x_2^{(1)} + \dots + \beta_p x_p^{(1)} \\ +y^{(2)} &= \beta_0 + \beta_1 x_1^{(2)} + \beta_2 x_2^{(2)} + \dots + \beta_p x_p^{(2)} \\ \dots &= \dots \\ -y^{(P)} &= a_0 + a_1 x_1^{(P)} + a_2 x_2^{(P)} + \dots + a_N x_N^{(P)} \\ +y^{(n)} &= \beta_0 + \beta_1 x_1^{(P)} + \beta_2 x_2^{(P)} + \dots + \beta_p x_p^{(n)} \\ \end{cases} \] Ce système s'écrit également sous forme matricielle : \[ \left( \begin{array}{cccc} -1 & x^{(1)}_1 & \dots & x^{(1)}_N \\ -1 & x^{(2)}_1 & \dots & x^{(2)}_N \\ +1 & x^{(1)}_1 & \dots & x^{(1)}_p \\ +1 & x^{(2)}_1 & \dots & x^{(2)}_p \\ \dots & \dots & \dots & \dots \\ -1 & x^{(P)}_1 & \dots & x^{(P)}_N +1 & x^{(n)}_1 & \dots & x^{(n)}_p \end{array} \right) \left( \begin{array}{c} -a_0 \\ a_1 \\ \dots \\ a_N +\beta_0 \\ \beta_1 \\ \dots \\ \beta_p \end{array} \right) = \left( \begin{array}{c} -y^{(1)} \\ y^{(2)} \\ \dots \\ y^{(P)} +y^{(1)} \\ y^{(2)} \\ \dots \\ y^{(n)} \end{array} \right) \] -Chaque ligne $i$ de la matrice du terme de gauche de l'égalité ci-dessus est le vecteur ligne $\mathbf{x}^{(i)T}$ avec l'addition d'un premier terme constant qui correspond au paramètre $a_0$. En nommant cette matrice $\mathbf{X}^T$, le système linéaire ci-dessus s'écrit : +Chaque ligne $i$ de la matrice du terme de gauche de l'égalité ci-dessus est le vecteur ligne $\mathbf{x}^{(i)T}$ avec l'addition d'un premier terme constant qui correspond au paramètre $\beta_0$. En nommant cette matrice $\mathbf{X}^T$, le système linéaire ci-dessus s'écrit : \[ -\mathbf{X}^T \mathbf{a} = \mathbf{y} +\mathbf{X}^T \mathbf{\boldsymbol\beta} = \mathbf{y} \] -Soit le cas particulier où $x$ est un scalaire et $f$ est un polynome de degré $N$ : +Soit le cas particulier où $x$ est un scalaire et $f$ est un polynôme de degré $p$ : \[ -f(x) = a_0 + a_1x + a_2x^2 + \dots + a_Nx^N +f(x) = \beta_0 + \beta_1x + \beta_2x^2 + \dots + \beta_px^p \] -Avec $P=N+1$ observations et les étiquettes associées $\left( x^{(k)}, y^{(k)} \right)$, les coefficients de ce polynôme sont solution d'un système linéaire : +Avec $n=p+1$ observations et les étiquettes associées $\left( x^{(k)}, y^{(k)} \right)$, les coefficients de ce polynôme sont solution d'un système linéaire : \[ \left( \begin{array}{ccccc} -1 & x^{(1)} & (x^{(1)})^2 & \dots & (x^{(1)})^N \\ -1 & x^{(2)} & (x^{(2)})^2 & \dots & (x^{(2)})^N \\ +1 & x^{(1)} & (x^{(1)})^2 & \dots & (x^{(1)})^p \\ +1 & x^{(2)} & (x^{(2)})^2 & \dots & (x^{(2)})^p \\ \dots & \dots & \dots & \dots \\ -1 & x^{(P)} & (x^{(P)})^2 & \dots & (x^{(P)})^N +1 & x^{(n)} & (x^{(n)})^2 & \dots & (x^{(n)})^p \end{array} \right) \left( \begin{array}{c} -a_0 \\ a_1 \\ \dots \\ a_N +\beta_0 \\ \beta_1 \\ \dots \\ \beta_p \end{array} \right) = \left( \begin{array}{c} -y^{(1)} \\ y^{(2)} \\ \dots \\ y^{(P)} +y^{(1)} \\ y^{(2)} \\ \dots \\ y^{(n)} \end{array} \right) \] diff --git a/02_moindres_carres.Rmd b/02_moindres_carres.Rmd index f301c58..f8e7612 100644 --- a/02_moindres_carres.Rmd +++ b/02_moindres_carres.Rmd @@ -14,62 +14,62 @@ source("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. +Soit un espace vectoriel composé de fonctions. Une base de cet espace est un ensemble de fonctions ($f_1, f_2, \dots f_p$) 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}) +f(\mathbf{x}) = \beta_1 f_1(\mathbf{x}) + \beta_2 f_2(\mathbf{x}) + \dots + \beta_p f_p(\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. +Pour un jeu de données $\left\{ \mathbf{x^{(k)}},y^{(k)}\right\}_{k=1}^{n}$ de taille $n=p$, les coefficients $\beta_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)}}) \\ +f_1(\mathbf{x^{(1)}}) & f_2(\mathbf{x^{(1)}}) & \dots & f_p(\mathbf{x^{(1)}}) \\ +f_1(\mathbf{x^{(2)}}) & f_2(\mathbf{x^{(2)}}) & \dots & f_p(\mathbf{x^{(2)}}) \\ \dots & \dots & \dots & \dots \\ -f_1(\mathbf{x^{(N)}}) & f_2(\mathbf{x^{(N)}}) & \dots & f_N(\mathbf{x^{(N)}}) +f_1(\mathbf{x^{(n)}}) & f_2(\mathbf{x^{(n)}}) & \dots & f_p(\mathbf{x^{(n)}}) \end{array} \right) \left( \begin{array}{c} -a_1 \\ a_2 \\ \dots \\ a_N +\beta_1 \\ \beta_2 \\ \dots \\ \beta_p \end{array} \right) = \left( \begin{array}{c} -y^{(1)} \\ y^{(2)} \\ \dots \\ y^{(N)} +y^{(1)} \\ y^{(2)} \\ \dots \\ y^{(n)} \end{array} \right) \] -Nous notons ce système linéaire $\mathbf{Ax} = \mathbf{b}$. +Nous notons ce système linéaire $\mathbf{X}\boldsymbol\beta = \mathbf{y}$. # 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$. +Le système linéaire $\mathbf{X}\boldsymbol\beta = \mathbf{y}$ avec $\mathbf{X} \in \mathbb{R}^{n \times p}$ n'a pas de solution quand le nombre d'observations dépasse le nombre de fonctions de base (c'est-à-dire, $n>p$). Une approche possible est alors de chercher une approximation $\mathbf{X}\boldsymbol\beta \approx \mathbf{y}$ qui minimise la somme des carrés des erreurs : $\|\mathbf{X}\boldsymbol\beta-\mathbf{y}\|^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) \\ + & \|\mathbf{X}\boldsymbol\beta-\mathbf{y}\|^2_2 \\ += \{ & \|\boldsymbol\beta\|_2 = \sqrt{\boldsymbol\beta\cdot\boldsymbol\beta} \} \\ + & \left(\mathbf{X}\boldsymbol\beta-\mathbf{y}\right) \cdot \left(\mathbf{X}\boldsymbol\beta-\mathbf{y}\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) \\ + & \left(\mathbf{X}\boldsymbol\beta-\mathbf{y}\right)^T \left(\mathbf{X}\boldsymbol\beta-\mathbf{y}\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) \\ + & \left(\boldsymbol\beta^T\mathbf{X}^T - \mathbf{y}^T \right) \left(\mathbf{X}\boldsymbol\beta-\mathbf{y}\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} + & \boldsymbol\beta^T\mathbf{X}^T\mathbf{X}\boldsymbol\beta - \boldsymbol\beta^T\mathbf{X}^T\mathbf{y} - \mathbf{y}^T\mathbf{X}\boldsymbol\beta + \mathbf{y}^T\mathbf{y} \\ += \{ & \mathbf{y}^T\mathbf{X}\boldsymbol\beta \text{ étant une valeur scalaire, } \mathbf{y}^T\mathbf{X}\boldsymbol\beta = \left(\mathbf{y}^T\mathbf{X}\boldsymbol\beta\right)^T = \boldsymbol\beta^T\mathbf{X}^T\mathbf{y} \} \\ + & \boldsymbol\beta^T\mathbf{X}^T\mathbf{X}\boldsymbol\beta - 2\boldsymbol\beta^T\mathbf{X}^T\mathbf{y} + \mathbf{y}^T\mathbf{y} \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). +Cette dernière expression quadratique en $\boldsymbol\beta$ 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{0} = 2\mathbf{X}^T\mathbf{X}\boldsymbol\beta - 2\mathbf{X}^T\mathbf{y} \\ =& \\ - & \mathbf{A}^T\mathbf{A}\mathbf{x} = \mathbf{A}^T\mathbf{b} + & \mathbf{X}^T\mathbf{X}\boldsymbol\beta = \mathbf{X}^T\mathbf{y} \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. +Ainsi, quand $n>p$, la solution approximée $\hat{\boldsymbol\beta}$, telle que $\mathbf{X}\hat{\boldsymbol\beta} \approx \mathbf{y}$ par minimisation de la somme des carrés des erreurs, est la solution du système linéaire suivant où $\mathbf{X}^T\mathbf{X}$ est appelée la matrice de Gram. \[ -\mathbf{A}^T\mathbf{A} \mathbf{x} = \mathbf{A}^T\mathbf{b} +\mathbf{X}^T\mathbf{X} \boldsymbol\beta = \mathbf{X}^T\mathbf{y} \] # 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}$. +Pour un polynôme de degré $p-1$, les fonctions de base mentionnées ci-dessus sont : $f_1(x)=1$, $f_2(x)=x$, $f_3(x)=x^2$,..., $f_p(x)=x^{p-1}$. Elles permettent de définir la matrice des données $\mathbf{X}$ et la matrice de Gram $\mathbf{X}^T\mathbf{X}$. 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é. diff --git a/03_tikhonov.Rmd b/03_tikhonov.Rmd index a9c573b..57400ef 100644 --- a/03_tikhonov.Rmd +++ b/03_tikhonov.Rmd @@ -14,44 +14,48 @@ source("03_tikhonov.R", local = knitr::knit_global()) # Problèmes linéaires mal posés -Avec moins d'observations que de fonctions de base ($M