lbourdois/en-fr-nyu-dl-course-corpus huggingface dataset:
English: Unlike linear regression, Latent variable energy-based models take what we know about the world as well as a latent variable which gives us information about what happened in reality. A combination of those two pieces of information can be used to make a prediction that will be close to what actually occurs.
French: Contrairement à la régression linéaire, les EMBs à variable latente prennent ce que nous savons du monde ainsi qu’une variable latente qui nous donne des informations sur ce qui s’est passé dans la réalité. Une combinaison de ces deux éléments d’information peut être utilisée pour faire une prédiction qui sera proche de ce qui se passe réellement.
English: These models can be thought of as systems that rate compatibility between the input x and actual output y depending on the prediction using the latent variable that minimizes the energy of the system. You observe input x and produce possible predictions yˉ​ for different combinations of input x and latent variables z and choose the one that minimizes the energy, prediction error, of the system.
French: Ces modèles peuvent être considérés comme des systèmes qui évaluent la compatibilité entre l’entrée x et la sortie réelle y en fonction de la prédiction utilisant la variable latente qui minimise l’énergie du système. Nous observons l’entrée x, produisons des prédictions possibles yˉ​ pour différentes combinaisons (x,z) et choisissons celle qui minimise l’énergie, l’erreur de prédiction, du système.
English: Depending upon the latent variable we draw, we can end up with all the possible predictions. The latent variable could be thought of as a piece of important information about the output y that is not present in the input x.
French: En fonction de la variable latente que nous tirons, nous pouvons nous retrouver avec toutes les prédictions possibles. La variable latente peut être considérée comme une information importante sur la sortie y qui n’est pas présente dans l’entrée x.
English: There are seven strategies to shape the energy function. The contrastive methods differ in the way they pick the points to push up. While the architectural methods differ in the way they limit the information capacity of the code.
French: Il existe sept stratégies pour façonner la fonction d’énergie. Les méthodes contrastives diffèrent dans la manière de choisir les points à pousser vers le haut. Les méthodes architecturales diffèrent dans la façon dont elles limitent la capacité d’information du code.
English: An example of the contrastive method is Maximum Likelihood learning. The energy can be interpreted as an unnormalised negative log density. Gibbs distribution gives us the likelihood of y given x. It can be formulated as follows:
French: Un exemple de la méthode contrastive est l’apprentissage par maximum de vraisemblance. L’énergie peut être interprétée comme une densité logarithmique négative non normalisée. La distribution de Gibbs nous donne la vraisemblance de y pour x. Elle peut être formulée comme suit :
English: Maximum likelihood tries to make the numerator big and the denominator small to maximize the likelihood. This is equivalent to minimizing −log(P(Y∣W)) which is given below
French: Le maximum de vraisemblance essaie de rendre le numérateur grand et le dénominateur petit pour maximiser la probabilité. Cela équivaut à minimiser −log(P(Y∣W)) qui est donné ci-dessous :
English: In the above gradient, the first term of the gradient at the data point y and the second term of the gradient gives us the expected value of the gradient of the energy over all ys. Hence, when we perform gradient descent the first term tries to reduce energy given to the data point y and the second term tries to increase the energy given to all other ys.
French: Dans le gradient ci-dessus, le premier terme du gradient au point de données y et le second terme du gradient nous donne la valeur attendue du gradient de l’énergie sur l’ensemble des y. Ainsi, lorsque nous effectuons la descente de gradient, le premier terme tente de réduire l’énergie donnée au point de données y et le second terme tente d’augmenter l’énergie donnée à tous les autres y.
English: The gradient of the energy function is generally very complex and hence computing, estimating or approximating the integral is a very interesting case as it is intractable in most of the cases.
French: Le gradient de la fonction d’énergie est généralement très complexe et par conséquent le calcul, l’estimation ou l’approximation de l’intégrale est un cas très intéressant car il est insoluble dans la plupart des cas.
English: The main advantage of Latent variable models is that they allow multiple predictions through the latent variable. As z varies over a set, y varies over the manifold of possible predictions. Some examples include:
French: Le principal avantage des modèles à variables latentes est qu’ils permettent des prévisions multiples grâce à la variable latente. Comme z varie sur un ensemble, y varie sur la multiplicité des prédictions possibles. En voici quelques exemples :
English: K-means is a simple clustering algorithm that can also be considered as an energy-based model where we are trying to model the distribution over y. The energy function is E(y,z)=∥y−Wz∥2 where z is a 1-hot vector.
French: Les K-means sont un algorithme de clustering simple qui peut également être considéré comme un modèle à base d’énergie dont nous essayons de modéliser la distribution sur y. La fonction d’énergie est E(y,z)=∥y−Wz∥2 où z est un vecteur one-hot.
English: Given a value of y and k, we can do inference by figuring out which of the k possible columns of W minimizes the reconstruction error or energy function. To train the algorithm, we can adopt an approach where we can find z to choose the column of W closest to y and then try to get even closer by taking a gradient step and repeat the process. However, coordinate gradient descent actually works better and faster.
French: Avec une valeur de y et k, nous pouvons faire une inférence en déterminant laquelle des colonnes possibles de k de W minimise l’erreur de reconstruction ou la fonction d’énergie. Pour entraîner l’algorithme, nous pouvons adopter une approche où nous pouvons trouver z pour choisir la colonne de W la plus proche de y et ensuite essayer de nous rapprocher encore plus en prenant un pas de gradient et en répétant le processus. Cependant, la descente de gradient coordonné fonctionne en fait mieux et plus rapidement.
English: K-means belongs to architectural methods (as opposed to contrastive methods). Hence we do not push up the energy anywhere, all we do is push the energy down in certain regions. One disadvantage is that once the value of k has been decided, there can only be k points that have 0 energy, and every other point will have higher energy that grows quadratically as we move away from them.
French: Les K-means appartiennent aux méthodes architecturales (par opposition aux méthodes contrastives). Par conséquent, nous n’augmentons l’énergie nulle part. Tout ce que nous faisons, c’est de la faire baisser dans certaines régions. Un inconvénient est qu’une fois que la valeur de k a été décidée, il ne peut y avoir que des points k qui ont une énergie de 0. Tous les autres points auront une énergie plus élevée qui croîtra de façon quadratique à mesure que nous nous en éloignerons.
English: According to Dr Yann LeCun, everyone will be using architectural methods at some point, but at this moment, it is contrastive methods that work for images. Consider the figure below which shows us some data points and contours of the energy surface. Ideally, we want the energy surface to have the lowest energy on the data manifold. Hence what we would like to do is lower the energy (i.e. the value of F(x,y)) around the training example, but this alone may not be enough. Hence we also raise it for the y’s in the region that should have high energy but has low energy.
French: Selon Yann, tout le monde utilisera un jour des méthodes architecturales, mais pour l’instant, ce sont les méthodes contrastives qui fonctionnent pour les images. Considérons la figure ci-dessous qui nous montre quelques points de données et les contours de la surface énergétique. Idéalement, nous voulons que la surface énergétique ait l’énergie la plus faible sur la variété des données. Par conséquent, nous aimerions réduire l’énergie (c’est-à-dire la valeur de F(x,y)) autour de l’exemple d’entraînement, mais cela peut ne pas suffire. C’est pourquoi nous l’augmentons également pour les y dans la région qui devrait avoir une énergie élevée mais qui a une énergie faible.
English: Once we have a corrupted data point, we can push the energy up here. If we do this sufficiently many times for all the data points, the energy sample will curl up around the training examples. The following plot illustrates how training is done.
French: Une fois que nous avons un point de données corrompu, nous pouvons pousser l’énergie jusqu’ici. Si nous le faisons suffisamment de fois pour tous les points de données, l’échantillon d’énergie se recroquevillera autour des exemples d’entraînement. Le graphique suivant illustre la façon dont l’entraînement est effectué :
English: BERT is trained similarly, except that the space is discrete as we are dealing with text. The corruption technique consists of masking some of the words and the reconstruction step consists of trying to predict these. Hence, this is also called a masked autoencoder.
French: BERT est entraîné de la même manière, sauf que l’espace est discret car nous avons affaire à du texte. La technique de corruption consiste à masquer certains mots et l’étape de reconstruction consiste à essayer de les prédire. C’est pourquoi on appelle aussi cela un auto-encodeur masqué.
English: Contrastive Divergence presents us with a smarter way to find the y point that we want to push up the energy for. We can give a random kick to our training point and then move down the energy function using gradient descent. At the end of the trajectory, we push up the energy for the point we land on. This is illustrated in the plot below using the green line.
French: La divergence contrastive nous offre une façon plus intelligente de trouver le point y pour lequel nous voulons faire monter l’énergie. Nous pouvons donner un « coup de pied » aléatoire à notre point d’entraînement et ensuite descendre la fonction d’énergie en utilisant la descente de gradient. A la fin de la trajectoire, nous poussons l’énergie vers le haut pour le point où nous atterrissons. Ceci est illustré dans le graphique ci-dessous par la ligne verte.
English: Can you tell which face is fake in Fig. 1? In fact, both of them are produced by the StyleGan2 generator. Although the facial details are very realistic, the background looks weird (left: blurriness, right: misshapen objects). This is because the neural network is trained on faces samples. The background then has a much higher variability. Here the data manifold has roughly 50 dimensions, equal to the degrees of freedom of a face image.
French: Pouvez-vous dire quel visage est faux dans la figure 1 ? En fait, les deux sont produits par le générateur StyleGan2. Bien que les détails du visage soient très réalistes, l’arrière-plan semble bizarre (à gauche : flou, à droite : objets déformés). Cela s’explique par le fait que le réseau neuronal est entraîné sur des échantillons de visages. L’arrière-plan présente alors une variabilité beaucoup plus importante. Ici, la variété des données a environ 50 dimensions, ce qui équivaut aux degrés de liberté d’une image de visage.
English: If we linearly interpolate between the dog and bird image (Fig. 2) in pixel space, we will get a fading overlay of two images in Fig. 3. From the top left to the bottom right, the weight of the dog image decreases and the weight of the bird image increases.
French: Si nous interpolons linéairement entre l’image du chien et celle de l’oiseau (figure 2) dans l’espace des pixels, nous obtenons une superposition de deux images en fondu dans la figure 3. Du haut à gauche au bas à droite, le poids de l’image du chien diminue et celui de l’image de l’oiseau augmente.
English: This model aims to upscale images and reconstruct the original faces. From left to right in Fig. 9, the first column is the 16x16 input image, the second one is what you would get from a standard bicubic interpolation, the third is the output generated by the neural net, and on the right is the ground truth.
French: Ce modèle vise à améliorer les images et à reconstruire les visages originaux. De gauche à droite sur la figure 9, la première colonne est l’image d’entrée 16x16, la deuxième est ce que nous obtenons avec une interpolation bicubique standard, la troisième est la sortie générée par le réseau neuronal, et à droite est la véritable image.
English: From the output images, it is clear that there exist biases in the training data, which makes the reconstructed faces inaccurate. For example, the top left Asian man is made to look European in the output due to the imbalanced training images. The reconstructed face of the bottom left women looks weird due to the lack of images from that odd angle in the training data.
French: D’après les images de sortie, il est clair qu’il existe des biais dans les données d’entraînement, ce qui rend les visages reconstruits inexacts. Par exemple, l’homme asiatique en haut à gauche a l’air européen dans les images de sortie en raison du déséquilibre des images d’entraînement. Le visage reconstruit en bas à gauche est bizarre en raison de l’absence d’images sous cet angle dans les données d’entraînement.
English: Putting a grey patch on the face like in Fig. 10 makes the image away from the training manifold. The face reconstruction in Fig. 11 is done by finding the closest sample image on the training manifold via Energy function minimization.
French: En plaçant une tache grise sur le visage, comme sur la figure 10, on éloigne l’image de la variété d’entraînement. La reconstruction du visage de la figure 11 est réalisée en trouvant l’échantillon d’image le plus proche sur la variété d’entraînement via la minimisation de la fonction énergie.
English: Autoencoders are artificial neural networks, trained in an unsupervised manner, that aim to first learn encoded representations of our data and then generate the input data (as closely as possible) from the learned encoded representations. Thus, the output of an autoencoder is its prediction for the input.
French: Les auto-encodeurs sont des réseaux de neurones artificiels, entraînés de manière non supervisée, qui visent à apprendre d’abord les représentations codées de nos données et ensuite à générer les données d’entrée (aussi proches que possible) à partir des représentations codées apprises. Ainsi, la sortie d’un auto-encodeur est sa prédiction pour l’entrée.
English: Fig. 13 shows the architecture of a basic autoencoder. As before, we start from the bottom with the input x which is subjected to an encoder (affine transformation defined by WhWh​, followed by squashing). This results in the intermediate hidden layer hh. This is subjected to the decoder(another affine transformation defined by Wx​ followed by another squashing). This produces the output x^, which is our model’s prediction/reconstruction of the input. As per our convention, we say that this is a 3 layer neural network.
French: La figure 13 montre l’architecture d’un auto-encodeur de base. Comme précédemment, nous partons du bas avec l’entrée x qui est soumise à un encodeur (transformation affine définie par WhWh​, suivie d’un écrasement). Il en résulte la couche cachée intermédiaire hh. Celle-ci est soumise au décodeur (une autre transformation affine définie par Wx​, suivie d’un autre écrasement). Cela produit la sortie x^, qui est la prédiction/reconstruction de l’entrée par notre modèle.
English: The primary applications of an autoencoder is for anomaly detection or image denoising. We know that an autoencoder’s task is to be able to reconstruct data that lives on the manifold i.e. given a data manifold, we would want our autoencoder to be able to reconstruct only the input that exists in that manifold. Thus we constrain the model to reconstruct things that have been observed during training, and so any variation present in new inputs will be removed because the model would be insensitive to those kinds of perturbations.
French: Les principales applications d’un auto-encodeur sont la détection d’anomalies ou le débruitage d’images. Nous savons que la tâche d’un auto- encodeur est de reconstruire des données qui vivent sur la variété, c’est-à-dire que si nous avons une variété de données, nous voudrions que notre auto-encodeur ne puisse reconstruire que l’entrée qui existe dans cette variété. Ainsi, nous contraignons le modèle à reconstruire les choses qui ont été observées pendant l’entraînement et donc toute variation présente dans les nouvelles entrées sera supprimée car le modèle est insensible à ce genre de perturbations.
English: Another application of an autoencoder is as an image compressor. If we have an intermediate dimensionality d lower than the input dimensionality nn, then the encoder can be used as a compressor and the hidden representations (coded representations) would address all (or most) of the information in the specific input but take less space.
French: Une autre application de l’auto-encodeur est la compression d’images. Si nous avons une dimension intermédiaire d inférieure à la dimension d’entrée nn, alors l’encodeur peut être utilisé comme un compresseur et les représentations cachées (représentations codées) traitent toutes (ou la plupart) des informations de l’entrée spécifique en prenant moins de place.
English: When the dimensionality of the hidden layer d is less than the dimensionality of the input n then we say it is under complete hidden layer. And similarly, when d>nd>n, we call it an over-complete hidden layer. Fig. 14 shows an under-complete hidden layer on the left and an over-complete hidden layer on the right.
French: Lorsque la dimensionnalité de la couche cachée d est inférieure à la dimensionnalité de l’entrée n, on dit que la couche cachée est sous-complète. Et de même, lorsque d>nd>n, nous disons qu’il s’agit d’une couche cachée sur-complète. La figure 14 montre une couche cachée sous-complète à gauche et une couche cachée sur-complète à droite.
English: As discussed above, an under-complete hidden layer can be used for compression as we are encoding the information from input in fewer dimensions. On the other hand, in an over-complete layer, we use an encoding with higher dimensionality than the input. This makes optimization easier.
French: Comme nous l’avons vu plus haut, une couche cachée sous-complète peut être utilisée pour la compression car nous encodons les informations provenant de l’entrée en moins de dimensions. En revanche, dans une couche sur-complète, nous utilisons un codage de dimension plus élevée que l’entrée. Cela facilite l’optimisation.
English: Since we are trying to reconstruct the input, the model is prone to copying all the input features into the hidden layer and passing it as the output thus essentially behaving as an identity function. This needs to be avoided as this would imply that our model fails to learn anything. Hence, we need to apply some additional constraints by applying an information bottleneck. We do this by constraining the possible configurations that the hidden layer can take to only those configurations seen during training. This allows for a selective reconstruction (limited to a subset of the input space) and makes the model insensitive to everything not in the manifold.
French: Comme nous essayons de reconstruire l’entrée, le modèle est enclin à copier toutes les caractéristiques d’entrée dans la couche cachée et à la faire passer comme sortie, se comportant ainsi essentiellement comme une fonction identité. Cela doit être évité car cela impliquerait que notre modèle n’apprend rien. Nous devons donc appliquer des contraintes supplémentaires en créant un goulot d’étranglement au niveau de l’information. Nous le faisons en limitant les configurations possibles que la couche cachée peut prendre aux seules configurations vues pendant l’entraînement. Cela permet une reconstruction sélective (limitée à un sous-ensemble de l’espace d’entrée) et rend le modèle insensible à tout ce qui ne se trouve pas dans la variété.
English: It is to be noted that an under-complete layer cannot behave as an identity function simply because the hidden layer doesn’t have enough dimensions to copy the input. Thus an under-complete hidden layer is less likely to overfit as compared to an over-complete hidden layer but it could still overfit. For example, given a powerful encoder and a decoder, the model could simply associate one number to each data point and learn the mapping. There are several methods to avoid overfitting such as regularization methods, architectural methods, etc.
French: Il est à noter qu’une couche sous-complète ne peut pas se comporter comme une fonction d’identité simplement parce que la couche cachée n’a pas assez de dimensions pour copier l’entrée. Ainsi, une couche cachée sous-complète a moins de chances de faire du surentraînement qu’une couche cachée sur-complète. Néanmoins elle peut quand même en faire. Par exemple, avec un encodeur et un décodeur puissants, le modèle pourrait simplement associer un numéro à chaque point de données et apprendre l’association. Il existe plusieurs méthodes pour éviter le surentraînement, telles que les méthodes de régularisation, les méthodes architecturales, etc.
English: In this model, we assume we are injecting the same noisy distribution we are going to observe in reality, so that we can learn how to robustly recover from it. By comparing the input and output, we can tell that the points that already on the manifold data did not move, and the points that far away from the manifold moved a lot.
French: Dans ce modèle, nous supposons que nous injectons la même distribution bruitée que celle que nous allons observer dans la réalité, afin que nous puissions apprendre à nous en remettre de manière robuste. En comparant l’entrée et la sortie, nous pouvons dire que les points qui se trouvaient déjà sur la variété des données n’ont pas bougé et que les points qui étaient éloignés sur la variété ont beaucoup bougé.
English: The lighter the colour, the longer the distance a point travelled. From the diagram, we can tell that the points at the corners travelled close to 1 unit, whereas the points within the 2 branches didn’t move at all since they are attracted by the top and bottom branches during the training process.
French: Plus la couleur est claire, plus la distance parcourue par un point est longue. D’après le diagramme, nous pouvons dire que les points aux coins ont parcouru une distance proche d’une unité, alors que les points à l’intérieur des deux branches n’ont pas bougé du tout puisqu’ils sont attirés par les branches supérieures et inférieures pendant le processus d’entraînement.
English: The loss function contains the reconstruction term plus squared norm of the gradient of the hidden representation with respect to the input. Therefore, the overall loss will minimize the variation of the hidden layer given variation of the input. The benefit would be to make the model sensitive to reconstruction directions while insensitive to any other possible directions.
French: La fonction de perte contient le terme de reconstruction plus la norme au carré du gradient de la représentation cachée par rapport à l’entrée. Par conséquent, la perte globale minimise la variation de la couche cachée compte tenu de la variation de l’entrée. L’avantage est de rendre le modèle sensible aux directions de reconstruction tout en étant insensible aux autres directions possibles.