Skip to content

Commit

Permalink
[FR] website V2 (part 1) (#797)
Browse files Browse the repository at this point in the history
* z̃

* Add week 15

* clean images

* Add files via upload

* clean images

* clean images

* clean images

* clean images

* clean images

* clean images

* clean images

* clean images

* clean images

* clean images

* Add files via upload

* Add files via upload

* clean images

* clean images

* clean images

* clean images

* clean images

* fix markdown

* fix + QA harmonization

* fix markdown

* improved formulation

* fix formulaitons

* QA harmonization

* fix markdown

* forget some correction

* v2

* v2

* v2

* v2

* v2

* v2

* v2

* v2

* v2

* v2

* v2

* v2

* v2

* v2

* v2

* v2

* v2

* v2

* v2

* v2

* v2

* v2

* v2

* v2

* v2

* v2

* v2

* v2

* v2

* v2

* v2

* v2

* v2

* v2

* v2

fix French for #493

* v2

* v2

* v2

* v2

* v2

* v2

* v2

* v2

* v2

* v2

* v2

* v2

* v2

* v2

* v2

* v2

* v2

* v2

* v2

* v2

fix #778 for French (to think to update #144)

* few corrections
  • Loading branch information
lbourdois authored Nov 2, 2021
1 parent 90fad5e commit 7995f3c
Show file tree
Hide file tree
Showing 137 changed files with 1,764 additions and 1,813 deletions.
119 changes: 68 additions & 51 deletions docs/fr/index.md

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions docs/fr/week01/01-1.md
Original file line number Diff line number Diff line change
Expand Up @@ -183,12 +183,12 @@ $$
<!--
Note that instead of scalar inputs, they will be vector inputs. More generally, multi-dimensional inputs. Backpropagation allows you to compute the derivative of the difference of the output you want and the output you get (which is the value of the objective function) with respect to any value inside the network. Finally, backpropagation is essential as it applies to multiple layers.
It is important to consider how to interpret inputs. For example, an image of $256$\times$256$ would require a 200,000 valued matrix. These would be huge matrices that the neural network layers will need to handle. It would be impractical to utilize such matrices. Therefore, it is important to make hypothesis of the structure of the matrix.
It is important to consider how to interpret inputs. For example, an image of 256$$\times$$256 would require a 200,000 valued matrix. These would be huge matrices that the neural network layers will need to handle. It would be impractical to utilize such matrices. Therefore, it is important to make hypothesis of the structure of the matrix.
-->

Notez qu'au lieu d'entrées scalaires, il s'agit d'entrées vectorielles. Plus généralement, il s'agit d'entrées multidimensionnelles. La rétropropagation permet de calculer la dérivée de la différence entre la sortie souhaitée et la sortie obtenue (qui est la valeur de la fonction objectif) par rapport à toute valeur à l'intérieur du réseau. Enfin, la rétropropagation est essentielle car elle s'applique à plusieurs couches.

Il est important de réfléchir à la manière d'interpréter les entrées. Par exemple, une image de $256$\times$256$ nécessite une matrice d'une valeur de 200 000. On aurait alors d'énormes matrices que les couches du réseau neuronal auraient à manipuler. Il n'est donc pas pratique d'utiliser de telles matrices. Par conséquent, il est important de faire des hypothèses sur la structure de la matrice.
Il est important de réfléchir à la manière d'interpréter les entrées. Par exemple, une image de 256$$\times$$256 nécessite une matrice d'une valeur de 200 000. On aurait alors d'énormes matrices que les couches du réseau neuronal auraient à manipuler. Il n'est donc pas pratique d'utiliser de telles matrices. Par conséquent, il est important de faire des hypothèses sur la structure de la matrice.


<!--
Expand Down
14 changes: 7 additions & 7 deletions docs/fr/week01/01-2.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ Dans le cerveau des animaux, les neurones réagissent aux bords qui ont des orie

En se basant sur deux concepts, Fukushima (1982) a construit un réseau de neurones qui fonctionne de la même manière que le cerveau. Premièrement, les neurones sont répliqués sur l'ensemble du champ visuel. Deuxièmement, il existe des cellules complexes qui regroupent les informations provenant de cellules simples (unités d'orientation-sélection). Par conséquent, le déplacement de l'image modifie l'activation des cellules simples mais n'influence pas l'activation intégrée de la cellule complexe (le *pooling* convolutif).

