lbourdois/en-fr-nyu-dl-course-corpus huggingface dataset:
English: Moving on, we define our train and evaluate functions. In our train function, we have our generic code which takes samples from dataloader. Next, batch_graphs, batch_x, batch_e, batch_snorm_n and batch_snorm_e are fed into our model which returns batch_scores (of size 8). The predicted scores are compared with the ground truth in our loss function: loss(batch_scores, batch_labels). Then, we zero out gradients (optimizer.zero_grad()), perform backprop (J.backward()) and updates our weights (optimizer.step()). Finally, loss for epoch and training accuracy is calculated. Furthermore, we use a similar code for our evaluate function.
French: Ensuite, nous définissons nos fonctions train et evaluate. Dans notre fonction train, nous avons notre code générique qui prend des échantillons dans le dataloader. Ensuite, les batch_graphs, batch_x, batch_e, batch_snorm_n et batch_snorm_e sont introduits dans notre modèle qui retourne des batch_scores (de taille 8). Les scores prédits sont comparés à la vérité de base dans notre fonction de perte : loss(batch_scores, batch_labels). Ensuite, nous mettons à zéro les gradients (optimizer.zero_grad()), nous effectuons une rétropropagation (J.backward()) et nous mettons à jour nos poids (optimizer.step()). Enfin, la perte pour l’époque et la précision de l’entraînement est calculée. Nous utilisons un code similaire pour notre fonction evaluate.
English: Finally, we are ready to train! We found that after 40 epochs of training, our model has learned to classify the graphs with a test accuracy of 87%.
French: Enfin, nous sommes prêts à pour l’entraînement ! Nous pouvons constater qu’après 4040 époques d’entraînement, notre modèle a appris à classer les graphes avec une précision de test de 87%.
English: In this section, we discussed the structured prediction. We first introduced the Energy-Based factor graph and efficient inference for it. Then we gave some examples for simple Energy-Based factor graphs with “shallow” factors. Finally, we discussed the Graph Transformer Net.
French: Dans cette section, nous discutons de prédiction utilisant la structure. Nous présentons d’abord le graphe factoriel à base d’énergie et l’inférence efficace pour celui-ci. Ensuite, nous donnons quelques exemples simples avec des facteurs peu profonds. Enfin, nous discutons du Graph Transformer Network (GTN).
English: The second leg of the lecture further discusses the application of graphical model methods to energy-based models. After spending some time comparing different loss functions, we discuss the application of the Viterbi algorithm and forward algorithm to graphical transformer networks. We then transition to discussing the Lagrangian formulation of backpropagation and then variational inference for energy-based models.
French: La deuxième partie du cours traite plus en détail de l’application des méthodes de modélisation graphique aux modèles à base d’énergie (EBMs). Après avoir passé un certain temps à comparer différentes fonctions de perte, nous discutons de l’application de l’algorithme de Viterbi et de l’algorithme forward aux GTNs. Nous abordons à la formulation lagrangienne de la rétropropagation et à l’inférence variationnelle pour les EBMs.
English: When training highly parametrised models such as deep neural networks there is a risk of overfitting to the training data. This leads to greater generalization error. To help reduce overfitting we can introduce regularization into our training, discouraging certain solutions to decrease the extent to which our models will fit to noise.
French: Lors de l’entraînement de modèles hautement paramétrés tels que les réseaux neuronaux profonds, il existe un risque de surentraînement. Cela conduit à une plus grande erreur de généralisation. Pour aider à réduire cela, nous pouvons introduire une régularisation dans notre entraînement, en décourageant certaines solutions pour diminuer la mesure dans laquelle nos modèles s’adapteront au bruit.
English: It is the problem of predicting variable y for a given input x which is mutually dependent and constrained rather than scalar discrete or real values. The output variable does not belong to a single category but can have exponential or infinite possible values. For example, in case of speech/handwriting recognition or natural language translation, the output needs to be grammatically correct and it is not possible to limit the number of output possibilities. The task of the model is to capture the sequential, spatial, or combinatorial structure in the problem domain.
French: Nous sommes dans le cas de la prédiction de la variable y pour une entrée x donnée qui est mutuellement dépendante et contrainte plutôt que des valeurs scalaires discrètes ou réelles. Alors la variable de sortie n’appartient pas à une seule catégorie mais peut avoir des valeurs possibles exponentielles ou infinies. Par exemple, dans le cas de la reconnaissance de la parole/écriture ou de traduction en langage naturel, la sortie doit être grammaticalement correcte et il n’est pas possible de limiter le nombre de possibilités de sortie. La tâche du modèle est de capturer la structure séquentielle, spatiale ou combinatoire dans le domaine du problème.
English: This vector is fed to a TDNN which gives a feature vector which in case of model systems can be compared to softmax that represents a category. One problem that arises in the case of recognizing the word that was pronounced is different people can pronounce the same word in different ways and speed. To solve this Dynamic Time Warping is used.
French: Ce vecteur est transmis à un réseau de neurones à retard temporel (TDNN pour Time Delay Neural Network) qui donne un vecteur de caractéristiques qui, dans le cas de systèmes de modèles, peut être comparé au softmax représentant une catégorie. Un problème qui se pose dans le cas de la reconnaissance de la parole est que différentes personnes peuvent prononcer le même mot de différentes manières et à des vitesses différentes. Pour résoudre ce problème, on utilise la déformation temporelle dynamique (DTW pour Dynamic Time Warping).
English: The idea is to provide the system with a set of pre-recorded templates that correspond to sequence or feature vectors that were recorded by someone. The neural network is trained at the same time as the template so that the system learns to recognize the word for different pronunciations. The latent variable allows us to time-warp the feature vector so as to match the length of the templates.
French: L’idée est de fournir au système un ensemble de patrons pré-enregistrés qui correspondent à des vecteurs de séquences ou de caractéristiques qui ont été enregistrés par quelqu’un. Le réseau neuronal est entraîné en même temps que le patron afin que le système apprenne à reconnaître le mot pour différentes prononciations. La variable latente nous permet de modifier le vecteur de caractéristique de manière à ce qu’il corresponde à la longueur des modèles.
English: This can be visualized as a matrix by arranging the feature vectors from TDNN horizontally and the word templates vertically. Each entry in the matrix corresponds to the distance between the feature vector. This can be visualized as a graph problem where the aim is to start from the bottom left-hand corner and reach the top right corner by traversing the path that minimizes the distance.
French: Cela peut être visualisé sous forme de matrice en organisant les vecteurs de caractéristiques du TDNN horizontalement et les modèles de mots verticalement. Chaque entrée dans la matrice correspond à la distance entre les vecteurs de caractéristiques. Cela peut être visualisé comme un problème de graphe où le but est de partir du coin inférieur gauche et d’atteindre le coin supérieur droit en parcourant le chemin qui minimise la distance.
English: To train this latent variable model we need to make the energy for the correct answers as small as possible and larger for every incorrect answer. To do this we use an objective function that takes in templates for wrong words and pushes them away from the current sequence of features and backpropagates the gradients.
French: Pour entraîner ce modèle à variable latente, nous devons rendre l’énergie pour les bonnes réponses aussi petite que possible et plus grande pour chaque mauvaise réponse. Pour ce faire, nous utilisons une fonction objectif qui prend des patrons pour les mots incorrects, les repousse loin de la séquence actuelle des caractéristiques et rétropropage les gradients.
English: The idea behind energy-based factor graphs is to build an energy-based model in which the energy is sum of partial energy terms or when the probability is a product of factors. The benefit of these models is that efficient inference algorithms can be employed.
French: L’idée derrière les graphes factoriels à base d’énergie est de construire un EBM dans lequel l’énergie est la somme de termes énergétiques partiels ou lorsque la probabilité est un produit de facteurs. L’avantage de ces modèles est que des algorithmes d’inférence efficaces peuvent être utilisés.
English: In this case, the energy is a sum of three terms represented by blue squares which are neural networks that produce feature vectors for the input variables. In the case of speech recognition X can be thought of as a speech signal and the squares implement the grammatical constraints and Y represent the generated output labels.
French: Dans ce cas, l’énergie est une somme de trois termes représentés par des carrés bleus qui sont des réseaux de neurones qui produisent des vecteurs de caractéristiques pour les variables d’entrée. Dans le cas de la reconnaissance vocale, x peut être considéré comme un signal vocal, les carrés implémentent les contraintes grammaticales et y représente les labels de sortie générées.
English: Learning and inference with Energy-Based Models involves a minimization of the energy over the set of answers y and latent variables Z. When the cardinality of Y×Z is large, this minimization can become intractable. One approach to the problem is to exploit the structure of the energy function in order to perform the minimization efficiently. One case where the structure can be exploited occurs when the energy can be expressed as a sum of individual functions (called factors) that each depend on different subsets of the variables in Y and Z. These dependencies are best expressed in the form of a factor graph. Factor graphs are a general form of graphical models, or belief networks.
French: L’apprentissage et l’inférence avec les modèles à base d’énergie impliquent une minimisation de l’énergie sur l’ensemble des réponses y et des variables latentes Z. Lorsque la cardinalité de Y×Z est importante, cette minimisation peut devenir insoluble. Une approche du problème consiste à exploiter la structure de la fonction énergie afin d’effectuer la minimisation de manière efficace. Un cas où la structure peut être exploitée se produit lorsque l’énergie peut être exprimée comme une somme de fonctions individuelles (appelées facteurs) qui dépendent chacune de différents sous-ensembles des variables de y et ZZ. Ces dépendances sont mieux exprimées sous la forme d’un graphe factoriel. Les graphes factoriels sont une forme générale de modèles graphiques ou de réseaux de croyances.
English: where Y=[Y1,Y2] are the output variables and Z=[Z1,Z2] are the latent variables. Each factor can be seen as representing soft constraints between the values of its input variables. The inference problem consists in finding:
French: où Y=[Y1,Y2] sont les variables de sortie et Z=[Z1,Z2] sont les variables latentes. Chaque facteur peut être considéré comme représentant des contraintes souples entre les valeurs de ses variables d’entrée. Le problème d’inférence consiste à trouver :
English: Let’s assume that Z1​, Z2​, and Y1​ are discrete binary variables, and Y2​ is a ternary variable. The cardinality of the domain of x is immaterial since X is always observed. The number of possible configurations of z and y given X is 2×2×2×3=24. A naive minimization algorithm through exhaustive search would evaluate the entire energy function 24 times (96 single factor evaluations).
French: Supposons que Z1​, Z2​ et Y1​ sont des variables binaires discrètes et que Y2​ est une variable ternaire. La cardinalité du domaine de x est sans importance puisque x est toujours observé. Le nombre de configurations possibles de z et y étant donné x est de 2×2×2×3=24. Un algorithme de minimisation naïf par recherche exhaustive évaluerait la fonction énergie entière 24 fois (96 évaluations à facteur unique).
English: However, we notice that for a given X, Ea​ only has two possible input configurations: Z1=0 and Z1​=1. Similarly, Eb​ and Ec​ only have 4 possible input configurations, and Ed has 6. Hence, there is no need for more than 2+4+4+6=16 single factor evaluations.
French: Cependant, nous remarquons que pour un x donné, Ea​ n’a que deux configurations d’entrée possibles : Z1=0 et Z1​=1. De même, Eb​ et Ec​ n’ont que 4 configurations d’entrée possibles, et Ed​ en a 6, il n’est pas nécessaire d’avoir plus de 2+4+4+6=16 d’évaluations de facteur unique.
English: The nodes in each column represent the possible values of a single variable. Each edge is weighted by the output energy of the factor for the corresponding values of its input variables. With this representation, a single path from the start node to the end node represents one possible configuration of all the variables. The sum of the weights along a path is equal to the total energy for the corresponding configuration. Therefore, the inference problem can be reduced to searching for the shortest path in this graph. This can be performed using a dynamic programming method such as the Viterbi algorithm, or the A* algorithm. The cost is proportional to the number of edges (16), which is exponentially smaller than the number of paths in general.
French: Les nœuds de chaque colonne représentent les valeurs possibles d’une seule variable. Chaque arc est pondéré par l’énergie de sortie du facteur pour les valeurs correspondantes de ses variables d’entrée. Avec cette représentation, un seul chemin du nœud de départ au nœud d’arrivée représente une configuration possible de toutes les variables. La somme des poids le long d’un chemin est égale à l’énergie totale pour la configuration correspondante. Par conséquent, le problème d’inférence peut être réduit à la recherche du plus court chemin dans ce graphe. Ceci peut être réalisé en utilisant une méthode de programmation dynamique telle que l’algorithme de Viterbi ou l’algorithme A*. Le coût est proportionnel au nombre d’arêtes (16) qui est exponentiellement plus petit que le nombre de chemins en général.
English: To compute E(Y,X)=minz∈Z​E(Y,z,X), we follow the same procedure, but we restrict the graph to the subset of arcs that are compatible with the prescribed value of Y.
French: Pour calculer E(Y,X)=minz∈Z​E(Y,z,X) nous suivons la même procédure mais nous limitons le graphe au sous-ensemble des arcs qui sont compatibles avec la valeur prescrite de Y.
English: The above procedure is sometimes called the min-sum algorithm, and it is the log domain version of the traditional max-product for graphical models. The procedure can easily be generalized to factor graphs where the factors take more than two variables as inputs, and to factor graphs that have a tree structure instead of a chain structure.
French: La procédure ci-dessus est parfois appelée l’algorithme min-sum et il s’agit de la version logarithmique du domaine du max-product traditionnel pour les modèles graphiques. La procédure peut facilement être généralisée aux graphes factoriels où les facteurs prennent plus de deux variables comme entrées et aux graphes factoriels qui ont une structure arborescente au lieu d’une structure de chaîne.
English: However, it only applies to factor graphs that are bipartite trees (with no loops). When loops are present in the graph, the min-sum algorithm may give an approximate solution when iterated, or may not converge at all. In this case, a descent algorithm such as simulated annealing could be used.
French: Toutefois, elle ne s’applique qu’aux graphes de facteurs qui sont des arbres bipartites (sans boucles). Lorsque des boucles sont présentes dans le graphe, l’algorithme min-sum peut donner une solution approximative lorsqu’il est répété, ou peut ne pas converger du tout. Dans ce cas, un algorithme de descente tel que l’annealing simulé peut être utilisé.
English: Each factor is a linear function of the trainable parameters. It depends on the input x and on a pair of individual labels (Ym,Yn​). In general, each factor could depend on more than two individual labels, but we will limit the discussion to pairwise factors to simplify the notation:
French: Chaque facteur dans la figure 6 est une fonction de paramètres entraînables dépendant de x et d’une paire de labels individuels (Ym​,Yn​). En général, chaque facteur peut dépendre de plus de deux labels individuels mais nous limitons la discussion aux facteurs par paires pour simplifier la notation :
English: Here F denotes the set of factors (the set of pairs of individual labels that have a direct inter-dependency), Wmm​ is the parameter vector for factor (m,n), and fmn(X,Ym,Yn) is a (fixed) feature vector. The global parameter vector w is the concatenation of all the Wmn​.
French: Ici, F désigne l’ensemble des facteurs (l’ensemble des paires de labels individuels qui ont une interdépendance directe), Wmn​ est le vecteur de paramètre pour le facteur,(m,n), et fmn​(X,Ym​,Yn​) est un vecteur de caractéristique (fixe). Le vecteur paramètre global w est la concaténation de tous les Wmn.
English: The intuition behind is that we want the energy of the correct answer to be low, and then among all possible configurations of incorrect answers, we are going to look for the one that has the lowest energy among all the wrong or the bad ones. And then we are going to push up the energy of this one. We don’t need to push up the energy for the other bad answers because they are larger anyway.
French: L’intuition est que nous voulons que l’énergie de la bonne réponse soit faible. Puis parmi toutes les configurations possibles de réponses incorrectes, nous allons chercher celle qui a l’énergie la plus faible parmi toutes les mauvaises réponses. Nous allons ensuite augmenter l’énergie de celle-ci. Nous n’avons pas besoin d’augmenter l’énergie pour les autres mauvaises réponses parce qu’elles sont de toute façon plus grandes.
English: Minimum Empirical Error Loss (Ljolje, and Rabiner 1990): By training at sequence level, they do not tell the system this sound or that location. They give the system input sentence and transcription of it in term of words, and ask the system to figure it out by doing time warping. They did not use neural networks, and have other ways in turning speech signals into sound categories.
French: Minimum Empirical Error Loss (Ljolje et Rabiner 1990) : En entraînant au niveau de la séquence, les auteurs n’indiquent pas au système tel ou tel son ou endroit. Ils donnent au système la phrase d’entrée et sa transcription en termes de mots, et demandent au système de la comprendre en faisant une distorsion temporelle. Ils n’ont pas utilisé de réseaux de neurones et disposent d’autres moyens pour transformer les signaux vocaux en catégories de sons.
English: Here the problem is that we have a sequence of digits at the input and we do not know how to do segmentation. What we can do is build a graph in which each path is a way of breaking up the sequence of characters, and we are going to find out the path with lowest energy, basically is to find the shortest path. Here is a concrete example of how it works.
French: Ici, le problème est que nous avons une séquence de chiffres en entrée et que nous ne savons pas comment faire la segmentation. Nous pouvons néanmoins construire un graphe dans lequel chaque chemin est un moyen de décomposer la séquence de caractères. Nous allons alors trouver le chemin avec la plus faible énergie. En gros cela revient à trouver le chemin le plus court. Voici un exemple concret de la façon dont cela fonctionne.
English: We have input image 34. Run this through segmenter, and get multiple alternative segmentations. These segmentation are ways to group these blobs of thing together. Each path in the segmentation graph corresponds to one particular way of grouping the blobs of ink.
French: Nous avons en entrée l’image du nombre 34. On la passe dans le segmenteur et on obtient plusieurs segmentations alternatives. Ces segmentations sont des moyens de regrouper ces blocs de choses. Chaque chemin dans le graphe de segmentation correspond à une façon particulière de regrouper les taches d’encre.
English: We run each through the same character recognition ConvNet, and get a list of 10 scores (Two here but essentially should be 10, representing 10 categories). For example, 1 [0.1] means the energy is 0.1 for category 1. So I get a graph here, and you can think of it as a weird form of tensor. It is a sparse tensor really. It is a tensor that says for each possible configuration of this variable, tell me the cost of the variable. It’s more like a distribution over tensors, or log distribution because we are talking about energies.
French: Nous passons chaque segment par le même ConvNet de reconnaissance de caractères et obtenons une liste de 10 scores (2 ici mais généralement on en a 10 représentant les 10 catégories/chiffres). Par exemple, 1 [0,1] signifie que l’énergie est de 0,1 pour la catégorie 1. On obtient alors un graphe pouvant être considéré comme une forme étrange de tenseur peu dense). C’est un tenseur qui pour chaque configuration possible de cette variable, demande le coût de la variable. Il s’agit davantage d’une distribution sur les tenseurs, ou une distribution logarithmique car nous parlons d’énergies.
English: Take this graph and then I want to compute the energy of the correct answer. I am telling you the correct answer is 34. Select within those paths and find out ones that say 34. There are two of them, one the energy 3.4 + 2.4 = 5.8, and the other 0.1 + 0.6 = 0.7. Pick the path with the lowest energy. Here we get the path with energy 0.7.
French: Si on prend le graphe de la figure 9 et devons calculer l’énergie de la bonne réponse (3434), nous devons sélectionner dans ces chemins ceux donnant la bonne réponse. Il y en a deux, l’une est l’énergie 3,4+2,4=5,83,4+2,4=5,8 et l’autre 0,1+0,6=0,70,1+0,6=0,7. Il nous reste alors plus qu’à prendre le chemin qui a l’énergie la plus faible. Ici, nous obtenons le chemin avec l’énergie 0,70,7.
English: So finding the path is like minimizing over the latent variable where latent variable is which path you pick. Conceptually, it is an energy model with latent variable as a path.
French: Trouver le chemin est donc comme minimiser sur une variable latente où la variable latente est le chemin choisi. Conceptuellement, il s’agit d’un modèle d’énergie avec une variable latente comme chemin.
English: Now we have the energy of the correct path, 0.7. What we need to do now is backpropagate gradient through this entire structure, so that we can change the weight in ConvNet in such a way that final energy goes down. It looks daunting, but is entirely possible. Because this entire system is built out of element we already know about, neural net is regular and the Path Selector and Viterbi Transformer are basically switches that pick a particular edge or not.
French: Nous avons donc l’énergie du chemin correct, 0,7. Ce que nous devons faire maintenant, c’est rétropropager le gradient à travers toute cette structure, afin de pouvoir modifier le poids dans le ConvNet de telle sorte que l’énergie finale diminue. Cela semble intimidant, mais c’est tout à fait possible. Comme tout ce système est construit à partir d’éléments que nous connaissons déjà, le réseau neuronal est classique. Le sélecteur de chemin et le transformer de Viterbi sont essentiellement des interrupteurs qui choisissent une arête particulière ou non.