lbourdois/en-fr-nyu-dl-course-corpus huggingface dataset:
English: This method will limit the volume of space of z which takes a small value and the value which will, in turn, controls the space of y that has low energy. The value of λ controls this tradeoff. A useful example of R is the L1​ norm, which can be viewed as an almost everywhere differentiable approximation of effective dimension. Adding noise to z while limiting its L2​ norm can also limit its information content (VAE).
French: Cette méthode limite le volume de l’espace de z qui prend une petite valeur et la valeur qui, à son tour, contrôle l’espace de y ayant une faible énergie. La valeur de λ contrôle ce compromis. Un exemple utile de R est la norme L1​, qui peut être considérée comme une approximation différenciable de la dimension effective presque partout. Ajouter du bruit à z tout en limitant sa norme L2​ peut également limiter son contenu en information (VAE).
English: The n-dimensional vector z will tend to have a maximum number of non-zero components m« nm« n. Then each Wz will be elements in the span of mm columns of W.
French: Le vecteur z de dimension n a tendance à avoir un nombre maximum de composantes non nulles m« nm« n. Chaque Wz est donc constitué d’éléments dans l’intervalle des mm colonnes de W.
English: After each optimization step, the matrix W and latent variable z are normalized by the sum of the L2​ norms of the columns of W. This ensures that W and z do not diverge to infinity and zero.
French: Après chaque étape d’optimisation, la matrice W et la variable latente z sont normalisées par la somme des normes L2​ des colonnes de W. Cela garantit que W et z ne divergent pas à l’infini et à zéro.
English: FISTA (fast ISTA) is an algorithm that optimizes the sparse coding energy function E(y,z) with respect to z by alternately optimizing the two terms ∥y−Wz∥2 and λ∥z∥L1​. We initialize Z(0) and iteratively update z according to the following rule:
French: FISTA (fast ISTA) est un algorithme qui optimise la fonction d’énergie de codage épars E(y,z) par rapport à z en optimisant alternativement les deux termes ∥y−Wz∥2 et λ∥z∥L1​. Nous initialisons Z(0) et mettons à jour itérativement z selon la règle suivante :
English: The inner expression Z(t)−1LWd⊤(WdZ(t)−Y) is a gradient step for the ∥y−Wz∥2 term. The Shrinkagefunction then shifts values towards 0, which optimizes the λ∥z∥L1​​ term.
French: L’expression interne Z(t)−1LWd⊤(WdZ(t)−Y) est un pas de gradient pour le terme ∥y−Wz∥2. La fonction Shrinkage décale ensuite les valeurs vers 0, ce qui optimise le terme λ∥z∥L1​​.
English: FISTA is too expensive to apply to large sets of high-dimensional data (e.g. images). One way to make it more efficient is to instead train a network to predict the optimal latent variable z:
French: FISTA est trop coûteux pour être appliqué à des jeux de données de grandes dimensions (par exemple les images). Un moyen de le rendre plus efficace est d’entraîner un réseau à prédire la variable latente optimale z :
English: This update rule can be interpreted as a recurrent network, which suggests that we can instead learn the parameters We​ that iteratively determine the latent variable z. The network is run for a fixed number of time steps k and the gradients of We​ are computed using standard backpropagation-through-time. The trained network then produces a good z in fewer iterations than the FISTA algorithm.
French: Cette règle de mise à jour peut être interprétée comme un réseau récurrent, ce qui suggère que nous pouvons apprendre les paramètres We​ qui déterminent itérativement la variable latente z. Le réseau est exécuté pour un nombre de pas de temps k fixe et les gradients de We sont calculés en utilisant la rétropropagation standard à travers le temps. Le réseau entraîné produit alors un bon z en moins d’itérations que l’algorithme FISTA.
English: When a sparse coding system with 256 dimensional latent vector is applied to MNIST handwritten digits, the system learns a set of 256 strokes that can be linearly combined to nearly reproduce the entire training set. The sparse regularizer ensures that they can be reproduced from a small number of strokes.
French: Lorsqu’un système de codage épars avec un vecteur latent à 256 dimensions est appliqué aux chiffres manuscrits de MNIST, le système apprend un ensemble de 256 traits qui peuvent être combinés linéairement pour reproduire presque tout l’ensemble d’entraînement. Le régularisateur épars garantit qu’ils peuvent être reproduits à partir d’un petit nombre de traits.
English: When a sparse coding system is trained on natural image patches, the learned features are Gabor filters, which are oriented edges. These features resemble features learned in early parts of animal visual systems.
French: Lorsqu’un système de codage épars est entraîné sur des images naturelles, les caractéristiques apprises sont les filtres de Gabor, qui sont des bords orientés. Ces caractéristiques ressemblent aux caractéristiques apprises dans les premières parties des systèmes visuels des animaux.
English: Suppose, we have an image and the feature maps (z1,z2,⋯ ,zn​) of the image. Then we can convolve (∗) each of the feature maps with the kernel Ki​. Then the reconstruction can be simply calculated as:
French: Supposons que nous ayons une image et les cartes de caractéristiques (z1,z2,⋯ ,zn​) de l’image. Nous pouvons faire une convolution (∗) de chacune des cartes de caractéristiques avec le noyau Ki​. La reconstruction peut être alors simplement calculée comme :
English: This is different from the original sparse coding where the reconstruction was done as Y=∑iWiZi. In regular sparse coding, we have a weighted sum of columns where the weights are coefficients of Zi​. In convolutional sparse coding, it is still a linear operation but the dictionary matrix is now a bunch of feature maps and we convolve each feature map with each kernel and sum up the results.
French: Cela est différent du codage épars original où la reconstruction est faite sous la forme Y=∑iWiZi​. Dans le codage épars de base, nous avons une somme pondérée de colonnes où les poids sont des coefficients de Zi​. Dans le codage convolutif épars, il s’agit toujours d’une opération linéaire, mais la matrice du dictionnaire est maintenant un ensemble de cartes de caractéristiques et nous effectuons une convolution de chacune d’elles avec chaque noyau et nous additionnons les résultats.
English: The filters in the encoder and decoder look very similar. Encoder is simply a convolution followed by some non-linearity and then a diagonal layer to change the scale. Then there is sparsity on the constraint of the code. The decoder is just a convolutional linear decoder and the reconstruction here is the square error.
French: Les filtres de l’encodeur et du décodeur se ressemblent beaucoup. L’encodeur est simplement une convolution suivie d’une non-linéarité, puis une couche diagonale pour changer l’échelle. Ensuite, il y a de l’éparsité sur la contrainte du code. Le décodeur n’est qu’un décodeur linéaire convolutif et la reconstruction est ici l’erreur quadratique.
English: So, if we impose that there is only one filter then it is just a centre surround type filter. With two filters, we can get some weird shaped filters. With four filters, we get oriented edges (horizontal and vertical); we get 2 polarities for each of the filters. With eight filters we can get oriented edges at 8 different orientations. With 16, we get more orientation along with the centres around. As we go on increasing the filters, we get more diverse filters that is in addition to edge detectors, we also get grating detectors of various orientations, centres around, etc.
French: Donc, si nous imposons qu’il n’y ait qu’un seul filtre, alors il s’agit juste d’un filtre de type center surround. Avec deux filtres, nous pouvons obtenir des filtres de forme étrange. Avec quatre filtres, nous obtenons des bords orientés (horizontaux et verticaux) et 2 polarités pour chacun des filtres. Avec huit filtres, nous pouvons obtenir des bords orientés à 8 orientations différentes. Avec 16 filtres, nous obtenons plus d’orientation ainsi que les center surround. En augmentant les filtres, on obtient des filtres plus variés, c’est-à-dire en plus des détecteurs de bords, on obtient également des détecteurs de réseaux de différentes orientations, des center surround, etc.
English: This phenomenon seems to be interesting since it is similar to what we observe in the visual cortex. So this is an indication that we can learn really good features in a completely unsupervised way.
French: Ce phénomène semble intéressant car il est similaire à ce que nous observons dans le cortex visuel. C’est donc une indication que nous pouvons apprendre de très bonnes caractéristiques d’une manière totalement non supervisée.
English: As a side use, if we take these features and plug them in a convolutional net and then train them on some task, then we don’t necessarily get better results than training an image net from scratch. However, there are some instances where it can help to boost performance. For instance, in cases where the number of samples are not large enough or there are few categories, by training in a purely supervised manner, we get degenerate features.
French: Par ailleurs, si nous prenons ces caractéristiques et les connectons à un réseau convolutif, puis que nous les entraînons à une tâche quelconque, nous n’obtenons pas nécessairement de meilleurs résultats qu’un réseau d’images entraîner à partir de zéro. Cependant, dans certains cas, cela peut contribuer à améliorer les performances. Par exemple, dans les cas où le nombre d’échantillons n’est pas assez important ou s’il y a peu de catégories, en entraînant de manière purement supervisée, nous obtenons des caractéristiques dégénérées.
English: The figure above is another example on colour images. The decoding kernel (on the right side) is of size 9 by 9. This kernel is applied convolutionally over the entire image. The image on the left is of the sparse codes from the encoder. The z vector is very sparse space where there are just few components that are white or black (non-grey).
French: La figure ci-dessus est un autre exemple sur les images en couleur. Le noyau de décodage (sur le côté droit) est de taille 9 par 9. Ce noyau est appliqué par convolution sur l’ensemble de l’image. L’image de gauche est constituée des codes épars de l’encodeur. Le vecteur z est un espace très épars où il n’y a que peu de composantes blanches ou noires (non grises).
English: Variational Autoencoders have an architecture similar to Regularized Latent Variable EBM, with the exception of sparsity. Instead, the information content of the code is limited by making it noisy.
French: Les auto-encodeurs variationnels ont une architecture similaire à celle des EBMs à variable latente régularisée, à l’exception de l’éparsité. Au contraire, le contenu informationnel du code est limité en le rendant bruyant.
English: The latent variable z is not computed by minimizing the energy function with respect to z. Instead, the energy function is viewed as sampling z randomly according to a distribution whose logarithm is the cost that links it to z‾z. The distribution is a Gaussian with mean z‾z and this results in Gaussian noise being added to z‾z.
French: La variable latente z n’est pas calculée en minimisant la fonction énergie par rapport à z. Au lieu de cela, la fonction énergie est considérée comme un échantillonnage aléatoire de z selon une distribution dont le logarithme est le coût qui la relie à z‾z. La distribution est une gaussienne avec une moyenne de z‾z et cela se traduit par l’ajout d’un bruit gaussien à z‾z.
English: The system tries to make the code vectors z‾z as large as possible so that the effect of z(noise) is as small as possible. This results in the fuzy balls floating away from the origin as shown in Fig. 9(b). Another reason why the system tries to make the code vectors large is to prevent overlapping fuzy balls, which causes the decoder to confuse between different samples during reconstruction.
French: Le système essaie de rendre les vecteurs de code z‾z aussi grands que possible afin que l’effet de z (bruit) soit aussi petit que possible. Cela a pour résultat que les « boules floues » s’éloignent de l’origine comme le montre la figure 9(b). Une autre raison pour laquelle le système tente de rendre les vecteurs de code plus grands est d’éviter le chevauchement des « boules floues », qui entraîne une confusion du décodeur entre les différents échantillons lors de la reconstruction.
English: But we want the fuzy balls to cluster around a data manifold, if there is one. So, the code vectors are regularized to have a mean and variance close to zero. To do this, we link them to the origin by a spring as shown in Fig. 10.
French: Mais nous voulons que les boules floues se regroupent autour d’une variété de données, s’il y en a une. Ainsi, les vecteurs de code sont régularisés pour avoir une moyenne et une variance proches de 0. Pour ce faire, nous les relions à l’origine par un ressort comme le montre la figure 10.
English: The strength of the spring determines how close the fuzy balls are to the origin. If the spring is too weak, then the fuzy balls would fly away from the origin. And if it’s too strong, then they would collapse at the origin, resulting in a high energy value. To prevent this, the system lets the spheres overlap only if the corresponding samples are similar. It is also possible to adapt the size of the fuzy balls. This is limited by a penalty function (KL Divergence) that tries to make the variance close to 1 so that the size of the ball is neither too big nor too small that it collapses.
French: La force du ressort détermine la proximité des « boules floues » par rapport à l’origine. Si le ressort est trop faible, les boules s’éloignent de l’origine. Et si le ressort est trop fort, alors elles s’effondrent à l’origine, ce qui entraîne une valeur d’énergie élevée. Pour éviter cela, le système ne laisse les sphères se chevaucher que si les échantillons correspondants sont similaires. Il est également possible d’adapter la taille des boules floues. Ceci est limité par une fonction de pénalité (KL Divergence) qui tente de rendre la variance proche de 1 afin que la taille de la boule ne soit ni trop grande ni trop petite pour qu’elle s’effondre.
English: First, the autoencoder takes in an input and maps it to a hidden state through an affine transformation h=f(Wh​x+bh​), where F is an (element-wise) activation function. This is the encoder stage. Note that h is also called the code.
French: Tout d’abord, l’auto-encodeur prend une entrée et l’associe à un état caché par une transformation affine h=f(Whx+bh), où F est une fonction d’activation (par élément). C’est l’étape de l’encodeur. Notons que h est également appelé le code.
English: Next, we introduce Variational Autoencoders (or VAE), a type of generative models. But why do we even care about generative models? To answer the question, discriminative models learn to make predictions given some observations, but generative models aim to simulate the data generation process. One effect is that generative models can better understand the underlying causal relations which leads to better generalization.
French: Ensuite, nous présentons les auto-encodeurs variationnels (VAEs), un type de modèles génératifs. Mais pourquoi s’intéresser aux modèles génératifs ? Pour répondre à la question, les modèles discriminants apprennent à faire des prédictions à partir de certaines observations, mais les modèles génératifs visent à simuler le processus de génération de données. Un des effets est que les modèles génératifs peuvent mieux comprendre les relations causales sous-jacentes, ce qui conduit à une meilleure généralisation.
English: Note that although VAE has “Autoencoders” (AE) in its name (because of structural or architectural similarity to auto-encoders), the formulations between VAEs and AEs are very different. See Figure 1 below.
French: Il est à noter que bien que le nom VAE contienne le terme « auto-encodeurs » (AE) en raison de la similarité structurelle ou architecturale avec les auto-encodeurs, les formulations entre VAE et AE sont très différentes.
English: First, the encoder stage: we pass the input x to the encoder. Instead of generating a hidden representation h (the code) in AE, the code in VAE comprises two things: E(z) and V(z) where z is the latent random variable following a Gaussian distribution with mean E(z) and variance V(z). Note that people use Gaussian distributions as the encoded distribution in practice, but other distributions can be used as well. The encoder will be a function from x to R2d: x↦h (here we use h to represent the concatenation of E(z) and V(z)).
French: D’abord, l’étape de l’encodeur : nous passons l’entrée x à l’encodeur. Au lieu de générer une représentation cachée h (le code) dans AE, le code dans VAE comprend deux choses : E(z) et V(z) où z est la variable aléatoire latente suivant une distribution gaussienne avec la moyenne E(z) et la variance V(z). A noter qu’en pratique, les gens utilisent les distributions gaussiennes comme distribution encodée, mais d’autres distributions peuvent également être utilisées. L’encodeur sera une fonction de x à R2d : x↦h (ici nous utilisons h pour représenter la concaténation de E(z) et V(z)).
English: Next, we will sample z from the above distribution parametrized by the encoder; specifically, E(z) and V(z) are passed into a sampler to generate the latent variable z.
French: Ensuite, nous allons échantillonner z à partir de la distribution ci-dessus paramétrée par l’encodeur. Plus précisément, E(z) et V(z) sont passés dans un échantillonneur pour générer la variable latente z.
English: In fact, for classic autoencoder, we can think of h as just the vector E(z) in the VAE formulation. In short, the main difference between VAEs and AEs is that VAEs have a good latent space that enables generative process.
French: En fait, pour l’auto-encodeur classique, on peut considérer h comme le vecteur E(z) de la formulation VAE. En bref, la principale différence entre les VAEs et les AEs est que les VAEs ont un bon espace latent qui permet le processus de génération.
English: First, we encode from input space (left) to latent space (right), through encoder and noise. Next, we decode from latent space (right) to output space (left). To go from the latent to input space (the generative process) we will need to either learn the distribution (of the latent code) or enforce some structure. In our case, VAE enforces some structure to the latent space.
French: D’abord nous encodons, de l’espace d’entrée (à gauche) à l’espace latent (à droite), en passant par l’encodeur et le bruit. Ensuite, nous décodons de l’espace latent (à droite) à l’espace de sortie (à gauche). Pour passer de l’espace latent à l’espace d’entrée (le processus de génération), nous devrons soit apprendre la distribution (du code latent), soit appliquer une certaine structure. Dans notre cas, le VAE applique une certaine structure à l’espace latent.
English: The regularization term is on the latent layer, to enforce some specific Gaussian structure on the latent space (right side of the figure). We do so by using a penalty term lKL​(z,N(0,Id​)). Without this term, VAE will act like a classic autoencoder, which may lead to overfitting, and we won’t have the generative properties that we desire.
French: Le terme de régularisation se trouve sur la couche latente, pour renforcer une structure gaussienne spécifique sur l’espace latent (côté droit de la figure). Pour ce faire, nous utilisons un terme de pénalité lKL(z,N(0,Id)). Sans ce terme, le VAE agira comme un auto-encodeur classique, ce qui peut conduire à du surentraînement et nous n’aurons pas les propriétés génératrices que nous souhaitons.
English: How do we sample from the distribution returned by the encoder in VAE? According to above, we sample from the Gaussian distribution, in order to obtain z. However, this is problematic, because when we do gradient descent to train the VAE model, we don’t know how to do backpropagation through the sampling module.
French: Comment prélever un échantillon de la distribution renvoyée par l’encodeur dans la VAE ? Selon ce qui précède, nous effectuons un échantillonnage à partir de la distribution gaussienne, afin d’obtenir z. Cependant, cela est problématique, car lorsque nous effectuons une descente de gradient pour entraîner le modèle VAE, nous ne savons pas comment effectuer la rétropropagation par le module d’échantillonnage.
English: ​ where ϵ∼N(0,Id​). In this case, backpropagation in training is possible. Specifically, the gradients will go through the (element-wise) multiplication and addition in the above equation.
French: ​ où ϵ∼N(0,Id​). Dans ce cas, la rétropropagation lors de l’entraînement est possible. Plus précisément, les gradients passeront par la multiplication (par élément) et l’addition dans l’équation ci-dessus.
English: To visualize the purpose of each term in the loss function, we can think of each estimated z value as a circle in 2d space, where the centre of the circle is E(z) and the surrounding area are the possible values of z determined by V(z).
French: Pour visualiser l’objectif de chaque terme dans la fonction de perte, nous pouvons penser à chaque valeur estimée de z comme un cercle dans un espace de 2d, où le centre du cercle est E(z) et la zone environnante sont les valeurs possibles de z déterminées par V(z).
English: In Figure 3 above, each bubble represents an estimated region of z, and the arrows represent how the reconstruction term pushes each estimated value away from the others, which is explained more below.
French: Dans la figure 3 ci-dessus, chaque bulle représente une région estimée à z et les flèches représentent comment le terme de reconstruction éloigne chaque valeur estimée des autres, ce qui est expliqué plus en détail ci-dessous.
English: If there is overlap between any two estimates of z, (visually, if two bubbles overlap) this creates ambiguity for reconstruction because the points in the overlap can be mapped to both original inputs. Therefore the reconstruction loss will push the points away from one another.
French: S’il y a un chevauchement entre deux estimations de z, (visuellement si deux bulles se chevauchent), cela crée une ambiguïté pour la reconstruction car les points de chevauchement peuvent être mis en correspondance avec les deux entrées originales. Par conséquent, la perte de reconstruction éloignera les points l’un de l’autre.
English: However, if we use just the reconstruction loss, the estimates will continue to be pushed away from each other and the system could blow up. This is where the penalty term comes in.
French: Cependant, si nous n’utilisons que la perte de reconstruction, les estimations continueront à être éloignées l’une de l’autre et le système pourrait exploser. C’est là qu’intervient le terme de pénalité.
English: The second term is the relative entropy (a measure of the distance between two distributions) between z which comes from a Gaussian with mean E(z), variance V(z) and the standard normal distribution. If we expand this second term in the VAE loss function we get:
French: Le deuxième terme est l’entropie relative (une mesure de la distance entre deux distributions) entre z qui provient d’une gaussienne avec la moyenne E(z), la variance V(z) et la distribution normale standard. Si nous élargissons ce deuxième terme dans la fonction de perte du VAE, nous obtenons
English: So we can see that this expression is minimized when zi​ has variance 1. Therefore our penalty loss will keep the variance of our estimated latent variables at around 1. Visually, this means our “bubbles” from above will have a radius of around 1.
French: On peut donc voir que cette expression est minimisée lorsque zi​ a la variance à 1. Par conséquent, notre perte de pénalité maintiendra la variance de nos variables latentes estimées à environ 1. Visuellement, cela signifie que nos « bulles » du haut auront un rayon d’environ 1.