lbourdois/en-fr-nyu-dl-course-corpus huggingface dataset:
English: So how do we backpropagate. Well, the point 0.7 is the sum of 0.1 and 0.6. So both point 0.1 and 0.6 will have gradient +1, which are indicated in the brackets. Then Viterbi Transformer just select one path among two. So just copy the gradient for the corresponding edge in the input graph and set the gradient for other paths that are not selected as zero. It’s exactly what’s happening in Max-Pooling or Mean-Pooling. The Path Selector is the same, it is just a system that selects the correct answer. Note that 3 [0.1] (0) in the graph should be 3 [0.1] (1) at this stage, and will come back to this later. Then you can backpropagate gradient through the neural net. That will make the energy of the correct answer small.
French: Alors comment rétropropager ? Le point 0,7 est la somme de 0,1 et 0,6. Donc, les points 0,1 et 0,6 auront tous deux un gradient de +1, indiqué entre parenthèses dans la figure 9. Ensuite, le transformer de Viterbi n’a qu’à sélectionner un chemin parmi deux. Il suffit donc de copier le gradient pour l’arête correspondante dans le graphe d’entrée et de définir le gradient des autres trajectoires comme étant nulles car non retenues. C’est exactement ce qui se passe dans le max-pooling ou le mean-pooling. Le sélecteur de trajectoire est le même, c’est juste un système qui sélectionne la bonne réponse. A noter qu’à ce stade, le 3 [0.1] (0) dans le graphe de la figure 9, deviendrait 3 [0.1] (1). Nous pouvons alors rétroprogager le gradient à travers le réseau rendant l’énergie de la bonne réponse faible.
English: What’s important here is that this structure is dynamic in the sense that if I give you a new input, the number of instances of neural net will change with the number of segmentations, and graphs derived will also change. We need to backpropagate through this dynamical structure. This is the situation where things like PyTorch are really important.
French: Ce qui est important ici, c’est que cette structure est dynamique. Car si on nous donne une nouvelle entrée, le nombre d’instances du réseau névralgique changera avec le nombre de segmentations et les graphes dérivés changeront également. Nous devons faire une rétropropagation à travers cette structure dynamique. C’est là que des frameworks comme PyTorch sont vraiment importantes.
English: This phase of backpropagation make the energy of correct answer small. And there’s going to be a second phase where we are going to make the energy of incorrect answer large. In this case, we just let the system pick whatever answer it wants. This is going to be a simplified form of discriminative training for structure prediction that use perceptual loss.
French: Cette phase de rétropropagation rend l’énergie de la bonne réponse faible. Et il y aura une deuxième phase où nous allons rendre l’énergie de la mauvaise réponse grande. Dans ce cas, nous laissons le système choisir la réponse qu’il veut. Il s’agira d’une forme simplifiée d’entraînement discriminatoire pour la prédiction des structures qui utilisent la perte de perception.
English: The first stages of phase two are exactly the same with the first phase. The Viterbi Transformer here just pick the best path with the lowest energy, we do not care whether this path is a correct path or not here. The energy you get here is going to be smaller or equal to the one you get from phase one, since the energy get here is the smallest among all possible paths.
French: Les premières étapes de la deuxième phase sont exactement les mêmes que celles de la première. Le transformer de Viterbi ici choisi simplement le meilleur chemin avec la plus faible énergie. Nous ne nous soucions pas de savoir si ce chemin est correct ou non. L’énergie obtenue ici sera plus petite ou égale à celle obtenue dans la première phase puisque l’énergie obtenue ici est la plus petite de toutes les voies possibles.
English: Putting phase one and two together. The loss function should be energy1 - energy2. Before, we introduced how to backpropagate through the left part, and now we actually need to backpropagate through the entire structure. Whatever path on the left side will get +1, and whatever path in right hand side will get -1. So 3 [0.1] appeared in both path, thus should get gradient 0. If we do this, the system will eventually minimize the difference between the energy of the correct answer and the energy of the best answer whatever it is. The Loss function here is the perceptron loss.
French: En mettant la phase une et deux ensemble, la fonction de perte devrait être eˊnergie1−eˊnergie2. Avant, nous avons introduit la rétropropagation par la partie gauche et maintenant nous devons en fait rétropropager à travers toute la structure. Quel que soit le chemin sur le côté gauche on obtiendra +1 et quel que soit le chemin sur le côté droit on obtiendra −1. Donc 3 [0,1] est apparu dans les deux chemins et nous obtenons un gradient nul. Si nous faisons cela, le système fini par minimiser la différence entre l’énergie de la bonne réponse et l’énergie de la meilleure réponse quelle qu’elle soit. La fonction de perte ici est la perte de perceptron.
English: Inference in the case of the energy-based model with latent variable involves the usage of exhaustive techniques such as gradient descent to minimize the energy however since the energy, in this case, is the sum of factors and techniques such as dynamic programming can be used instead.
French: L’inférence dans le cas d’un EBM avec variable latente implique l’utilisation de techniques exhaustives telles que la descente de gradient pour minimiser l’énergie. Cependant dans ce cas puisque l’énergie est la somme des facteurs, des techniques telles que la programmation dynamique peuvent être utilisées à la place.
English: We can’t since we can’t search for all possible combination for all factor values now. However, in this case, energies also gives us an advantage, because we can do independent optimizations. Like the combination of Z1​ and Z2​ only affects Eb​ in Figure 19. We can do independent optimization and dynamic programming to do the inference.
French: Nous ne le pouvons pas car nous ne pouvons pas rechercher toutes les combinaisons possibles pour toutes les valeurs des facteurs. Cependant, dans ce cas, les énergies nous donnent aussi un avantage car nous pouvons faire des optimisations indépendantes. Comme la combinaison de Z1​ et Z2​ n’affecte que Eb dans la figure 5. Nous pouvons faire des optimisations indépendantes et une programmation dynamique pour faire l’inférence.
English: Professor LeCun starts with perceptron loss, which is used in the example of Graph Transformer Model in the figure above. The goal is to make energy of wrong answers large, and correct ones small.
French: Yann commence par la perte de perceptron, qui est utilisée dans l’exemple du Graph Transformer Model dans la figure ci-dessus. L’objectif est de faire en sorte que l’énergie des mauvaises réponses soit grande et celle des bonnes petites.
English: In terms of implementation, you would represent the arcs in the visualization with a vector. Rather than a separate arc for each category, one vector contains both the categories and the score for each category.
French: En termes de mise en œuvre, nous représenterons les arcs dans la visualisation avec un vecteur. Plutôt qu’un arc séparé pour chaque catégorie, un vecteur contient à la fois les catégories et le score de chaque catégorie.
English: A: The segment is handcrafted heuristics. The model uses a handcrafted segment although there is a way to make it trainable end-to-end. This handcrafted approach was superseded by the sliding window approach for character recognition.
French: Le segmenteur est une heuristique artisanale. Le modèle utilise un segment artisanal bien qu’il y ait un moyen de le rendre entraînable de bout en bout. Cette approche artisanale a été remplacée par l’approche de la fenêtre coulissante pour la reconnaissance des caractères.
English: Hinge loss is taking the energy of the most offending answer, and the correct answer, and computing their difference. Intuitively, with a margin m, the hinge will only have loss of 0 when the correct energy is lower than the most offending energy by at least m.
French: La perte de perceptron consiste à calculer la différence d’énergie entre celle de la réponse la plus offensante et celle de la bonne réponse. Intuitivement, avec une marge m, l’hinge aura une perte de 0 que lorsque l’énergie correcte est inférieure à l’énergie la plus offensante d’au moins m.
English: Hinge is better than NLL because NLL will try to push the difference between the correct answer and other answers to infinity, whereas hinge only wants to make it larger than some value (the margin m).
French: La perte hinge est meilleure que la perte NLL parce que NLL essaie de pousser la différence entre la bonne réponse et les autres réponses à l’infini, alors que l’hinge veut seulement la rendre plus grande qu’une certaine valeur (la marge m).
English: A decoder inputs a sequence of vectors that indicate the scores or energy of individual sounds or images, and picks out the best possible output. What are some examples of problems that can use decoders? Language modelling, machine translation, and sequence tagging.
French: Un décodeur entre une séquence de vecteurs qui indiquent les scores ou l’énergie des différents sons ou images, et choisit la meilleure sortie possible. Il peut être utile pour tout ce qui est modélisation du langage, traduction automatique et marquage des séquences.
English: Graph composition allows us to combine two graphs. In this example we can see a language model lexicon being represented as a trietrie (a graph) and a recognition graph which is produced by a neural network.
French: La composition de graphes nous permet de combiner deux graphes. Dans cet exemple, nous pouvons voir un lexique de modèle de langage représenté par un trietrie (un graphe) et un graphe de reconnaissance qui est produit par un réseau de neurones.
English: The common hop from step 1 to step 2 between the recognition graph and the grammar is the character cc, associated with energy 0.4. Hence, our interpretation graph contains just 1 arc between step 1 and 2 corresponding to c. Similarly, possible characters between step 2 and 3 are x, u and a in the recognition graph. Branches following c in the grammar graph contain u and a. So, the graph composition operation picks out arcs u and a to be present in the interpretation graph. It also associates the arc it copies from the recognition graph with their energy values.
French: Le saut commun de l’étape 1 à l’étape 2 entre le graphe de reconnaissance et la grammaire est le caractère c, associé à l’énergie 0,4. Ainsi, notre graphe d’interprétation ne contient qu’un seul arc entre les étapes 1 et 2 correspondant à c. De même, les caractères possibles entre les étapes 2 et 3 sont x, u et a dans le graphe de reconnaissance. Les branches suivant c dans le graphe de grammaire contiennent u et a. Ainsi, l’opération de composition de graphes permet de repérer les arcs u et a qui doivent être présents dans le graphe d’interprétation. Elle associe également l’arc qu’elle copie du graphe de reconnaissance à leurs valeurs énergétiques.
English: In a similar fashion, graph composition also allows us to combine two knowledge bases that are represented by neural networks. In the example discussed above, the grammar can essentially be represented as a neural network predicting the next character. The softmax output of the N provides us with the transition probabilities to the next character from a given node.
French: De la même manière, la composition des graphes nous permet également de combiner deux bases de connaissances représentées par des réseaux de neurones. Dans l’exemple présenté ci-dessus, la grammaire peut être représentée essentiellement comme un réseau de neurones prédisant le prochain caractère. La sortie softmax du réseau neuronal nous fournit les probabilités de transition vers le caractère suivant à partir d’un nœud donné.
English: As a side note, if the language model shown in this example is a neural network, we can backpropagate through the entire structure. This becomes an example of a differentiable program where we backpropagate through a program containing loops, if-conditions, recursions etc.
French: Par ailleurs, si le modèle de langage présenté dans cet exemple est un réseau de neurones, nous pouvons faire une rétropropagation à travers toute la structure. Ceci devient un exemple de programme différenciable où nous faisons une rétropropagation à travers un programme contenant des boucles, des conditions if, des récursions, etc.
English: The entire architecture of a check reader from the mid-90s is quite complex, but what we are primarily interested in, is the part starting from the character recogniser, which produces the recognition graph.
French: L’ensemble de l’architecture d’un lecteur de chèques du milieu des années 1990 est assez complexe, mais ce qui nous intéresse avant tout, c’est la partie partant du reconnaisseur de caractères produisant le graphe de reconnaissance.
English: This recognition graph undergoes two separate composition operations, one with the correct interpretation (or the ground truth) and second with the grammar which creates a graph of all possible interpretations.
French: Ce graphe de reconnaissance subit deux opérations de composition distinctes, la première avec l’interprétation correcte (ou la vérité de base) et la seconde avec la grammaire qui crée un graphe de toutes les interprétations possibles.
English: The entire system is trained via the Negative Log-Likelihood loss function. The negative log-likelihood says that each path in the interpretation graph is a possible interpretation and sum of energies along that path is the energy of that interpretation.
French: L’ensemble du système est entraîné par la fonction de perte de log-vraisemblance négative. La log-vraisemblance négative indique que chaque chemin dans le graphe d’interprétation est une interprétation possible et que la somme des énergies le long de ce chemin est l’énergie de cette interprétation.
English: Viterbi algorithm is a dynamic programming algorithm that is used to find the most likely path (or the path with the minimum energy) in a given graph. It minimises the energy with respect to a latent variable z, where z represents the path we are taking in the graph.
French: L’algorithme de Viterbi est un algorithme de programmation dynamique qui est utilisé pour trouver le chemin le plus probable (ou le chemin avec le minimum d’énergie) dans un graphe donné. Il minimise l’énergie par rapport à une variable latente z, où z représente le chemin que nous empruntons dans le graphe.
English: The forward algorithm, on the other hand, computes the log of sum of exponentials of the negative value of energies of all paths. This mouthful can be easily seen as a formula below:
French: L’algorithme forward, quant à lui, calcule le logarithme de la somme des exponentielles de la valeur négative des énergies de tous les chemins. On peut facilement voir cela sous la forme d’une formule ci-dessous :
English: This is marginalising over the latent variable z, which defines the paths in an interpretation graph. This approach computes this log sum exponential value over all possible paths to a particular node. This is like combining the cost of all possible paths in a soft-minimum way.
French: Cela marginalise par rapport à la variable latente z qui définit les chemins dans un graphe d’interprétation. Cette approche calcule la valeur exponentielle de cette somme logarithmique sur tous les chemins possibles vers un nœud particulier. C’est comme si l’on combinait le coût de tous les chemins possibles d’une manière douce et minimale.
English: The forward algorithm is cheap to implement and does not cost more than Viterbi algorithm. Also, we can backpropagate through the forward algorithm node in the graph.
French: L’algorithme forward est peu coûteux à mettre en œuvre et ne coûte pas plus cher que l’algorithme de Viterbi. De plus, nous pouvons faire une rétropropagation à travers le nœud de l’algorithme foward dans le graphe.
English: The cost from the input node to the red shaded node is computed by marginalising over all possible paths reaching the red node. The arrows entering the red node define these possible paths in our example.
French: Le coût du nœud d’entrée au nœud rouge est calculé en marginalisant sur tous les chemins possibles atteignant le nœud rouge. Les flèches qui entrent dans le nœud rouge définissent ces chemins possibles dans notre exemple.
English: The forward algorithm is a special case of the belief-propagation algorithm, when the underlying graph is a chain graph. This entire algorithm can be viewed as a feed-forward neural network where the function at each node is a log sum of exponentials and an addition term.
French: L’algorithme forward est un cas particulier de l’algorithme de propagation des croyances lorsque le graphe sous-jacent est un graphe en chaîne. L’ensemble de l’algorithme peut être considéré comme un réseau neuronal feed-forward où la fonction à chaque nœud est le logarithmique de la somme des exponentielles et un terme d’addition.
English: αi​ forms the activation of a node i in this neural network and eki​ is the weight between nodes k and node i. This formulation is algebraically equivalent to the weighted sum operations of a regular neural network in the log domain.
French: αi​ forme l’activation d’un nœud i dans ce réseau de neurones et eki​ est le poids entre les nœuds k et le nœud i. Cette formulation est algébriquement équivalente aux opérations de somme pondérée d’un réseau neuronal dans le domaine logarithmique.
English: We can backpropagate through the dynamic interpretation graph (since it changes from example to example) on which we apply the forward algorithm. We can compute the gradients of F(x,y) computed at the last node of the graph w.r.t the ekieki​ weights defining the edges of the interpretation graph.
French: Nous pouvons effectuer une rétropropagation à travers le graphe d’interprétation dynamique (puisqu’il change d’un exemple à l’autre) sur lequel nous appliquons l’algorithme forward. Nous pouvons calculer les gradients de F(x,y) calculés au dernier nœud du graphe avec les poids ekieki​ définissant les bords du graphe d’interprétation.
English: Returning back to the check reader example, we apply the forward algorithm on the two graph compositions and obtain the energy value at the last node using the log sum exponential formula. The difference between these energy values is the negative log-likelihood loss.
French: Pour revenir à l’exemple du lecteur de chèque, nous appliquons l’algorithme forward sur les deux compositions de graphes et obtenons la valeur énergétique au dernier nœud en utilisant la formule du log de la somme d’exponentielles. La différence entre ces valeurs énergétiques est la perte de log-vraisemblance négative.
English: The value obtained from applying the forward algorithm on the graph composition between correct answer and recognition graph is the log sum exponential value of the correct answer. In contrast, log sum exponential value at the last node of the graph composition between recognition graph and grammar is the marginalised value over all possible valid interpretations.
French: La valeur obtenue en appliquant l’algorithme forward sur la composition des graphes entre la bonne réponse et le graphe de reconnaissance est la valeur du logarithme de la somme des exponentielles de la bonne réponse. En revanche, la valeur du logarithme de la somme des exponentielles au dernier nœud de la composition des graphes entre le graphe de reconnaissance et la grammaire est la valeur marginale de toutes les interprétations valides possibles.
English: For an input x and target output y, we can formulate a network as a collection of functions, fk​ and weights, wk​ such that successive steps in the network output zk​ with zk+1​=fk​(zk​,wk​). In a supervised setting, the goal of the network is to minimize C(zn,y), the cost of the nthnth output of the network, with respect to the ground truth. This is equivalent to the problem of minimizing C(zn​,y) with respect to the constraints zk+1​=fk​(zk​,wk​) and z0​=x.
French: Pour une entrée x et une sortie cible y, nous pouvons formuler un réseau comme un ensemble de fonctions fk et de poids wk​ de sorte que les étapes successives du réseau produisent zk avec zk+1​=fk​(zk​,wk​). Dans un environnement supervisé, l’objectif du réseau est de minimiser C(zn​,y), le coût de la sortie nthnth du réseau, par rapport à la vérité de terrain. Ceci est équivalent au problème de la minimisation de C(zn,y) par rapport aux contraintes zk+1​=fk​(zk​,wk​) et z0​=x.
English: This approach originated with Lagrange and Hamilton in the context of Classical Mechanics, where the minimization is over the energy of the system and the Λ  terms denote physical constraints of the system, such as two balls being forced to stay at a fixed distance from each other by virtue of being attached by a metal bar, for example.
French: Cette approche est née avec Lagrange et Hamilton dans le contexte de la mécanique classique, où la minimisation est supérieure à l’énergie du système et où les termes Λ  désignent les contraintes physiques du système. Par exemple deux boules qui sont forcées de rester à une distance fixe l’une de l’autre car sont attachées par une barre métallique.
English: In a situation where we need to minimize the cost c at every time step, k, the Lagrangian becomes L=∑k​(Ck​(zk​,yk​)+λk+1T​(zk+1​−fk​(zk​,wk​))).
French: Dans une situation où nous devons minimiser le coût c à chaque pas de temps, k, le Lagrangien devient : L=∑k​(Ck​(zk​,yk​)+λk+1T​(zk+1​−fk​(zk​,wk​))).
English: Using this formulation of backprop, we can now talk about a new class of models, Neural ODEs. These are basically recurrent networks where the state, z, at time t is given by zt+dt​=zt​+f(zt​,W)dt, where w represents some set of fixed parameters. This can also be expressed as an ordinary differential equation (no partial derivatives): dtdz​=f(zt​,W).
French: En utilisant cette formulation de la rétropropagation, nous pouvons maintenant parler d’une nouvelle classe de modèles : les ODEs neuronales. Il s’agit essentiellement de réseaux récurrents où l’état, z, au moment t est donné par : tzt+dt​=zt​+f(zt​,W)dt, où w  représente un ensemble de paramètres fixes. Cela peut également être exprimé sous la forme d’une équation différentielle ordinaire (sans dérivée partielle) : dzdt=f(zt,W).
English: Training such a network using the Lagrangian formulation is very straightforward. If we have a target, y, and want the state of the system to reach y by time T, we simply establish the cost function as the distance between zt and y. Another goal of the network could be to find a stable state of the system, i.e. one that ceases to change after a certain point. Mathematically, this is equivalent to setting dtdz​=f(y,W)=0. In general, finding a solution, y to this equation is much easier than back propagation through time, because the network need not remember the gradient with respect to the whole sequence, and only has to minimize f or ∣f∣2. For more information about training neural ODE’s to reach fixed points, see (Lecun88).
French: Entraîner un tel réseau en utilisant la formulation lagrangienne est très simple. Si nous voulons que l’état du système atteigne y dans le temps T, nous établissons simplement la fonction de coût comme étant la distance entre zt et y. Un autre objectif du réseau pourrait être de trouver un état stable du système, c’est-à-dire un état qui cesse de changer après un certain point. Mathématiquement, cela équivaut à fixer dzdt=f(y,W)=0. En général, trouver une solution y à cette équation est beaucoup plus facile que la propagation dans le temps car le réseau n’a pas besoin de se souvenir du gradient par rapport à l’ensemble de la séquence. Il doit seulement minimiser f ou ∣f∣2. Pour plus d’informations sur l’entraînement des ODEs neuronales pour atteindre des points fixes, voir Le Cun (1988).