lbourdois/en-fr-nyu-dl-course-corpus huggingface dataset:
English: As mentioned above, RNN suffers from vanishing/exploding gradients and can’t remember states for very long. GRU, Cho, 2014, is an application of multiplicative modules that attempts to solve these problems. It’s an example of recurrent net with memory (another is LSTM). The structure of A GRU unit is shown below:
French: Comme mentionné ci-dessus, le RNN souffre de la disparition/explosion des gradients et ne se souvient pas des états pendant très longtemps. Les GRUS de Cho et al. (2014), sont une application de modules multiplicatifs qui tente de résoudre ces problèmes. C’est un exemple de réseau récurrent avec mémoire. La structure d’une unité GRU est présentée ci-dessous :
English: where ⊙ denotes element-wise multiplication(Hadamard product), xt​ is the input vector, ht​ is the output vector, zt​ is the update gate vector, rtr is the reset gate vector, ϕh​ is a hyperbolic tanh, and W,U,b are learnable parameters.
French: où ⊙ indique une multiplication élément par élément (produit Hadamard), xt est le vecteur d’entrée, ht​ est le vecteur de sortie, zt​ est le vecteur de mise à jour, rt​ est le vecteur de réinitialisation, ϕh​ est une tanh, et W,U,b sont des paramètres pouvant être appris.
English: To be specific, zt​ is a gating vector that determines how much of the past information should be passed along to the future. It applies a sigmoid function to the sum of two linear layers and a bias over the input xt​ and the previous state ht−1​. zt​ contains coefficients between 0 and 1 as a result of applying sigmoid. The final output state ht​ is a convex combination of ht−1​ and ϕh(Wh​xt​+Uh​(rt​⊙ht−1​)+bh​) via zt​. If the coefficient is 1, the current unit output is just a copy of the previous state and ignores the input (which is the default behaviour). If it is less than one, then it takes into account some new information from the input.
French: Pour être précis, zt​ est un vecteur de porte qui détermine quelle part des informations passées doit être transmise dans la suite. Il applique une fonction sigmoïde à la somme de deux couches linéaires et un biais sur l’entrée xt​ et l’état précédent ht−1​. zt​ contient des coefficients entre 0 et 1 résultant de l’application de la fonction sigmoïde. L’état final de sortie ht​ est une combinaison convexe de ht−1​ et de ϕh​(Wh​xt​+Uh​(rt​⊙ht−1​)+bh​) via zt​. Si le coefficient est égal à 1, la sortie de l’unité actuelle n’est qu’une copie de l’état précédent et ignore l’entrée (ce qui est le comportement par défaut). S’il est inférieur à 1, il prend en compte de nouvelles informations provenant de l’entrée.
English: The reset gate rt is used to decide how much of the past information to forget. In the new memory content ϕh​(Wh​xt​+Uh​(rt​⊙ht−1​)+bh​), if the coefficient in rt​ is 0, then it stores none of the information from the past. If at the same time zt​ is 0, then the system is completely reset since ht​ would only look at the input.
French: La porte de réinitialisation rt​ est utilisée pour décider quelle quantité d’informations passées doit être oubliée. Dans le nouveau contenu de la mémoire ϕh​(Wh​xt​+Uh​(rt​⊙ht−1​)+bh​), si le coefficient dans rt​ est 0, alors il ne stocke aucune des informations du passé. Si en plus zt​ vaut 0, alors le système est complètement réinitialisé puisque ht​ ne regarderait que l’entrée.
English: GRU is actually a simplified version of LSTM which came out much earlier, Hochreiter, Schmidhuber, 1997. By building up memory cells to preserve past information, LSTMs also aim to solve long term memory loss issues in RNNs. The structure of LSTMs is shown below:
French: Les GRUs sont en fait une version simplifiée des LSTMs qui ont été conçues beaucoup plus tôt par Hochreiter et Schmidhuber (1997). En constituant des cellules de mémoire pour préserver les informations passées, les LSTMs visent également à résoudre les problèmes de perte de mémoire à long terme des RNNs. La structure des LSTMs est présentée ci-dessous :
English: where ⊙ denotes element-wise multiplication, xt​∈Ra is an input vector to the LSTM unit, ft​∈Rh is the forget gate’s activation vector, it​∈Rh is the input/update gate’s activation vector, ot​∈Rh is the output gate’s activation vector, ht​∈Rh is the hidden state vector (also known as output), ct​∈Rh is the cell state vector.
French: où ⊙ indique une multiplication élément par élément, xt​∈Ra est un vecteur d’entrée de l’unité LSTM, ft​∈Rh est le vecteur d’activation de la porte d’oubli, it​∈Rh est le vecteur d’activation de la porte d’entrée/mise à jour, ot​∈Rh est le vecteur d’activation de la porte de sortie, ht​∈Rh est le vecteur d’état caché (également appelé sortie), ct​∈Rh est le vecteur d’état de la cellule.
English: An LSTM unit uses a cell state ct​ to convey the information through the unit. It regulates how information is preserved or removed from the cell state through structures called gates. The forget gate ft​ decides how much information we want to keep from the previous cell state ct−1​ by looking at the current input and previous hidden state, and produces a number between 0 and 1 as the coefficient of ct−1. tanh(Wc​xt​+Uc​ht−1​+bc​) computes a new candidate to update the cell state, and like the forget gate, the input gate itit​ decides how much of the update to be applied. Finally, the output ht​ will be based on the cell state ct​, but will be put through a tanh then filtered by the output gate ot.
French: Une unité LSTM utilise un état de cellule ctct​ pour transmettre l’information. Elle régule la manière dont l’information est préservée ou retirée de l’état de la cellule par des structures appelées gates (portes). La porte d’oubli ftft​ décide de la quantité d’informations que nous voulons conserver de l’état de cellule précédent ct−1ct−1​ en regardant l’entrée actuelle et l’état caché précédent. Elle produit un nombre entre 0 et 1 comme coefficient de ct−1ct−1​. tanh⁡(Wcxt+Ucht−1+bc)tanh(Wc​xt​+Uc​ht−1​+bc​) calcule un nouveau candidat pour mettre à jour l’état de la cellule. Comme la porte d’oubli, la porte d’entrée itit​ décide de la part de mise à jour à appliquer. Enfin, la sortie htht​ est basée sur l’état de la cellule ctct​, mais passe par une tanh⁡tanh puis est filtrée par la porte de sortie otot​.
English: Though LSTMs are widely used in NLP, their popularity is decreasing. For example, speech recognition is moving towards using temporal CNN, and NLP is moving towards using transformers.
French: Bien que les LSTMs soient largement utilisés en traitement du langage naturel, leur popularité est en baisse. Par exemple, la reconnaissance vocale se dirige vers l’utilisation de ConvNets temporels et les autres utilisations se dirigent vers l’utilisation de transformers.
English: The approach proposed by Sutskever NIPS 2014 is the first neural machine translation system to have comparable performance to classic approaches. It uses an encoder-decoder architecture where both the encoder and decoder are multi-layered LSTMs.
French: L’approche proposée par Sutskever (2014) est le premier système de traduction automatique neuronale à avoir des performances comparables aux approches classiques. Elle utilise une architecture d’encodeur-décodeur où l’encodeur et le décodeur sont tous deux des LSTMs multicouches.
English: Each cell in the figure is an LSTM. For the encoder (the part on the left), the number of time steps equals the length of the sentence to be translated. At each step, there is a stack of LSTMs (four layers in the paper) where the hidden state of the previous LSTM is fed into the next one. The last layer of the last time step outputs a vector that represents the meaning of the entire sentence, which is then fed into another multi-layer LSTM (the decoder), that produces words in the target language. In the decoder, the text is generated in a sequential fashion. Each step produces one word, which is fed as an input to the next time step.
French: Chaque cellule de la figure est une LSTM. Pour l’encodeur (la partie de gauche), le nombre de pas de temps est égal à la longueur de la phrase à traduire. À chaque pas, il y a une pile de LSTMs (quatre couches dans la publication) où l’état caché de la LSTM précédente est introduit dans le suivante. La dernière couche du dernier pas de temps produit un vecteur qui représente le sens de la phrase entière et est ensuite introduit dans une autre LSTM multicouche (le décodeur) produisant des mots dans la langue cible. Dans le décodeur, le texte est généré de manière séquentielle. Chaque étape produit un mot, qui est introduit dans l’étape de temps suivante.
English: This architecture is not satisfying in two ways: First, the entire meaning of the sentence has to be squeezed into the hidden state between the encoder and decoder. Second, LSTMs actually do not preserve information for more than about 20 words. The fix for these issues is called a Bi-LSTM, which runs two LSTMs in opposite directions. In a Bi-LSTM the meaning is encoded in two vectors, one generated by running LSTM from left to right, and another from right to left. This allows doubling the length of the sentence without losing too much information.
French: Cette architecture n’est pas satisfaisante à deux égards. Premièrement, le sens entier de la phrase doit être comprimé dans l’état caché entre l’encodeur et le décodeur. Deuxièmement, les LSTMs ne préservent en fait pas l’information sur plus de 20 mots environ. La solution à ces problèmes est appelée un Bi-LSTM, qui fait fonctionner deux LSTMs dans des directions opposées. Dans un Bi-LSTM, la signification est encodée dans deux vecteurs, l’un généré par l’exécution de la LSTM de gauche à droite, et l’autre de droite à gauche. Cela permet de doubler la longueur de la phrase sans perdre trop d’informations.
English: The success of the approach above was short-lived. Another paper by Bahdanau, Cho, Bengio suggested that instead of having a gigantic network that squeezes the meaning of the entire sentence into one vector, it would make more sense if at every time step we only focus the attention on the relevant locations in the original language with equivalent meaning, i.e. the attention mechanism.
French: Le succès de l’approche ci-dessus a été de courte durée. Un autre document de Bahdanau, Cho, Bengio a suggéré qu’au lieu d’avoir un gigantesque réseau qui réduit le sens de la phrase entière en un seul vecteur, il serait plus logique qu’à chaque étape, nous concentrions l’attention uniquement sur les endroits pertinents dans la langue originale ayant un sens équivalent. C’est ce qu’on appelle le mécanisme d’attention.
English: In Attention, to produce the current word at each time step, we first need to decide which hidden representations of words in the input sentence to focus on. Essentially, a network will learn to score how well each encoded input matches the current output of the decoder. These scores are normalized by a softmax, then the coefficients are used to compute a weighted sum of the hidden states in the encoder at different time steps. By adjusting the weights, the system can adjust the area of inputs to focus on. The magic of this mechanism is that the network used to compute the coefficients can be trained through backpropagation. There is no need to build them by hand!
French: Avec l’attention, pour produire le mot courant à chaque pas de temps, nous devons d’abord décider sur quelles représentations cachées des mots de la phrase d’entrée nous devons nous concentrer. Essentiellement, un réseau apprendra à évaluer dans quelle mesure chaque entrée codée correspond à la sortie actuelle du décodeur. Ces scores sont normalisés par une fonction softmax, puis les coefficients sont utilisés pour calculer une somme pondérée des états cachés dans l’encodeur à différents pas de temps. En ajustant les pondérations, le système peut ajuster la zone des entrées sur laquelle se concentrer. La magie de ce mécanisme est que le réseau utilisé pour calculer les coefficients peut être entraîné par rétropropagation. Il n’est pas nécessaire de les construire à la main !
English: Attention mechanisms completely transformed neural machine translation. Later, Google published a paper Attention Is All You Need, and they put forward transformer, where each layer and group of neurons is implementing attention.
French: Les mécanismes d’attention ont complètement transformé la traduction automatique des neurones. Plus tard en 2017, une équipe de Google a proposé le transformer, où chaque couche et groupe de neurones met en œuvre l’attention.
English: The idea of a memory network is that there are two important parts in your brain: one is the cortex, which is where you have long term memory. There is a separate chunk of neurons called the hippocampus which sends wires to nearly everywhere in the cortex. The hippocampus is thought to be used for short term memory, remembering things for a relatively short period of time. The prevalent theory is that when you sleep, there is a lot of information transferred from the hippocampus to the cortex to be solidified in long term memory since the hippocampus has limited capacity.
French: L’idée d’un réseau mémoire est qu’il y a deux parties importantes dans le cerveau. La première est le cortex, qui est l’endroit où est la mémoire à long terme. L’autre est l’hippocampe qui envoie des « fils » presque partout dans le cortex. On pense que l’hippocampe est utilisé pour la mémoire à court terme, se souvenant de choses pendant une période relativement courte. La théorie dominante est que lorsque l’on dort, il y a beaucoup d’informations transférées de l’hippocampe au cortex pour être consolidées dans la mémoire à long terme puisque l’hippocampe a une capacité limitée.
English: For a memory network, there is an input to the network, x (think of it as an address of the memory), and compare this x with vectors k1​,k2​,k3​,⋯ (“keys”) through a dot product. Put them through a softmax, what you get are an array of numbers which sum to one. And there are a set of other vectors v1​,v2​,v3​,⋯ (“values”). Multiply these vectors by the scalers from softmax and sum these vectors up (note the resemblance to the attention mechanism) gives you the result.
French: Pour un réseau mémoire, il y a une entrée au réseau, x, qui est comparé à des vecteurs k1,k2,k3,⋯ (« clés ») via un produit scalaire. En les faisant passer par une fonction softmax, on obtient un tableau de nombres dont la somme est égale à un. Il y a un ensemble d’autres vecteurs v1​,v2​,v3​,⋯ (« valeurs »). On multiplie ces vecteurs par les scalaires provenant de la softmax et l’addition de ces vecteurs donne le résultat (mécanisme ressemblant fortement à l’attention).
English: This is addressable associative memory. Associative memory is that if your input matches a key, you get that value. And this is just a soft differentiable version of it, which allows you to backpropagate and change the vectors through gradient descent.
French: Il s’agit de la mémoire associative adressable. La mémoire associative est que si l’entrée correspond à une clé, nous obtenons cette valeur. Et ce n’est qu’une version différentiable douce, ce qui permet de faire une rétropropagation et de changer les vecteurs par descente de gradient.
English: What the authors did was tell a story to a system by giving it a sequence of sentences. The sentences are encoded into vectors by running them through a neural net that has not been pretrained. The sentences are returned to the memory of this type. When you ask a question to the system, you encode the question and put it as the input of a neural net, the neural net produces an x to the memory, and the memory returns a value.
French: Les auteurs ont donné une histoire au système en lui donnant une séquence de phrases. Les phrases sont encodées en vecteurs en les faisant passer à travers un réseau neuronal qui n’a pas été pré-entraîné. Les phrases sont renvoyées à la mémoire. Lorsqu’on pose une question au système, elle est encodée puis est passée dans le réseau mémoire qui produit un x et la mémoire renvoie une valeur.
English: This value, together with the previous state of the network, is used to re-access the memory. After extensive training, this model actually learns to store stories and answer questions.
French: Cette valeur (ainsi que l’état précédent du réseau) est utilisée pour accéder à nouveau à la mémoire. Après un apprentissage intensif, ce modèle apprend en fait à stocker des histoires et à répondre à des questions.
English: In memory network, there is a neural net that takes an input and then produces an address for the memory, gets the value back to the network, keeps going, and eventually produces an output. This is very much like computer since there is a CPU and an external memory to read and write.
French: Dans un réseau mémoire, il y a un réseau neuronal qui prend une entrée et produit ensuite une adresse pour la mémoire, renvoie la valeur au réseau, continue et produit finalement une sortie. Cela ressemble beaucoup à un ordinateur puisqu’il y a une unité centrale et une mémoire externe pour lire et écrire.
English: There are people who imagine that you can actually build differentiable computers out of this. One example is the Neural Turing Machine from DeepMind, which was made public three days after Facebook’s paper was published on arXiv.
French: Des gens pensent qu’on peut en fait construire des ordinateurs différentiables à partir de cela. Un exemple est la Neural Turing Machine de DeepMind, qui a été rendue publique sur arXiv trois jours après la publication de l’article de Facebook.
English: The idea is to compare inputs to keys, generate coefficients, and produce values - which is basically what a transformer is. A transformer is basically a neural net in which every group of neurons is one of these networks.
French: L’idée est de comparer des entrées à des clés, de générer des coefficients et de produire des valeurs. C’est ce que fait basiquement un transformer. Un transformer est essentiellement un réseau de neurones dans lequel chaque groupe de neurones est l’un de ces réseaux.
English: RNN is one type of architecture that we can use to deal with sequences of data. What is a sequence? From the CNN lesson, we learned that a signal can be either 1D, 2D or 3D depending on the domain. The domain is defined by what you are mapping from and what you are mapping to. Handling sequential data is basically dealing with 1D data since the domain is the temporal axis. Nevertheless, you can also use RNN to deal with 2D data, where you have two directions.
French: Le RNN est un type d’architecture que nous pouvons utiliser pour traiter des séquences de données. Qu’est-ce qu’une séquence ? Le cours sur le RNN nous a appris qu’un signal peut être soit 1D, 2D ou 3D selon le domaine. Le domaine est défini par le point de départ et le point d’arrivée. Le traitement des données séquentielles concerne essentiellement les données 1D puisque le domaine est l’axe temporel. Néanmoins, il est possible d’utiliser le RNN pour traiter des données 2D où il y a deux directions.
English: Figure 1 is a vanilla neural network diagram with three layers. “Vanilla” is an American term meaning plain. The pink bubble is the input vector x, in the center is the hidden layer in green, and the final blue layer is the output. Using an example from digital electronics on the right, this is like a combinational logic, where the current output only depends on the current input.
French: La figure 1 est un diagramme de réseau de neurones vanilla avec trois couches. « Vanilla » est un terme américain signifiant « standard / de base ». La bulle rose est le vecteur d’entrée x, au centre se trouve la couche cachée en vert et la dernière couche bleue est la sortie. En utilisant un exemple d’électronique numérique sur la droite de la figure, c’est comme une logique combinatoire où le courant de sortie ne dépend que du courant d’entrée.
English: In contrast to a vanilla neural network, in recurrent neural networks the current output depends not only on the current input but also on the state of the system, shown in Figure 2. This is like a sequential logic in digital electronics, where the output also depends on a “flip-flop” (a basic memory unit in digital electronics). Therefore the main difference here is that the output of a vanilla neural network only depends on the current input, while the one of RNN depends also on the state of the system.
French: Contrairement à un réseau de neurones standard, dans les RNNs la sortie du courant dépend non seulement de l’entrée mais aussi de l’état du système, comme le montre la figure 2. C’est comme une logique séquentielle en électronique numérique, où la sortie dépend également d’un interrupteur (une unité de mémoire de base dans l’électronique numérique). La principale différence ici est donc que la sortie d’un réseau neuronal standard ne dépend que de l’entrée, tandis que celle d’un RNN dépend également de l’état du système.
English: Yann’s diagram adds these shapes between neurons to represent the mapping between one tensor and another(one vector to another). For example, in Figure 3, the input vector x will map through this additional item to the hidden representations h. This item is actually an affine transformation i.e. rotation plus distortion. Then through another transformation, we get from the hidden layer to the final output. Similarly, in the RNN diagram, you can have the same additional items between neurons.
French: Le diagramme utilisé par Yann ajoute des formes entre les neurones pour représenter l’association entre un tenseur et un autre (un vecteur à un autre). Par exemple, dans la figure 3, le vecteur d’entrée x va correspondre à travers cet élément supplémentaire aux représentations cachées hh. Cet élément est en fait une transformation affine, c’est-à-dire une rotation plus une distorsion. Ensuite, par une autre transformation, nous passons de la couche cachée à la sortie finale. De même, dans le diagramme RNN, il est possible d’avoir les mêmes éléments supplémentaires entre les neurones.
English: The first case is vector to sequence. The input is one bubble and then there will be evolutions of the internal state of the system annotated as these green bubbles. As the state of the system evolves, at every time step there will be one specific output.
French: Le premier cas est celui du « vector to sequence » (un vecteur en entrée du réseau et on obtient une sequence en sortie). L’entrée est la bulle rose. La succession des états internes du système est représentée par les bulles vertes. À mesure que l’état du système évolue, il y a une sortie spécifique à chaque étape, représentée par une bulle bleue.