lbourdois/en-fr-nyu-dl-course-corpus huggingface dataset:
English: For an elementary energy function E(x,y,z), if we wish to marginalize over a variable, z, to obtain a loss in terms of only x and y, L(x,y), we must compute
French: Pour une fonction d’énergie élémentaire E(x,y,z), si nous voulons marginaliser sur une variable z pour obtenir une perte en termes de seulement x et y, L(x,y), nous devons calculer :
English: Jensen’s Inequality is a geometrical observation that states: if we have a convex function, then the expectation of that function, over a range, is less than the average of the function evaluated at the beginning and end of the range. Geometrically illustrated this is very intuitive:
French: L’inégalité de Jensen indique que si nous avons une fonction convexe alors l’espérance de cette fonction sur un intervalle est inférieure à la moyenne de la fonction évaluée au début et à la fin de l’intervalle. Illustrée géométriquement, cette observation est très intuitive :
English: We now have formulated an upper bound in such a way that we can avoid complicated integrations, and instead simply approximate these values by sampling from a surrogate distribution (q(z)), of our choice!
French: Nous avons maintenant formulé une limite supérieure de manière à éviter les intégrations compliquées, et à la place, nous approximons simplement ces valeurs par un échantillonnage à partir d’une distribution de substitution (q(z)), de notre choix !
English: To get the value of the first term of our upper bound function, we just sample from that distribution, and compute the average value of L that we obtain from applying our sampled z’s.
French: Pour obtenir la valeur du premier terme de notre fonction de limite supérieure, nous échantillonnons simplement à partir de cette distribution et calculons la valeur moyenne de L que nous obtenons en appliquant nos z échantillonnés.
English: Finally, we can minimize L with respect to its parameters (say, weights of a network W), by minimizing this function that bounds L above. We conduct this minimization by updating our two variables: (1) the entropy of q, and (2) our model parameters W.
French: Enfin, nous pouvons minimiser L par rapport à ses paramètres (par exemple, les poids d’un réseau W), en minimisant cette fonction qui délimite L ci-dessus. Nous effectuons cette minimisation en mettant à jour nos deux variables : (1) l’entropie de q et (2) les paramètres de notre modèle W.
English: This is the “energy view” of variational inference. If you need to compute the log of a sum of exponentials, replace it with the average of your function plus an entropy term. This gives us an upper bound. We then minimise this upper bound, and in doing so minimize the function we actually care about.
French: Ceci est la vue énergétique de l’inférence variationnelle. Si nous devons calculer le logarithme d’une somme d’exponentielles, remplaçons-le par la moyenne de votre fonction plus un terme d’entropie. Cela nous donne une limite supérieure. Nous minimisons ensuite cette limite supérieure et, ce faisant, nous minimisons la fonction qui nous intéresse réellement.
English: If the model is insufficiently expressive for the data it will underfit. If the model is more expressive than the data (as is the case with deep neural networks), it runs the risk of overfitting.
French: Si le modèle n’est pas suffisamment expressif pour les données, il sera sousentraîné. Si le modèle est plus expressif que les données (comme c’est le cas pour les réseaux neuronaux profonds), il risque de surentraîner.
English: Ideally we would like our model to fit the underlying data and not the noise, producing a good fit for our data. We would especially like to do this without needing to reduce the power of our models. Deep learning models are very powerful, often much more than is strictly necessary in order to learn the data. We would like to keep that power (to make training easier), but still fight overfitting.
French: Dans l’idéal, nous aimerions que notre modèle s’adapte aux données sous-jacentes et non au bruit, ce qui produirait un bon entraînement de nos données. Nous aimerions surtout le faire sans avoir besoin de réduire la puissance de nos modèles. Les modèles d’apprentissage profond sont très puissants, souvent bien plus que ce qui est strictement nécessaire pour apprendre les données. Nous aimerions conserver cette puissance (pour faciliter l’entraînement) mais tout en luttant contre le surentraînenement.
English: Overfitting can be useful in some cases, such as during debugging. One can test a network on a small subset of training data (even a single batch or a set of random noise tensors) and make sure that the network is able to overfit to this data. If it fails to learn, it is a sign that there may be a bug.
French: Le surentraînement peut être utile dans certains cas, par exemple lors du débogage. On peut tester un réseau sur un petit sous-ensemble de données d’entraînement (même un seul batch ou un ensemble de tenseurs de bruit aléatoire) et s’assurer que le réseau est capable de sur-entraîner sur ces données. S’il ne parvient pas à apprendre, c’est le signe qu’il y a peut-être un bogue.
English: We can try to fight overfitting by introducing regularization. The amount of regularization will affect the model’s validation performance. Too little regularization will fail to resolve the overfitting problem. Too much regularization will make the model much less effective.
French: Nous pouvons essayer de lutter contre le surentraînement en introduisant une régularisation. L’ampleur de la régularisation aura une incidence sur les performances de validation du modèle. Une régularisation trop faible ne résoudra pas le problème du surentraînement. Trop de régularisation rendra le modèle beaucoup moins efficace.
English: Another definition of regularization from Ian Goodfellow: Regularization is any modification we make to a learning algorithm that is intended to reduce its generalization error but not its training error.
French: Une autre définition de la régularisation de Ian Goodfellow : « la régularisation est toute modification que nous apportons à un algorithme d’apprentissage visant à réduire son erreur de généralisation mais pas son erreur d’entraînement ».
English: Weight decay is our first regularisation technique. Weight decay is in widespread use in machine learning, but less so with neural networks. In PyTorch, weight decay is provided as a parameter to the optimizer (see for example the weight_decay parameter for SGD).
French: Le taux de décroissance des poids (weight decay) est notre première technique de régularisation. Elle est largement utilisée dans l’apprentissage machine, mais moins dans les réseaux de neurones. Dans PyTorch, cela est fourni comme paramètre à l’optimiseur (voir par exemple le paramètre weight_decay pour SGD).
English: Unlike L2​ weight decay, the L1​ regularization will “kill” components that are close to an axis in the parameter space, rather than evenly reducing the length of the parameter vector.
French: Contrairement au taux de décroissance L2​, la régularisation L1​ « tuera » les composantes qui sont proches d’un axe dans l’espace de paramètres, plutôt que de réduire de manière égale la longueur du vecteur de paramètres.
English: Dropout involves setting a certain number of neurons to zero randomly during training. This prevents the network from learning a singular path from input to output. Similarly, due to the large parametrisation of neural networks, it is possible for the neural network to effectively memorize the input. However, with dropout, this is a lot more difficult since the input is being put into a different network each time since dropout effectively trains a infinite number of networks that are different each time. Hence, dropout can be a powerful way of controlling overfitting and being more robust against small variations in the input.
French: Le dropout consiste à mettre à 0 un certain nombre de neurones de façon aléatoire pendant l’entraînement. Cela empêche le réseau d’apprendre un chemin singulier de l’entrée à la sortie. De même, en raison de la grande paramétrisation des réseaux de neurones, il est possible pour le réseau de neurones de mémoriser efficacement l’entrée. Cependant, avec le dropout, cela est beaucoup plus difficile car l’entrée est mise dans un réseau différent à chaque fois, puisque le dropout entraîne effectivement un nombre infini de réseaux qui sont différents à chaque fois. Par conséquent, le dropout peut être un moyen efficace de contrôler le surentraînement et d’être plus résistant aux petites variations de l’entrée.
English: After training, during inference, dropout is not used any more. In order to create the final network for inference, we average over all of the individual networks created during dropout and use that for inference. We can similarly multiply all of the weights by 1/(1−p) where p is the dropout rate.
French: Après l’entraînement, lors de l’inférence, le dropout n’est plus utilisé. Afin de créer le réseau final pour l’inférence, nous faisons la moyenne de tous les réseaux individuels créés pendant le dropout et nous l’utilisons pour l’inférence. Nous pouvons également multiplier tous les poids par 1/(1−p), où p est le taux de dropout.
English: During training, if the validation loss starts increasing, we can stop training and use the best weights found so far. This prevents the weights from growing too much which will start hurting validation performance at some point. In practise, it is common to calculate the validation performance at certain intervals and stop after a certain number of validation error calculations stop decreasing.
French: Pendant l’entraînement, si la perte de validation commence à augmenter, nous pouvons arrêter l’entraînement et utiliser les meilleurs poids trouvés jusqu’à présent. Cela permet d’éviter que les poids n’augmentent trop, ce qui commencerait à nuire aux performances de validation à un moment donné. En pratique, il est courant de calculer la performance de validation à certains intervalles et de s’arrêter après qu’un certain nombre de calculs d’erreurs de validation aient cessé de diminuer.
English: We can use higher learning rate when applying batch norm. Batch normalization is used to prevent the internal covariate shift of a neural network but there is a lot debate if it actually does this and what the true benefit actually is.
French: Nous pouvons utiliser un taux d’apprentissage plus élevé lorsque nous appliquons la normalisation par batch. Elle est utilisée pour empêcher le déplacement des covariables internes d’un réseau neuronal, mais la question de savoir si elle permet réellement d’atteindre cet objectif et quel en est le véritable avantage fait l’objet de nombreux débats.
English: Batch normalisation essentially extends the logic of normalizing the input of the neural network to normalizing the input of each hidden layer in the network. The basic idea is to have a fixed distribution feed each subsequent layer of a neural network since learning occurs best when we have a fixed distribution. To do this, we compute the mean and variance of each batch before each hidden layer and normalize the incoming values by these batch specific statistics, which reduces the amount by which the values will ultimately shift around during training.
French: La normalisation par batch étend essentiellement la logique de normalisation de l’entrée du réseau neuronal à la normalisation de l’entrée de chaque couche cachée du réseau. L’idée de base est d’avoir une distribution fixe qui alimente chaque couche suivante d’un réseau neuronal puisque l’apprentissage se fait mieux lorsque nous avons une distribution fixe. Pour ce faire, nous calculons la moyenne et la variance de chaque batch avant chaque couche cachée et nous normalisons les valeurs entrantes par ces statistiques spécifiques aux batchs, ce qui réduit la quantité par laquelle les valeurs vont finalement se déplacer pendant l’entraînement.
English: Regarding the regularizing effect, due to each batch being different, each sample will be normalized by slightly different statistics based upon the batch it is in. Hence, the network will see various slightly altered versions of a single input which helps the network learn to be more robust against slight variations in the input and prevent overfitting. Another benefit of batch normalisation is that training is a lot faster.
French: En ce qui concerne l’effet de régularisation, étant donné que chaque batch est différent, chaque échantillon sera normalisé par des statistiques légèrement différentes en fonction du lot dans lequel il se trouve. Ainsi, le réseau verra différentes versions légèrement modifiées d’une même entrée, ce qui l’aidera à apprendre à être plus robuste contre de légères variations de l’entrée et à éviter le surentraînement. Un autre avantage de la batch normalisation est que l’entraînement est beaucoup plus rapide.
English: 4 general cases: 1) If we have little data with similar distributions, we can just do transfer learning. 2) If we have a lot of data with similar distributions we can do fine-tuning in order to improve the performance of the feature extractor as well. 3) If we have a little data and a different distribution we should remove a few of the final trained layers in the feature extractor since they are too specialized. 4) If we have a lot of data and they are from different distributions, we can just train all portions.
French: 4 cas généraux : 1) Si nous avons peu de données avec des distributions similaires, nous pouvons simplement faire un apprentissage par transfert. 2) Si nous avons beaucoup de données avec des distributions similaires, nous pouvons faire un finetuning afin d’améliorer également les performances de l’extracteur de caractéristiques. 3) Si nous avons peu de données et une distribution différente, nous devrions supprimer quelques couches finales entraînées dans l’extracteur de caractéristiques car elles sont trop spécialisées. 4) Si nous avons beaucoup de données et qu’elles proviennent de différentes distributions, nous pouvons simplement entraîner toutes les parties.
English: From Figure 7 and Figure 8, we can understand the dramatic effect that dropout has on generalisation error i.e. the difference between the training loss and validation loss. In Figure 7, without dropout there is clear overfitting as the training loss is much lower than the validation loss. However, in Figure 8, with dropout the training loss and validation loss almost continuously overlap indicating that the model is generalising well to the validation set, which serves as our proxy for out-of-sample set. Of course, we can measure the actual out-of-sample performance using a separate holdout test set.
French: Les figures 7 et 8 nous permettent de comprendre l’effet spectaculaire que le dropout a sur l’erreur de généralisation, c’est-à-dire la différence entre la perte d’entraînement et la perte de validation. Dans la figure 7 sans dropout, il y a un surentraînement évident car la perte d’entraînement est beaucoup plus faible que la perte de validation. Cependant, dans la figure 8 avec le dropout, la perte d’entraînement et la perte de validation se chevauchent presque continuellement ce qui indique que le modèle se généralise bien à l’ensemble de validation nous servant de substitut pour l’ensemble hors échantillon. Bien entendu, nous pouvons mesurer la performance réelle hors échantillon en utilisant un ensemble de tests de résistance distinct.
English: When we apply L1 regularisation, from the red peak at zero, we can understand that most of the weights are zero. Small red dots closer to zero are the non-zero weights of the model.
French: Lorsque nous appliquons la régularisation L1 à partir du pic rouge à 0, nous pouvons comprendre que la plupart des poids sont nuls. Les petits points rouges plus proches de 0 sont les poids non nuls du modèle.
English: Usually during inference, we set the network to validation mode and use all neurons to get the final prediction. While doing the prediction, we scale the weights Δ by 1−r1​ to account for dropping neurons during training.
French: Habituellement, lors de l’inférence, nous mettons le réseau en mode de validation et utilisons tous les neurones pour obtenir la prédiction finale. Tout en faisant la prédiction, nous échelonnons les poids Δ par 1−r1​ pour tenir compte des neurones abandonnés pendant l’entraînement.
English: This method gives us a single prediction for each input. However, to get a confidence interval around our prediction, we need multiple predictions for the same input. So instead of setting the network to validation mode during inference, we retain it in training mode i.e. still drop neurons randomly and get a prediction. When we predict multiple times using this dropout network, for the same input we will get different predictions depending on the neurons being dropped. We use these predictions to estimate the average final prediction and a confidence interval around it.
French: Cette méthode nous permet d’obtenir une seule prédiction pour chaque entrée. Cependant, pour obtenir un intervalle de confiance autour de notre prédiction, nous avons besoin de plusieurs prédictions pour la même entrée. Ainsi, au lieu de mettre le réseau en mode validation pendant l’inférence, nous le gardons en mode d’entraînement, c’est-à-dire que nous appliquons toujours le dropout sur des neurones de manière aléatoire et obtenons une prédiction. En faisant plusieurs prédictions pour la même entrée avec ce réseau avec dropout, nous obtenons des prédictions différentes selon les neurones qui sont dropés. Nous utilisons ces prédictions pour estimer la prédiction finale moyenne et un intervalle de confiance autour de celle-ci.
English: In the below images, we have estimated confidence intervals around the predictions of networks. These visualisations were generated with the code from Bayesian Neural Networks Notebook. The red line represents the predictions. The purple shaded region around the predictions represent the uncertainty i.e. variance of predictions.
French: Dans les images ci-dessous, nous avons estimé les intervalles de confiance autour des prédictions des réseaux. Ces visualisations ont été générées avec la version anglaise de ce notebook. Une version en français est disponible ici. La ligne rouge représente les prédictions. La région en violet autour des prédictions représente l’incertitude c’est-à-dire la variance des prédictions.
English: As you can observe in the above images, these uncertainty estimations are not calibrated. They are different for different activation functions. Noticeably in the images, uncertainty around data points is low. Furthermore, the variance that we can observe is a differentiable function. So we can run gradient descent to minimise this variance. Thereby we can get more confident predictions.
French: Comme vous pouvez l’observer sur les images ci-dessus, ces estimations d’incertitude ne sont pas calibrées. Elles sont différentes pour différentes fonctions d’activation. Sur les images, on remarque que l’incertitude autour des points de données est faible. De plus, la variance que nous pouvons observer est une fonction différentiable. Nous pouvons donc effectuer une descente de gradient pour minimiser cette variance. Nous pouvons ainsi obtenir des prévisions plus fiables.
English: Digression: A term that penalises the length of the latent variable can act as one of many loss terms in a model. The length of a vector is roughly proportional to the number of dimensions it has. So if you decrease the number of dimensions, then the length of the vector decreases and as a result it encodes less information. In an auto-encoder setting, this makes sure that the model is retaining the most important information. So, one way to bottleneck information in latent spaces is to reduce the dimensionality of the latent space.
French: Digression : un terme qui pénalise la longueur de la variable latente peut agir comme l’un des nombreux termes de perte dans un modèle. La longueur d’un vecteur est à peu près proportionnelle au nombre de dimensions qu’il possède. Ainsi, si nous diminuons le nombre de dimensions, la longueur du vecteur diminue et par conséquent il code moins d’informations. Dans un paramétrage d’auto-encodeur, cela permet de s’assurer que le modèle conserve les informations les plus importantes. Ainsi, une façon de bloquer l’information dans les espaces latents est de réduire la dimensionnalité de l’espace latent.
English: When encountering the data with multiple outputs for a single input, feed-forward networks cannot capture such implicit dependencies. Instead, latent-variable energy-based models (EBMs) come to the rescue. We developed a toy ellipse example with a fixed input and the optimal model formulation. Then, we applied latent-variable EBMs to inference the best latent variables that can learn the implicit relationships.
French: Lorsque les réseaux feed-forward rencontrent des données à sorties multiples pour une seule entrée, ils ne peuvent pas saisir les dépendances implicites. C’est là que les modèles à base d’énergie à variable latente (LV-EBMs pour Latent variable energy based models) viennent à la rescousse. Nous développons un exemple d’ellipse avec une entrée fixe et la formulation optimale du modèle. Ensuite, nous appliquons les EBMs à variables latentes pour inférer les meilleures variables latentes pouvant apprendre les relations implicites.
English: This section starts from introducing a relaxed version of free energy by modifying the “temperature” to smooth the energy function. Then we demonstrate how to train EBMs by minimizing loss functionals with several examples. Finally we give a concrete example of self-supervised learning, where we train a EBM to learn a horn-like data manifold.
French: Cette section introduit une version détendue de l’énergie libre en modifiant la « température » afin de lisser la fonction d’énergie. Ensuite, nous montrons comment entraîner les EBMs en minimisant les pertes fonctionnelles à l’aide de plusieurs exemples. Enfin, nous donnons un exemple concret d’apprentissage autosupervisé, où nous entraînons un EBM à l’apprentissage d’une variété de type conique.
English: To understand why and how to use an Energy-Based Model (EBM), as well as relevant data format, let us consider training samples from an ellipse. Given function below
French: Pour comprendre pourquoi et comment utiliser un modèle à base d’énergie (EBM), et quel est le format de données qui est pertinent pour ce type de modèle, considérons des échantillons d’entraînement à partir d’une ellipse. La fonction est donnée ci-dessous :
English: From Figure 1, it is clear that given a single input x, there are multiple possible output y. In other words, we cannot identify a one-to-one mapping of vectors as we expected for Feed Forward Neural Networks (For example, there are almost always two possible y2 fixing y1​ given input x). This is where we introduce the Latent Variable Energy-Based Models.
French: La figure 1 montre clairement qu’avec une seule entrée x, il y a plusieurs sorties possibles y. En d’autres termes, nous ne pouvons pas identifier une association un à un des vecteurs comme nous l’avions prévu pour les réseaux neuronaux de type feed forward (par exemple, étant donné l’entrée x, pour un y1​ fixé, il y a presque toujours deux y2​ possibles). C’est ici que nous introduisons les modèles à base d’énergie à variable latente.
English: Meanwhile, we take latent variable z=[0:24π​:2π) and feed it into a decoder to produce y~​ (Figure 2 and 3). Then, the energy function is computed as the squared Euclidean distance between y and y~​:
French: Entre-temps, nous prenons la variable latente z=[0:24π​:2π] et l’introduisons dans un décodeur pour produire y~ (figures 2 et 3). Ensuite, la fonction d’énergie est calculée comme le carré de la distance euclidienne entre y et y~​ :