lbourdois/en-fr-nyu-dl-course-corpus huggingface dataset:
English: We set up fixed_noise of size opt.batchSize and length of random vector nz. We also create labels for real data and generated (fake) data called real_label and fake_label, respectively.
French: Nous mettons en place un fixed_noise de taille opt.batchSize et de longueur du vecteur aléatoire nz. Nous créons également des labels pour les données réelles et les données générées (fausses) appelées respectivement real_label et fake_label.
English: Step 1 is to update the discriminator network. This is done in two parts. First, we feed the discriminator real data coming from dataloaders, compute the loss between the output and real_label, and then accumulate gradients with backpropagation. Second, we feed the discriminator data generated by the generator network using the fixed_noise, compute the loss between the output and fake_label, and then accumulate the gradient. Finally, we use the accumulated gradients to update the parameters for the discriminator network.
French: L’étape 1 consiste à mettre à jour le réseau discriminateur. Elle se fait en deux parties. Tout d’abord, on alimente le discriminateur en données réelles provenant des dataloaders, on calcule la perte entre la sortie et le real_label, puis on accumule des gradients avec la rétropropagation. Deuxièmement, nous alimentons le discriminateur en données générées par le réseau générateur en utilisant le fixed_noise, nous calculons la perte entre la sortie et le fake_label, et ensuite nous accumulons le gradient. Enfin, nous utilisons les gradients accumulés pour mettre à jour les paramètres du réseau discriminateur.
English: Also note that we only need to call zero_grad() once in the beginning to clear the gradients so the gradients from both the real and fake data can be used for the update. The two .backward() calls accumulate these gradients. We finally only need one call of optimizerD.step() to update the parameters.
French: A noter également que nous n’avons besoin d’appeler zero_grad() qu’une seule fois au début pour effacer les gradients afin que les gradients des données réelles et fausses puissent être utilisés pour la mise à jour. Les deux appels .backward() accumulent ces gradients. Nous n’avons finalement besoin que d’un seul appel de optimizerD.step() pour mettre à jour les paramètres.
English: Step 2 is to update the Generator network. This time, we feed the discriminator the fake data, but compute the loss with the real_label! The purpose of doing this is to train the generator to make realistic x^’s.
French: L’étape 2 consiste à mettre à jour le réseau générateur. Cette fois, nous alimentons le discriminateur en fausses données, mais nous calculons la perte avec le real_label ! Le but de cette opération est d’entraîner le générateur à faire des x^ réalistes.
English: In this section, we understand the motivation behind Self-Supervised Learning (SSL), define what it is and see some of its applications in NLP and Computer Vision. We understand how pretext tasks aid with SSL and see some example pretext tasks in images, videos and videos with sound. Finally, we try to get an intuition behind the representation learned by pretext tasks.
French: Dans cette section, nous voyons la motivation qui sous-tend l’apprentissage autosupervisé. Nous le définissons et voyons certaines de ses applications en traitement du langage naturel et en vision par ordinateur. Nous comprenons comment les tâches de prétexte aident en apprentissage autosupervisé et voyons quelques exemples de ces tâches en images, vidéos et vidéos avec son. Enfin, nous essayons d’avoir une intuition de la représentation apprise par les tâches de prétexte.
English: In this section, we discuss the shortcomings of pretext tasks, define characteristics that make a good pretrained feature, and how we can achieve this using Clustering and Contrastive Learning. We then learn about ClusterFit, its steps and performance. We further dive into a specific simple framework for Contrastive Learning known as PIRL. We discuss its working as well as its evaluation in different contexts.
French: Dans cette section, nous discutons des lacunes des tâches de prétexte, nous définissons les éléments qui font une bonne caractéristique pré-entraînée et comment nous pouvons y parvenir en utilisant le clustering et l’apprentissage contrastif. Nous en apprenons ensuite davantage sur le modèle ClusterFit, ses étapes et ses performances. Nous nous plongeons ensuite dans PIRL, un cadre simple et spécifique pour l’apprentissage contrastif. Nous discutons de son fonctionnement ainsi que de son évaluation dans différents contextes.
English: During this week’s practicum, we explore the Truck Backer-Upper (Nguyen & Widrow, ‘90). This problem shows how to solve an non-linear control problem using neural networks. We learn a model of a truck’s kinematics, and optimize a controller through this learned model, finding that the controller is able to learn complex behaviors through purely observational data.
French: Nous explorons le Truck Backer-Upper de Nguyen & Widrow (1990). Ce problème montre comment résoudre un problème de contrôle non-linéaire en utilisant des réseaux de neurones. Nous apprenons un modèle de la cinématique du camion et optimisons un contrôleur grâce à ce modèle, en constatant que le contrôleur est capable d’apprendre des comportements complexes grâce à des données purement observationnelles.
English: In the past decade, one of the major success recipes for many different Computer Vision problems has been learning visual representations by performing supervised learning for ImageNet classification. And, using these learned representations, or learned model weights as initialization for other computer vision tasks, where a large quantum of labelled data might not be available.
French: Au cours de la dernière décennie, l’une des principales approches ayant eu du succès pour de nombreux problèmes de vision par ordinateur a été l’apprentissage des représentations visuelles en effectuant un apprentissage supervisé sur ImageNet. Les représentations et les poids alors appris ont pu être réutilisé comme initialisation pour d’autres tâches de vision par ordinateur où un grand nombre de données étiquetées pouvaient ne pas être disponibles.
English: However, getting annotations for a dataset of the magnitude of ImageNet is immensely time-consuming and expensive. Example: ImageNet labelling with 14M images took roughly 22 human years.
French: Cependant, annoter un jeu de données de l’ampleur d’ImageNet est extrêmement long et coûteux. Par exemple l’étiquetage d’ImageNet avec 14 millions d’images a pris environ 22 années humaines.
English: Because of this, the community started to look for alternate labelling processes, such as hashtags for social media images, GPS locations, or self-supervised approaches where the label is a property of the data sample itself.
French: C’est pourquoi la communauté a commencé à chercher d’autres procédés d’étiquetage, comme les mots-dièse pour les images des médias sociaux, les localisations GPS ou les approches autosupervisées où le label est une propriété de l’échantillon de données lui-même.
English: Hence, drawing from the fact that ImageNet specific annotation alone took 22 human years worth of time, scaling labelling to all internet photos or beyond is completely infeasible.
French: Par conséquent, si l’on considère que l’annotation d’ImageNet a pris à elle seule 22 années humaines, il est totalement impossible de mettre à l’échelle l’étiquetage de toutes les photos sur Internet ou au-delà.
English: Generally, the plot presenting distribution of the labels for internet images looks like a long tail. That is, most of the images correspond to very few labels, while there exist a large number of labels for which not many images are present. Thus, getting annotated samples for categories towards the end of the tail requires huge quantities of data to be labelled because of the nature of the distribution of categories.
French: En général, la distribution des labels pour les images disponibles sur internet ressemble à une longue queue. C’est-à-dire que la plupart des images correspondent à très peu de labels, alors qu’il existe un grand nombre de labels pour lesquelles peu d’images sont présentes. Ainsi, pour obtenir des échantillons annotés pour les catégories vers la fin de la queue, il faut étiqueter d’énormes quantités de données en raison de la nature de la distribution des catégories.
English: This method of ImageNet pre-training and fine-tuning on downstream task gets even murkier when the downstream task images belong to a completely different domain, such as medical imaging. And, obtaining a dataset of the quantum of ImageNet for pre-training for different domains is not possible.
French: Cette méthode de pré-entraînement et de finetuning d’ImageNet sur les tâches en aval devient encore plus obscure lorsque les images des tâches en aval appartiennent à un domaine complètement différent, comme l’imagerie médicale.
English: Prediction problem, where a part of the data is hidden, and rest visible. Hence, the aim is to either predict the hidden data or to predict some property of the hidden data.
French: En voyant la tâche comme un problème de prédiction où une partie des données est cachée et le reste visible. L’objectif est soit de prédire les données cachées, soit de prédire certaines propriétés des données cachées.
English: The pretext task is the self-supervised learning task solved to learn visual representations, with the aim of using the learned representations or model weights obtained in the process, for the downstream task.
French: La tâche prétexte est la tâche d’apprentissage autosupervisée résolue pour apprendre des représentations visuelles, dans le but d’utiliser les représentations apprises ou les poids de modèle obtenus dans le processus, pour la tâche en aval.
English: We can evaluate the effectiveness of the learned visual representations by checking nearest neighbours for a given image patch basis feature representations provided by the network. For computing nearest neighbours of a given image patch,
French: Nous pouvons évaluer l’efficacité des représentations visuelles apprises en vérifiant chez les voisins les plus proches les représentations des caractéristiques de base d’un patch d’image donné fournies par le réseau. Pour calculer les voisins les plus proches d’une image donnée :
English: Relative position task finds out image patches that are very similar to the input image patch, while maintains invariance to factors such as object colour. Thus, the relative position task is able to learn visual representations, where representations for image patches with similar visual appearance are closer in the representation space as well.
French: La tâche de position relative permet de trouver des zones d’image très similaires à la zone d’image d’entrée, tout en maintenant l’invariance de facteurs tels que la couleur de l’objet. Ainsi, la tâche de position relative est capable d’apprendre des représentations visuelles, où les représentations pour des taches d’image avec un aspect visuel similaire sont également plus proches dans l’espace de représentation.
English: We apply rotations of 0, 90, 180, 270 degrees to the image and send these rotated images to the network to predict what sort of rotation was applied to the image and the network simply performs a 4-way classification to predict the rotation.
French: Nous appliquons des rotations de 0, 90, 180, 270 degrés à l’image et nous envoyons ces images au réseau pour prédire quel type de rotation a été appliqué à l’image. Le réseau effectue simplement une classification à 4 classes pour prédire la rotation.
English: Predicting rotations does not make any semantic sense, we are just using this pretext task as a proxy to learn some features and representations to be used in a downstream task.
French: La prédiction des rotations n’a aucun sens sémantique, nous utilisons simplement cette tâche prétexte comme un proxy pour apprendre certaines caractéristiques et représentations à utiliser dans une tâche en aval.
English: It has been proven that it works empirically. The intuition behind it is that in order to predict the rotations, model needs to understand the rough boundaries and representation of an image. For example, it will have to segregate the sky from water or sand from the water or will understand that trees grow upwards and so on.
French: Il a été prouvé qu’elle fonctionne de manière empirique. L’intuition qui sous-tend cette méthode est que pour prédire les rotations, le modèle doit comprendre les limites approximatives et la représentation d’une image. Par exemple, il devra séparer le ciel de l’eau ou le sable de l’eau ou comprendre que les arbres poussent vers le haut, etc.
English: In this pretext task, we predict the colours of a grey image. It can be formulated for any image, we just remove the colour and feed this greyscale image to the network to predict its colour. This task is useful in some respects like for colourising the old greyscale films (we can apply this pretext task). The intuition behind this task is that the network needs to understand some meaningful information like that the trees are green, the sky is blue and so on.
French: Dans cette tâche de prétexte, on prédit les couleurs d’une image grise. Elle peut être formulée pour n’importe quelle image, il suffit d’enlever la couleur et de donner cette image en niveaux de gris au réseau pour prédire sa couleur. Cette tâche est utile à certains égards, comme pour coloriser les vieux films en niveaux de gris. L’intuition derrière cette tâche est que le réseau doit comprendre certaines informations significatives comme le fait que les arbres sont verts, le ciel est bleu, etc.
English: It is important to note that colour mapping is not deterministic, and several possible true solutions exist. So, for an object if there are several possible colours then the network will colour it as grey which is the mean of all possible solutions. There have been recent works using Variational Auto Encoders and latent variables for diverse colourisation.
French: Il est important de noter que l’association des couleurs n’est pas déterministe, et que plusieurs vraies solutions existent. Ainsi, pour un objet, s’il y a plusieurs couleurs possibles, le réseau le colorera en gris, ce qui est la moyenne de toutes les solutions possibles. Des travaux récents ont utilisé des auto-encodeurs variationnels et des variables latentes pour diverses colorisations.
English: We hide a part of an image and predict the hidden part from the remaining surrounding part of the image. This works because the network will learn the implicit structure of the data like to represent that cars run on roads, buildings are composed of windows & doors and so on.
French: Nous cachons une partie d’une image et nous prédisons la partie cachée de la partie restante de l’image qui l’entoure. Cela fonctionne parce que le réseau apprend la structure implicite des données, par exemple pour représenter le fait que les voitures roulent sur les routes, que les bâtiments sont composés de fenêtres et de portes, etc.
English: Videos are composed of sequences of frames and this notion is the idea behind self-supervision, which can be leveraged for some pretext tasks like predicting the order of frames, fill in the blanks and object tracking.
French: Les vidéos sont composées de séquences d’images et cette notion est l’idée qui sous-tend l’autosupervision, qui peut être mise à profit pour certaines tâches de prétexte comme la prédiction de l’ordre des images, le remplissage des blancs et le suivi des objets.
English: Given a bunch of frames, we extract three frames and if they are extracted in the right order we label it as positive, else if they are shuffled, label it as negative. This now becomes a binary classification problem to predict if the frames are in the right order or not. So, given a start and end point, we check if the middle is a valid interpolation of the two.
French: Lorsque nous avons plusieurs images, nous en extrayons trois et si elles sont extraites dans le bon ordre, nous les qualifions de positives. Dans le cas où elles sont mélangées, nous les qualifions de négatives. Cela devient alors un problème de classification binaire pour prédire si les images sont dans le bon ordre ou non. Ainsi, en donnant un point de départ et un point d’arrivée, nous vérifions si le milieu est une interpolation valide des deux.
English: We can use a triplet Siamese network, where the three frames are independently fed forward and then we concatenate the generated features and perform the binary classification to predict if the frames are shuffled or not.
French: Nous pouvons utiliser un réseau siamois en triplet, où les trois images sont transmises indépendamment, puis nous concaténons les caractéristiques générées et effectuons la classification binaire pour prédire si les images sont mélangées ou non.
English: Again, we can use the Nearest Neighbours algorithm to visualize what our networks are learning. In fig. 9 above, first we have a query frame which we feed-forward to get a feature representation and then look at the nearest neighbours in the representation space. While comparing, we can observe a stark difference between neighbours obtained from ImageNet, Shuffle & Learn and Random.
French: Là encore, nous pouvons utiliser l’algorithme des plus proches voisins pour visualiser ce que nos réseaux apprennent. Dans la figure 9 ci-dessus, nous avons d’abord une image requête que nous donnons au réseau pour obtenir une représentation des caractéristiques, puis nous regardons les voisins les plus proches dans l’espace de représentation. En comparant, nous pouvons observer une différence marquée entre les voisins obtenus à partir d’ImageNet, de Shuffle & Learn et de Random.
English: ImageNet is good at collapsing the entire semantic as it could figure out that it is a gym scene for the first input. Similarly, it could figure out that it is an outdoor scene with grass etc. for the second query. Whereas, when we observe Random we can see that it gives high importance to the background colour.
French: ImageNet est capable de réduire l’ensemble de la sémantique, car il comprend qu’il s’agit d’une scène de gymnastique pour la première entrée. De même, il peut comprendre qu’il s’agit d’une scène de plein air avec de l’herbe, etc. pour la deuxième requête. En revanche, lorsque nous observons Random, nous pouvons voir qu’il accorde une grande importance à la couleur de l’arrière-plan.
English: On observing Shuffle & Learn, it is not immediately clear whether it is focusing on the colour or on the semantic concept. After further inspection and observing various examples, it was observed that it is looking at the pose of the person. For example, in the first image the person is upside down and in second the feet are in a particular position similar to query frame, ignoring the scene or background colour. The reasoning behind this is that our pretext task was predicting whether the frames are in the right order or not, and to do this the network needs to focus on what is moving in the scene, in this case, the person.
French: En observant Shuffle & Learn, il n’est pas immédiatement possible de savoir s’il se concentre sur la couleur ou sur le concept sémantique. Après une inspection plus poussée et l’observation de divers exemples, on a constaté qu’il s’agit de la pose de la personne. Par exemple, dans la première image, la personne est à l’envers et dans la seconde, les pieds sont dans une position particulière similaire à celle du cadre de la requête, ignorant la couleur de la scène ou de l’arrière-plan. Le raisonnement est de notre tâche de prétexte était de prédire si les images sont dans le bon ordre ou non, et pour ce faire, le réseau doit se concentrer sur ce qui bouge dans la scène, dans ce cas, la personne.
English: It was verified quantitatively by fine-tuning this representation to the task of human key-point estimation, where given a human image we predict where certain key points like nose, left shoulder, right shoulder, left elbow, right elbow, etc. are. This method is useful for tracking and pose estimation.
French: Cela a été vérifié quantitativement en ajustant cette représentation à la tâche d’estimation des points clés humains, où, étant donné une image humaine, nous prédisons où se trouvent certains points clés comme le nez, l’épaule gauche, l’épaule droite, le coude gauche, le coude droit, etc. Cette méthode est utile pour le suivi et l’estimation de la pose.
English: In figure 10, we compare the results for supervised ImageNet and Self-Supervised Shuffle & Learn on FLIC and MPII datasets and we can see that Shuffle and Learn gives good results for key point estimation.
French: Dans la figure 10, nous comparons les résultats d’ImageNet supervisé et de Shuffle & Learn autosupervisé sur les jeux de données FLIC et MPII. Nous pouvons voir que Shuffle & Learn donne de bons résultats pour l’estimation des points clés.
English: Video and Sound are multi-modal where we have two modalities or sensory inputs one for video and one for sound. Where we try to predict whether the given video clip corresponds to the audio clip or not.
French: La vidéo et le son sont multimodaux, c’est-à-dire que nous avons deux modalités ou entrées sensorielles, une pour la vidéo et une pour le son. Nous essayons de prédire si le clip vidéo donné correspond ou non au clip audio.
English: Given a video with audio of a drum, sample the video frame with corresponding audio and call it a positive set. Next, take the audio of a drum and the video frame of a guitar and tag it as a negative set. Now we can train a network to solve this as a binary classification problem.
French: Dans le cas d’une vidéo avec le son d’un tambour, nous échantillons la vidéo en images avec le son correspondant et nous appelons ça un ensemble positif. Ensuite, nous prenons l’audio d’une batterie et l’image d’une guitare et les marquons comme un ensemble négatif. Nous pouvons maintenant entraîner un réseau à résoudre ce problème de classification binaire.
English: Architecture: Pass the video frames to the vision subnetwork and pass the audio to the audio subnetwork, which gives 128-dimensional features and embeddings, we then fuse them together and solve it as a binary classification problem predicting if they correspond with each other or not.
French: Architecture : nous passons les images vidéo au sous-réseau de vision et l’audio au sous-réseau audio, ce qui donne des caractéristiques et des enchâssements en 128 dimensions. Nous les fusionnons et résolvons comme un problème de classification binaire prédisant si elles correspondent ou non entre elles.
English: It can be used to predict what in the frame might be making a sound. The intuition is if it is the sound of a guitar, the network roughly needs to understand how the guitar looks and same should be true for drums.
French: Cela peut être utilisé pour prédire ce qui, dans l’image, pourrait produire un son. L’intuition est que s’il s’agit du son d’une guitare, le réseau doit comprendre l’aspect de la guitare. Même logique pour la batterie.
English: Let’s take for example the pretext tasks Relative Position and Colourisation. We can boost performance by training a model to learn both pretext tasks as shown below:
French: Prenons par exemple les tâches de prétexte Position relative et Colorisation. Nous pouvons améliorer les performances en entraînant un modèle pour apprendre les deux tâches de prétexte comme indiqué ci-dessous :
English: For example: A batch of black-and-white images is fed to the network in which the model is to produce a coloured image. Then, the final layer is switched, and given a batch of patches to predict relative position.
French: Par exemple : un batch d’images en noir et blanc est envoyé au réseau dans lequel le modèle doit produire une image en couleur. Ensuite, la couche finale est permutée et reçoit un batch de patchs pour prédire la position relative.