summaryrefslogtreecommitdiff
path: root/background/opti.tex
blob: 1043861f202a984fba84d125f6abadfb9705f26e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
L'optimisation est une branche des mathématiques appliquées qui cherche à trouver les points pour lesquels une fonction réalise un certain nombre d'exigences. 
Le lecteur pourra se référer par exemple au livre de Phillipe G. Ciarlet \textit{Introduction à l'analyse numérique matricielle et à l'optimisation}~\cite{ciarlet} pour une présentation très complète d'un grand nombre de techniques.
Dans ce manuscrit nous ne nous intéresserons qu'a deux types de problèmes liés à l'apprentissage automatique et surtout aux réseaux de neurones.
Le premier de ces problèmes est la minimisation sans contrainte d'une fonctionnelle convexe.
Cela permet l'entraînement de modèles d'apprentissage automatique à l'aide de fonctions de coûts.
Le second problème reprend le premier mais y ajoute des contraintes.
C'est-à-dire, comment minimise-t'on le coût tout en garantissant certaines conditions ?

\subsubsection{Optimisation sans contrainte : descente de gradient}
\label{sec:background-opti-sgd}
Nous appelons fonctionnelles les fonctions de $\mathbb{R}^n$ dans $\mathbb{R}$.
Soit $J$ une fonctionnelle convexe, nous cherchons à trouver $x\in\mathbb{R}^n$ tel que $J(x) = \text{inf}\{J(t)\mid t\in\mathbb{R}^n\}$.
Pour simplifier cette rapide présentation, nous supposerons que $J$ a toujours les conditions de régularité (différentiabilité) suffisantes pour les opérations que nous appliquerons.
Pour trouver $x$ qui minimise $J$ une des méthodes les plus utilisées en apprentissage automatique est la descente de gradient.
Il s'agit de construire une suite $(x_k)_{k\in\mathbb{N}}$ telle qu'à chaque étape la direction de descente soit optimale.
L'idée pour arriver à cela est de considérer une approximation de l'accroissement de $J$ en utilisant la définition du gradient.

On cherche $h$ tel que $||h||=1$ et $J(x_k+h)$ soit minimal.
D'après la définition du gradient
\begin{equation*}
    J(x_k+h) = J(x_k) + \langle\nabla J(x_k),h\rangle + ||h||\epsilon(h)
\end{equation*}
On cherche alors à résoudre (*) : $min_{||h||=1}\langle\nabla J(x_k),h\rangle$.
D'après l'inégalité de Cauchy-Schwartz 
\begin{equation*}
\forall h~||h||=1\implies~|\langle\nabla J(x_k),h\rangle |\leq ||\nabla J(x_k)||
\end{equation*}
Et aussi
\begin{equation*}
    \forall h~||h||=1\implies~\left(|\langle\nabla J(x_k),h\rangle | =||\nabla J(x_k)||
    \iff h = \pm \frac{\nabla J(x_k)}{||\nabla J(x_k)||}\right)
\end{equation*}
$h=-\frac{\nabla J(x_k)}{||\nabla J(x_k)||}$ est donc solution de (*) pour que $\langle\nabla J(x_k),h\rangle$ soit négatif.

Ainsi la méthode de descente de gradient est définie par la suite
$x_{k+1}=x_k-l_k\nabla J(x_k)$.
$l_k$ est appelé le pas.
En théorie, nous pouvons lire dans le livre de Ciarlet qu'il existe de multiples manières de trouver un pas optimal ou approprié à la fonctionnelle $J$.
Cependant, en apprentissage automatique les hypothèses nécessaires pour obtenir l'optimale sont souvent absentes, en pratique le pas est souvent choisi constant $\exists c\forall k~l_k=c$.

Nous montrons dans la Figure~\ref{fig:background-opti-gd} le fonctionnement de la méthode de gradient à pas fixe en dimension un pour une fonctionnelle convexe
avec une illustration de la convergence de l'écart entre $J(x_k)$ et le minimum.
\begin{figure}
    \centering
    \begin{subfigure}{0.45\linewidth}
        \centering
        \includegraphics[width=0.66\linewidth]{background/figure/opti/f.pdf}
        \caption{La suite $u$ approche un minimum local de la fonction $f$.}
    \end{subfigure}
    \hspace{1cm}
    \begin{subfigure}{0.45\linewidth}
        \centering
        \includegraphics[width=0.66\linewidth]{background/figure/opti/conv.pdf}
        \caption{Convergence de l'écart entre $u$ et le minimum vers $0$ en fonction des itérations.}
    \end{subfigure}
    \caption{Convergence de la méthode de gradient.}
    \label{fig:background-opti-gd}
\end{figure}



\subsubsection{Optimisation sous contraintes : multiplicateurs de Lagrange}
\label{sec:background-opti-sous}
Pour expliquer ce qu'est l'optimisation sous contraintes, reprenons les mots de Philipe G. Ciarlet :
\textquote{On s'intéresse au problème suivant : trouver des conditions \emph{nécessaires}, et des conditions \emph{suffisantes}, pour qu'un point d'un ensemble $U$ soit un extremum relatif de la restriction à l'ensemble $U$ d'une fonction $J$ définie sur un ensemble "plus grand". [...]
Un premier exemple est celui des \emph{extremums relatifs liés}, où l'ensemble $U$ est de la forme 
\begin{equation*}
    U=\{v\in V \mid \forall i\in m-1~\varphi_i(v)\leq 0\}
\end{equation*}
}

On introduit le lagrangien de ce problème par la formule suivante:
\begin{equation*}
    L:\left\{
        \begin{matrix}
            V\times\mathbb{R}^m_+\\
            (v,\mu)\mapsto J(v)+\sum_{i=0}^{m-1}\mu_i\varphi_i(v)
        \end{matrix}
        \right.
\end{equation*}

Pour respecter les contraintes du problème, la méthode consiste à chercher un point selle de $L$,
c'est-à-dire, un point $(u,\lambda)\in V\times \mathbb{R}^m_+$ tel que 
\begin{equation*}
    sup L(\square,\lambda)=L(u,\lambda)\wedge inf L(u,\square)=L(u,\lambda)
\end{equation*}

$u$ est alors solution du problème.
Il est donc suffisant de connaître $\lambda$ appelé \emph{multiplicateurs de Lagrange} pour pouvoir trouver $u$ en se ramenant au cas sans contraintes de la section précédente.
Trouver $\lambda$ s'appelle le \emph{problème dual} en contrepartie de la recherche de $u$ qui est le \emph{problème primal}.
Le problème dual bénéficie du fait que les contraintes sont plus simples car il s'agit uniquement de la positivité des multiplicateurs de Lagrange.
Le problème dual s'écrit donc $sup (inf_{v\in V}L(v,\square))$.
Pour une présentation plus complète des multiplicateurs de Lagrange et de la dualité voir les Sections 7.2 et 9.3 du livre de Ciarlet~\cite{ciarlet}