lbourdois/en-fr-nyu-dl-course-corpus huggingface dataset:
English: Note that translation alone is not linear since 0 will not always be mapped to 0, but it is an affine transformation. Returning to our image example, we can transform the data points by translating such that the points are clustered around 0 and scaling with a diagonal matrix such that we “zoom in” to that region. Finally, we can do classification by finding lines across the space which separate the different points into their respective classes. In other words, the idea is to use linear and nonlinear transformations to map the points into a space such that they are linearly separable. This idea will be made more concrete in the following sections.
French: A noter que la translation seule n’est pas linéaire puisque 0 ne sera pas toujours mis en correspondance avec 0, mais c’est une transformation affine. Pour revenir à notre exemple d’image, nous pouvons transformer les points de données en les translatant de manière à ce qu’ils soient regroupés autour de 0 et en les mettant à l’échelle à l’aide d’une matrice diagonale de manière à effectuer un « zoom avant » sur cette région. Enfin, nous pouvons effectuer une classification en trouvant des lignes dans l’espace qui séparent les différents points dans leurs classes respectives. En d’autres termes, l’idée est d’utiliser des transformations linéaires et non linéaires pour représenter les points dans un espace tel qu’ils soient linéairement séparables. Cette idée sera rendue plus concrète dans les sections suivantes.
English: In the next part, we visualize how a neural network separates points and a few linear and non-linear transformations. This can be accessed here.
French: Dans la suite, nous visualisons comment un réseau neuronal sépare des points et quelques transformations linéaires et non linéaires. Ce contenu est essentiellement le même que celui de l’année dernière, ainsi nous vous invitons à vous rendre ici pour le consulter.
English: We introduced how to draw deep network schematics conveniently using diagrams.net. Then we showed the different effect of using only linear transformation, and the effect of combining linear and non-linear transformation together on spiral classification. Finally, we showed the mathematical principles underlying neural networks, including chain rule derivation, back propagation, and gradient descent.
French: Nous présentons comment dessiner des schémas de réseaux profonds de manière pratique en utilisant diagrams.net. Nous montrons ensuite les différents effets de l’utilisation de la seule transformation linéaire, et l’effet de la combinaison de la transformation linéaire et non linéaire sur la classification en spirale. Enfin nous voyons les principes mathématiques qui sous-tendent les réseaux neuronaux, notamment le théorème de dérivation des fonctions composées, la rétropropagation et la descente de gradient.
English: Here you can place all your favorite stuff. This includes but is not limited to recipes, music, books, notes. Everything in one place, simple and powerful.
French: Avec Notion vous pouvez placer en un endroit toutes vos affaires préférées. Cela inclut, sans s’y limiter, les recettes, la musique, les livres, les notes. Tout en un seul endroit, simple et puissant.
English: When you find some useful article regarding Deep Learning, you may want to collect it for future review. The database is just all you need. You can find more information about how to use the database.
French: Lorsque vous trouvez un article utile sur l’apprentissage profond, vous pouvez l’y stocker pour le consulter ultérieurement. Vous pouvez trouver plus d’informations sur la façon d’utiliser la base de données.
English: First you need to create a database by “Workspace” -> “Add a new page”. Inside this page, choose “/table” -> “Table - Full Page”. In addition to filling out the information related to the paper, we usually want to cover “The Golden Circle” aka “What? Why? How?” in our summary.
French: Vous devez d’abord créer une base de données via Workspace => Add a new page. Dans cette page, choisissez /table => Table - Full Page. En plus de remplir les informations relatives au document, nous voulons généralement couvrir le traditionnel « Qui ? Quoi ? Où ? Pourquoi ? Comment ? Quand ? » dans le résumé.
English: The grayscale background means this is an observation, which means they are data points from a given dataset. You can check the input and labels by going to the directory of the dataset if you want.
French: Le fond en niveaux de gris signifie qu’il s’agit d’une observation donc qu’il s’agit de points de données d’un jeu de données fourni. Vous pouvez vérifier l’entrée et les étiquettes en allant dans le répertoire du jeu de données si vous le souhaitez.
English: In the half below, we want to get the prediction xˉ given observation y~. We keep doing gradient descent to make the network output as close as to y~. This is called amortizing inference.
French: Dans la moitié inférieure, nous voulons obtenir la prédiction xˉ étant donné l’observation y~. Nous continuons à faire une descente de gradient pour que la sortie du réseau soit aussi proche que possible de y~. C’est ce qu’on appelle « l’inférence amortissante ».
English: Usually, we use backpropagation to compute the gradient, then we apply gradient descent with those computed values to train the model. This example shows that backpropagation is NOT only used during training. Backpropagation can also be used for inference.
French: Habituellement, nous utilisons la rétropropagation pour calculer le gradient, puis nous appliquons la descente de gradient avec ces valeurs calculées pour entraîner le modèle. Cet exemple montre que la rétropropagation n’est PAS uniquement utilisée pendant l’entraînement. La rétropropagation peut également être utilisée pour l’inférence.
English: We started with an application of autoencoders: DALL-E. We discussed Autoencoders (in terms of Energy-Based Models) and their use cases. Next, we discussed the reconstruction costs and the loss functions we should use. Finally, we discussed a particular type of autoencoder, i.e., denoising autoencoder.
French: Nous commençons par une application des auto-encodeurs : DALL-E. Nous discutons ensuite des auto-encodeurs (en termes de modèles à base d’énergie) et de leurs cas d’utilisation. Puis nous discutons des coûts de reconstruction et des fonctions de perte à utiliser. Enfin, nous abordons un type particulier d’auto-encodeur à savoir l’auto-encodeur débruiteur.
English: DALL-E (released by OpenAI) is a neural network based on the Transformers architecture, that creates images from text captions. It is a 12-billion parameter version of GPT-3, trained on a dataset of text-image pairs.
French: DALL-E (publié par OpenAI) est un réseau neuronal basé sur l’architecture Transformer créant des images à partir de légendes de texte. Il s’agit d’une version à 12 milliards de paramètres de GPT-3 entraînée sur un jeu de données de paires texte-image.
English: Basically, h is the output of a squashing function f of the rotation of our input/observation y~. y~​ is the output of squashing function g of the rotation of our hidden representation h.
French: En gros, h est la sortie d’une fonction d’écrasement f de la rotation de notre entrée/observation y~. y~​ est la sortie de la fonction d’écrasement g de la rotation de notre représentation cachée h.
English: Note that, here y and y~​ both belong to the same input space, and h belong to Rd which is the internal representation. Wh​ and Wy​ are matrices for rotation.
French: Notez qu’ici, y et y~​ appartiennent tous deux au même espace d’entrée et h appartiennent à Rd qui est la représentation interne. Wh​ et Wy​ sont des matrices de rotation.
English: In some situations it can be useful to have a larger than input hh, however, in this scenario, a plain autoencoder would collapse. In other words, 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.
French: Dans certaines situations, il peut être utile d’avoir un h plus grand que l’entrée, cependant, dans ce scénario, un auto-encodeur simple s’effondrerait. En d’autres termes, puisque 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 à les transmettre comme sortie. Il se comporte ainsi essentiellement comme une fonction d’identité. Il faut éviter ça car cela signifierait que notre modèle n’apprend rien.
English: To prevent the model from collapsing, we have to employ techniques that constrain the amount of region which can take zero or low energy values. These techniques can be some sort of regularization such as sparsity constraints, adding additional noise, or sampling.
French: Pour éviter que le modèle ne s’effondre, nous devons utiliser des techniques qui limitent la quantité de régions pouvant prendre des valeurs d’énergie nulles ou faibles. Ces techniques peuvent être une sorte de régularisation telle que des contraintes d’éparsité, l’ajout de bruit supplémentaire ou l’échantillonnage.
English: We add some augmentation/corruption like Gaussian noise to an input sampled from the training manifold y^​ before feeding it into the model and expect the reconstructed input y~​ to be similar to the original input y~.
French: Nous ajoutons une augmentation/corruption comme un bruit gaussien à une entrée échantillonnée à partir de la variété d’apprentissage y^​ avant de la donner au modèle. Nous nous attendons à ce que l’entrée reconstruite y~​ soit similaire à l’entrée originale y~.
English: In the image above, the light colour points on the spiral represent the original data manifold. As we add noise, we go farther from the original points. These noise-added points are fed into the auto-encoder to generate this graph. The direction of each arrow points to the original datapoint the model pushes the noise-added point towards; whereas the size of the arrow shows by how much. We also see a dark purple spiral region which exists because the points in this region are equidistant from two points on the data manifold.
French: Dans l’image ci-dessus, les points de couleur claire sur la spirale représentent la variété de données originale. En ajoutant du bruit, on s’éloigne des points originaux. Ces points avec bruit sont introduits dans l’auto-encodeur pour générer ce graphique. La direction de chaque flèche pointe vers le point de données original vers lequel le modèle pousse le point avec bruit, tandis que la taille de la flèche indique de combien. Nous voyons également une région en violet foncé en forme de spirale car les points de cette région sont équidistants de deux points sur la variété de données.
English: In this section, we introduced some Generative Models including Denoising AE, Contractive AE and Variational AE. We compared the functionalities and advantages of Variational AEs over Basic Autoencoders. We explored the objective function of VAE in detail, understanding how it enforced some structure in the latent space.
French: Dans cette section, nous présentons quelques modèles génératifs, dont l’auto-encodeur débruiteur, l’auto-encodeur contractif et l’auto-encodeur variationnel. Nous avons comparé les fonctionnalités et les avantages des auto-encodeurs variationnels par rapport aux auto-encodeurs de base. Nous avons exploré en détail la fonction objective de l’auto-encodeur variationnel en comprenant comment il impose une certaine structure dans l’espace latent.
English: As we know latent variables are useful in providing additional information that help in predicting multiple values of the target y~, associated with the input x. We have seen earlier, in order to predict the target variable y from latent variable z~, the energy function is given as,
French: Les variables latentes sont utiles pour fournir des informations supplémentaires qui aident à prédire plusieurs valeurs de la cible y~, associées à l’entrée x. Nous avons vu précédemment que pour prédire la variable cible y à partir de la variable latente z~, la fonction d’énergie est donnée comme suit :
English: In this case, the latent variable z is one dimensional. However, if the z has a higher dimension, this could lead to an energy function of 0 everywhere. Hence, in order to ensure lower energy values for more compatible predictions we introduce a regularized factor.
French: Dans ce cas la variable latente z est unidimensionnelle. Cependant, si la z a une dimension plus élevée, cela pourrait conduire à une fonction d’énergie de 0 partout. Par conséquent, afin de garantir des valeurs d’énergie plus faibles pour des prédictions plus compatibles, nous introduisons un facteur régularisé.
English: An autoencoder is a type of artificial neural network used to learn efficient data encodings in an unsupervised manner. The aim is 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: Un auto-encodeur est un type de réseau neuronal artificiel utilisé pour apprendre des codages de données efficaces de manière non supervisée. L’objectif est d’abord d’apprendre des représentations codées de nos données, puis de générer les données d’entrée (aussi étroitement 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: First, the autoencoder takes in an input and maps it to a hidden state through an affine transformation h=f(Why+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 reçoit une entrée et l’applique à un état caché par le biais d’une transformation affine h=f(Wh​y+bh​), où f est une fonction d’activation (par éléments). Il s’agit de l’étape encodeur. A noter que h est également appelé le code.
English: When the dimensionality of the hidden layer is less than the dimensionality of the input then it is under complete hidden layer. When the dimensionality of the hidden layer is greater than the dimensionality of the input then it is over complete.
French: Lorsque la dimensionnalité de la couche cachée est inférieure à la dimensionnalité de l’entrée, la couche cachée est incomplète. Lorsque la dimensionnalité de la couche cachée est supérieure à la dimensionnalité de l’entrée, elle est surcomplète.
English: The dimensionality of the hidden layer is larger than the input so that they can be linearly separable. However, this can lead to a collapsed representation. Since by reconstructing the input, the model can copy all the features. In order to avoid this there are a few techniques such as denoising autoencoder, contractive autoencoder, variation autoencoder, etc.
French: La dimensionnalité de la couche cachée est plus grande que celle de l’entrée afin qu’elles puissent être linéairement séparables. Cependant, cela peut conduire à une représentation effondrée. En effet, en reconstruisant l’entrée, le modèle peut copier toutes les caractéristiques. Afin d’éviter cela, il existe quelques techniques telles que l’auto-encodeur débruiteur, l’auto-encodeur contractif, l’auto-encodeur variationnel, etc.
English: Denoising Autoencoder is a contrastive technique. Fig. 3 below shows the architecture and manifold of the denoising autoencoder and the intuition of how it works.
French: L’auto-encodeur débruiteur (DAE) est une technique contrastive. La figure 3 ci-dessous montre l’architecture et la variété du DAE ainsi que l’intuition de son fonctionnement.
English: In this model, we corrupt the input data y~, in blue, because it’s cold / low energy, and get the sample y^​, in red, because it’s hot / high energy. The energy associated to y~​ is squared euclidean distance from its original value. Then y~​ is encoded back to the hidden variable h and then passed back to the decoder producing y~​ which should be close to the target y~. Hence irrespective of what noise is added to the original data, the autoencoder needs to learn to separate the noise and retrieve the original value of y~.
French: Dans ce modèle, on corrompt la donnée d’entrée y en bleu (car elle est froide / a une énergie faible), et on obtient l’échantillon y^​ en rouge (car il est chaud / a une haute énergie). L’énergie associée à y~​ est la distance euclidienne au carré par rapport à sa valeur initiale. Ensuite, y~​ est ré-encodé dans la variable cachée h puis repassé au décodeur produisant y~​ qui doit être proche de la cible y~. Par conséquent, quel que soit le bruit ajouté aux données originales, l’auto-encodeur doit apprendre à séparer le bruit et à retrouver la valeur originale de y~.
English: A contractive autoencoder is an unsupervised deep learning technique that helps a neural network encode unlabelled training data. It makes this encoding less sensitive to small variations in its training dataset. This is accomplished by adding a regulariser, or penalty term, to whatever cost or objective function the algorithm is trying to minimize. The end result is to reduce the learned representation’s sensitivity towards the training input.
French: Un auto-encodeur contractif est une technique d’apprentissage profond non supervisé qui aide un réseau neuronal à encoder des données d’entraînement non étiquetées. Il rend cet encodage moins sensible aux petites variations de son ensemble de données d’apprentissage. Pour ce faire, un régulariseur ou terme de pénalité, est ajouté au coût ou à la fonction objective que l’algorithme tente de minimiser. Le résultat final est de réduire la sensibilité de la représentation apprise envers l’entrée d’entraînement.
English: As shown in Fig. 4, C(y,y~​) penalises sensitivities to reconstructions along the manifold while R(h) penalises how much the wiggling of h comes from the wiggling of y~. In this manner, you basically get to push up the energies only in the direction that are not used for the reconstruction.
French: Comme le montre la figure 4, C(y,y~​) pénalise les sensibilités aux reconstructions le long de la variété tandis que R(h) pénalise combien le remuement de h provient du remuement de y~. De cette manière, on peut augmenter les énergies uniquement dans les directions qui ne sont pas utilisées pour la reconstruction.
English: Next, we introduce Variational Autoencoders (or VAE), a type of generative model. 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: Nous présentons les auto-encodeurs variationnels, un type de modèle génératif. Mais pourquoi s’intéresser aux modèles génératifs ? Pour répondre à la question, les modèles discriminatifs 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. L’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. Fig. 5 below shows the architectures of VAE and basic AE.
French: Bien que le nom VAE comporte le terme auto-encodeur, en raison de la similitude structurelle ou architecturale avec les auto-encodeurs, les formulations entre VAE et AE sont très différentes. La figure 5 ci-dessous montre les architectures des VAEs et des AEs de base.
English: First, the encoder stage: we pass the input y to the encoder. Instead of generating a hidden representation h in AE, the hidden representation in VAE comprises two parts: μ and v. And similar to using regularisation factor R for h, we now use regularisation factors u and v for μ and v, respectively.
French: Premièrement l’étape de l’encodeur : on passe l’entrée y à l’encodeur. Au lieu de générer une représentation cachée h comme pour l’AE, la représentation cachée dans le VAE comprend deux parties : μ et v. De la même manière que nous utilisons le facteur de régularisation R pour h, nous utilisons les facteurs de régularisation u et v pour μ et v, respectivement.
English: Next, we use a sampler to sample z which is the latent random variable following a Gaussian distribution with μ and v. Note that people use Gaussian distributions as the encoded distribution in practice, but other distributions can be used as well.
French: Ensuite, nous utilisons un échantillonneur pour échantillonner z qui est la variable aléatoire latente suivant une distribution gaussienne μ et v. A noter qu’en pratique les gens utilisent les distributions gaussiennes comme distribution codée mais d’autres distributions peuvent également être utilisées.
English: In fact, for basic autoencoder, we can think of h as just the vector μ in the VAE formulation, with the variance set to zero. 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 un auto-encodeur de base, nous pouvons considérer que h est simplement le vecteur μ dans la formulation VAE avec la variance fixée à zéro. En bref, la principale différence entre les VAEs et les AEs est que les VAEs ont un bon espace latent qui permet un processus génératif.
English: For DAE as we mentioned before, the sampling was happening between y~, in blue, because it’s cold / low energy, and y^​, in red, because it’s hot / high energy. So we move the input and then we decode everything into y~​. For VAE we encode the input and we add noise in the hidden , so we just switch the position of the encoder in the sampler more or less.
French: Pour le DAE, comme nous l’avons mentionné précédemment, l’échantillonnage se produisait entre y~, en bleu car il est froid / a une énergie basse, et y^​ en rouge car il est chaud / a une haute énergie. On déplace donc l’entrée et on décode tout en y~​. Pour le VAE, on code l’entrée et on ajoute du bruit dans la cachée ainsi on change plus ou moins la position de l’encodeur dans l’échantillonneur.
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: Tout d’abord, nous codons 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) vers l’espace de sortie (gauche). Pour passer de l’espace latent à l’espace d’entrée (le processus génératif), nous devons soit apprendre la distribution (du code latent), soit imposer une certaine structure. Dans notre cas, le VAE impose 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 DKL​(N(μ,v)∥N(0,1)). Without this term, VAE will act like a basic 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, afin d’imposer une structure gaussienne spécifique à l’espace latent (côté droit de la figure). Pour ce faire, nous utilisons un terme de pénalité DKL​(N(μ,v)∥N(0,1)). Sans ce terme, le VAE agira comme un AE de base, ce qui peut conduire à un surentraînement et nous n’aurons pas les propriétés génératives que nous souhaitons.