Yann Le Cun (1990) a utilisé la rétropropagation pour entraîner un ConvNet à reconnaître les chiffres manuscrits. Il existe une [démo de 1992](https://www.youtube.com/watch?v=FwFduRA_L6Q&list=PL80I41oVxglKKxF1OBbKHdOEX2VZVNzAR&index=1) où l'algorithme reconnaît les chiffres de n'importe quel style. La reconnaissance de caractères/motifs à l'aide d'un modèle entraîné de bout en bout était nouvelle à l'époque. Auparavant, les gens utilisaient des extracteurs de caractéristiques avec un modèle supervisé par-dessus.
Yann Le Cun (1990) a utilisé la rétropropagation pour entraîner un ConvNet à reconnaître les chiffres manuscrits. Il existe une [démo de 1993](https://www.youtube.com/watch?v=FwFduRA_L6Q&list=PL80I41oVxglKKxF1OBbKHdOEX2VZVNzAR&index=1) où l'algorithme reconnaît les chiffres de n'importe quel style. La reconnaissance de caractères/motifs à l'aide d'un modèle entraîné de bout en bout était nouvelle à l'époque. Auparavant, les gens utilisaient des extracteurs de caractéristiques avec un modèle supervisé par-dessus.

Ces nouveaux systèmes ConvNets pouvaient reconnaître plusieurs caractères dans l'image en même temps. Pour ce faire, les gens utilisaient une petite fenêtre de saisie pour un ConvNet et la glissaient sur toute l'image. Si elle s'activait, cela signifiait qu'un caractère particulier était présent.

Expand All @@ -52,7 +52,7 @@ La révolution de l'apprentissage profond (bien que le terme ne soit pas utilis

Après avoir vu le succès d'AlexNet, la communauté de la vision par ordinateur (souvent abrégée en *CV* en anglais pour *Computer Vision*) a été convaincue que les ConvNets fonctionnent. Alors que tous les articles de 2011-2012 mentionnant les ConvNets étaient alors rejetés, depuis 2016 la plupart des papiers acceptés utilisent les ConvNets.

Au fil des ans, le nombre de couches utilisées a augmenté : LeNet -- 7, AlexNet -- 12, VGG -- 19, ResNet -- 50. Toutefois, il y a un compromis à faire entre le nombre d'opérations nécessaires pour calculer le résultat, la taille du modèle et sa précision. Ainsi, un sujet actuellement populaire est de savoir comment comprimer les réseaux pour rendre les calculs plus rapides.
Au fil des ans, le nombre de couches utilisées a augmenté : 7 pour LeNet, 12 pour AlexNet, 19 pour VGG, 50 pour ResNet. Toutefois, il y a un compromis à faire entre le nombre d'opérations nécessaires pour calculer le résultat, la taille du modèle et sa précision. Ainsi, un sujet actuellement populaire est de savoir comment comprimer les réseaux pour rendre les calculs plus rapides.



Expand Down Expand Up @@ -103,7 +103,7 @@ Bien que les sciences et les mathématiques qui sous-tendent l'apprentissage pro
- Pourquoi les architectures à plusieurs couches sont-elles plus performantes, étant donné que nous pouvons approximer n'importe quelle fonction avec deux couches ?
- Pourquoi les ConvNets fonctionnent-ils aussi bien avec des données naturelles telles que la parole, les images et le texte ?
- Comment sommes-nous capables d'optimiser aussi bien les fonctions non convexes ?
- Pourquoi les architectures sur-paramétrées fonctionnent-elles ?
- Pourquoi les architectures surparamétrées fonctionnent-elles ?

L'extraction de caractéristiques consiste à élargir la dimension de représentation de telle sorte que les caractéristiques élargies aient plus de chances d'être linéairement séparables (en raison de l'augmentation du nombre de plans de séparation possibles).

Expand Down Expand Up @@ -164,7 +164,7 @@ Une analogie consiste à concevoir un circuit pour calculer une fonction boolée


Qu'est-ce que la "profondeur" ?
- Une SVM n'est pas profond car ne comporte que deux couches
- Une SVM n'est pas profonde car ne comporte que deux couches
- Un arbre de classification n'est pas profond car chaque couche analyse les mêmes caractéristiques (brutes)
- Un réseau profond comporte plusieurs couches et les utilise pour construire une **hiérarchie de caractéristiques d'une complexité croissante**

Expand All @@ -173,6 +173,6 @@ Comment les modèles peuvent-ils apprendre les représentations (les bonnes cara
Hypothèse de la multiplicité : les données naturelles vivent dans une multiplicité à faible dimension. L'ensemble des images possibles est essentiellement infini, l'ensemble des images "naturelles" est un minuscule sous-ensemble. Par exemple : pour une image d'une personne, l'ensemble des images possibles est de l'ordre de grandeur du nombre de muscles du visage qu'elle peut bouger (degrés de liberté) soit environ 50. Un extracteur de caractéristiques idéal (et irréaliste) représente tous les facteurs de variation (chacun des muscles, éclairage, *etc.*).


Questions et réponses à la fin de la conférence :
- Pour l'exemple du visage, une autre technique de réduction de la dimensionnalité (*c.-à-d.* l’ACP) pourrait-elle extraire ces traits ?
Cela ne fonctionnerait que si la surface est un hyperplan, ce qui n'est pas le cas.
*Réponses aux questions d'étudiants :*
**Pour l'exemple du visage, une autre technique de réduction de la dimensionnalité (*c.-à-d.* l’ACP) pourrait-elle extraire ces traits ?**
> Cela ne fonctionnerait que si la surface est un hyperplan, ce qui n'est pas le cas.
18 changes: 9 additions & 9 deletions docs/fr/week01/01-3.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ Avec une telle dimensionnalité, de nombreuses images intéressantes que nous po
Afin de séparer efficacement ces images, nous envisageons des moyens de transformer les données afin de déplacer les points. Rappelons que dans l'espace bidimensionnel, une transformation linéaire équivaut à une multiplication de matrice. Par exemple, les transformations suivantes peuvent être obtenues en changeant les caractéristiques de la matrice :

- Rotation : lorsque la matrice est orthonormée.
- Mise à l'échelle ("scalabilité") : lorsque la matrice est diagonale.
- Mise à l'échelle (« scalabilité ») : lorsque la matrice est diagonale.
- Réflexion : lorsque le déterminant est négatif.
- *Shearing*.
- Translation.
Expand Down Expand Up @@ -76,7 +76,7 @@ Dans notre visualisation, nous avons cinq branches d'une spirale, chaque branche
<center> Figure 1 : Spirale à cinq couleurs </center>


Le réseau "étire" le tissu spatial afin de séparer chacun des points en différents sous-espaces. À la convergence, le réseau sépare chacune des couleurs en différents sous-espaces de la surface finale. En d'autres termes, chacune des couleurs dans ce nouvel espace sera linéairement séparable par une régression « un contre tous ». Les vecteurs du diagramme peuvent être représentés par une matrice de 5x2. Cette matrice peut être multipliée à chaque point pour obtenir des scores pour chacune des cinq couleurs. Chacun des points peut ensuite être classé par couleur en utilisant les scores respectifs. Ici, la dimension de sortie est de cinq, une pour chacune des couleurs, et la dimension d'entrée est de deux, une pour les coordonnées x et y de chacun des points. Pour résumer, ce réseau prend essentiellement le tissu spatial et effectue une transformation de l'espace paramétrée par plusieurs matrices puis par des non-linéarités.
Le réseau « étire » le tissu spatial afin de séparer chacun des points en différents sous-espaces. À la convergence, le réseau sépare chacune des couleurs en différents sous-espaces de la surface finale. En d'autres termes, chacune des couleurs dans ce nouvel espace sera linéairement séparable par une régression « un contre tous ». Les vecteurs du diagramme peuvent être représentés par une matrice de 5x2. Cette matrice peut être multipliée à chaque point pour obtenir des scores pour chacune des cinq couleurs. Chacun des points peut ensuite être classé par couleur en utilisant les scores respectifs. Ici, la dimension de sortie est de cinq, une pour chacune des couleurs, et la dimension d'entrée est de deux, une pour les coordonnées *x* et *y* de chacun des points. Pour résumer, ce réseau prend essentiellement le tissu spatial et effectue une transformation de l'espace paramétrée par plusieurs matrices puis par des non-linéarités.


<!--
Expand Down Expand Up @@ -105,12 +105,12 @@ La première matrice fait correspondre l'entrée bidimensionnelle à une couche
## [Random projections - Jupyter Notebook](https://www.youtube.com/watch?v=5_qrxVq1kvc&t=1693s)
The Jupyter Notebook can be found [here](https://github.com/Atcold/pytorch-Deep-Learning/blob/master/02-space_stretching.ipynb). In order to run the notebook, make sure you have the `pDL` environment installed as specified in [`README.md`](https://github.com/Atcold/pytorch-Deep-Learning/blob/master/README.md).
The English Jupyter Notebook can be found [here](https://github.com/Atcold/pytorch-Deep-Learning/blob/master/02-space_stretching.ipynb). The French one is available [here](https://github.com/lbourdois/pytorch-Deep-Learning-Notebooks-in-French/blob/master/02-space_stretching.ipynb) In order to run the notebook, make sure you have the `pDL` environment installed as specified in [`README.md`](https://github.com/Atcold/pytorch-Deep-Learning/blob/master/README.md).
-->

## [Projections aléatoires - Jupyter Notebook](https://www.youtube.com/watch?v=5_qrxVq1kvc&t=1693s)
## [Projections aléatoires - Notebook Jupyter](https://www.youtube.com/watch?v=5_qrxVq1kvc&t=1693s)

Le Notebook Jupyter peut être consulté [ici](https://github.com/Atcold/pytorch-Deep-Learning/blob/master/02-space_stretching.ipynb). Pour le faire fonctionner, assurez-vous que l'environnement `pDL` est installé comme indiqué dans [`README.md`](https://github.com/Atcold/pytorch-Deep-Learning/blob/master/docs/fr/README-FR.md).
La version anglaise du *notebook* Jupyter peut être consultée [ici](https://github.com/Atcold/pytorch-Deep-Learning/blob/master/02-space_stretching.ipynb). Celle en français est disponible [ici](https://github.com/lbourdois/pytorch-Deep-Learning-Notebooks-in-French/blob/master/02-space_stretching.ipynb). Pour le faire fonctionner, assurez-vous que l'environnement `pDL` est installé comme indiqué dans le fichier [`README.md`](https://github.com/Atcold/pytorch-Deep-Learning/blob/master/docs/fr/README-FR.md).

<!--
Expand Down Expand Up @@ -146,9 +146,9 @@ La première ligne crée une variable, appelée `device`, qui est assignée au G
To see the documentation for a function in a notebook cell, use `Shift + Tab.`
-->

### Astuce Notebook Jupyter
### Astuce notebook Jupyter

Pour voir la documentation d'une fonction dans une cellule du notebook, utilisez `Shift + Tab`.
Pour voir la documentation d'une fonction dans une cellule du *notebook*, utilisez `Shift + Tab`.

<!--
Expand Down Expand Up @@ -232,7 +232,7 @@ Rappelez-vous, le graphique de $\tanh(\cdot)$ de la Fig. 4.
Figure 4 : Non-linéarité de la tangente hyperbolique
</center>

Cette non-linéarité a pour effet de délimiter des points entre $-1$ et $+1 $$, créant ainsi un carré. Plus la valeur de $s$ dans l'équation (2) augmente, plus les points sont poussés vers le bord du carré. C'est ce que montre la figure 5. En forçant plus de points vers le bord, nous les étalons davantage et pouvons alors tenter de les classer.
Cette non-linéarité a pour effet de délimiter des points entre $-1$ et $+1$, créant ainsi un carré. Plus la valeur de $s$ dans l'équation (2) augmente, plus les points sont poussés vers le bord du carré. C'est ce que montre la figure 5. En forçant plus de points vers le bord, nous les étalons davantage et pouvons alors tenter de les classer.

| <img src="{{site.baseurl}}/images/week01/01-3/matrix_multiplication_with_nonlinearity_s=1_lab1.png" width="200px" /> | <img src="{{site. baseurl}}/images/week01/01-3/matrix_multiplication_with_nonlinearity_s=5_lab1.png" width="200px" /> |
| (a) Non-linéarité avec $s=1$ | (b) Non-linéarité avec $s=5$ |
Expand All @@ -253,7 +253,7 @@ Figure 6: Transformation from an untrained neural network
-->

### Réseau neuronal aléatoire
Enfin, nous visualisons la transformation effectuée par un simple réseau de neurones non entraîné. Le réseau est constitué d'une couche linéaire, qui effectue une transformation affine, suivie d'une tangente hyperbolique non-linéaire, et enfin d'une autre couche linéaire. En examinant la transformation de la figure 6, nous constatons qu'elle est différente des transformations linéaires et non linéaires vues précédemment. Nous allons voir comment rendre ces transformations effectuées par les réseaux de neurones utiles pour notre objectif final de classification.
Enfin, nous visualisons la transformation effectuée par un simple réseau de neurones non entraîné. Le réseau est constitué d'une couche linéaire, qui effectue une transformation affine, suivie d'une tangente hyperbolique non-linéaire, et enfin d'une autre couche linéaire. En examinant la transformation de la figure 6, nous constatons qu'elle est différente des transformations linéaires et non linéaires vues précédemment. Nous allons voir comment rendre utiles ces transformations effectuées par les réseaux de neurones pour notre objectif final de classification.
<center>
<img src="{{site.baseurl}}/images/week01/01-3/untrained_nn_transformation_lab1.png" width="200px" /><br>
Figure 6 : Transformation d'un réseau de neurones non entraîné
Expand Down
Loading

0 comments on commit 7995f3c

Please sign in to comment.