lbourdois/en-fr-nyu-dl-course-corpus huggingface dataset:
English: As depicted in Figure 8, we have a sequence of states(s1:t​) and action (at​) which are provided to the predictor module. The predictor outputs a hidden representation of the future which is passed on to the decoder. The decoder is decoding the hidden representation of the future and outputs a prediction(s^t+1​). We then train our model by minimising MSE between prediction s^t+1​ and target st+1​.
French: Comme le montre la figure 8, nous avons une séquence d’états (s1:t​) et d’actions (at) qui sont fournies au module prédicteur. Le prédicteur produit une représentation cachée de l’avenir qui est transmise au décodeur. Le décodeur décode la représentation cachée du futur et émet une prédiction (s^t+1​). Nous entraînons ensuite notre modèle en minimisant la MSE entre la prédiction s^t+1​ et la cible st+1​.
English: We see that the deterministic output becomes very hazy. This is because our model is averaging over all the future possibilities. This can be compared to the future’s multimodality discussed a couple of classes earlier, where a pen placed at origin is dropped randomly. If we take the average across all locations, it gives us a belief that pen never moved which is incorrect.
French: Nous constatons que le résultat déterministe devient très flou. C’est parce que notre modèle fait la moyenne de toutes les possibilités futures. Cela peut être comparé à la multimodalité du futur dont nous avons déjà évoqué dans un cours précédent où un stylo placé à l’origine est laché au hasard. Si nous prenons la moyenne de tous les endroits, cela nous donne l’impression que le stylo n’a jamais bougé, ce qui est incorrect.
English: To solve the problem stated in the previous section, we add a low dimensional latent variable zt to the original network which goes through an expansion module fexpfexp​ to match the dimensionality.
French: Pour résoudre le problème énoncé dans la section précédente, nous ajoutons une variable latente de faible dimension zt au réseau d’origine qui passe par un module d’expansion fexpfexp​ pour correspondre à la dimensionnalité.
English: The zt is chosen such that the MSE is minimized for a specific prediction. By tuning the latent variable, you can still get MSE to zero by doing gradient descent into latent space. But this is very expensive. So, we can actually predict that latent variable using an encoder. Encoder takes the future state to give us a distribution with a mean and variance from which we can sample zt​.
French: Le zt est choisi de telle sorte que la MSE soit minimisée pour une prévision spécifique. En réglant la variable latente, vous pouvez toujours ramener la MSE à zéro en effectuant une descente de gradient dans l’espace latent. Mais c’est très coûteux. Nous pouvons donc réellement prédire cette variable latente en utilisant un encodeur. L’encodeur prend l’état futur pour nous donner une distribution avec une moyenne et une variance à partir de laquelle nous pouvons échantillonner zt​.
English: During training, we can find out what is happening by looking into the future and getting information from it and use that information to predict the latent variable. However, we don’t have access to the future during testing time. We fix this by enforcing the encoder to give us a posterior distribution as close as possible to the prior by optimizing KL divergence.
French: Pendant l’entraînement, nous pouvons découvrir ce qui se passe en regardant dans le futur et en en tirant des informations et utiliser ces informations pour prédire la variable latente. Cependant, nous n’avons pas accès à l’avenir pendant la durée des tests. Nous réglons ce problème en appliquant l’encodeur pour obtenir une distribution postérieure aussi proche que possible de la distribution antérieure en optimisant la divergence KL.
English: We sample the low-dimensional latent variable zt​ from the prior by enforcing the encoder to shoot it towards this distribution. After getting the prediction s^t+1​, we put it back (in an auto-regressive step) and get the next prediction s^t+2​ and keep feeding the network this way.
French: Nous échantillonnons la variable latente de faible dimension zt​ de la précédente en forçant l’encodeur à la tirer vers cette distribution. Après avoir obtenu la prédiction s^t+1​, nous la remettons (dans une étape autorégressive) et obtenons la prédiction suivante s^t+2​ et continuons à alimenter le réseau de cette façon.
English: These multiple futures come from the sequence of latent variables that you feed to the network. If you perform gradient ascent - in the latent space, you try to increase the proximity cost so you get the sequence of latent variables such that the other cars are going to be driving into you.
French: Ces futurs multiples proviennent de la séquence de variables latentes que l’on donne au réseau. Si nous effectuons une montée de gradient dans l’espace latent, nous essayons d’augmenter le coût de proximité afin d’obtenir la séquence de variables latentes de sorte que les autres voitures vont nous foncer dessus.
English: Given that you actually have access to the future, if you turn to the left even slightly, everything is going to be turning to the right and that will contribute in a huge way to the MSE. The MSE loss can be minimized if the latent variable can inform the bottom part of the network that everything is going to turn to the right - which is not what we want! We can tell when everything turns to the right since that is a deterministic task.
French: Étant donné que nous avons réellement accès à l’avenir, si nous tournons à gauche, même légèrement, tout va tourner à droite et cela va contribuer de façon énorme à la MSE. La perte MSE peut être minimisée si la variable latente peut informer la partie inférieure du réseau que tout va tourner à droite, ce qui n’est pas ce que nous voulons ! Nous pouvons dire quand tout tourne à droite puisque c’est une tâche déterministe.
English: In figure 16, in the rightmost diagram we have the real sequence of latent variables (the latent variables that allow us to get the most precise future) and we have the real sequence of actions taken by the expert. The two figures to the left of this one have randomly sampled latent variables but the real sequence of actions so we expect to see the steering. The last one on the left-hand side has the real sequence of latent variable but arbitrary actions and we can clearly see that the turning came mostly from the latent rather than the action, which encodes the rotation and the action (which are sampled from other episodes).
French: Dans la figure 16, dans le diagramme le plus à droite, nous avons la séquence réelle des variables latentes (les variables latentes qui nous permettent d’obtenir le futur le plus précis) et nous avons la séquence réelle des actions prises par l’expert. Les deux figures à gauche de celle-ci ont un échantillon aléatoire de variables latentes mais la séquence réelle d’actions, donc nous nous attendons à voir le pilotage. La dernière à gauche a la séquence réelle des variables latentes, mais des actions arbitraires, et nous pouvons clairement voir que la rotation provient principalement de la variable latente plutôt que de l’action, ce qui encode la rotation et l’action (qui sont échantillonnées à partir d’autres épisodes).
English: The problem is not a memory leak but an information leak. We fix this problem by simply dropping out this latent and sampling it from the prior distribution at random. We don’t always rely on the output of the encoder (fencfenc​) but pick from the prior. In this way, you cannot encode the rotation in the latent variable any more. In this way, information gets encoded in the action rather than the latent variable.
French: Le problème n’est pas une fuite de mémoire mais une fuite d’informations. Nous réglons ce problème en éliminant simplement cette latente et en la prélevant au hasard dans la distribution antérieure. Nous ne nous appuyons pas toujours sur la sortie de l’encodeur (fencfenc​) mais nous prélevons dans la distribution antérieure. De cette façon, nous ne pouvons plus encoder la rotation dans la variable latente. Ainsi l’information est encodée dans l’action plutôt que dans la variable latente.
English: In the last two images on the right-hand side, we see two different sets of latent variables having a real sequence of actions and these networks have been trained with the latent dropout trick. We can now see that the rotation is now encoded by the action and no longer by the latent variables.
French: Sur les deux dernières images de droite, on voit deux ensembles différents de variables latentes ayant une séquence réelle d’actions et ces réseaux ont été entraînés avec l’astuce du dropout latent. Nous pouvons maintenant voir que la rotation est maintenant codée par l’action et non plus par les variables latentes.
English: In the previous sections, we saw how we can obtain a world model by simulating real world experiences. In this section, we will use this world model to train our agent. Our goal is to learn the policy to take an action given the history of previous states. Given a state st (velocity, position & context images), the agent takes an action atat​ (acceleration, brake & steering), the world model outputs a next state and cost associated with that (st,at) pair which is a combination of proximity cost and lane cost.
French: Dans les sections précédentes, nous avons vu comment nous pouvons obtenir un modèle du monde en simulant des expériences réelles. Dans cette section, nous utilisons ce modèle du monde pour l’entraînement de notre agent. Notre objectif est d’apprendre la politique à suivre pour agir, compte tenu de l’histoire des états précédents. Étant donné un état st (vitesse, position et images de contexte), l’agent entreprend une action atat​ (accélération, freinage et direction), le modèle du monde produit un état suivant et le coût associé à cette paire (st​,at​) qui est une combinaison du coût de proximité et du coût de la voie.
English: As discussed in the previous section, to avoid hazy predictions, we need to sample latent variable zt from the encoder module of the future state st+1​ or from prior distribution P(z). The world model gets previous states s1:t​, action taken by our agent and latent variable zt to predict the next state s^t+1​ and the cost. This constitutes one module that is replicated multiple times (Figure 19) to give us final prediction and loss to optimize.
French: Comme nous l’avons vu dans la section précédente, pour éviter des prédictions floues, nous devons échantillonner la variable latente zt du module encodeur de l’état futur st+1​ ou de la distribution antérieure P(z). Le modèle du monde obtient les états précédents s1:t​, les mesures prises par notre agent et la variable latente zt pour prédire l’état suivant s^t+1​ et le coût. Cela constitue un module qui est reproduit plusieurs fois (figure 19) pour nous donner la prédiction finale et la perte à optimiser.
English: How do we imitate the experts here? We want the prediction of our model after taking a particular action from a state to be as close as possible to the actual future. This acts as an expert regulariser for our training. Our cost function now includes both the task specific cost(proximity cost and lane cost) and this expert regulariser term. Now as we are also calculating the loss with respect to the actual future, we have to remove the latent variable from the model because the latent variable gives us a specific prediction, but this setting works better if we just work with the average prediction.
French: Comment imiter les experts ici ? Nous voulons que la prédiction de notre modèle après une action particulière d’un état soit aussi proche que possible de l’avenir réel. Cela agit comme un régulariseur expert pour notre entraînement. Notre fonction de coût comprend maintenant à la fois le coût spécifique de la tâche (coût de proximité et coût de la voie) et ce terme de régulariseur expert. Maintenant que nous calculons également la perte par rapport à l’avenir réel, nous devons supprimer la variable latente du modèle parce qu’elle nous donne une prédiction spécifique, mais ce paramètre fonctionne mieux si nous travaillons uniquement avec la prédiction moyenne.
English: As we can see in the above figure, the model actually does incredibly well and learns to make very good predictions. This was model based imitation learning, we tried to model our agent to try to imitate others.
French: Comme nous pouvons le voir dans la figure ci-dessus, le modèle fonctionne en fait incroyablement bien et apprend à faire de très bonnes prédictions. C’était un apprentissage par imitation basé sur le modèle, nous avons essayé de modeler notre agent pour essayer d’imiter les autres.
English: What do we mean by minimizing forward model uncertainty and how would we do it? Before we answer that, let’s recap something we saw in the third week’s practicum.
French: Qu’entendons-nous par réduire au minimum l’incertitude des modèles de prédiction et comment le faire ? Avant de répondre à cette question, récapitulons ce que nous avons vu au cours de la troisième semaine.
English: If we train multiple models on the same data, all those models agree on the points in the training region (shown in red) resulting in zero variance in the training region. But as we move further away from the training region, the trajectories of loss functions of these models start diverging and variance increases. This is depicted in the figure 23. But as the variance is differentiable, we can run gradient descent over the variance in order to minimize it.
French: Si nous entraînons plusieurs modèles sur les mêmes données, tous ces modèles s’accordent sur les points de la région d’entraînement (indiquée en rouge), ce qui donne une variance nulle dans la région d’entraînement. Mais plus nous nous éloignons de la région d’entraînement, plus les trajectoires des fonctions de perte de ces modèles commencent à diverger et plus la variance augmente. Ceci est illustré par la figure 23. Mais comme la variance est différentiable, nous pouvons effectuer une descente de gradient sur la variance afin de la minimiser.
English: Coming back to our discussion, we observe that learning a policy using only observational data is challenging because the distribution of states it produces at execution time may differ from what was observed during the training phase. The world model may make arbitrary predictions outside the domain it was trained on, which may wrongly result in low cost. The policy network may then exploit these errors in the dynamics model and produce actions which lead to wrongly optimistic states.
French: Pour en revenir à notre discussion, nous constatons que l’apprentissage d’une politique uniquement à l’aide de données d’observation est difficile car la distribution des états qu’elle produit au moment de l’exécution peut différer de ce qui a été observé pendant la phase d’entraînement. Le modèle du monde peut faire des prédictions arbitraires en dehors du domaine sur lequel il a été entraîné, ce qui peut entraîner des coûts peu élevés. Le réseau politique peut alors exploiter ces erreurs dans le modèle dynamique et produire des actions qui conduisent à des états faussement optimistes.
English: To address this, we propose an additional cost which measures the uncertainty of the dynamics model about its own predictions. This can be calculated by passing the same input and action through several different dropout masks, and computing the variance across the different outputs. This encourages the policy network to only produce actions for which the forward model is confident.
French: Pour y remédier, nous proposons un coût supplémentaire qui mesure l’incertitude du modèle dynamique sur ses propres prédictions. Ce coût peut être calculé en faisant passer la même entrée et la même action par plusieurs masques de dropout différents, et en calculant la variance entre les différentes sorties. Cela encourage le réseau politique à ne produire que des actions pour lesquelles le modèle de prospective est confiant.
English: Figure 26 shows how well our agent learned to drive in dense traffic. Yellow car is the original driver, blue car is our learned agent and all green cars are blind to us (cannot be controlled).
French: La figure 26 montre à quel point notre agent a appris à conduire dans un trafic dense. La voiture jaune est le conducteur d’origine, la voiture bleue est notre agent entraîné et toutes autres, les voitures vertes, sont celles qui ne peuvent pas être contrôlées.
English: In this section we discuss the various architectures used in NLP applications, beginning with CNNs, RNNs, and eventually covering the state of-the art architecture, transformers. We then discuss the various modules that comprise transformers and how they make transformers advantageous for NLP tasks. Finally, we discuss tricks that allow transformers to be trained effectively.
French: Dans cette section, nous discutons des différentes architectures utilisées dans les applications de traitement du langage naturel, en commençant par les ConvNets, les RNNs et en couvrant finalement l’architecture de pointe, les transformers. Nous abordons ensuite les différents modules qui composent les transformers et leurs avantages pour les tâches de texte. Enfin, nous discutons des astuces qui permettent d’entraîner efficacement les transformers.
English: In this section we introduce beam search as a middle ground between greedy decoding and exhaustive search. We consider the case of wanting to sample from the generative distribution (i.e. when generating text) and introduce “top-k” sampling. Subsequently, we introduce sequence to sequence models (with a transformer variant) and backtranslation. We then introduce unsupervised learning approaches for learning embeddings and discuss word2vec, GPT, and BERT.
French: Dans cette section, nous présentons la recherche en faisceau comme un consensus entre le décodage gourmand et la recherche exhaustive. Nous considérons le cas de vouloir échantillonner à partir de la distribution générative (c’est-à-dire lors de la génération de texte) et introduisons l’échantillonnage top-k. Ensuite, nous introduisons les modèles de séquence à séquence (avec une variante pour les transformers) et la rétrotraduction. Nous voyons enfin des approches d’apprentissage non supervisées pour l’apprentissage des enchâssements et discutons de word2vec, GPT et BERT.
English: We introduce attention, focusing on self-attention and its hidden layer representations of the inputs. Then, we introduce the key-value store paradigm and discuss how to represent queries, keys, and values as rotations of an input. Finally, we use attention to interpret the transformer architecture, taking a forward pass through a basic transformer, and comparing the encoder-decoder paradigm to sequential architectures.
French: Nous introduisons l’attention, en nous concentrant sur l’auto-attention et ses représentations de couches cachées des entrées. Ensuite, nous abordons le paradigme des valeurs des clés et discutons de la manière de représenter les requêtes, les clés et les valeurs comme des rotations d’une entrée. Enfin, nous utilisons l’attention pour interpréter l’architecture du transformer, en prenant une propagation avant à travers un transformer de base. Enfin nous comparons le paradigme de l’encodeur-décodeur à celui des architectures séquentielles.
English: Basically we input the text into a neural network, the neural network will map all this context onto a vector. This vector represents the next word and we have some big word embedding matrix. The word embedding matrix contains a vector for every possible word the model can output. We then compute similarity by dot product of the context vector and each of the word vectors. We’ll get a likelihood of predicting the next word, then train this model by maximum likelihood. The key detail here is that we don’t deal with words directly, but we deal with things called sub-words or characters.
French: Grossièrement, nous entrons le texte dans un réseau de neurones qui va associer tout le contexte à un vecteur. Ce vecteur représente le mot suivant et nous disposons d’une matrice d’enchâssement de mots importants. Cette matrice contient un vecteur pour chaque mot possible que le modèle peut produire. Nous calculons la similarité par le produit scalaire du vecteur de contexte et de chacun des vecteurs de mots. Nous obtenons une probabilité de prédire le mot suivant, puis nous entraînons ce modèle par maximum de vraisemblance. Le détail clé ici est que nous ne traitons pas directement les mots mais des sous-mots ou des caractères.
English: Embed each word as a vector, which is a lookup table to the embedding matrix, so the word will get the same vector no matter what context it appears in. Apply same feed forward network at each time step
French: Il consiste à enchâsser chaque mot comme un vecteur, qui est une table de recherche de la matrice d’enchâssement, de sorte que le mot a le même vecteur quel que soit le contexte dans lequel il apparaît. On applique ensuite le même réseau feed forward à chaque pas de temps.
English: Conceptually straightforward: every time step we maintain some state (received from the previous time step), which represents what we’ve read so far. This is combined with current word being read and used at later state. Then we repeat this process for as many time steps as we need.
French: Conceptuellement simple : à chaque pas de temps, nous maintenons un certain état (reçu du pas de temps précédent, qui représente ce que nous avons lu jusqu’à présent). Ceci est combiné avec le mot courant qui est lu et utilisé à l’état ultérieur. Ensuite, nous répétons ce processus pour autant de pas de temps que nécessaire.
English: Sub-layers are connected by the boxes labelled “Add&Norm”. The “Add” part means it is a residual connection, which helps in stopping the gradient from vanishing. The norm here denotes layer normalization.
French: Les sous-couches sont reliées par les cases intitulées Add&Norm. La partie Add signifie qu’il s’agit d’une connexion résiduelle, qui contribue à empêcher la disparition du gradient. La partie Norm désigne ici la normalisation des couches.
English: For the words we are trying to predict, we compute values called query(q). For all the previous words use to predict we call them keys(k). Query is something that tells about the context, such as previous adjectives. Key is like a label containing information about the current word such as whether it’s an adjective or not. Once q is computed, we can derive the distribution of previous words (pipi​):
French: Pour les mots que nous essayons de prédire, nous calculons des valeurs appelées query(q). Nous appelons keys(k) tous les mots précédents utilisés pour prédire. La requête (q) nous renseigne sur le contexte, par exemple les adjectifs précédents. La clé (k) est comme un label contenant des informations sur le mot courant, par exemple si c’est un adjectif ou non. Une fois que q est calculée, nous pouvons dériver la distribution des mots précédents (pipi​) :