lbourdois/en-fr-nyu-dl-course-corpus huggingface dataset:
English: The choice of kernel size is empirical. 3 * 3 convolution seems to be the minimal size for spatial data. Convolution of size 1 can be used to obtain a final layer that can be applied to a larger input image. Kernel size of even number might lower the quality of the data, thus we always have kernel size of odd numbers, usually 3 or 5.
French: Le choix de la taille du noyau est empirique. Une convolution 3 × 3 semble être la taille minimale pour les données spatiales. La convolution de taille 1 peut être utilisée pour obtenir une couche finale qui peut être appliquée à une image d’entrée plus grande. Une taille de noyau de nombre pair peut réduire la qualité des données, c’est pourquoi nous avons toujours une taille de noyau de nombre impair, généralement 3 ou 5.
English: Batch normalization and residual bypass connections are very helpful to get the network to train well. Parts of a signal can get lost if too many layers have been stacked so, additional connections via residual bypass, guarantee a path from bottom to top and also for a path for gradients coming from top to bottom.
French: La normalisation par batch et les connexions résiduelles sont très utiles pour que le réseau s’entraîne bien. Des parties d’un signal peuvent être perdues si trop de couches ont été empilées, de sorte que des connexions résiduelles garantissent un chemin de bas en haut et aussi un chemin pour les gradients venant de haut en bas.
English: In Fig.5, while the input image contains mostly spatial information across two dimensions (apart from characteristic information, which is the color of each pixel), the output layer is thick. Midway, there is a tradeoff between the spatial information and the characteristic information and the representation becomes denser. Therefore, as we move up the hierarchy, we get denser representation as we lose the spatial information.
French: Dans la figure 5, alors que l’image d’entrée contient principalement des informations spatiales en deux dimensions (à part les informations caractéristiques, qui sont la couleur de chaque pixel), la couche de sortie est épaisse. À mi-chemin, il y a un compromis entre les informations spatiales et les informations caractéristiques, et la représentation devient plus dense. Par conséquent, à mesure que nous montons dans la hiérarchie, nous obtenons une représentation plus dense car nous perdons les informations spatiales.
English: A specific operator, Lp-norm, is applied to different regions (refer to Fig.6). Such an operator gives only one value per region (1 value for 4 pixels in our example). We then iterate over the whole data region-by-region, taking steps based on the stride. If we start with m×n data with c channels, we will end up with m/2×n/2 d data still with c channels (refer to Fig.7). Pooling is not parametrized; nevertheless, we can choose different polling types like max pooling, average pooling and so on. The main purpose of pooling reduces the amount of data so that we can compute in a reasonable amount of time.
French: Un opérateur spécifique, Lp​-norm, est appliqué aux différentes régions (voir figure 6). Un tel opérateur ne donne qu’une seule valeur par région (1 valeur pour 4 pixels dans notre exemple). Nous itérons ensuite sur l’ensemble des données région par région, en prenant des mesures basées sur le pas. Si nous commençons avec m×n données avec c canaux, nous finirons avec m/2×n/2 données toujours avec des canaux c (voir figure 7). Le pooling n’est pas paramétré néanmoins, nous pouvons choisir différents types comme le max-pooling, l’average-pooling, etc. Le but principal du pooling est de réduire la quantité de données afin que nous puissions faire les calculs dans un délai raisonnable.
English: In this notebook, we train a multilayer perceptron (FC network) and a convolution neural network (CNN) for the classification task on the MNIST dataset. Note that both networks have an equal number of parameters. (Fig.8)
French: Dans ce notebook Jupyter, nous entraînons un perceptron multicouche (réseau entièrement connecté) et un ConvNet pour la tâche de classification sur le jeu de données MNIST. Notez que les deux réseaux ont un nombre égal de paramètres (figure 8).
English: Before training, we normalize our data so that the initialization of the network will match our data distribution (very important!). Also, make sure that the following five operations/steps are present in your training:
French: Avant l’entraînement, nous normalisons nos données afin que l’initialisation du réseau corresponde à notre distribution de données (très important !). De plus, on s’assure que les cinq opérations / étapes suivantes sont présentes dans notre entraînement :
English: First, we train both the networks on the normalized MNIST data. The accuracy of the FC network turned out to be 87% while the accuracy of the CNN turned out to be 95%. Given the same number of parameters, the CNN managed to train many more filters. In the FC network, filters that try to get some dependencies between things that are further away with things that are close by, are trained. They are completely wasted. Instead, in the convolutional network, all these parameters concentrate on the relationship between neighbor pixels.
French: Tout d’abord, nous entraînons les deux réseaux aux données normalisées du MNIST. La précision du réseau entièrement connecté s’est avérée être de 87 %, tandis que celle du réseau ConvNet s’est révélée être de 95 %. Avec le même nombre de paramètres, le ConvNet a réussi à entraîner beaucoup plus de filtres. Dans le réseau entièrement connecté, les filtres qui essaient d’obtenir des dépendances entre des choses qui sont plus éloignées et des choses qui sont proches, sont entraînés et sont complètement gaspillés. Au lieu de cela, dans le ConvNet, tous ces paramètres se concentrent sur la relation entre les pixels voisins.
English: Next, we perform a random permutation of all the pixels in all the images of our MNIST dataset. This transforms our Fig.8 to Fig.9. We then train both the networks on this modified dataset.
French: Ensuite, nous effectuons une permutation aléatoire de tous les pixels dans toutes les images de notre jeu de données MNIST. Cela transforme notre figure 8 en figure 9. Nous entraînons ensuite les deux réseaux sur ce jeu de données modifié.
English: The performance of the FC network almost stayed unchanged (85%), but the accuracy of CNN dropped to 83%. This is because, after a random permutation, the images no longer hold the three properties of locality, stationarity, and compositionality, that are exploitable by a CNN.
French: Les performances du réseau entièrement connecté sont restées pratiquement inchangées à 85 %, mais la précision du ConvNet est tombée à 83 %. En effet, après une permutation aléatoire, les images ne possèdent plus les trois propriétés de localité, de stationnarité et de composition, exploitables par un ConvNet.
English: We start with a brief review of linear algebra and then extend the topic to convolutions using audio data as an example. Key concepts like locality, stationarity and Toeplitz matrix are reiterated. Then we give a live demo of convolution performance in pitch analysis. Finally, there is a short digression about the dimensionality of different data.
French: Nous commençons par un bref examen d’algèbre linéaire, puis nous étendons le sujet aux convolutions en utilisant comme exemple des données audio. Des concepts clés comme la localité, la stationnarité et les matrices de Toeplitz sont rappelés. Ensuite, nous faisons une démonstration des performances des convolutions dans l’analyse de la hauteur de son. Nous terminons par une courte digression sur la dimensionnalité des différentes données.
English: a and x can be drawn as vectors in the 2D coordinate axis. Now, if the angle between a and ı^ is α and the angle between x and ı^ is ξ, then with trigonometric formulae a⊤x can be expanded as:
French: a et x peuvent être dessinés comme des vecteurs dans l’axe des coordonnées 2D. Maintenant, si l’angle entre a et ı^ est α et l’angle entre x et ı^ est ξ, alors avec les formules trigonométriques a⊤x (la traduction impose d’utiliser la notation anglo-saxonne de la transposée) peut être étendu comme :
English: The output measures the alignment of the input to a specific row of the matrix A. This can be understood by observing the angle between the two vectors, ξ−α. Whenξ=α, the two vectors are perfectly aligned and maximum is attained. If ξ−α=π, then a⊤x attains its minimum and the two vectors are pointing at opposite directions. In essence, the linear transformation allows one to see the projection of an input to various orientations as defined by A. This intuition is expandable to higher dimensions as well.
French: La sortie mesure l’alignement de l’entrée sur une ligne spécifique de la matrice A. Cela peut être compris en observant l’angle entre les deux vecteurs, ξ−α. Lorsque ξ=α, les deux vecteurs sont parfaitement alignés et le maximum est atteint. Si ξ−α=π, alors a⊤x atteint son minimum et les deux vecteurs sont orientés dans des directions opposées. En substance, la transformation linéaire permet de voir la projection d’une entrée vers différentes orientations définies par A. Cette intuition est également extensible à des dimensions plus élevées.
English: In this example, the weight matrix has a size of 4×3, the input vector has a size of 3×1 and the output vector has a of size 4×1.
French: Dans cet exemple, la matrice de poids a une taille de 4×3, le vecteur d’entrée a une taille de 3×1 et le vecteur de sortie a une taille de 4×1.
English: However, for audio data, the data is much longer (not 3-sample long). The number of samples in the audio data is equal to the duration of the audio (e.g. 3 seconds) times the sampling rate (e.g. 22.05 kHz). As shown below, the input vector x will be quite long. Correspondingly, the weight matrix will become “fat”.
French: Cependant, pour les données audio, les données sont beaucoup plus longues (pas de 3 échantillons). Le nombre d’échantillons dans les données audio est égal à la durée de l’audio (par exemple 3 secondes) multipliée par le taux d’échantillonnage (par exemple 22,05 kHz). Comme indiqué ci-dessous, le vecteur d’entrée x est assez long. En conséquence, la matrice de poids devient « grosse ».
English: Due to locality (i.e. we do not care for data points that are far away) of data, w1k​ from the weight matrix above, can be filled with 0 when k is relatively large. Therefore, the first row of the matrix becomes a kernel of size 3.
French: En raison de la localité (c’est-à-dire que nous ne nous soucions pas des points de données qui sont éloignés) des données, w1k​ de la matrice de pondération ci-dessus, peut être rempli par des 0 lorsque k est relativement important. Par conséquent, la première ligne de la matrice devient un noyau de taille 3.
English: Natural data signals have the property of stationarity (i.e. certain patterns/motifs will repeat). This helps us reuse kernel a(1) that we defined previously. We use this kernel by placing it one step further each time (i.e. stride is 1), resulting in the following:
French: Les signaux de données naturelles ont la propriété d’être stationnaires (c’est-à-dire que certains modèles/motifs se répètent). Cela nous permet de réutiliser le noyau a(1) que nous avons défini précédemment. Nous utilisons ce noyau en le plaçant chaque fois un pas plus loin (c’est-à-dire que le pas est de 1), ce qui donne le résultat suivant :
English: Both the upper right part and lower left part of the matrix are filled with 0s thanks to locality, leading to sparsity. The reuse of a certain kernel again and again is called weight sharing.
French: La partie supérieure droite et la partie inférieure gauche de la matrice sont toutes deux remplies de 0 grâce à la localité, ce qui entraîne une certaine éparsité. La réutilisation d’un certain noyau encore et encore est appelée partage du poids.
English: After these changes, the number of parameters we are left with is 3 (i.e. a1,a2,a3​). In comparison to the previous weight matrix, which had 12 parameters (i.e. w11,w12,⋯ ,w43), the current number of parameters is too restrictive and we would like to expand the same.
French: Après ces changements, le nombre de paramètres qui nous reste est de 3 (c’est-à-dire a1​,a2​,a3​). Par rapport à la matrice de pondération précédente, qui comportait 12 paramètres (c’est-à-dire w11,w12,⋯ ,w4​), le nombre actuel de paramètres est trop restrictif et nous souhaitons le développer.
English: The previous matrix can be considered to be a layer (i.e. a convolutional layer) with the kernel a(1). Then we can construct multiple layers with different kernels a(2), a(3), etc, thereby increasing the parameters.
French: La matrice précédente peut être considérée comme une couche (c’est-à-dire une couche convolutive) avec le noyau a(1). Nous pouvons alors construire plusieurs couches avec différents noyaux a(2), a(3), etc.
English: Each layer has a matrix containing just one kernel that is replicated multiple times. This type of matrix is called a Toeplitz matrix. In every Toeplitz matrix, each descending diagonal from left to right is constant. The Toeplitz matrices that we use here are sparse matrices as well.
French: Chaque couche a une matrice contenant un seul noyau qui est répliqué plusieurs fois. Ce type de matrice est appelé matrice de Toeplitz. Dans chaque matrice de Toeplitz, chaque diagonale descendante de gauche à droite est constante. Les matrices de Toeplitz que nous utilisons ici sont également des matrices sparses.
English: The library librosa enables us to load the audio clip x and its sampling rate. In this case, there are 70641 samples, sampling rate is 22.05kHz and total length of the clip is 3.2s. The imported audio signal is wavy (refer to Fig 1) and we can guess what it sounds like from the amplitude of y axis. The audio signal x(t) is actually the sound played when turning off the Windows system (refer to Fig 2).
French: La bibliothèque librosa nous permet de charger le clip audio x et son taux d’échantillonnage. Dans ce cas, il y a 70641 échantillons, le taux d’échantillonnage est de 22,05kHz et la durée totale du clip est de 3.2s. Le signal audio importé est ondulé (voir la figure 1) et nous pouvons deviner à quoi il ressemble d’après l’amplitude de l’axe y. Le signal audio x(t) est en fait le son joué lorsque le système Windows s’éteint (voir la figure 2).
English: We need to seperate the notes from the waveform. To achieve this, if we use Fourier transform (FT) all the notes would come out together and it will be hard to figure out the exact time and location of each pitch. Therefore, a localized FT is needed (also known as spectrogram). As is observed in the spectrogram (refer to Fig 3), different pitches peak at different frequencies (e.g. first pitch peaks at 1600). Concatenating the four pitches at their frequencies gives us a pitched version of the original signal.
French: Nous devons séparer les notes de la forme de l’onde. Pour y parvenir, si nous utilisons la transformée de Fourier (FT), toutes les notes sortiront ensemble et il sera difficile de déterminer le moment et l’emplacement exacts de chaque hauteur. C’est pourquoi il est nécessaire d’utiliser une transformée de Fourier localisée (également appelée spectrogramme). Comme on peut l’observer dans le spectrogramme (voir la figure 3), les différentes hauteurs de son culminent à des fréquences différentes (par exemple, la première hauteur de son culmine à 1600). En concaténant les quatre hauteurs à leurs fréquences, on obtient une version à hauteur du signal original.
English: Convolution of the input signal with all the pitches (all the keys of the piano for example) can help extract all notes in the input piece (i.e. the hits when the audio matches the specific kernels). The spectrograms of the original signal and the signal of the concatenated pitches is shown in Fig 4 while the frequencies of the original signal and the four pitches is shown in Fig 5. The plot of the convolutions of the four kernels with the input signal (original signal) is shown in Fig 6. Fig 6 along with the audio clips of the convolutions prove the effectiveness of the convolutions in extracting the notes.
French: La convolution du signal d’entrée avec toutes les hauteurs (toutes les touches du piano par exemple) peut aider à extraire toutes les notes du morceau d’entrée (c’est-à-dire les coups lorsque l’audio correspond aux noyaux spécifiques). Les spectrogrammes du signal original et du signal des hauteurs concaténées sont illustrés à la figure 4, tandis que les fréquences du signal original et des quatre hauteurs sont illustrées à la figure 5. Le tracé des convolutions des quatre noyaux avec le signal d’entrée (signal original) est illustré à la figure 6. La figure 6 ainsi que les clips audios des convolutions prouvent l’efficacité des convolutions dans l’extraction des notes.
English: The last part is a short digression on the different representations of dimensionality and examples for the same. Here we consider input set X is made of functions mapping from domains Ω to channels c.
French: La dernière partie est une courte digression sur les différentes représentations de la dimensionnalité et des exemples pour celle-ci. Nous considérons ici que l’ensemble d’entrée X est constitué de fonctions de cartographie des domaines Ω aux canaux c.
English: We begin by introducing Gradient Descent. We discuss the intuition and also talk about how step sizes play an important role in reaching the solution. Then we move on to SGD and its performance in comparison to Full Batch GD. Finally we talk about Momentum Updates, specifically the two update rules, the intuition behind momentum and its effect on convergence.
French: Nous commençons par introduire la méthode de descente de gradient (GD pour Gradient Descent). Nous discutons de l’intuition et expliquons également comment la taille des pas joue un rôle important dans l’obtention de la solution. Nous passons ensuite à la descente de gradient stochastique (SGD) et à ses performances par rapport à la descente de gradient « Full Batch ». Enfin, nous parlons des mises à jour dans le momentum, en particulier des deux règles de mise à jour, de l’intuition derrière le momentum et de son effet sur la convergence.
English: We discuss adaptive methods for SGD such as RMSprop and ADAM. We also talk about normalization layers and their effects on the neural network training process. Finally, we discuss a real-world example of neural nets being used in industry to make MRI scans faster and more efficient.
French: Nous discutons des méthodes adaptatives pour la SGD telles que RMSprop et ADAM. Nous parlons également des couches de normalisation et de leurs effets sur le processus d’entraînement des réseaux neuronaux. Enfin, nous discutons d’un exemple concret de réseaux de neurones utilisés dans l’industrie pour rendre les IRMs plus rapides et plus efficaces.
English: We briefly review the matrix-multiplications and then discuss the convolutions. Key point is we use kernels by stacking and shifting. We first understand the 1D convolution by hand, and then use PyTorch to learn the dimension of kernels and output width in 1D and 2D convolutions examples. Furthermore, we use PyTorch to learn about how automatic gradient works and custom-grads.
French: Nous passons brièvement en revue les multiplications matricielles et discutons ensuite des convolutions. Le point essentiel est que nous utilisons les noyaux en les empilant et en les déplaçant. Nous commençons par comprendre la convolution 1D à la main, puis nous utilisons PyTorch pour apprendre la dimension des noyaux et la largeur de sortie dans des exemples de convolutions 1D et 2D. De plus, nous utilisons PyTorch pour apprendre comment fonctionne le gradient automatique et les gradations personnalisées.
English: The assumption here is that the function f is continuous and differentiable. Our aim is to find the lowest point (valley) of the optimization function. However, the actual direction to this valley is not known. We can only look locally, and therefore the direction of the negative gradient is the best information that we have. Taking a small step in that direction can only take us closer to the minimum. Once we have taken the small step, we again compute the new gradient and again move a small amount in that direction, till we reach the valley. Therefore, essentially all that the gradient descent is doing is following the direction of steepest descent (negative gradient).
French: On suppose ici que la fonction f est continue et différenciable. Notre objectif est de trouver le point le plus bas (vallée) de la fonction d’optimisation. Cependant, la direction réelle de cette vallée n’est pas connue. Nous ne pouvons regarder que localement et de ce fait la direction du gradient négatif est la meilleure information dont nous disposons. Faire un petit pas dans cette direction ne peut que nous rapprocher du minimum. Une fois que nous avons fait ce petit pas, nous calculons à nouveau le gradient et nous nous déplaçons un peu dans cette direction. Nous répétons le processus jusqu’à ce que nous atteignions la vallée. Par conséquent, la descente de de gradient ne fait essentiellement que suivre la direction de la descente la plus raide (pente négative).
English: The γ parameter in the iterative update equation is called the step size. Generally we don’t know the value of the optimal step-size; so we have to try different values. Standard practice is to try a bunch of values on a log-scale and then use the best one. There are a few different scenarios that can occur. The image above depicts these scenarios for a 1D quadratic. If the learning rate is too low, then we would make steady progress towards the minimum. However, this might take more time than what is ideal. It is generally very difficult (or impossible) to get a step-size that would directly take us to the minimum. What we would ideally want is to have a step-size a little larger than the optimal. In practice, this gives the quickest convergence. However, if we use too large a learning rate, then the iterates get further and further away from the minima and we get divergence. In practice, we would want to use a learning rate that is just a little less than diverging.
French: Le paramètre γ dans l’équation de mise à jour itérative est appelé la taille du pas. En général, nous ne connaissons pas la valeur optimale de la taille de pas. Nous devons donc essayer différentes valeurs. La pratique courante consiste à essayer un ensemble de valeurs sur une échelle logarithmique et à sélectionner la meilleure. Quelques scénarios différents peuvent se produire. L’image ci-desosus représente ces scénarios pour une fonction quadratique 1D. Si le taux d’apprentissage est trop faible, alors nous progresserons régulièrement vers le minimum. Cependant, cela prend plus de temps que ce qui est idéal. Il est généralement très difficile (ou impossible) d’obtenir une échelle qui nous mène directement au minimum. L’idéal serait d’avoir une taille de pas un peu plus grande que l’optimale. En pratique, cela permet d’obtenir la convergence la plus rapide. Cependant, si nous utilisons un taux d’apprentissage trop élevé, les itérations s’éloignent de plus en plus des minima et nous obtenons une divergence. Dans la pratique, nous voudrions utiliser un taux d’apprentissage qui est juste un peu plus petit que celui qui va diverger.
English: In Stochastic Gradient Descent, we replace the actual gradient vector with a stochastic estimation of the gradient vector. Specifically for a neural network, the stochastic estimation means the gradient of the loss for a single data point (single instance).
French: Dans le cas de la descente de gradient stochastique (SGD en anglais pour Stochastic Gradient Descent), nous remplaçons le vecteur de gradient réel par une estimation stochastique du vecteur de gradient. Pour un réseau de neurones, l’estimation stochastique signifie le gradient de la perte pour un seul point de données (une seule instance).