lbourdois/en-fr-nyu-dl-course-corpus huggingface dataset:
English: Inspired by Fukushima’s work on visual cortex modelling, using the simple/complex cell hierarchy combined with supervised training and backpropagation lead to the development of the first CNN at University of Toronto in ‘88-‘89 by Prof. Yann LeCun. The experiments used a small dataset of 320 ‘mouser-written’ digits. Performances of the following architectures were compared:
French: Inspiré par les travaux de Fukushima sur la modélisation du cortex visuel, l’utilisation de la hiérarchie cellulaire simple/complexe combinée à l’entraînement supervisé et à la rétropropagation a conduit à la création du premier ConvNet à l’université de Toronto en 1988-89 par Yann. Les expériences reposaient sur un petit jeux de données de 320 chiffres écrits à la souris d’ordinateur. Les performances des architectures suivantes ont été comparées :
English: The most successful networks (constrained network with shared weights) had the strongest generalizability, and form the basis for modern CNNs. Meanwhile, singler FC layer tends to overfit.
French: Les réseaux les plus performants (réseau contraint avec poids partagés) ont la plus forte généralisabilité et constituent la base des ConvNets modernes. La couche FC unique a quant à elle tendance à faire du surentraînement (overfitting).
English: The next year, some changes were made: separate pooling was introduced. Separate pooling is done by averaging input values, adding a bias, and passing to a nonlinear function (hyperbolic tangent function). The 2×2 pooling was performed with a stride of 2, hence reducing resolutions by half.
French: L’année suivante, certains changements ont été apportés : un pooling séparé a été introduit. Le pooling séparé est réalisé en faisant la moyenne des valeurs en entrée, en ajoutant un biais et en passant à une fonction non linéaire (fonction tangente hyperbolique). Le pooling de taille 2×2 a été effectuée avec un pas de 2, réduisant ainsi les résolutions de moitié.
English: The first-layer, simple convolution/pool combinations usually detect simple features, such as oriented edge detections. After the first convolution/pool layer, the objective is to detect combinations of features from previous layers. To do this, steps 2 to 4 are repeated with multiple kernels over previous-layer feature maps, and are summed in a new feature map:
French: Les combinaisons simples convolution/pooling de la première couche détectent généralement des caractéristiques simples, telles que des bords orientés. Après la première couche de convolution/pooling, l’objectif est de détecter des combinaisons d’éléments des couches précédentes. Pour ce faire, les étapes 2 à 4 sont répétées avec plusieurs noyaux sur les cartes de caractéristiques des couches précédentes et sont additionnées dans une nouvelle carte de caractéristiques :
English: 1. A new 5×5 kernel is slid over all feature maps from previous layers, with results summed up. (Note: In Prof. LeCun’s experiment in 1989 the connection is not full for computation purpose. Modern settings usually enforce full connections): size 10×10
French: 1. Un nouveau noyau de 5×5 est glissé sur toutes les cartes de caractéristiques des couches précédentes, et les résultats sont additionnés. Note : dans l’expérience de Yann en 1989, la connexion n’est pas complète pour les calculs. Les paramètres modernes imposent généralement des connexions complètes : taille 10×10
English: As demonstrated by the animation on the slides (here’s another example), translating the input image results in same translation of the feature maps. However, the changes in feature maps are scaled by convolution/pooling operations. E.g. the 2×2 pooling with stride 2 will reduce the 1-pixel shift in input layer to 0.5-pixel shift in the following feature maps. Spatial resolution is then exchanged for increased number of feature types, i.e. making the representation more abstract and less sensitive to shifts and distortions.
French: Comme le montre l’animation, la translation de l’image d’entrée entraîne la même translation des cartes de caractéristiques. Cependant, les changements dans les cartes de caractéristiques sont mis à l’échelle par des opérations de convolution/pooling. Par exemple, le pooling 2×2 de pas 2 réduira le décalage de 1 pixel de la couche d’entrée à 0,5 pixel dans les cartes de caractéristiques suivantes. La résolution spatiale est alors échangée contre un plus grand nombre de types d’éléments, ce qui rend la représentation plus abstraite et moins sensible aux décalages et aux distorsions.
English: Although fc1 and fc2 are fully connected layers, they can be thought of as convolutional layers whose kernels cover the entire input. Fully connected layers are used for efficiency purposes.
French: Bien que fc1 et fc2 soient des couches entièrement connectées, elles peuvent être considérées comme des couches convolutionnelles dont les noyaux couvrent l’ensemble de l’entrée. Les couches entièrement connectées sont utilisées à des fins d’efficacité.
English: Consider a cursive hand-writing recognition system. We do not have to break the input image into segments. We can apply the CNN over the entire image: the kernels will cover all locations in the entire image and record the same output regardless of where the pattern is located. Applying the CNN over an entire image is much cheaper than applying it at multiple locations separately. No prior segmentation is required, which is a relief because the task of segmenting an image is similar to recognizing an image.
French: Prenons l’exemple d’un système de reconnaissance de l’écriture cursive. Il n’est pas nécessaire de diviser l’image d’entrée en segments. Nous pouvons appliquer le ConvNet sur toute l’image : les noyaux couvriront tous les emplacements de l’image entière et enregistreront la même sortie, quel que soit l’emplacement du motif. Appliquer le ConvNet sur une image entière est beaucoup moins coûteux que de l’appliquer à plusieurs endroits séparément. Aucune segmentation préalable n’est nécessaire, ce qui est un soulagement car la tâche de segmenter une image est similaire à la reconnaissance d’une image.
English: LeNet5 is trained on MNIST images of size 32×32 to classify individual digits in the center of the image. Data augmentation was applied by shifting the digit around, changing the size of the digit, inserting digits to the side. It was also trained with an 11-th category which represented none of the above. Images labelled by this category were generated either by producing blank images, or placing digits at the side but not the center.
French: LeNet5 est entraîné sur les images du jeu de données MNIST de taille 32×32 pour classer les chiffres individuels au center de l’image. L’augmentation des données a été appliquée en déplaçant le chiffre autour, en changeant la taille du chiffre, en insérant des chiffres sur le côté. Il a également été entraîné avec une 11ème catégorie qui ne représentait rien de ce qui précède. Les images étiquetées par cette catégorie ont été générées soit en produisant des images vierges, soit en plaçant des chiffres sur le côté mais pas au center.
English: The above image demonstrates that a LeNet5 network trained on 32×32 can be applied on a 32×64 input image to recognize the digit at multiple locations.
French: L’image ci-dessus montre qu’un réseau LeNet5 entraîné sur 32×32 peut être appliqué sur une image d’entrée 32×64 pour reconnaître le chiffre à plusieurs endroits.
English: Visual neural scientists and computer vision people have the problem of defining the object as an object. An object is a collection of features, but how to bind all of the features to form this object?
French: Les spécialistes des neurones visuels et de la vision par ordinateur ont le problème de définir l’objet comme un objet. Un objet est une collection de caractéristiques, mais comment lier toutes les caractéristiques pour former cet objet ?
English: We can solve this feature binding problem by using a very simple CNN: only two layers of convolutions with poolings plus another two fully connected layers without any specific mechanism for it, given that we have enough non-linearities and data to train our CNN.
French: Nous pouvons résoudre ce problème de liaison de caractéristiques en utilisant un ConvNet très simple : seulement deux couches de convolutions avec des poolings plus deux autres couches entièrement connectées sans mécanisme spécifique pour cela, étant donné que nous avons suffisamment de non-linéarités et de données pour entraîner notre ConvNet.
English: The above animation showcases the ability of CNN to recognize different digits by moving a single stroke around, demonstrating its ability to address feature binding problems, i.e. recognizing features in a hierarchical, compositional way.
French: L’animation ci-dessus montre la capacité du ConvNet à reconnaître différents chiffres en déplaçant un seul trait, ce qui démontre sa capacité à résoudre les problèmes de liaison des caractéristiques, c’est-à-dire à reconnaître les caractéristiques de manière hiérarchique et compositionnelle.
English: We can build a CNN with 2 convolution layers with stride 1 and 2 pooling layers with stride 2 such that the overall stride is 4. Thus, if we want to get a new output, we need to shift our input window by 4. To be more explicit, we can see the figure below (green units). First, we have an input of size 10, and we perform convolution of size 3 to get 8 units. After that, we perform pooling of size 2 to get 4 units. Similarly, we repeat the convolution and pooling again and eventually we get 1 output.
French: Nous pouvons construire un ConvNet avec 2 couches de convolution avec un pas de 1 et deux couches de pooling avec un pas de 2 de telle sorte que le pas global soit de 4. Ainsi, si nous voulons obtenir une nouvelle sortie, nous devons décaler notre fenêtre d’entrée de 4. Pour être plus explicite, nous pouvons voir la figure ci-dessous (unités vertes). Tout d’abord, nous avons une entrée de taille 10, et nous effectuons une convolution de taille 3 pour obtenir 8 unités. Ensuite, nous effectuons un pooling de taille 2 pour obtenir 4 unités. De même, nous répétons la convolution et le pooling et nous obtenons finalement une sortie de taille 1.
English: Let’s assume we add 4 units at the input layer (pink units above), so that we can get 4 more units after the first convolution layer, 2 more units after the first pooling layer, 2 more units after the second convolution layer, and 1 more output. Therefore, window size to generate a new output is 4 (2 stride ×2). Moreover, this is a demonstration of the fact that if we increase the size of the input, we will increase the size of every layer, proving CNNs’ capability in handling dynamic length inputs.
French: Supposons que nous ajoutions 4 unités à la couche d’entrée (unités roses au-dessus), de sorte que nous puissions obtenir 4 unités supplémentaires après la première couche de convolution, 2 unités supplémentaires après la première couche de pooling, 2 unités supplémentaires après la deuxième couche de convolution et 1 unité supplémentaire en sortie. Par conséquent, la taille de la fenêtre pour générer une nouvelle sortie est de 4 (deux fois 2 pas) . De plus, cela démontre que si nous augmentons la taille de l’entrée, nous augmenterons la taille de chaque couche, ce qui prouve la capacité des ConvNets à gérer les entrées de longueur dynamique.
English: 1. Locality: The first one is that there is a strong local correlation between values. If we take two nearby pixels of a natural image, those pixels are very likely to have the same colour. As two pixels become further apart, the similarity between them will decrease. The local correlations can help us detect local features, which is what the CNNs are doing. If we feed the CNN with permuted pixels, it will not perform well at recognizing the input images, while FC will not be affected. The local correlation justifies local connections.
French: 1. La localisation : la première est qu’il existe une forte corrélation locale entre les valeurs. Si nous prenons deux pixels proches d’une image naturelle, il est très probable que ces pixels aient la même couleur. Plus deux pixels sont éloignés l’un de l’autre, plus la similitude entre eux diminue. Les corrélations locales peuvent nous aider à détecter des caractéristiques locales, ce que font les ConvNets. Si nous alimentons le ConvNet avec des pixels permutés, il ne sera pas performant dans la reconnaissance des images d’entrée, tandis que le FC ne sera pas affecté. La corrélation locale justifie les connexions locales.
English: 2. Stationarity: Second character is that the features are essential and can appear anywhere on the image, justifying the shared weights and pooling. Moreover, statistical signals are uniformly distributed, which means we need to repeat the feature detection for every location on the input image.
French: 2. La stationnarité : le deuxième caractère est que les caractéristiques sont essentielles et peuvent apparaître n’importe où sur l’image, justifiant les partages des poids et le pooling. De plus, les signaux statistiques sont uniformément distribués, ce qui signifie que nous devons répéter la détection des caractéristiques pour chaque emplacement sur l’image d’entrée.
English: 3. Compositionality: Third character is that the natural images are compositional, meaning the features compose an image in a hierarhical manner. This justifies the use of multiple layers of neurons, which also corresponds closely with Hubel and Weisel’s research on simple and complex cells.
French: 3. La compostionnalité : le troisième caractère est que les images naturelles sont compositionnelles, ce qui signifie que les caractéristiques composent une image de manière hiératique. Cela justifie l’utilisation de plusieurs couches de neurones, ce qui correspond aussi étroitement aux recherches de Hubel et Weisel sur les cellules simples et complexes.
English: All signals can be thought of as vectors. As an example, an audio signal is a 1D signal x=[x1​,x2​,⋯,xT​] where each value xt represents the amplitude of the waveform at time t. To make sense of what someone is speaking, your cochlea first converts the air pressure vibrations to signals and then your brain uses a language model to convert this signal to a language i.e. it needs to pick the most probable utterance given the signal. For music, the signal is stereophonic which has 2 or more channels to give you an illusion that the sound is coming from multiple directions. Even though it has 2 channels, it’s still a 1D signal because time is the only variable along which the signal is changing.
French: Tous les signaux peuvent être considérés comme des vecteurs. Par exemple, un signal audio est un signal 1D x=[x1​,x2​,⋯,xT​] où chaque valeur xt​ représente l’amplitude de la forme d’onde au moment tt. Pour comprendre ce que dit une personne, votre cochlée convertit d’abord les vibrations de la pression atmosphérique en signaux, puis votre cerveau utilise un modèle linguistique pour convertir ce signal en une langue, c’est-à-dire qu’il doit choisir l’énoncé le plus probable compte tenu du signal. Pour la musique, le signal est stéréophonique et possède 2 canaux ou plus pour vous donner l’illusion que le son provient de plusieurs directions. Même s’il a 2 canaux, c’est toujours un signal 1D car le temps est la seule variable le long de laquelle le signal change.
English: An image is a 2D signal because the information is spatially depicted. Note that each point can be a vector in itself. This means that if we have d channels in an image, each spatial point in the image is a vector of dimension d. A color image has RGB planes, which means d=3. For any point xi,j this corresponds to the intensity of red, green and blue colors respectively.
French: Une image est un signal 2D parce que l’information est représentée dans l’espace. Notez que chaque point peut être un vecteur en soi. Cela signifie que si nous avons des canaux d dans une image, chaque point spatial dans l’image est un vecteur de dimension d. Une image couleur a des plans RVB, ce qui signifie d=3. Pour tout point xi,j, cela correspond à l’intensité des couleurs rouge, verte et bleue respectivement.
English: We can even represent language with the above logic. Each word corresponds to a one-hot vector with one at the position it occurs in our vocabulary and zeroes everywhere else. This means that each word is a vector of the size of the vocabulary.
French: Nous pouvons même représenter le langage avec la logique ci-dessus. Chaque mot correspond à un vecteur one-hot avec un à la position où il se trouve dans notre vocabulaire et des zéros partout ailleurs. Cela signifie que chaque mot est un vecteur de la taille du vocabulaire.
English: 1. Stationarity: Certain motifs repeat throughout a signal. In audio signals, we observe the same type of patterns over and over again across the temporal domain. In images, this means that we can expect similar visual patterns repeat across the dimensionality.
French: 1. Stationnarité : certains motifs se répètent tout au long d’un signal. Dans les signaux audio, nous observons le même type de motifs encore et encore dans le domaine temporel. Dans les images, cela signifie que nous pouvons nous attendre à ce que des motifs visuels similaires se répètent dans toute la dimensionnalité.
English: 2. Locality: Nearby points are more correlated than points far away. For 1D signal, this means that if we observe a peak at some point ti​, we expect the points in a small window around ti to have similar values as titi​ but for a point tj​ far away from ti​, xti​​ has very less bearing on xtj​​. More formally, the convolution between a signal and its flipped counterpart has a peak when the signal is perfectly overlapping with it’s flipped version. A convolution between two 1D signals (cross-correlation) is nothing but their dot product which is a measure of how similar or close the two vectors are. Thus, information is contained in specific portions and parts of the signal. For images, this means that the correlation between two points in an image decreases as we move the points away. If x0,0​ pixel is blue, the probability that the next pixel (x1,0) is also blue is pretty high but as you move to the opposite end of the image (x−1,−1​), the value of this pixel is independent of the pixel value at x0,0​.
French: 2. Localité : les points proches sont plus corrélés que les points éloignés. Pour un signal 1D, cela signifie que si nous observons un pic à un certain point ti​, nous nous attendons à ce que les points dans une petite fenêtre autour de ti​ aient des valeurs similaires à ti​ mais pour un point tj éloigné de ti​, xti​​ a très peu d’influence sur xtj​​. Plus formellement, la convolution entre un signal et son homologue inversé a un pic lorsque le signal chevauche parfaitement sa version inversée. Une convolution entre deux signaux 1D (corrélation croisée) n’est rien d’autre que leur produit scalaire, qui est une mesure de la similarité ou de la proximité des deux vecteurs. Ainsi, l’information est contenue dans des portions et des parties spécifiques du signal. Pour les images, cela signifie que la corrélation entre deux points dans une image diminue à mesure que l’on s’éloigne des points. Si le pixel x0,0​ est bleu, la probabilité que le pixel suivant (x1,0,x0,1​) soit également bleu est assez élevée, mais lorsque l’on se déplace vers l’extrémité opposée de l’image (x−1,−1​), la valeur de ce pixel est indépendante de la valeur du pixel à x0,0​.
English: 3. Compositionality: Everything in nature is composed of parts that are composed of sub-parts and so on. As an example, characters form strings that form words, which further form sentences. Sentences can be combined to form documents. Compositionality allows the world to be explainable.
French: 3. Compositionnalité : tout dans la nature est composé de parties qui sont composées de sous-parties et ainsi de suite. Par exemple, les caractères forment des chaînes de caractères qui forment des mots, qui forment ensuite des phrases. Les phrases peuvent être combinées pour former des documents. La compositionnalité permet d’expliquer le monde.
English: Fig.1 shows a 5-layer fully connected network. Each arrow represents a weight to be multiplied by the inputs. As we can see, this network is very computationally expensive.
French: La figure 1 montre un réseau à 5 couches entièrement connecté. Chaque flèche représente un poids à multiplier par les entrées. Comme on peut le voir, ce réseau est très coûteux en termes de calcul.
English: If our data exhibits locality, each neuron needs to be connected to only a few local neurons of the previous layer. Thus, some connections can be dropped as shown in Fig.2. Fig.2(a) represents an FC network. Taking advantage of the locality property of our data, we drop connections between far away neurons in Fig.2(b). Although the hidden layer neurons (green) in Fig.2(b) don’t span the whole input, the overall architecture will be able to account for all input neurons. The receptive field (RF) is the number of neurons of previous layers, that each neuron of a particular layer can see or has taken into account. Therefore, the RF of the output layer w.r.t the hidden layer is 3, RF of the hidden layer w.r.t the input layer is 3, but the RF of the output layer w.r.t the input layer is 5.
French: Si nos données montrent une localité, chaque neurone doit être connecté à seulement quelques neurones locaux de la couche précédente. Ainsi, certaines connexions peuvent être supprimées comme le montre la figure 2. La figure 2(a) représente un réseau entièrement connecté. En profitant de la propriété de localisation de nos données, nous supprimons les connexions entre les neurones éloignés dans la figure 2(b). Bien que les neurones de la couche cachée (vert) de la figure 2(b) ne couvrent pas la totalité de l’entrée, l’architecture globale pourra prendre en compte tous les neurones d’entrée. Le champ réceptif (abrégé RF pour receptive field en anglais) est le nombre de neurones des couches précédentes, que chaque neurone d’une couche particulière peut voir ou a pris en compte. Par conséquent, le RF de la couche de sortie est de 3 pour la couche cachée, le RF de la couche cachée est de 3 pour la couche d’entrée, mais le RF de la couche de sortie est de 5 pour la couche d’entrée.
English: If our data exhibits stationarity, we could use a small set of parameters multiple times across the network architecture. For example in our sparse network, Fig.3(a), we can use a set of 3 shared parameters (yellow, orange and red). The number of parameters will then drop from 9 to 3! The new architecture might even work better because we have more data for training those specific weights. The weights after applying sparsity and parameter sharing is called a convolution kernel.
French: Si nos données sont stationnaires, nous pourrions utiliser un petit ensemble de paramètres plusieurs fois dans l’architecture du réseau. Par exemple, dans notre réseau épars, figure 3(a), nous pouvons utiliser un ensemble de 3 paramètres partagés (jaune, orange et rouge). Le nombre de paramètres passera alors de 9 à 3 ! La nouvelle architecture pourrait même fonctionner mieux car nous disposons de plus de données pour l’entraînement de ces poids spécifiques. Les poids après avoir appliqué l’éparsité et le partage des paramètres sont appelés noyau de convolution.
English: Fig.4 shows an example of kernels on 1D data, where the kernel size is: 2(number of kernels) * 7(thickness of the previous layer) * 3(number of unique connections/weights).
French: La figure 4 montre un exemple de noyaux sur des données 1D, où la taille du noyau est : 2 (nombre de noyaux) × 7 (épaisseur de la couche précédente) × 3 (nombre de connexions/poids uniques).