lbourdois/en-fr-nyu-dl-course-corpus huggingface dataset:
English: In this section, we continued to learn about loss functions - in particular, margin-based losses and their applications. We then discussed how to design a good loss function for EBMs as well as examples of well-known EBM loss functions. We gave particular attention to margin-based loss function here, as well as explaining the idea of “most offending incorrect answer.
French: Dans cette section, nous continuons d’aborder les fonctions de perte en particulier celles basées sur une marge et leurs applications. Nous discutons ensuite de la manière de concevoir une bonne fonction de perte pour les EBMs ainsi que des exemples de fonctions de perte bien connues des EBMs. Nous accordons une attention particulière à la fonction de perte basée sur une marge, tout en expliquant l’idée de réponse incorrecte la plus offensante.
English: This practicum proposed effective policy learning for driving in dense traffic. We trained multiple policies by unrolling a learned model of the real world dynamics by optimizing different cost functions. The idea is to minimize the uncertainty in the model’s prediction by introducing a cost term that represents the model’s divergence from the states it is trained on.
French: Nous proposons un apprentissage d’une politique dans le cadre d’une conduite dans un trafic dense. Nous entraînons de multiples politiques en déroulant un modèle appris de la dynamique du monde réel en optimisant différentes fonctions de coût. L’idée est de minimiser l’incertitude dans les prédictions du modèle en introduisant un terme de coût qui représente la divergence du modèle par rapport aux états sur lesquels il est entraîné.
English: Note that for RReLU, a is a random variable that keeps samplings in a given range during training, and remains fixed during testing. For PReLU , a is also learned. For Leaky ReLU, a is fixed.
French: Notez que pour la RReLU, a est une variable aléatoire qui maintient les échantillonages dans une fourchette donnée pendant l’entraînement, et reste fixe pendant le test. Pour la PReLU, a est également appris. Pour la LeakyReLU, a est fixe.
English: Here a is a fixed parameter. The bottom part of the equation prevents the problem of dying ReLU which refers to the problem when ReLU neurons become inactive and only output 0 for any input. Therefore, its gradient is 0. By using a negative slope, it allows the network to propagate back and learn something useful.
French: Ici, a est un paramètre fixe. La partie inférieure de l’équation évite que les neurones ReLU deviennent inactifs et ne renvoient à chaque fois 0 pour toute entrée donnée. Par conséquent, sa pente est nulle. En utilisant une pente négative, la fonction permet au réseau de se rétropropager et d’apprendre quelque chose d’utile.
English: Unlike ReLU, it can go below 0 which allows the system to have average output to be zero. Therefore, the model may converge faster. And its variations (CELU, SELU) are just different parametrizations.
French: Contrairement à la ReLU, cette fonction peut descendre en dessous de 0, ce qui permet au système d’avoir une sortie moyenne de 0. Par conséquent, le modèle peut converger plus rapidement. Ses variations (CELU, SELU) ne sont que des paramétrages différents.
English: This is ReLU saturating at 6. But there is no particular reason why picking 6 as saturation, so we can do better by using Sigmoid function below.
French: C’est la saturation de la ReLU à 6. Mais il n’y a pas de raison particulière de choisir 6 comme saturation, nous pouvons donc faire mieux en utilisant la fonction Sigmoïde ci-dessous.
English: If we stack sigmoids in many layers, it may be inefficient for the system to learn and requires careful initialization. This is because if the input is very large or small, the gradient of the sigmoid function is close to 0. In this case, there is no gradient flowing back to update the parameters, known as saturating gradient problem. Therefore, for deep neural networks, a single kink function (such as ReLU) is preferred.
French: Si nous empilons des sigmoïdes sur plusieurs couches, cela peut être inefficace pour l’apprentissage et nécessite une initialisation soigneuse. En effet, si l’entrée est très grande ou très petite, le gradient de la fonction sigmoïde est proche de 0. Dans ce cas, il n’y a pas de retour de gradient pour mettre à jour les paramètres. C’est ce qu’on appelle le problème de la saturation du gradient. C’est pourquoi, pour les réseaux neuronaux profonds, une seule fonction (comme la ReLU) est préférable.
English: Tanh is basically identical to Sigmoid except it is centred, ranging from -1 to 1. The output of the function will have roughly zero mean. Therefore, the model will converge faster. Note that convergence is usually faster if the average of each input variable is close to zero. One example is Batch Normalization.
French: Tanh est fondamentalement identique à la Sigmoïde sauf qu’elle est centrée et va de −1 à 1. La sortie de la fonction a une moyenne à peu près nulle. Par conséquent, le modèle converge plus rapidement. A noter que la convergence est généralement plus rapide si la moyenne de chaque variable d’entrée est proche de 0. Un exemple est la normalisation par batch.
English: It is rarely used because we cannot propagate the gradient back. And it is also the reason preventing people from using back-propagation in 60s and 70s when they were using binary neurons.
French: Rarement utilisée car nous ne pouvons pas rétropropager le gradient. C’est aussi la raison pour laquelle les gens ne pouvaient pas utiliser la rétropropagation dans les années 60 et 70 lorsqu’ils utilisaient des neurones binaires.
English: This basically shrinks the variable by a constant towards 0, and forces to 0 if the variable is close to 0. You can think of it as a step of gradient for the ℓ1​ criteria. It is also one of the step of the Iterative Shrinkage-Thresholding Algorithm (ISTA). But it is not commonly used in standard neural network as activations.
French: Grossièrement, cela réduit la variable d’une constante vers 0 et la force à 0 si la variable est proche de 0. Elle peut être considérée comme une étape de gradient pour le critère ℓ1​. C’est également l’une des étapes de l’algorithme ISTA (Iterative Shrinkage-Thresholding Algorithm). Mais elle n’est pas couramment utilisée comme activation dans les réseaux de neurones standard.
English: You can learn a or fix it. The reason for fixing is to ensure that nonlinearity gives you a non-zero gradient even if it’s in a negative region. Making a learnable allows the system to turn nonlinearity into either linear mapping or full rectification. It could be useful for some applications like implementing an edge detector regardless of the edge polarity.
French: Vous pouvez apprendre a ou le corriger. La raison de la correction est de s’assurer que la non-linéarité vous donne un gradient non nul même s’il est dans une région négative. Rendre a apprenable permet au système de transformer la non-linéarité en une association linéaire ou une rectification complète. Cela peut être utile pour certaines applications comme la mise en œuvre d’un détecteur de bord, quelle que soit la polarité du bord.
English: Theoretically, we can parametrise an entire nonlinear function in very complicated way, such as with spring parameters, Chebyshev polynomial, etc. Parametrising could be a part of learning process.
French: Théoriquement, nous pouvons paramétrer une fonction non linéaire entière de manière très compliquée, comme avec des paramètres de ressort, le polynôme de Tchebyshev, etc. Le paramétrage pourrait faire partie du processus d’apprentissage.
English: It really depends on what you want to do. For example, when doing regression in a low dimensional space, parametrisation might help. However, if your task is in under a high dimensional space such as image recognition, just “a” nonlinearity is necessary and monotonic nonlinearity will work better. In short, you can parametrize any functions you want but it doesn’t bring a huge advantage.
French: Cela dépend vraiment de ce que vous voulez faire. Par exemple, lorsque vous faites une régression dans un espace de faible dimension, le paramétrage peut vous aider. Cependant, si votre tâche se situe dans un espace à haute dimension comme la reconnaissance d’images, une simple non-linéarité « a » est nécessaire et une non-linéarité monotone fonctionnera mieux. En bref, vous pouvez paramétrer toutes les fonctions que vous voulez, mais cela n’apporte pas un énorme avantage.
English: Double kink is a built-in scale in it. This means that if the input layer is multiplied by two (or the signal amplitude is multiplied by two), then outputs will be completely different. The signal will be more in nonlinearity, thus you will get a completely different behaviour of the output. Whereas, if you have a function with only one kink, if you multiply the input by two, then your output will be also multiplied by two.
French: Le double coude a une échelle intégrée. Cela signifie que si la couche d’entrée est multipliée par deux (ou si l’amplitude du signal est multipliée par deux), les sorties seront complètement différentes. Le signal sera plus en non-linéarité, donc vous obtiendrez un comportement complètement différent de la sortie. Alors que si vous avez une fonction avec un seul coude, si vous multipliez l’entrée par deux, alors votre sortie sera également multipliée par deux.
English: To some extent, the temperature is redundant with incoming weights. If you have weighted sums coming into your softmax, the β parameter is redundant with the size of weights. Temperature controls how hard the distribution of output will be. When β is very large, it becomes very close to either one or zero. When β is small, it is softer. When the limit of β equals to zero, it is like an average. When β goes infinity, it behaves like argmax. It’s no longer its soft version. Thus, if you have some sort of normalisation before the softmax then, tuning this parameter allows you to control the hardness. Sometimes, you can start with a small β so that you can have well-behaved gradient descents and then, as running proceeds, if you want a harder decision in your attention mechanism, you increase β. Thus, you can sharpen the decisions. This trick is called as annealing. It can be useful for a mixture of experts like a self attention mechanism.
French: Dans une certaine mesure, la température est redondante avec les poids entrants. Si vous avez des sommes pondérées qui arrivent dans votre softmax, le paramètre β est redondant avec la taille des poids. La température contrôle le degré de difficulté de la distribution des sorties. Lorsque β est très grand, il devient très proche de 1 ou de 0. Lorsque β est petit, il est plus doux. Lorsque la limite de β est égale à 0, c’est comme une moyenne. Lorsque β va à l’infini, il se comporte comme argmax. Ce n’est plus sa version douce. Ainsi, si vous avez une sorte de normalisation avant le softmax, alors, le réglage de ce paramètre vous permet de contrôler la dureté. Parfois, vous pouvez commencer avec un petit β afin d’avoir des descentes de gradient bien conduites et ensuite, au fur et à mesure que la course avance, si vous voulez une décision plus difficile dans votre mécanisme d’attention, vous augmentez β. Ainsi, vous pouvez affiner les décisions. Il peut être utile pour un mélange d’experts comme un mécanisme d’auto-attention.
English: If we are using a minibatch of N samples, then there are N losses, one for each sample in the batch. We can tell the loss function to keep that loss as a vector or to reduce it.
French: Si nous utilisons un mini-lot d’échantillons nn, alors il y a des pertes nn, une pour chaque échantillon du lot. Nous pouvons dire à la fonction de perte de conserver cette perte comme vecteur ou de la réduire.
English: Use Case: L1 loss is more robust against outliers and noise compared to L2 loss. In L2, the errors of those outlier/noisy points are squared, so the cost function gets very sensitive to outliers.
French: Cas d’utilisation : la perte L1 est plus robuste contre les valeurs aberrantes et le bruit que la perte L2. En L2, les erreurs de ces points aberrants/bruits sont élevées au carré, de sorte que la fonction de coût devient très sensible aux aberrants.
English: Problem: The L1 loss is not differentiable at the bottom (0). We need to be careful when handling its gradients (namely Softshrink). This motivates the following SmoothL1Loss.
French: Problème : la perte en L1 n’est pas différentiable dans la partie inférieure (0). Nous devons être prudents lorsque nous traitons ses gradients (à savoir la Softshrink). C’est ce qui motive la perte L1 lisse suivante.
English: This is advertised by Ross Girshick (Fast R-CNN). The Smooth L1 Loss is also known as the Huber Loss or the Elastic Network when used as an objective function,.
French: Elle est utilisée par Ross Girshick dans Fast R-CNN. La perte L1 lisse est également connue sous le nom de perte de Huber ou d’ElasticNet lorsqu’elle est utilisée comme fonction objective.
English: Note that, mathematically, the input of NLLLoss should be (log) likelihoods, but PyTorch doesn’t enforce that. So the effect is to make the desired component as large as possible.
French: Mathématiquement, l’entrée de NLLLoss devrait être la probabilité (log), mais PyTorch ne l’impose pas. L’effet est donc de rendre la composante désirée aussi grande que possible.
English: This loss function has an optional argument weight that can be passed in using a 1D Tensor assigning weight to each of the classes. This is useful when dealing with imbalanced training set.
French: Cette fonction de perte a un argument optionnel weight qui peut être transmis en utilisant un tenseur 1D qui assigne un poids à chacune des classes. Ceci est utile lorsqu’il s’agit d’un jeu d’entraînement déséquilibré.
English: Weight vector is useful if the frequency is different for each category/class. For example, the frequency of the common flu is much higher than the lung cancer. We can simply increase the weight for categories that has small number of samples.
French: Le vecteur de poids est utile si la fréquence est différente pour chaque catégorie/classe. Par exemple, la fréquence de la grippe commune est beaucoup plus élevée que celle du cancer du poumon. Nous pouvons simplement augmenter le poids pour les catégories qui ont un petit nombre d’échantillons.
English: To equalize the classes in training, we put samples of each class in a different buffer. Then generate each minibatch by picking the same number samples from each buffer. When the smaller buffer runs out of samples to use, we iterate through the smaller buffer from the beginning again until every sample of the larger class is used. This way gives us equal frequency for all categories by going through those circular buffers. We should never go the easy way to equalize frequency by not using all samples in the majority class. Don’t leave data on the floor!
French: Pour égaliser les classes à l’entraînement, nous plaçons des échantillons de chaque classe dans une mémoire tampon différente. Ensuite, nous générons chaque mini-batch en prélevant le même nombre d’échantillons dans chaque tampon. Lorsque le petit tampon est à court d’échantillons à utiliser, nous itérons à nouveau à travers le petit tampon depuis le début jusqu’à ce que chaque échantillon de la grande classe soit utilisé. De cette façon, nous obtenons une fréquence égale pour toutes les catégories en passant par ces tampons. Nous ne devrions jamais utiliser la méthode facile pour égaliser la fréquence en n’ utilisant pas tous les échantillons de la classe majoritaire. Ne laissez pas de données de côté !
English: An obvious problem of the above method is that our N model wouldn’t know the relative frequency of the actual samples. To solve that, we fine-tune the system by running a few epochs at the end with the actual class frequency, so that the system adapts to the biases at the output layer to favour things that are more frequent.
French: Un problème évident de la méthode ci-dessus est que notre modèle ne connaîtrait pas la fréquence relative des échantillons réels. Pour résoudre ce problème, nous affinons le système en exécutant quelques époques à la fin avec la fréquence réelle de la classe, de sorte que le système s’adapte aux biais de la couche de sortie pour favoriser les choses qui sont plus fréquentes.
English: To get an intuition of this scheme, let’s go back to the medical school example: students spend just as much time on rare disease as they do on frequent diseases (or maybe even more time, since the rare diseases are often the more complex ones). They learn to adapt to the features of all of them, then correct it to know which are rare.
French: Pour avoir une intuition de ce schéma, revenons à l’exemple de la faculté de médecine : les étudiants passent autant de temps sur les maladies rares que sur les maladies fréquentes (ou peut-être même plus de temps, puisque les maladies rares sont souvent les plus complexes). Ils apprennent à s’adapter aux caractéristiques de chacune d’entre elles, puis à les corriger pour savoir lesquelles sont rares.
English: The reason why the two functions are merged here is for numerical stability of gradient computation. When the value after softmax is close to 1 or 0, the log of that can get close to 0 or −∞. Slope of log close to 0 is close to ∞, causing the intermediate step in backpropagation to have numerical issues. When the two functions are combined, the gradients is saturated so we get a reasonable number at the end.
French: La raison pour laquelle les deux fonctions sont fusionnées ici est la stabilité numérique du calcul du gradient. Lorsque la valeur après softmax est proche de 1 ou 0, le log de cette fonction peut se rapprocher de 0 ou −∞. La pente du log proche de 0 est proche de −∞, ce qui entraîne des problèmes numériques à l’étape intermédiaire de la rétropropagation. Lorsque les deux fonctions sont combinées, le gradient est saturé, de sorte que nous obtenons un nombre raisonnable à la fin.
English: A physical interpretation of the Cross Entropy Loss is related to the Kullback–Leibler divergence (KL divergence), where we are measuring the divergence between two distributions. Here, the (quasi) distributions are represented by the x vector (predictions) and the target distribution (a one-hot vector with 0 on the wrong classes and 1 on the right class).
French: Une interprétation physique de la perte d’entropie croisée est liée à la divergence de Kullback-Leibler (divergence KL), où nous mesurons la divergence entre deux distributions. Ici, les (quasi) distributions sont représentées par le vecteur x (prédictions) et la distribution cible (un vecteur one-hot avec 0 sur les mauvaises classes et 1 sur la bonne classe).
English: This loss is a special case of cross entropy for when you have only two classes so it can be reduced to a simpler function. This is used for measuring the error of a reconstruction in, for example, an auto-encoder. This formula assume x and y are probabilities, so they are strictly between 0 and 1.
French: Cette perte est un cas particulier de l’entropie croisée car lorsque nous n’avons que deux classes, elle peut être réduite à une fonction plus simple. Elle est utilisée pour mesurer l’erreur d’une reconstruction dans, par exemple un auto-encodeur. Cette formule suppose que x et y sont des probabilités, elles sont donc strictement comprises entre 0 et 1.
English: This is simple loss function for when your target is a one-hot distribution (i.e. y is a category). Again it assumes x and y are probabilities. It has the disadvantage that it is not merged with a softmax or log-softmax so it may have numerical stability issues.
French: Il s’agit d’une fonction de perte simple pour les cas où la cible est une distribution one-hot (c’est-à-dire que y est une catégorie). Là encore, elle suppose que x et y sont des probabilités. Elle présente l’inconvénient de ne pas être fusionnée avec une softmax ou une log-softmax, ce qui peut poser des problèmes de stabilité numérique.
English: This version of binary cross entropy loss takes scores that haven’t gone through softmax so it does not assume x is between 0 and 1. It is then passed through a sigmoid to ensure it is in that range. The loss function is more likely to be numerically stable when combined like this.
French: Cette version de la perte d’entropie croisée binaire prend les scores qui ne sont pas passés par la softmax, donc elle ne suppose pas que x est compris entre 0 et 1. Elle passe ensuite par une sigmoïde pour s’assurer qu’elle est dans cette fourchette. La fonction de perte a plus de chances d’être numériquement stable lorsqu’elle est combinée de cette manière.
English: Margin losses are an important category of losses. If you have two inputs, this loss function says you want one input to be larger than the other one by at least a margin. In this case y is a binary variable ∈−1,1. Imagine the two inputs are scores of two categories. You want the score for the correct category larger than the score for the incorrect categories by at least some margin. Like hinge loss, if y∗(x1​−x2​) is larger than margin, the cost is 0. If it is smaller, the cost increases linearly. If you were to use this for classification, you would have x1​ be the score of the correct answer and x2 be the score of the highest scoring incorrect answer in the mini-batch. If used in energy based models (discussed later), this loss function pushes down on the correct answer x1​ and up on the incorrect answer x2​.
French: Les pertes avec marge constituent une catégorie importante de pertes. Si nous avons deux entrées, cette fonction de perte indique que l’une d’elles doit être plus importante que l’autre d’au moins une marge. Dans ce cas, y est une variable binaire ∈−1,1. Imaginons que les deux entrées sont des scores de deux catégories. Nous voulons que le score de la catégorie correcte soit plus grand que le score de la catégorie incorrecte d’au moins une certaine marge. Comme pour la perte Hinge, si y∗(x1​−x2​) est supérieur à la marge, le coût est de 0. S’il est inférieur, le coût augmente de façon linéaire. Si nous devons l’utiliser pour la classification, nous aurions x1 comme score de la bonne réponse et x2​ comme score de la réponse incorrecte la plus élevée du mini-batch. Si elle est utilisée dans des modèles à base d’énergie (voir plus loin), cette fonction de perte pousse vers le bas la bonne réponse x1x1​ et vers le haut la mauvaise réponse x2​.
English: This loss is used for measuring a relative similarity between samples. For example, you put two images with the same category through a CNN and get two vectors. You want the distance between those two vectors to be as small as possible. If you put two images with different categories through a CNN, you want the distance between those vectors to be as large as possible. This loss function tries to send the first distance toward 0 and the second distance larger than some margin. However, the only thing that matter is that the distance between the good pair is smaller than the distance between the bad pair.
French: Cette perte est utilisée pour mesurer une similarité relative entre les échantillons. Par exemple, nous faisons passer deux images de même catégorie dans un ConvNet et nous obtenons deux vecteurs. Nous voulons que la distance entre ces deux vecteurs soit la plus petite possible. Cette fonction de perte essaie d’envoyer la première distance vers 0 et la seconde distance plus grande qu’une certaine marge. Cependant, la seule chose qui importe est que la distance entre la bonne paire soit plus petite que la distance entre la mauvaise paire.