lbourdois/en-fr-nyu-dl-course-corpus huggingface dataset:
English: Thus, any SGD update is the same as full-batch update in expectation. However, SGD is not just faster gradient descent with noise. Along with being faster, SGD can also get us better results than full-batch gradient descent. The noise in SGD can help us avoid the shallow local minima and find a better (deeper) minima. This phenomenon is called annealing.
French: Ainsi, toute mise à jour de la SGD est la même que la mise à jour attendue pour la GD à batch complet. Cependant, la SGD n’est pas seulement une descente plus rapide avec du bruit. En plus d’être plus rapide, la SGD peut également nous donner de meilleurs résultats que la descente de gradient avec batch complet. Le bruit dans la SGD peut nous aider à éviter les minima locaux peu profonds et à trouver de meilleurs minima (plus profonds). Ce phénomène est appelé annealing.
English: Often we are able to make better use of our hardware by using mini batches instead of a single instance. For example, GPUs are poorly utilized when we use single instance training. Distributed network training techniques split a large mini-batch between the machines of a cluster and then aggregate the resulting gradients. Facebook recently trained a network on ImageNet data within an hour, using distributed training.
French: Souvent, nous pouvons faire un meilleur usage de nos capacités de calcul en utilisant des mini-batchs au lieu d’une seule instance. Par exemple, les GPUs sont mal utilisés lorsque nous effectuons un entraînement avec une seule instance. Les techniques d’entraînement en réseau distribué répartissent les mini-batchs entre les différentes machines et agrègent ensuite les gradients résultants. En utilisant une telle distribution, Facebook a récemment entraîné un réseau sur les données d’ImageNet en moins d’une heure (Goyal et al. (2018)). Il est important de noter que la descente de gradient ne doit jamais être utilisée avec des batchs de taille entière. Si vous souhaitez faire cela utilisez plutôt une technique d’optimisation appelée LBFGS. PyTorch et SciPy fournissent tous deux des implémentations de cette technique.
English: It is important to note that Gradient Descent should never be used with full sized batches. In case you want to train on the full batch-size, use an optimization technique called LBFGS. PyTorch and SciPy both provide implementations of this technique.
French: Il est important de noter que la descente de gradient ne doit jamais être utilisée avec des batchs de taille maximale. Si vous souhaitez effectuer l'entraînement sur un batch de taille maximale, utilisez une technique d'optimisation appelée LBFGS. PyTorch et SciPy fournissent tous deux des implémentations de cette technique.
English: p is called the SGD momentum. At each update step we add the stochastic gradient to the old value of the momentum, after dampening it by a factor β (value between 0 and 1). p can be thought of as a running average of the gradients. Finally we move w in the direction of the new momentum p.
French: p est appelé le momentum da la SGD. À chaque étape de la mise à jour, nous ajoutons le gradient stochastique à l’ancienne valeur du momentum, après l’avoir amorti d’un facteur β (valeur comprise entre 0 et 1). On peut considérer p comme une moyenne mobile des gradients. Enfin, nous déplaçons w dans la direction du nouvel élan p.
English: SGD Momentum is similar to the concept of momentum in physics. The optimization process resembles a heavy ball rolling down the hill. Momentum keeps the ball moving in the same direction that it is already moving in. Gradient can be thought of as a force pushing the ball in some other direction.
French: La SGD momentum est similaire au concept d’élan en physique. Le processus d’optimisation ressemble à une balle lourde qui dévale la colline. Momentum maintient la balle dans la même direction que celle dans laquelle elle se déplace déjà. Le gradient peut être considéré comme une force poussant la balle dans une autre direction.
English: Rather than making dramatic changes in the direction of travel (as in the figure on the left), momentum makes modest changes. Momentum dampens the oscillations which are common when we use only SGD.
French: Plutôt que de changer radicalement la direction du déplacement (comme dans la figure de gauche), momentum apporte des changements modestes. Il amortit les oscillations qui sont courantes lorsque nous n’utilisons que la SGD.
English: The β parameter is called the Dampening Factor. β has to be greater than zero, because if it is equal to zero, you are just doing gradient descent. It also has to be less than 1, otherwise everything will blow up. Smaller values of β result in change in direction quicker. For larger values, it takes longer to make turns.
French: Le paramètre β est appelé le facteur d’amortissement. β doit être supérieur à zéro, car s’il est égal à zéro, on ne fait qu’une descente de gradient. Il doit également être inférieur à 1, sinon tout explose. Des valeurs plus petites de β entraînent un changement de direction plus rapide. Pour des valeurs plus élevées, il faut plus de temps pour « tourner ».
English: The step size parameter usually needs to be decreased when the momentum parameter is increased to maintain convergence. If β changes from 0.9 to 0.99, learning rate must be decreased by a factor of 10.
French: La valeur du pas doit généralement être diminuée lorsque le paramètre de momentum est augmenté pour maintenir la convergence. Si β passe de 0,9 à 0,99, le taux d’apprentissage doit être diminué d’un facteur 10.
English: With Nesterov’s Momentum, you can get accelerated convergence if you choose the constants very carefully. But this applies only to convex problems and not to Neural Networks.
French: Avec le momentum de Nesterov, il est possible d’obtenir une convergence accélérée en choisissant les constantes très soigneusement. Cependant cela ne s’applique qu’aux problèmes convexes et non aux réseaux de neurones.
English: Many people say that normal momentum is also an accelerated method. But in reality, it is accelerated only for quadratics. Also, acceleration does not work well with SGD, as SGD has noise and acceleration does not work well with noise. Therefore, though some bit of acceleration is present with Momentum SGD, it alone is not a good explanation for the high performance of the technique.
French: Beaucoup de gens disent que le momentum normal est une méthode accélérée. Mais en réalité, elle n’est accélérée que pour les fonctions quadratiques. De plus, l’accélération ne fonctionne pas bien avec la SGD, car la SGD a du bruit or l’accélération ne fonctionne pas bien avec le bruit. Par conséquent, bien qu’une certaine accélération soit présente avec la SGD momentum, elle ne suffit pas à expliquer les performances élevées de la technique.
English: The great thing about SGD with momentum is that this averaging is no longer necessary. Momentum adds smoothing to the optimization process, which makes each update a good approximation to the solution. With SGD you would want to average a whole bunch of updates and then take a step in that direction.
French: L’avantage avec la SGD avec momentum est que cette moyenne n’est plus nécessaire. Le momentum ajoute un lissage au processus d’optimisation, ce qui fait de chaque mise à jour une bonne approximation de la solution. Avec la SGD, on voudrait faire la moyenne de tout un tas de mises à jour et ensuite faire un pas dans cette direction.
English: With SGD, we make good progress towards solution initially but when we reach bowl (bottom of the valley) we bounce around in this floor. If we adjust learning rate we will bounce around slower. With momentum we smooth out the steps, so that there is no bouncing around.
French: Avec la SGD, nous progressons bien vers une solution au départ, mais lorsque nous atteignons le fond de la vallée, nous rebondissons. Si nous ajustons le taux d’apprentissage, nous rebondissons plus lentement. Avec le momentum, nous lissons les étapes, de sorte qu’il n’y a pas de rebondissement.
English: SGD with momentum is currently the state of the art optimization method for a lot of ML problems. But there are other methods, generally called Adaptive Methods, innovated over the years that are particularly useful for poorly conditioned problems (if SGD does not work).
French: La SGD avec momentum est actuellement la méthode d’optimisation de pointe pour de nombreux problèmes d’apprentissage machine. Mais il existe d’autres méthodes, généralement appelées méthodes adaptatives qui sont particulièrement utiles pour les problèmes mal conditionnés (si la SGD ne fonctionne pas).
English: In the SGD formulation, every single weight in network is updated using an equation with the same learning rate (global γ). Here, for adaptive methods, we adapt a learning rate for each weight individually. For this purpose, the information we get from gradients for each weight is used.
French: Dans la formule de la SGD, chaque poids dans le réseau est mis à jour en utilisant une équation avec le même taux d’apprentissage global (γ). Ici, pour les méthodes adaptatives, nous adaptons un taux d’apprentissage pour chaque poids individuellement. À cette fin, nous utilisons les informations que nous obtenons des gradients pour chaque poids.
English: Networks that are often used in practice have different structure in different parts of them. For instance, early parts of CNN may be very shallow convolution layers on large images and later in the network we might have convolutions of large number of channels on small images. Both of these operations are very different so a learning rate which works well for the beginning of the network may not work well for the latter sections of the network. This means adaptive learning rates by layer could be useful.
French: Les réseaux souvent utilisés en pratique ont une structure différente dans plusieurs parties d’eux. Par exemple, les premières parties d’un ConvNet peuvent être des couches de convolution très peu profondes sur de grandes images et plus loin dans le réseau, nous pouvons avoir des convolutions d’un grand nombre de canaux sur de petites images. Ces deux opérations sont très différentes, de sorte qu’un taux d’apprentissage qui fonctionne bien pour le début du réseau peut ne pas fonctionner correctement pour les dernières parties du réseau. Cela signifie qu’un taux d’apprentissage adaptatif par couche pourrait être utile.
English: Weights in the latter part of the network (4096 in figure 1 below) directly dictate the output and have a very strong effect on it. Hence, we need smaller learning rates for those. In contrast, earlier weights will have smaller individual effects on the output, especially when initialized randomly.
French: Les poids dans la dernière partie du réseau (4096 dans la figure 1 ci-dessous) dictent directement la sortie et ont un effet très fort sur celle-ci. C’est pourquoi nous avons besoin de taux d’apprentissage plus faibles pour ces derniers. En revanche, les pondérations antérieures auront des effets individuels plus faibles sur la sortie, en particulier lorsqu’elles sont initialisées de manière aléatoire.
English: We update v to estimate this noisy quantity via an exponential moving average (which is a standard way of maintaining an average of a quantity that may change over time). We need to put larger weights on the newer values as they provide more information. One way to do that is down-weight old values exponentially. The values in the v calculation that are very old are down-weighted at each step by an α constant, which varies between 0 and 1. This dampens the old values until they are no longer an important part of the exponential moving average.
French: Nous mettons à jour v pour estimer cette quantité bruyante via une moyenne mobile exponentielle qui est une façon standard de maintenir une moyenne d’une quantité pouvant changer dans le temps. Nous devons accorder un poids plus important aux nouvelles valeurs car elles fournissent davantage d’informations. Une façon d’y parvenir est de pondérer les anciennes valeurs de manière exponentielle. Les valeurs très anciennes dans le calcul de v sont pondérées à chaque étape par une constante α, qui varie entre 0 et 1. Cela atténue les anciennes valeurs jusqu’à ce qu’elles ne soient plus une partie importante de la moyenne mobile exponentielle.
English: The original method keeps an exponential moving average of a non-central second moment, so we don’t subtract the mean here. The second moment is used to normalize the gradient element-wise, which means that every element of the gradient is divided by the square root of the second moment estimate. If the expected value of gradient is small, this process is similar to dividing the gradient by the standard deviation.
French: La méthode originale conserve une moyenne mobile exponentielle d’un second moment non central, donc nous ne soustrayons pas la moyenne ici. Le deuxième moment est utilisé pour normaliser par élément le gradient, ce qui signifie que chaque élément du gradient est divisé par la racine carrée de l’estimation du deuxième moment. Si la valeur attendue du gradient est faible, ce processus est similaire à la division du gradient par l’écart-type.
English: ADAM, or Adaptive Moment Estimation, which is RMSprop plus momentum, is a more commonly used method. The momentum update is converted to an exponential moving average and we don’t need to change the learning rate when we deal with β. Just as in RMSprop, we take an exponential moving average of the squared gradient here.
French: ADAM ou Adaptive Moment Estimation est une méthode couramment utilisée consistant en un RMSprop avec momentum. La mise à jour du momentum est convertie en une moyenne mobile exponentielle et nous n’avons pas besoin de changer le taux d’apprentissage lorsque nous traitons avec β. Tout comme pour RMSprop, nous prenons ici une moyenne mobile exponentielle du gradient au carré.
English: When training neural networks, SGD often goes in the wrong direction in the beginning of the training process, whereas RMSprop hones in on the right direction. However, RMSprop suffers from noise just as regular SGD, so it bounces around the optimum significantly once it’s close to a local minimizer. Just like when we add momentum to SGD, we get the same kind of improvement with ADAM. It is a good, not-noisy estimate of the solution, so ADAM is generally recommended over RMSprop.
French: Lors de l’entraînement des réseaux neuronaux, la SGD va souvent dans la mauvaise direction au début du processus, alors que RMSprop va dans la bonne direction. Cependant, RMSprop souffre du même bruit que la SGD normale, donc il rebondit autour de l’optimum de manière significative. Tout comme lorsque nous ajoutons un momentum à la SGD, nous obtenons le même type d’amélioration avec ADAM. C’est une bonne estimation, non bruyante, de la solution. Ainsi ADAM est généralement recommandé par rapport à RMSprop.
English: ADAM is necessary for training some of the networks for using language models. For optimizing neural networks, SGD with momentum or ADAM is generally preferred. However, ADAM’s theory in papers is poorly understood and it also has several disadvantages:
French: ADAM est nécessaire pour entraîner certains des modèles linguistiques. Pour optimiser les réseaux de neurones, il est généralement préférable d’utiliser la SGD avec momentum ou ADAM. Cependant, la théorie derrière ADAM est mal comprise et elle présente également plusieurs inconvénients :
English: It is known to give generalization errors. If the neural network is trained to give zero loss on the data you trained it on, it will not give zero loss on other data points that it has never seen before. It is quite common, particularly on image problems, that we get worse generalization errors than when SGD is used. Factors could include that it finds the closest local minimum, or less noise in ADAM, or its structure, for instance.
French: Elle est connue pour donner des erreurs de généralisation. Si le réseau est entraîné à donner une perte nulle sur les données sur lesquelles on l’a entraîné, il ne donnera pas une perte nulle sur d’autres données que le réseau n’aura jamais vus auparavant. Il est assez courant, en particulier pour les problèmes d’image, que nous obtenions des erreurs de généralisation pires que lorsque la SGD est utilisée. Cela peut venir du fait qu’il trouve le minimum local le plus proche, qu’il y ait moins de bruit dans ADAM, ou encore sa structure.
English: With ADAM we need to maintain 3 buffers, whereas SGD needs 2 buffers. This doesn’t really matter unless we train a model on the order of several gigabytes in size, in which case it might not fit in memory.
French: Avec ADAM, nous devons garder en mémoire 3 paramètres, alors que la SGD en a besoin que de 2. Cela n’a pas vraiment d’importance, à moins que nous n’entrainions un modèle de l’ordre de plusieurs giga-octets, auquel cas il pourrait ne pas tenir en mémoire.
English: Rather than improving the optimization algorithms, normalization layers improve the network structure itself. They are additional layers in between existing layers. The goal is to improve the optimization and generalization performance.
French: Plutôt que d’améliorer les algorithmes d’optimisation, les couches de normalisation améliorent la structure même du réseau. Il s’agit de couches supplémentaires entre les couches existantes. L’objectif est d’améliorer les performances d’optimisation et de généralisation.
English: In neural networks, we typically alternate linear operations with non-linear operations. The non-linear operations are also known as activation functions, such as ReLU. We can place normalization layers before the linear layers, or after the activation functions. The most common practice is to put them between the linear layers and activation functions, as in the figure below.
French: Dans les réseaux de neurones, nous alternons généralement des opérations linéaires et des opérations non linéaires. Les opérations non linéaires sont également connues sous le nom de fonctions d’activation, telles que la ReLU. Nous pouvons placer des couches de normalisation avant les couches linéaires ou après les fonctions d’activation. La pratique la plus courante consiste à les placer entre les couches linéaires et les fonctions d’activation comme dans la figure ci-dessous.
English: Note that the normalization layers affect the data that flows through, but they don’t change the power of the network in the sense that, with proper configuration of the weights, the unnormalized network can still give the same output as a normalized network.
French: Notons que les couches de normalisation affectent les données qui passent, mais elles ne modifient pas la puissance du réseau dans le sens où, avec une configuration appropriée des poids, le réseau non normalisé peut toujours donner le même résultat qu’un réseau normalisé.
English: where x is the input vector, y is the output vector, μ is the estimate of the mean of x, σ is the estimate of the standard deviation (std) of x, a is the learnable scaling factor, and b is the learnable bias term.
French: où x est le vecteur d’entrée, y est le vecteur de sortie, μ est l’estimation de la moyenne de x, σ est l’estimation de l’écart-type de x, a est le coefficient d’apprentissage et b est le terme de biais apprenant.
English: Without the learnable parameters a and bb, the distribution of output vector y will have fixed mean 0 and std 1. The scaling factor a and bias term bb maintain the representation power of the network,i.e.the output values can still be over any particular range. Note that a and bb do not reverse the normalization, because they are learnable parameters and are much more stable than μ and σσ.
French: Sans les paramètres d’apprentissage a et b, la distribution du vecteur de sortie y a une moyenne fixe de 0 et un écart-type de 1. Le coefficient a et le terme de biais b maintiennent le pouvoir de représentation du réseau, c’est-à-dire que les valeurs de sortie peuvent toujours être sur une plage particulière. A noter que a et b n’inversent pas la normalisation car ce sont des paramètres qui peuvent être appris et qui sont beaucoup plus stables que μ et σ.
English: There are several ways to normalize the input vector, based on how to select samples for normalization. Figure 4 lists 4 different normalization approaches, for a mini-batch of N images of height H and width W, with C channels:
French: Il existe plusieurs façons de normaliser le vecteur d’entrée, en fonction de la façon de sélectionner les échantillons à normaliser. La figure 4 énumère 4 approches de normalisation différentes, pour un mini-batch d’images N de hauteur H et de largeur W, avec des canaux C :
English: Batch norm: the normalization is applied only over one channel of the input. This is the first proposed and the most well-known approach. Please read How to Train Your ResNet 7: Batch Norm for more information.
French: Batch Normalisation : la normalisation n’est appliquée que sur un canal de l’entrée. C’est la première approche proposée et la plus connue. Nous vous invitons à consulter How to Train Your ResNet 7 : Batch Norm (en anglais) pour plus d’informations.
English: Group norm: the normalization is applied over one image but across a number of channels. For example, channel 0 to 9 is a group, then channel 10 to 19 is another group, and so on. In practice, the group size is almost always 32. This is the approach recommended by Aaron Defazio, since it has good performance in practice and it does not conflict with SGD.
French: Group norm : la normalisation est appliquée sur une seule image mais sur un certain nombre de canaux. Par exemple, le canal 0 à 9 est un groupe, puis le canal 10 à 19 est un autre groupe, et ainsi de suite. En pratique, la taille du groupe est presque toujours de 32. C’est l’approche recommandée par Aaron Defazio, puisqu’elle donne de bons résultats dans la pratique et qu’elle n’est pas en conflit avec la SGD.
English: Although normalization works well in practice, the reasons behind its effectiveness are still disputed. Originally, normalization is proposed to reduce “internal covariate shift”, but some scholars proved it wrong in experiments. Nevertheless, normalization clearly has a combination of the following factors:
French: Bien que la normalisation fonctionne bien dans la pratique, les raisons de son efficacité sont encore contestées. À l’origine, la normalisation est proposée pour réduire le déplacement interne des covariables, mais certains chercheurs ont prouvé qu’elle était erronée lors d’expériences. Néanmoins, la normalisation présente clairement une combinaison des facteurs suivants :
English: Networks with normalization layers are easier to optimize, allowing for the use of larger learning rates. Normalization has an optimization effect that speeds up the training of neural networks.
French: Les réseaux comportant des couches de normalisation sont plus faciles à optimiser, ce qui permet d’utiliser des taux d’apprentissage plus importants. La normalisation a un effet d’optimisation qui accélère l’entraînement des réseaux neuronaux.
English: The mean/std estimates are noisy due to the randomness of the samples in batch. This extra “noise” results in better generalization in some cases. Normalization has a regularization effect.
French: Les estimations de la moyenne/écart-type sont bruyantes en raison du caractère aléatoire des échantillons en batch. Ce « bruit » supplémentaire entraîne une meilleure généralisation dans certains cas. La normalisation a un effet de régularisation.
English: As a result, normalization lets you be more “careless” – you can combine almost any neural network building blocks together and have a good chance of training it without having to consider how poorly conditioned it might be.
French: Par conséquent, la normalisation permet d’être plus négligent au sens qu’il est possible de combiner presque tous les blocs constitutifs d’un réseau de neurones et avoir de bonnes chances de l’entraîner sans avoir à considérer son mauvais conditionnement.