From a5548f0a7ec6546b0dca18c207b159b94a83478b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Pelletier?= Date: Mon, 22 Apr 2019 12:53:26 -0400 Subject: [PATCH] =?UTF-8?q?compl=C3=A9t=C3=A9=20chapitre=2018?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- chapitre18.tex | 186 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 186 insertions(+) diff --git a/chapitre18.tex b/chapitre18.tex index a870204..d93d4e6 100644 --- a/chapitre18.tex +++ b/chapitre18.tex @@ -260,9 +260,195 @@ L'erreur du réseau est: On exprime la variation de poids par: +\begin{align} + \Delta w_{ji} = - \eta \frac{\partial E}{\partial w_{ji}} +\end{align} + +Pour chaque exemple d'entrainement: +\begin{itemize} +\item Calculer les valeurs de sortie +\item Calculer l'erreur pour chaque unité de sortie $k$: + \begin{align} + \delta_k \leftarrow o_k(1-o_k)(t_k-o_k) + \end{align} +\item Calculer l'erreur pour chaque unité cachée $h$: + \begin{align} + \delta_h \leftarrow o_h(1-o_h)\sum_{k \in \text{sorties}}w_{kh}\delta_{k} + \end{align} +\item Mettre à jour les poids de sorties $w_{ji}$: + \begin{align} + w_{ji} &\leftarrow w_{ji} + \Delta w_{ji}\\ + & w_{ji} + \eta \delta_jX_{ji} + \end{align} +\end{itemize} + +Conditions d'arrêt: + +\begin{itemize} +\item nombre fixe d'itérations +\item borne minimale pour l'erreur +\item Derniers paramètres qui ont contribué à une augmentation de la performance +\end{itemize} + + \subsection{Machines à vecteurs de support (SVM)} \label{sec:ch18svm} +Problèmes à deux classes linéairement séparables. Plusieurs solutions possibles pour la surface de décision. On veut aloir la surface la plus éloignée possible des données proches de chaque classe. + +\subsubsection{Hyperplans} +\label{sec:ch18hyperplans} + +La distance d'un point à l'hyperplan est: + +\begin{align} + \frac{\abs{D(x)}}{\norm{w}} \text{ où } D(x) = w^Tx+b +\end{align} + +On définit le vecteur unité par la distance minimale entre les points et l'hyperplan: +\begin{align} + \min_{i=1,\ldots,m}\abs{w^tx+i+b}=1 +\end{align} + +Le point le plus proche est maintenant à une distance $\frac{1}{\norm{w}}$. Le classificateur est donnée par le signe de $D(x)$ en nombre de vecteurs unités. La marge maximale est donc de $m=\frac{2}{\norm{w}}$. + +On doit donc minimiser: +\begin{align} + \min \frac{1}{2}\norm{w}^2 \text{ s.c. }y_i(w^Tx_i+b) \geq 1 \forall i +\end{align} + +On a donc une problème d'optimisation quadratique. On peut résoudre par les méthodes classiques si $d$ n'est pas trop grand. L'approche SVM utilise plutôt les multiplicateurs de Lagrange. + +\subsubsection{Lagrangien} +\label{sec:ch18lagrangien} + +\begin{mydef} + Pour un problème d'optimisation + + \begin{align} + \min f(x) \text{ s.c. } c_i(x) \leq 0, \forall i + \end{align} + + Le lagrangien est défini par + \begin{align} + \Lambda(x,\alpha)=f(x)+\sum_{i=1}^n\alpha_ic_i(x), \alpha_i \geq 0, \forall i + \end{align} +\end{mydef} + +\subsubsection{Représentation duale} +\label{fig:ch18svmduale} + +Représentation duale du problème: + +\begin{align} + \Lambda(w,b,\alpha) &= \frac{1}{2} \norm{w}^2-\sum_{i=1}^n \alpha_i\left[(x_i^Tw+b)y_i-1 \right], \\alpha_i &\geq 0, \forall i +\end{align} + +On a, par les conditions KKT, que $\nabla_{w,b}\Lambda(w,b,a=0 \iff w=\sum_{i=1}^n\alpha_iy_yx_i$ et $\sum_{i=1}^n\alpha_iy_i=0$. Par substitution, on obtient que +\begin{align} + \Lambda(w,b,\alpha) &= \sum_{i=1}^n\alpha_i - \frac{1}{2} \sum_{i=1}^n\sum_{j=1}^n\alpha_i\alpha_jy_iy_j(x_i^Tx_j)\\ + \alpha_i &\geq 0, \forall i\\ + \sum_{i=1}^n\alpha_iy_i&=0 +\end{align} + +On doit trouver $\argmin_{\alpha}\Lambda(w,b,\alpha)$. + +\subsubsection{Solution du problème d'optimisation} +\label{sec:ch18svmsolutionoptim} + +\begin{align} + \hat{w} &= \sum_{i=1}^{n_s}\alpha_iy_ix_i\\ + \hat{b} &= y_s-\sum_{i=1}^{n_s}\alpha_iy_i(x_i^Tx_s)\\ + D(x) &= (\hat{w}^Tx+b) +\end{align} + +Pour classer une nouvelle donnée, on calcule le signe de cette expression. si positif (classe 1) sinon (classe 2): +\begin{align} + \hat{w}^Tz+\hat{b} = \sum_{i=1}^{n_s}\alpha_iy_i(x_i^Tz)+\hat{b} +\end{align} + +Pour créer un classificateur multi-classes, on effectue plusieurs SVM et on prend celui qui maximise ;a distance D(x). + +\subsubsection{Cas non linéairement séparable} +\label{sec:ch18svnnonlin} + +On introduit une variable d'écart $\xi_i$ pour la classification. Elles permettent de relaxer les contraintes par rapport à la marge. +\begin{align} + w^Tx_i + b &\geq 1- \xi_i & y_i=1\\ + w^Tx_i + b &\leq -1 + \xi_i & y_i=-1\\ + \xi_i &\geq 0& \forall i +\end{align} + +On obtient le problème d'optimisation suivant: +\begin{align} + \min &\frac{1}{2}\norm{w}^2+C\sum_{i=1}^n \xi_i&\\ + \text{s.c. } &y_i(w^Tx_i + b) \geq 1-\xi_i, &\xi_i \geq 0 +\end{align} + +La forme duale est similaire à celel du cas linéaire, sauf que la valeur de $\alpha$ est limitée: +\begin{align} + \max W(\alpha) &= \sum_{i=1}^n \alpha_i - \frac{1}{2} \sum_{i=1}^n\sum_{j=1}^n \alpha_i\alpha_jy_iy_j(x_i^Tx_j)\\ + \text{s.c. }C &\geq \alpha_i \geq 0, \sum_{i=1}^n \alpha_iy_i = 0 +\end{align} + +On peut projeter les $x_i$ dans un nouvel espace où ils sont linéairement séparables. On utilise alors une fonction de re-description $\Phi(x)$. Afin de résoudre les problèmes de dimensionnalité, on utilise les fonctions noyau. + +\begin{mydef} + Une \textbf{fonction noyau} prend la forme + \begin{align} + K(x,y) = \langle \phi(x),\phi(y) \rangle + \end{align} + Cette fonction doit répondre aux conditions de Mercer pour que $\Phi(x)$ existe. +\end{mydef} + +\begin{mydef} + La condition de Mercer énonce que, pour une fonction $K$ symétrique, $\Phi$ existe tel que: + \begin{align} + K(x,x^{\prime}) &= \Phi(x)\Phi(x^{\prime}) = \sum_{i=1}^m g_i(x)g_i(x^{\prime}) + \end{align} + Si, pour toute fonction $f$ tel que $\int_x f(x)^2dx < \infty$, on a: + \begin{align} + \int_x\int_{x^{\prime}} K(x,x^{\prime}) f(x)f(x^{\prime})dxdx^{\prime} + \end{align} + Alors la matrice de Gram $K(x_i,x_j)$ est semi-définie positive. +\end{mydef} + +\begin{itemize} +\item Transformation: On substitue $K(x_i,x_j)$ à $x_i^Tx_j$ dans le problème dual et dans la règle de classification. +\item Problème dual: + \begin{align} + \max W(\alpha) &= \sum_{i=1}^n \alpha_i - \frac{1}{2} \sum_{i=1}^n\sum_{j=1}^n \alpha_i\alpha_jy_iy_jK(x_i,x_j)\\ + \text{s.c. }C &\geq \alpha_i \geq 0, \sum_{i=1}^n \alpha_iy_i = 0 +\end{align} +\item Classificateur: + \begin{align} + \langle \hat{w},z \rangle + \hat{b} = \sum_{i=1}^{n_s}\alpha_iy_iK(x_j^T,z)+\hat{b} + \end{align} +\item Surface de séparation: + \begin{align} + D(x)=\sum_{j=1}^s \hat{\alpha}_jy_jK(x_j,x)+\hat{b} + \end{align} +\end{itemize} + +\subsubsection{Exemple de fonctions noyaux} +\label{sec:ch19svmtransfo} + +\begin{itemize} +\item Noyau polynomial: $K(x,y) = (x^Ty+1)^d$ +\item Noyau à base radiale de dispersion $\sigma$: $K(x,y) = e^{-\norm{x-y}^2/(2\sigma^2)}$ +\item Sigmoïde: $K(x,y) = \tanh (\kappa x^Ty+\theta)$ +\end{itemize} + + +\subsubsection{SVM et régression} +\label{sec:ch18svmregression} + +\begin{itemize} +\item Fonction de perte: $\abs{y-f(x)}_\epsilon = \max(0,\abs{y-f(x)}-\epsilon)$ +\item Régression linéaire: $f(s)=wx+w_0$ +\item Minimiser: $\frac{1}{2}\norm{w}^2+C\sum_{i=1}^m\abs{y_i-f(x_i)}_\epsilon$ +\item Forme duale: $f(x) = \sum_{i=1}^m(\alpha_i^{\star}-\alpha_i)K(x_i,x)+w_0$ +\end{itemize} %%% Local Variables: %%% mode: latex