lbourdois/en-fr-nyu-dl-course-corpus huggingface dataset:
English: The deep learning (though the term was not used at that time) revolution started in 2010-2013. Researchers focused on inventing algorithms that could help train large CNNs faster. Krizhevsky (2012) came up with AlexNet, which was a much larger CNN than those used before, and trained it on ImageNet (1.3 million samples) using GPUs. After running for a couple of weeks AlexNet beat the performance of the best competing systems by a large margin – a 25.8% vs. 16.4% top-5 error rate.
French: La révolution de l’apprentissage profond (bien que le terme ne soit pas utilisé à l’époque) a commencé en 2010-2013. Les chercheurs se sont concentrés sur l’invention d’algorithmes qui pourraient aider à entraîner plus rapidement les gros ConvNets. Krizhevsky (2012) a conçu AlexNet, qui était un ConvNet beaucoup plus grand que ceux utilisés auparavant, et l’a entraîné sur ImageNet (1,3 million d’échantillons) en utilisant des GPUs. Après quelques semaines de fonctionnement, AlexNet a largement dépassé les performances des meilleurs systèmes concurrents avec un taux d’erreur pour les 5 premières sorties du modèle (Top-5 error rate) de 16,4% contre 25,8% pour les autres.
English: After seeing AlexNet’s success, the computer vision (CV) community was convinced that CNNs work. While all papers from 2011-2012 that mentioned CNNs had been rejected, since 2016 most accepted CV papers use CNNs.
French: Après avoir vu le succès d’AlexNet, la communauté de la vision par ordinateur (souvent abrégée en CV en anglais pour Computer Vision) a été convaincue que les ConvNets fonctionnent. Alors que tous les articles de 2011-2012 mentionnant les ConvNets étaient alors rejetés, depuis 2016 la plupart des papiers acceptés utilisent les ConvNets.
English: Over the years, the number of layers used has been increasing: LeNet – 7, AlexNet – 12, VGG – 19, ResNet – 50. However, there is a trade-off between the number of operations needed to compute the output, the size of the model, and its accuracy. Thus, a popular topic now is how to compress the networks to make the computations faster.
French: Au fil des ans, le nombre de couches utilisées a augmenté : 7 pour LeNet, 12 pour AlexNet, 19 pour VGG, 50 pour ResNet. Toutefois, il y a un compromis à faire entre le nombre d’opérations nécessaires pour calculer le résultat, la taille du modèle et sa précision. Ainsi, un sujet actuellement populaire est de savoir comment comprimer les réseaux pour rendre les calculs plus rapides.
English: Multilayer networks are successful because they exploit the compositional structure of natural data. In compositional hierarchy, combinations of objects at one layer in the hierarchy form the objects at the next layer. If we mimic this hierarchy as multiple layers and let the network learn the appropriate combination of features, we get what is called Deep Learning architecture. Thus, Deep Learning networks are hierarchical in nature.
French: Les réseaux multicouches ont du succès parce qu’ils exploitent la structure des données naturelles (la parole, les images, le texte). Dans la hiérarchie des compositions, les combinaisons d’objets à une couche de la hiérarchie forment les objets de la couche suivante. Si nous imitons cette hiérarchie sous forme de couches multiples et que nous laissons le réseau apprendre la combinaison de caractéristiques appropriée, nous obtenons ce que l’on appelle l’architecture d’apprentissage profond. Ainsi, les réseaux d’apprentissage profond sont de nature hiérarchique.
English: Deep learning architectures have led to an incredible progress in computer vision tasks ranging from identifying and generating accurate masks around the objects to identifying spatial properties of an object. Mask-RCNN and RetinaNet architectures mainly led to this improvement.
French: Les architectures d’apprentissage profond ont conduit à un progrès incroyable dans les tâches de vision par ordinateur, allant de l’identification et de la génération de masques précis autour d’objets à l’identification des propriétés spatiales d’un objet. Les architectures Mask-RCNN et RetinaNet ont principalement conduit à cette amélioration.
English: Mask RCNNs have found their use in segmenting individual objects, i.e. creating masks for each object in an image. The input and output are both images. The architecture can also be used to do instance segmentation, i.e. identifying different objects of the same type in an image. Detectron, a Facebook AI Research (FAIR) software system, implements all these state-of-the-art object detection algorithms and is open source.
French: Mask-RCNN est utilité dans la segmentation d’objets individuels, c’est-à-dire la création de masques pour chaque objet d’une image. L’entrée et la sortie sont toutes deux des images. L’architecture peut également être utilisée pour faire de la segmentation d’instance, c’est-à-dire identifier différents objets du même type dans une image. Detectron, un système logiciel de Facebook AI Research (FAIR), met en œuvre tous ces algorithmes de détection d’objets de pointe et est open source.
English: Although the science and mathematics behind deep learning is fairly understood, there are still some interesting questions that require more research. These questions include: Why do architectures with multiple layers perform better, given that we can approximate any function with two layers? Why do CNNs work well with natural data such as speech, images, and text? How are we able to optimize non-convex functions so well? Why do over-parametrised architectures work?
French: Bien que les sciences et les mathématiques qui sous-tendent l’apprentissage profond soient assez bien comprises, il reste quelques questions intéressantes qui nécessitent davantage de recherche. Ces questions sont les suivantes : Pourquoi les architectures à plusieurs couches sont-elles plus performantes, étant donné que nous pouvons approximer n’importe quelle fonction avec deux couches ? Pourquoi les ConvNets fonctionnent-ils aussi bien avec des données naturelles telles que la parole, les images et le texte ? Comment sommes-nous capables d’optimiser aussi bien les fonctions non convexes ? Pourquoi les architectures surparamétrées fonctionnent-elles ?
English: Feature extraction consists of expanding the representational dimension such that the expanded features are more likely to be linearly separable; data points in higher dimensional space are more likely to be linearly separable due to the increase in the number of possible separating planes.
French: L’extraction de caractéristiques consiste à élargir la dimension de représentation de telle sorte que les caractéristiques élargies aient plus de chances d’être linéairement séparables (en raison de l’augmentation du nombre de plans de séparation possibles).
English: Earlier machine learning practitioners relied on high quality, hand crafted, and task specific features to build artificial intelligence models, but with the advent of Deep Learning, the models are able to extract the generic features automatically. Some common approaches used in feature extraction algorithms are highlighted below:
French: Auparavant, les experts en apprentissage machine s’appuyaient sur des caractéristiques de haute qualité, artisanales et spécifiques à une tâche afin de construire des modèles d’intelligence artificielle. Mais avec l’avènement de l’apprentissage profond, les modèles sont capables d’extraire automatiquement les caractéristiques génériques. Certaines approches courantes utilisées dans les algorithmes d’extraction de caractéristiques sont mises en évidence ci-dessous :
English: Images - At the most granular level, images can be thought of as pixels. Combination of pixels constitute edges which when combined forms textons (multi-edge shapes). Textons form motifs and motifs form parts of the image. By combining these parts together we get the final image.
French: pour les images : Au niveau le plus granulaire, les images peuvent être considérées comme des pixels. La combinaison de pixels constitue des bords qui, lorsqu’ils sont combinés, forment des textons (formes à bords multiples). Les textons forment des motifs et les motifs font partie de l’image. En combinant ces parties ensemble, on obtient l’image finale.
English: Text - Similarly, there is an inherent hierarchy in textual data. Characters form words, when we combine words together we get word-groups, then clauses, then by combining clauses we get sentences. Sentences finally tell us what story is being conveyed.
French: pour le texte : De même, il existe une hiérarchie inhérente aux données textuelles. Les caractères forment des mots, lorsque nous combinons des mots ensemble, nous obtenons des groupes de mots, puis en les combinant nous obtenons des phrases. Les phrases nous disent finalement quelle histoire est véhiculée.
English: For example: SVMs find a separating hyperplane “in the span of the data”, meaning predictions are based on comparisons to training examples. SVMs are essentially a very simplistic 2 layer neural net, where the first layer defines “templates” and the second layer is a linear classifier. The problem with 2 layer fallacy is that the complexity and size of the middle layer is exponential in N (to do well with a difficult task, need LOTS of templates). But if you expand the number of layers to log(N), the layers become linear in N. There is a trade-off between time and space.
French: Par exemple, les SVMs (de l’anglais support vector machines, pouvant être traduit en français par machines à vecteurs de support) trouvent un hyperplan de séparation dans l’étendue des données. Cela signifie que les prédictions sont basées sur des comparaisons avec des exemples d’entraînement. Les SVMs peuvent être vues comme un réseau neuronal à deux couches très simpliste, où la première couche définit des « pochoirs » et la seconde couche est un classifieur linéaire. Le problème avec deux couches est que la complexité et la taille de la couche intermédiaire sont exponentielles en N (pour réussir une tâche difficile, il faut BEAUCOUP de modèles). Mais si vous augmentez le nombre de couches à log(N), les couches deviennent linéaires en N. Il y a un compromis entre le temps et l’espace.
English: An analogy is designing a circuit to compute a boolean function with no more than two layers of gates – we can compute any boolean function this way! But, the complexity and resources of the first layer (number of gates) quickly becomes infeasible for complex functions.
French: Une analogie consiste à concevoir un circuit pour calculer une fonction booléenne avec un maximum de deux couches de portes : nous pouvons calculer toute fonction booléenne de cette façon ! Mais, la complexité et les ressources de la première couche (nombre de portes) deviennent rapidement inutilisables pour les fonctions complexes.
English: Manifold hypothesis: natural data lives in a low-dimensional manifold. Set of possible images is essentially infinite, set of “natural” images is a tiny subset. For example: for an image of a person, the set of possible images is on the order of magnitude of the number of face muscles they can move (degrees of freedom) ~ 50. An ideal (and unrealistic) feature extractor represents all the factors of variation (each of the muscles, lighting, etc.).
French: L’ensemble des images possibles est essentiellement infini, l’ensemble des images « naturelles » est un minuscule sous-ensemble. Par exemple : pour une image d’une personne, l’ensemble des images possibles est de l’ordre de grandeur du nombre de muscles du visage qu’elle peut bouger (degrés de liberté) soit environ 50. Un extracteur de caractéristiques idéal (et irréaliste) représente tous les facteurs de variation (chacun des muscles, éclairage, etc.). C’est l’hypothèse de la multiplicité : les données naturelles vivent dans une multiplicité à faible dimension.
English: Please follow Alfredo Canziani on Twitter @alfcnz. Videos and textbooks with relevant details on linear algebra and singular value decomposition (SVD) can be found by searching Alfredo’s Twitter, for example type linear algebra (from:alfcnz) in the search box.
French: Nous vous invitons à suivre Alfredo Canziani sur Twitter @alfcnz. Vous trouverez sur son compte des vidéos et des manuels contenant des détails pertinents sur l’algèbre linéaire et la décomposition en valeurs singulières (SVD). Ce contenu est trouvable en effectuant une recherche (en anglais) sur le Twitter d’Alfredo, en tapant par exemple linear algebra (from:alfcnz) dans la barre de recherche.
English: As a motivating example, let us consider image classification. Suppose we take a picture with a 1 megapixel camera. This image will have about 1,000 pixels vertically and 1,000 pixels horizontally, and each pixel will have three colour dimensions for red, green, and blue (RGB). Each particular image can then be considered as one point in a 3 million-dimensional space. With such massive dimensionality, many interesting images we might want to classify – such as a dog vs. a cat – will essentially be in the same region of the space.
French: À titre d’exemple, considérons la classification d’images. Supposons que nous prenons une photo avec un appareil photo de 1 mégapixel. Cette image aura environ 1000 pixels verticalement et 1000 pixels horizontalement. De plus chaque pixel aura trois dimensions de couleur pour le rouge, le vert et le bleu (RVB). Chaque image peut donc être considérée comme un point dans un espace à 33 millions de dimensions. Avec une telle dimensionnalité, de nombreuses images intéressantes que nous pourrions vouloir classer, comme un chien ou un chat, se trouveront essentiellement dans la même région de l’espace.
English: In order to effectively separate these images, we consider ways of transforming the data in order to move the points. Recall that in 2-D space, a linear transformation is the same as matrix multiplication. For example, the following are linear transformations:
French: Afin de séparer efficacement ces images, nous envisageons des moyens de transformer les données afin de déplacer les points. Rappelons que dans l’espace bidimensionnel, une transformation linéaire équivaut à une multiplication matricielle. Par exemple, les transformations suivantes peuvent être obtenues en changeant les caractéristiques de la matrice :
English: Note that translation alone is not linear since 0 will not always be mapped to 0, but it is an affine transformation. Returning to our image example, we can transform the data points by translating such that the points are clustered around 0 and scaling with a diagonal matrix such that we “zoom in” to that region. Finally, we can do classification by finding lines across the space which separate the different points into their respective classes. In other words, the idea is to use linear and nonlinear transformations to map the points into a space such that they are linearly separable. This idea will be made more concrete in the following sections.
French: Notez que la translation seule n’est pas linéaire puisque 0 ne sera pas toujours mis en correspondance avec 0, mais c’est une transformation affine. Pour revenir à notre exemple d’image, nous pouvons transformer les points de données en les translatant de manière à ce qu’ils soient regroupés autour de 0 et en les mettant à l’échelle à l’aide d’une matrice diagonale de manière à effectuer un « zoom avant » sur cette région. Enfin, nous pouvons effectuer une classification en trouvant des lignes dans l’espace qui séparent les différents points dans leurs classes respectives. En d’autres termes, l’idée est d’utiliser des transformations linéaires et non linéaires pour représenter les points dans un espace tel qu’ils soient linéairement séparables. Cette idée est rendue plus concrète dans les sections suivantes.
English: In our visualization, we have five branches of a spiral, with each branch corresponding to a different colour. The points live in a two dimensional plane and can be represented as a tuple; the colour represents a third dimension which can be thought of as the different classes for each of the points. We then use the network to separate each of the points by colour.
French: Dans notre visualisation, nous avons cinq branches d’une spirale, chaque branche correspondant à une couleur différente. Les points vivent dans un plan bidimensionnel et peuvent être représentés sous la forme d’un tuple. La couleur représente une troisième dimension qui peut être considérée comme les différentes classes pour chacun des points. Nous utilisons ensuite le réseau pour séparer chacun des points par couleur.
English: The network "stretches" the space fabric in order to separate each of the points into different subspaces. At convergence, the network separates each of the colours into different subspaces of the final manifold. In other words, each of the colours in this new space will be linearly separable using a one vs. all regression. The vectors in the diagram can be represented by a five by two matrix; this matrix can be multiplied to each point to return scores for each of the five colours. Each of the points can then be classified by colour using their respective scores. Here, the output dimension is five, one for each of the colours, and the input dimension is two, one for the x and y coordinates of each of the points. To recap, this network basically takes the space fabric and performs a space transformation parametrised by several matrices and then by non-linearities.
French: Le réseau « étire » le tissu spatial afin de séparer chacun des points en différents sous-espaces. À la convergence, le réseau sépare chacune des couleurs en différents sous-espaces de la surface finale. En d’autres termes, chacune des couleurs dans ce nouvel espace sera linéairement séparable par une régression « un contre tous ». Les vecteurs du diagramme peuvent être représentés par une matrice de 5×25×2. Cette matrice peut être multipliée à chaque point pour obtenir des scores pour chacune des cinq couleurs. Chacun des points peut ensuite être classé par couleur en utilisant les scores respectifs. Ici, la dimension de sortie est de cinq, une pour chacune des couleurs, et la dimension d’entrée est de deux, une pour les coordonnées x et y de chacun des points. Pour résumer, ce réseau prend le tissu spatial et effectue une transformation de l’espace paramétrée par plusieurs matrices puis par des non-linéarités.
English: The first matrix maps the two dimensional input to a 100 dimensional intermediate hidden layer. We then have a non-linear layer, ReLU or Rectified Linear Unit, which is simply positive part (⋅)+(⋅)+ function. Next, to display our image in a graphical representation, we include an embedding layer that maps the 100 dimensional hidden layer input to a two-dimensional output. Lastly, the embedding layer is projected to the final, five-dimensional layer of the network, representing a score for each colour.
French: La première matrice fait correspondre l’entrée bidimensionnelle à une couche cachée intermédiaire à 100 dimensions. Nous avons ensuite une couche non linéaire, ReLU (Rectified Linear Unit), qui est simplement une fonction partie positive (⋅)+. Ensuite, pour afficher notre image dans une représentation graphique, nous incluons une couche de représentation vectorielle qui fait correspondre l’entrée de la couche cachée à 100 dimensions à une sortie bidimensionnelle. Enfin, la couche est projetée sur la couche finale à cinq dimensions du réseau, représentant un score pour chaque couleur.
English: Lastly, we visualize the transformation performed by a simple, untrained neural network. The network consists of a linear layer, which performs an affine transformation, followed by a hyperbolic tangent non-linearity, and finally another linear layer. Examining the transformation in Fig. 6, we see that it is unlike the linear and non-linear transformations seen earlier. Going forward, we will see how to make these transformations performed by neural networks useful for our end goal of classification.
French: Enfin, nous visualisons la transformation effectuée par un simple réseau de neurones non entraîné. Le réseau est constitué d’une couche linéaire, qui effectue une transformation affine, suivie d’une tangente hyperbolique non-linéaire, et enfin d’une autre couche linéaire. En examinant la transformation de la figure 6, nous constatons qu’elle est différente des transformations linéaires et non linéaires vues précédemment. Nous allons voir comment rendre utiles ces transformations effectuées par les réseaux de neurones pour notre objectif final de classification.
English: We start by understanding what parametrised models are and then discuss what a loss function is. We then look at Gradient-based methods and how it’s used in the backpropagation algorithm in a traditional neural network. We conclude this section by learning how to implement a neural network in PyTorch followed by a discussion on a more generalized form of backpropagation.
French: Nous commençons par comprendre ce que sont les modèles paramétrés, puis nous discutons de ce qu’est une fonction de perte. Nous examinons ensuite les méthodes basées sur les gradients et leur utilisation dans l’algorithme de la rétropropagation d’un réseau neuronal traditionnel. Nous concluons cette section en apprenant comment mettre en œuvre un réseau de neurones dans PyTorch, puis nous discutons d’une forme plus généralisée de rétropropagation.
English: We begin with a concrete example of backpropagation and discuss the dimensions of Jacobian matrices. We then look at various basic neural net modules and compute their gradients, followed by a brief discussion on softmax and logsoftmax. The other topic of discussion in this part is Practical Tricks for backpropagation.
French: Nous commençons par un exemple concret de rétropropagation et discutons des dimensions des matrices jacobiennes. Nous examinons ensuite divers modules de base des réseaux de neurones et calculons leurs gradients, puis nous discutons brièvement des fonctions softmax et logsoftmax. L’autre sujet de discussion dans cette partie est celui des astuces pratiques pour la rétropropagation.
English: We give a brief introduction to supervised learning using artificial neural networks. We expound on the problem formulation and conventions of data used to train these networks. We also discuss how to train a neural network for multi class classification, and how to perform inference once the network is trained.
French: Nous présentons brièvement l’apprentissage supervisé pour les réseaux neuronaux artificiels. Nous exposons la formulation du problème et les conventions des données utilisées pour entraîner ces réseaux. Nous discutons également de la manière d’entraîner un réseau neuronal pour la classification multiclasses et de la manière d’effectuer l’inférence une fois le réseau entraîné.
English: Parametrised models are simply functions that depend on inputs and trainable parameters. There is no fundamental difference between the two, except that trainable parameters are shared across training samples whereas the input varies from sample to sample. In most deep learning frameworks, parameters are implicit, that is, they aren’t passed when the function is called. They are ‘saved inside the function’, so to speak, at least in the object-oriented versions of models.
French: Les modèles paramétrés sont simplement des fonctions qui dépendent d’entrées et de paramètres pouvant être entrainés. Il n’y a pas de différence fondamentale entre les deux, si ce n’est que les paramètres pouvant être entrainés sont partagés entre les échantillons d’entraînement alors que l’entrée varie d’un échantillon à l’autre. Dans la plupart des cadres d’apprentissage profond, les paramètres sont implicites, c’est-à-dire qu’ils ne sont pas transmis lorsque la fonction est appelée. Ils sont « enregistrés dans la fonction », pour ainsi dire, du moins dans les versions orientées objet des modèles.