Apprentissage Automatique et Réseaux Neuronaux - page 33

 

Leçon 9 : Fondements de l'apprentissage en profondeur pour une diffusion stable, 2022



Leçon 9 : Fondements de l'apprentissage en profondeur pour une diffusion stable, 2022

Cette vidéo fournit une introduction à l'apprentissage en profondeur, expliquant comment fonctionnent les modèles de diffusion stables et comment ils peuvent être appliqués pour générer de nouvelles images. La vidéo comprend une démonstration de l'utilisation de la bibliothèque Diffusers pour créer des images qui ressemblent à des chiffres manuscrits. Il introduit également le concept de diffusion stable, qui est une méthode de formation des réseaux de neurones. L'idée de base est de modifier les entrées d'un réseau de neurones afin de changer la sortie. Dans cette vidéo, l'instructeur explique comment créer un réseau de neurones capable d'identifier correctement les chiffres manuscrits à partir d'une entrée bruyante. Cette vidéo explique comment former un modèle d'apprentissage automatique à l'aide d'un algorithme d'apprentissage en profondeur. Le modèle est initialisé avec un ensemble de variables latentes (représentant les données) et utilise un décodeur pour comprendre les données brutes. Ensuite, un encodeur de texte est utilisé pour créer des légendes lisibles par machine pour les données. Enfin, un U-Net est formé en utilisant les sous-titres comme entrée, et les gradients (la "fonction de score") sont utilisés pour ajuster les niveaux de bruit dans les données de formation.

  • 00:00:00 Dans cette leçon, explique comment fonctionne l'apprentissage en profondeur et comment l'appliquer à des problèmes du monde réel. Cependant, étant donné que les concepts et techniques décrits dans cette leçon risquent de devenir obsolètes dans un proche avenir, la majorité de la vidéo est consacrée à l'enseignement de l'utilisation de la diffusion stable, un algorithme d'apprentissage en profondeur qui sera toujours applicable en 2022.

  • 00:05:00 Le cours évolue rapidement et de nouveaux articles ont montré que le nombre d'étapes nécessaires pour générer un modèle de diffusion stable est passé de mille à quatre ou cinquante-six. Le cours se concentrera sur les fondements du modèle et son fonctionnement.

  • 00:10:00 Le cours fournit des bases d'apprentissage en profondeur, discute du fonctionnement des modèles de diffusion stable et fournit des ressources pour un apprentissage plus approfondi. En 2022, les GPU pour l'apprentissage en profondeur deviendront plus chers, il est donc important de prendre note des recommandations actuelles.

  • 00:15:00 Cette vidéo YouTube fournit une courte introduction à l'apprentissage en profondeur, décrivant les fondements de la diffusion stable. L'auteur fournit un ensemble de blocs-notes Colab, "diffusion-nbs", qui peuvent être utilisés pour explorer les bases de l'apprentissage en profondeur. La vidéo se termine par une recommandation de jouer avec le matériel fourni et d'explorer d'autres ressources.

  • 00:20:00 Dans cette leçon, les bases du Deep Learning sont couvertes, y compris comment créer un algorithme de diffusion stable. Ensuite, la bibliothèque Diffusers est présentée et comment enregistrer un pipeline pour que d'autres puissent l'utiliser.

  • 00:25:00 Cette leçon aborde les bases de l'apprentissage en profondeur et explique comment utiliser Colab pour créer des images de haute qualité. Les 51 étapes nécessaires pour créer une image sont comparées aux trois à quatre étapes disponibles en octobre 2022.

  • 00:30:00 Dans cette leçon, l'instructeur montre comment créer des images à l'aide de l'apprentissage en profondeur. Il montre comment utiliser "l'échelle de guidage" pour contrôler le degré d'abstraction des images.

  • 00:35:00 Cette vidéo explique comment utiliser un modèle d'apprentissage en profondeur pour générer des images qui ressemblent au dessin original, en utilisant une technique appelée diffusion stable.

  • 00:40:00 Dans cette leçon, l'instructeur explique comment entraîner des modèles d'apprentissage automatique avec l'algorithme de diffusion stable. Ils expliquent que l'algorithme est utile pour générer des images similaires aux exemples qui ont été fournis. L'instructeur partage également un exemple de la façon dont l'algorithme de diffusion stable a été utilisé pour générer une image d'un nounours similaire au nounours d'origine.

  • 00:45:00 Dans cette vidéo, l'instructeur présente le concept de diffusion stable, qui est une approche mathématique équivalente à l'approche traditionnelle mais conceptuellement plus simple. Il explique qu'en utilisant une fonction qui peut déterminer la probabilité qu'une image soit un chiffre manuscrit, vous pouvez générer de nouvelles images qui ressemblent à des chiffres manuscrits.

  • 00:50:00 Dans cette vidéo, un instructeur explique comment calculer le gradient de la probabilité qu'une image saisie soit un chiffre manuscrit, en utilisant l'apprentissage en profondeur.

  • 01:05:00 Cette vidéo présente l'idée de diffusion stable, qui est une méthode de formation des réseaux de neurones. L'idée de base est de modifier les entrées d'un réseau de neurones afin de changer la sortie.

  • 01:10:00 Dans cette vidéo, l'instructeur explique comment créer un réseau de neurones capable d'identifier correctement les chiffres manuscrits à partir d'une entrée bruyante. Ils discutent d'abord de la création d'un ensemble de données d'entraînement, puis expliquent comment entraîner le réseau de neurones.

  • 01:15:00 Cette vidéo présente le concept d'apprentissage en profondeur et de diffusion stable, qui est un moyen de prédire le bruit dans une image numérique. Le réseau de neurones prédit le bruit et la fonction de perte est simple : prendre l'entrée et prédire le bruit.

  • 01:20:00 Le réseau de neurones dans cette vidéo essaie de prédire le bruit qui a été ajouté aux entrées. Il le fait en soustrayant les bits qu'il pense être du bruit de l'entrée. Après avoir fait cela plusieurs fois, il finit par obtenir quelque chose qui ressemble plus à un chiffre.

  • 01:25:00 Dans cette vidéo, l'instructeur montre comment un réseau de neurones, appelé U-Net, peut être utilisé pour approximer une image. Le problème est que l'U-Net nécessite beaucoup de stockage, ce qui peut être un problème pour Google avec son grand nuage de TPU.

  • 01:30:00 La vidéo explique comment compresser une image à l'aide du deep learning. Tout d'abord, une image est compressée en la faisant passer à travers une couche de deux couches convolutives. Ce processus est répété jusqu'à ce que l'image soit réduite à une version 64x64x4. Ensuite, l'image est enregistrée en tant que couche de réseau neuronal. Enfin, le réseau de neurones est utilisé pour compresser des images de différentes tailles.

  • 01:35:00 La vidéo explique comment une fonction de perte peut être utilisée pour apprendre à un réseau neuronal comment compresser une image, ce qui donne un fichier plus petit. L'algorithme de compression fonctionne bien et peut être utilisé pour partager des images entre deux personnes.

  • 01:40:00 Cette vidéo fournit un didacticiel sur la façon de former un modèle d'apprentissage en profondeur à l'aide de données latentes. Les données latentes sont un type spécial de données qui ne sont pas directement observées et qui sont utilisées pour former un modèle d'apprentissage en profondeur. Les latentes sont créées en codant les pixels d'une image à l'aide d'un réseau de neurones. Le processus d'encodage crée une représentation latente de l'image. Le décodeur utilise cette représentation latente pour générer l'image originale.

  • 01:45:00 Cette vidéo explique comment un réseau de neurones peut apprendre à mieux prédire le bruit en profitant du fait qu'il sait quelle était l'image d'origine. Ceci est utile car, lorsqu'il est alimenté par le chiffre 3, par exemple, le modèle dira que le bruit est tout ce qui ne représente pas le chiffre 3.

  • 01:50:00 La vidéo explique comment deux réseaux de neurones peuvent être utilisés pour encoder du texte et des images. Le premier réseau neuronal est utilisé pour encoder du texte, et le deuxième réseau neuronal est utilisé pour encoder des images. L'objectif est que les deux réseaux produisent des sorties similaires pour une entrée donnée. La similarité des sorties est déterminée par le produit scalaire des caractéristiques de l'entrée et des caractéristiques de la sortie.

  • 01:55:00 Cette vidéo explique comment créer un encodeur de texte CLIP, qui est un type de modèle d'apprentissage automatique capable de produire des incorporations similaires pour des entrées de texte similaires. Ceci est important car il permet la reconnaissance et la synthèse de texte multimodal.

  • 02:00:00 Dans cette vidéo, l'instructeur explique comment entraîner un modèle d'apprentissage automatique à l'aide d'un algorithme d'apprentissage en profondeur. Le modèle est initialisé avec un ensemble de variables latentes (représentant les données) et utilise un décodeur pour comprendre les données brutes. Ensuite, un encodeur de texte est utilisé pour créer des légendes lisibles par machine pour les données. Enfin, un U-Net est formé en utilisant les sous-titres comme entrée, et les gradients (la "fonction de score") sont utilisés pour ajuster les niveaux de bruit dans les données de formation.

  • 02:05:00 Dans cette vidéo, l'auteur décrit le fonctionnement des algorithmes d'apprentissage en profondeur et comment ils essaient de trouver la meilleure estimation pour une image latente (inconnue). L'auteur décrit également comment modifier les paramètres de l'algorithme pour améliorer les résultats.

  • 02:10:00 La vidéo explique comment les solveurs d'équations différentielles, tels que les optimiseurs, utilisent des idées similaires aux modèles d'apprentissage en profondeur. La vidéo explique comment Perceptual Loss et d'autres fonctions de perte peuvent être utilisées pour améliorer la précision des modèles d'apprentissage en profondeur. La vidéo donne un aperçu de la prochaine leçon, dans laquelle le code d'un pipeline d'apprentissage en profondeur sera expliqué.

  • 02:15:00 Cette vidéo discute de nouvelles directions de recherche en apprentissage profond susceptibles d'améliorer la stabilité et la diffusion de la technologie.
 

Les défis de l'apprentissage en profondeur (Dr Razvan Pascanu - DeepMind)



Les défis de l'apprentissage en profondeur (Dr Razvan Pascanu - DeepMind)

Le Dr Razvan Pascanu de DeepMind discute de plusieurs défis de l'apprentissage en profondeur dans cette vidéo. Il souligne l'importance de l'adaptabilité et du changement d'orientation des mesures de performance, et suggère que les limites des ressources informatiques dans les systèmes d'apprentissage en profondeur peuvent en fait être bénéfiques. De plus, il explore les défis de l'apprentissage continu et le sous-domaine de l'apprentissage automatique qui y est lié, y compris l'impact de la taille et de l'architecture sur les performances des modèles d'apprentissage en profondeur. Le Dr Pascanu discute également du rôle de la descente de gradient stochastique, de l'importance des biais explicites et du concept de pré-formation et d'ajout de biais inductifs dans les modèles d'apprentissage en profondeur.

Le Dr Razvan Pascanu de DeepMind discute de la question de l'oubli dans l'apprentissage en profondeur et de la façon dont les modèles peuvent s'en remettre. Bien que certaines connaissances puissent encore subsister après un oubli, il est difficile de déterminer la quantité d'informations perdues. Le Dr Pascanu mentionne que des articles récents sur l'oubli ciblé se sont concentrés sur la confidentialité des données, mais que davantage de recherches et de concentration sont nécessaires dans ce domaine.

  • 00:00:00 Dans cette section, le Dr Razvan Pascanu discute de ses idées sur l'importance de l'adaptation dans l'apprentissage en profondeur. Malgré l'accent mis sur les mesures de performance, Pascanu souligne les effets limitants de l'optimisation continue pour cette mesure singulière. Le manque d'adaptabilité des systèmes fixes face à des changements imprévisibles de l'environnement, l'accent mis sur des solutions universelles, le manque de mesures de performance bien définies dans des scénarios plus complexes et la mise à l'échelle des systèmes pour surmonter uniquement les goulots d'étranglement tels que les données limitées et les ressources de calcul sont quelques-uns des problèmes qui nécessitent un changement d'orientation vers l'adaptation dans l'apprentissage en profondeur.

  • 00:05:00 Dans cette section, le Dr Razvan Pascanu discute des limites de se concentrer uniquement sur la performance dans l'apprentissage en profondeur et suggère d'explorer des systèmes qui peuvent s'adapter en permanence au changement. Il met en évidence les problèmes de couverture et de représentativité des données lors de l'apprentissage sur de grands ensembles de données, ainsi que le défi d'évaluer la capacité de généralisation hors distribution d'un système. Pascanu suggère que penser à l'adaptabilité change la perspective et peut aider à résoudre certains de ces problèmes. Il cite l'argument de Thomas Griffiths selon lequel la raison pour laquelle nous ne pouvons pas comprendre certains mouvements effectués par AlphaGo est que nous avons tendance à décomposer les problèmes en sous-objectifs, tandis que l'agent ne se soucie que de la performance finale. Pascanu conclut que changer de perspective ne résoudra peut-être pas tous les problèmes, mais pourrait conduire à de nouvelles idées et approches.

  • 00:10:00 Dans cette section, le Dr Pascanu discute de l'idée que les limitations peuvent être bénéfiques dans les systèmes d'apprentissage en profondeur. Alors que les humains ont des limitations cognitives qui façonnent notre façon de penser, les systèmes d'apprentissage automatique ont des limitations informatiques qui façonnent leur façon d'apprendre. Si nous considérons les limitations comme un obstacle à surmonter, nous risquons de manquer les avantages de ces limitations. La limitation des budgets de calcul peut forcer le système à trouver des solutions combinatoires, ce qui peut conduire à de meilleurs résultats. Le Dr Pascanu pense qu'au lieu de se concentrer uniquement sur la performance, nous devrions également prendre en compte le coût de l'apprentissage, le coût de l'inférence et la quantité d'informations codées en dur. Cependant, il reste encore des défis à surmonter en termes de relation entre la distribution des données et les points de données, et le Dr Pascanu souligne l'importance d'explorer différents outils tels que la théorie des catégories pour relever ces défis.

  • 00:15:00 Dans cette section, le Dr Razvan Pascanu-DeepMind explique pourquoi l'apprentissage continu est important et les desiderata d'un système capable d'apprendre en continu de manière efficace. Il souligne qu'il existe de nombreuses formes d'apprentissage continu, ce qui rend difficile la définition et l'identification de chaque problème spécifique. De plus, la définition de l'apprentissage continu peut aussi créer des contradictions, et certains problèmes deviennent plus visibles selon les tâches et les repères utilisés. Le Dr Pascanu-DeepMind suggère qu'une façon d'ancrer l'apprentissage continu est de se concentrer sur des problèmes réels comme l'apprentissage continu semi-supervisé, qui a une application pratique, ce qui permet de voir plus facilement si des progrès sont réalisés. Une autre façon est de se concentrer sur l'apprentissage par renforcement.

  • 00:20:00 Dans cette section, le Dr Razvan Pascanu discute des défis de l'apprentissage continu dans l'apprentissage par renforcement (RL) et des techniques qui ont été développées jusqu'à présent pour atténuer ce problème. Étant donné que les données dans RL ne sont pas stationnaires, il est nécessaire de gérer l'apprentissage continu afin de faire fonctionner les approximations de fonctions. Plusieurs techniques ont été développées sur la base des méthodes Brute Force telles que les tampons de relecture pour éviter les oublis catastrophiques, la ligue d'experts dans Starcraft et le jeu de vente dans AlphaGo. Cependant, ces méthodes peuvent devenir coûteuses et il est toujours nécessaire de réduire ces coûts. Pascanu présente un article intéressant qui soutient que le RL et l'apprentissage supervisé diffèrent en ce que le transfert de fonctionnalités n'aide pas autant dans les systèmes de RL, et l'accent devrait être mis sur le contrôle de la qualité des données et la centralisation de l'acteur et du critique.

  • 00:25:00 Dans cette section, l'orateur discute des défis de l'apprentissage continu, soulignant qu'il y a des aspects de l'alignement continu que l'apprentissage supervisé ne peut imiter. L'orateur mentionne un article qui énumère ces différences entre RL et apprentissage supervisé. De plus, le conférencier explique comment l'apprentissage continu peut être considéré comme un problème de suivi plutôt que comme une convergence vers un point. L'orateur mentionne la perte de plasticité qui se produit lors du réglage fin sur de nouvelles données et comment cela peut avoir un impact sur la généralisation. Enfin, l'orateur discute de l'attribution de crédits dans les réseaux de neurones et de la façon dont le gradient est calculé indépendamment pour chaque poids, ce qui peut entraîner des votes contradictoires qui affectent la moyenne.

  • 00:30:00 Dans cette section de la vidéo, le Dr Razvan Pascanu parle de l'apprentissage à la volée, qui est similaire à un jeu de tir à la corde où chaque exemple exerce une force sur le poids, et l'apprentissage se produit lorsque l'équilibre est atteint entre ces forces. Les données d'identification sont essentielles dans ce processus car elles garantissent que toutes les forces sont présentes. De plus, l'apprentissage enseigne indirectement des connaissances, avec divers concepts connexes appris simultanément. Il est suggéré que les intergiciels de dynamique d'apprentissage, d'optimisation et d'automatisation des jeux puissent être améliorés pour créer un processus d'apprentissage plus efficace afin d'obtenir plus de connaissances à partir de moins de données.

  • 00:35:00 Dans cette section, le Dr Razvan Pascanu de DeepMind discute des défis dans le sous-domaine de l'apprentissage automatique connu sous le nom d'apprentissage continu, qui consiste à essayer d'enseigner de nouvelles choses à un système sans qu'il oublie ce qu'il a appris précédemment. Le domaine est sous-spécifié, les repères ne sont pas bien définis et il y a des désaccords sur ce qui intéresse les gens. L'un des problèmes est la qualité des données et les compromis entre l'apprentissage et l'oubli, qui dépendent fortement de la manière dont le référentiel est défini. Le but est d'arriver à des repères plus naturels, mais même la définition du « naturel » ne fait pas consensus.

  • 00:40:00 Dans cette section, le Dr Razvan Pascanu discute du concept des systèmes AGI et de leur relation avec l'intelligence humaine. Il explique que bien que la construction d'un système AGI qui ressemble aux humains puisse être souhaitable pour faciliter l'interprétation, ce n'est pas nécessaire. Les sous-objectifs utilisés dans l'apprentissage AGI sont efficaces et aident à la généralisation de la composition, permettant un apprentissage plus rapide de nouvelles choses. Pascanu explique également comment les biais implicites des modèles d'apprentissage en profondeur peuvent conduire à des erreurs et comment les biais explicites peuvent être utilisés pour améliorer les modèles. Il donne un exemple de la façon dont l'apprentissage continu peut être amélioré avec l'utilisation de systèmes sur-paramétrés dans le domaine de très faible courbure.

  • 00:45:00 Dans cette section de la vidéo, le Dr Razvan Pascanu discute de l'impact de la taille et de l'architecture d'un modèle sur ses performances en apprentissage approfondi. Il note que l'échelle seule a un impact significatif sur la capacité d'oubli d'un système, et le choix de la bonne architecture fait une énorme différence. Le domaine ignore généralement l'impact des choix d'architecture et compare souvent les architectures de manière injuste. Le Dr Pascanu souligne également le rôle de l'optimisation dans l'apprentissage en profondeur et suggère que la sur-paramétrisation aboutit à de nombreuses solutions sans erreur d'apprentissage. Lorsque le nombre de solutions explose, la solution la plus proche de l'initialisation converge et le système dépend toujours des conditions d'initialisation. Il cite des exemples de travaux de recherche qui montrent que la surface basse peut avoir n'importe quelle structure et être arbitrairement compliquée. Enfin, il explique que res net fonctionne bien en raison de la connexion de saut qu'il utilise pour modifier la façon dont les gradients circulent dans le système.

  • 00:50:00 Dans cette section, le Dr Razvan Pascanu parle de certains résultats récents qui montrent les biais implicites dans la descente de gradient stochastique (SGD) et l'importance des biais explicites. En ce qui concerne SGD, on pensait traditionnellement que le bruit dans SGD aidait à échapper aux minima nets, mais il s'avère qu'il existe un biais implicite dans le régularisateur utilisé dans SGD. De plus, le bruit d'augmentation des données est nuisible et ils ont constaté que la moyenne du gradient sur différentes augmentations de données peut réduire ce bruit. De plus, les biais sont extrêmement importants et une légère modification de l'augmentation des données peut entraîner d'énormes améliorations des performances. Ils ont également exploré l'idée de différentes initialisations et comment elles peuvent affecter le partitionnement de l'espace qui fait partie intégrante de la résolution du problème. Enfin, l'utilisation de biais explicites tels que la pré-formation conduit également à des améliorations significatives.

  • 00:55:00 Dans cette section, le Dr Razvan Pascanu discute du concept de pré-formation et de l'ajout de biais inductifs dans les modèles d'apprentissage en profondeur. Il explique que la pré-formation peut aider à garantir que les informations peuvent être correctement transmises entre les nœuds et peut conduire à une amélioration significative des dispositifs exclusifs. De plus, le Dr Pascanu décrit une approche unique pour ajouter des biais inductifs en façonnant la surface de perte plutôt qu'en ajoutant un terme de régularisation, ce qui peut aider les poids à se verrouiller à zéro et à améliorer l'efficacité de l'apprentissage. Il aborde également les problèmes liés à l'oubli catastrophique et le défi des problèmes de décomposition dans l'apprentissage automatique.

  • 01:00:00 Dans cette section, le Dr Pascanu discute de l'idée de l'oubli dans l'apprentissage en profondeur et de la façon dont les modèles peuvent s'en remettre. Il suggère qu'il y a encore des connaissances cachées même après qu'un modèle a oublié certaines choses, mais il est difficile de déterminer combien de connaissances sont réellement perdues. Le Dr Pascanu mentionne des articles à venir sur l'oubli ciblé, où certains points de données sont supprimés du modèle pour protéger la vie privée, mais il pense que davantage de recherches dans ce domaine sont nécessaires.
 

CS 198-126 : Modern Computer Vision Automne 2022 (Université de Californie, Berkeley) Cours 1 - Introduction à l'apprentissage automatique



CS 198-126 : Cours 1 - Introduction à l'apprentissage automatique

Dans cette conférence sur l'apprentissage automatique, l'instructeur couvre un large éventail de sujets, y compris une introduction au cours, un aperçu de l'apprentissage automatique, différents types d'apprentissage automatique, le pipeline d'apprentissage automatique, les données d'étiquetage et la fonction de perte. Le concept de compromis biais-variance, de surajustement et de sous-ajustement est également discuté. L'instructeur insiste sur l'importance de choisir la bonne fonction au cours du processus d'apprentissage automatique et sur le rôle des hyperparamètres dans le processus. L'objectif global de l'apprentissage automatique est de prédire avec précision les nouvelles données, et pas seulement de s'adapter aux données de formation. Le conférencier encourage les étudiants à assister au cours et à faire un effort pour en savoir plus sur l'apprentissage automatique et l'apprentissage en profondeur.

  • 00:00:00 Dans cette section, il n'y a pas de contenu approprié à résumer car l'extrait de transcription fourni semble être une conversation entre l'orateur et le public sur la situation du microphone dans la salle.

  • 00:05:00 Dans cette section, nous découvrons la série de conférences sur l'apprentissage en profondeur pour la vision par ordinateur, présentée par Jake et ses collègues. Au début de la classe, Jake passe en revue la logistique du cours et décrit ce dont ils discuteront lors de la première conférence, qui est un aperçu de l'apprentissage automatique et de son approche. Malgré quelques difficultés techniques avec l'équipement d'enregistrement, Jake est ravi d'enseigner la classe et commence par une présentation de lui-même et de ses collègues.

  • 00:10:00 Dans cette section, l'instructeur se présente et présente le cours, qui vise à fournir un camp d'entraînement d'introduction à la vision par ordinateur et à l'apprentissage en profondeur pour les étudiants de première année qui n'ont pas été beaucoup exposés au matériel auparavant. Le cours couvrira des sujets tels que les tâches de vision par ordinateur, l'apprentissage à partir de grands ensembles de données d'images, la vision 3D et l'art génératif. L'instructeur souligne que le cours est censé être amusant et interactif et fournit la logistique du cours, comme l'accès aux diapositives d'enregistrement et aux devoirs sur le site Web et l'utilisation d'Ed stem pour interagir avec les étudiants et le personnel du cours. Le syllabus est également disponible sur le site Web, et le premier quiz aura lieu à la fin du week-end prochain.

  • 00:15:00 Dans cette section, l'instructeur fournit une introduction à l'apprentissage automatique (ML). Il explique que le ML est le processus d'utilisation des données pour déterminer à quoi ressemble une fonction plutôt que de la coder vous-même. Avec ML, les données guident les fonctions, et l'instructeur donne un exemple de la façon dont une fonction pour identifier le numéro 7 à partir d'une image est beaucoup plus facile à créer avec ML que d'essayer de le faire par codage. L'instructeur explique que ML implique la création de modèles où l'on crée la structure d'une fonction et laisse quelques paramètres qui détermineront le comportement de la fonction, avec les paramètres appris à travers les données. L'importance de créer les bons modèles de fonction est discutée, car cela détermine le succès du modèle ML.

  • 00:20:00 Dans cette section de la conférence, l'orateur explique que la clé de l'apprentissage automatique consiste à déterminer le format de la fonction que le modèle suivra. Cette fonction est parfois appelée classe de modèle et certaines parties de celle-ci sont vides et appelées paramètres, qui sont les valeurs que nous sommes autorisés à apprendre. L'orateur souligne que le choix de la fonction est d'une importance cruciale pour obtenir des résultats précis. Le conférencier fournit également un bref aperçu et une catégorisation des différents types d'apprentissage automatique, y compris l'apprentissage supervisé, l'apprentissage non supervisé et l'apprentissage par renforcement, et présente le vocabulaire associé à l'apprentissage automatique, y compris la fonction, les paramètres, les poids, les biais, les hyperparamètres et les caractéristiques.

  • 00:25:00 Dans cette section, le conférencier explique le processus d'apprentissage automatique, en se concentrant sur le pipeline ML. Tout d'abord, il est essentiel de définir le problème, de préparer les données et de sélectionner le modèle et la fonction de perte. Il est également essentiel d'étiqueter les données avec un système d'étiquetage à chaud unique pour les convertir en nombres que le modèle peut reconnaître. Le conférencier souligne l'importance de bonnes données, notant qu'une entrée de données minable se traduira par une sortie tout aussi médiocre. De plus, il discute de l'importance de la vectorisation des données, garantissant que toutes les entités sont à la même échelle et représentées dans le bon ordre.

  • 00:30:00 Dans cette section, le conférencier explique comment étiqueter les données pour les applications d'apprentissage automatique et pourquoi il est important de représenter correctement les données. Un étiquetage à chaud est utilisé où chaque étiquette est représentée par un vecteur avec un un dans la position correspondante et des zéros ailleurs. La définition d'un modèle et d'une fonction de perte est cruciale lors de la formation d'un modèle d'apprentissage automatique. Le modèle doit être adapté au problème et aux données spécifiques, et différents modèles peuvent être testés pour voir lequel fonctionne le mieux. La fonction de perte mesure l'efficacité du modèle, et une valeur faible est souhaitable.

  • 00:35:00 Dans cette section, le conférencier discute de l'importance d'avoir une métrique à optimiser dans l'apprentissage automatique et introduit le concept d'une fonction de perte pour mesurer la différence entre la sortie du modèle et l'étiquette correcte. L'erreur quadratique moyenne est donnée comme exemple de fonction de perte pour calculer la distance entre la sortie du modèle et l'étiquette correcte. La fonction de perte est un hyper-paramètre qui doit être sélectionné au préalable. De plus, le conférencier parle de la phase de formation, où l'algorithme sélectionne les valeurs optimales pour les paramètres du modèle à l'aide de la fonction de perte. De plus, un ensemble de tests que le modèle n'a jamais vu auparavant est utilisé pour évaluer les performances du modèle et déterminer dans quelle mesure le modèle se généralise aux nouvelles données. Enfin, l'importance de s'assurer que le modèle ne se contente pas de mémoriser les données d'apprentissage mais se généralise bien aux nouvelles données est soulignée.

  • 00:40:00 Dans cette section, le concept de compromis entre biais et variance est discuté comme un aspect crucial de l'apprentissage automatique qui apparaît dans l'apprentissage en profondeur et toutes les autres classes de ML. Le biais fait référence à la tendance du modèle à certaines prédictions, et la variance est la capacité d'un modèle à saisir les complexités des données sans les mémoriser. Des exemples de biais élevé et de variance élevée sont donnés, où un biais élevé est un cas où un modèle n'est pas assez expressif pour apprendre un ensemble de données avec précision, tandis qu'une variance élevée fait référence à un surajustement. Le modèle idéal est celui qui capture la complexité des données sans les mémoriser, ce que l'on appelle la zone Goldilocks. Le compromis biais-variance est un concept essentiel de l'apprentissage automatique que les utilisateurs doivent connaître car ils le rencontreront dans chaque cours d'apprentissage automatique qu'ils suivent.

  • 00:45:00 Dans cette section, l'orateur aborde le concept de surajustement et de sous-ajustement dans les modèles d'apprentissage automatique. L'objectif de l'apprentissage automatique est de modéliser et de prédire avec précision les nouvelles données, et pas seulement de les adapter aux données d'apprentissage. Si un modèle est capable de faire correspondre trop étroitement les données d'apprentissage mais ne parvient pas à prédire les nouvelles données avec précision, il est surajusté. D'un autre côté, si un modèle est trop simple et ne peut pas capturer les modèles dans les données, il est sous-ajusté. La meilleure approche consiste à trouver un équilibre entre un ajustement suffisant aux données de formation tout en étant capable de généraliser à de nouvelles données. Cela implique des essais et des erreurs avec le réglage des hyperparamètres et la sélection des fonctions de perte appropriées.

  • 00:50:00 Dans cette section, l'instructeur couvre le concept de biais et de variance dans les modèles d'apprentissage automatique. Un modèle avec un biais élevé aura une précision similaire entre les données d'apprentissage et de test car il crache systématiquement la même sortie quelle que soit l'entrée. D'un autre côté, un modèle à variance élevée s'adapte trop étroitement aux données, ce qui entraîne une perte importante lorsqu'il est testé sur de nouvelles données. L'instructeur met l'accent sur le compromis entre la complexité du modèle et la généralisation, qu'il est important de comprendre lors de la sélection d'un modèle pour une tâche spécifique. Enfin, l'instructeur encourage les étudiants à assister aux cours et à faire des efforts pour en savoir plus sur l'apprentissage automatique et l'apprentissage en profondeur, même si ce n'est peut-être pas leur priorité absolue.
 

CS 198-126 : Cours 2 - Introduction à l'apprentissage en profondeur, Partie 1



CS 198-126 : Cours 2 - Introduction à l'apprentissage en profondeur, Partie 1

Dans cette conférence YouTube sur l'introduction à l'apprentissage en profondeur, l'instructeur explique les bases des modèles d'apprentissage en profondeur et comment les former à l'aide de la descente de gradient, couvrant différents éléments constitutifs des réseaux de neurones et pourquoi l'apprentissage en profondeur est une technologie si répandue. La conférence présente le perceptron et l'empilement de plusieurs perceptrons pour créer un réseau neuronal plus complexe et sophistiqué, et explique comment calculer la sortie par multiplication matricielle et une addition finale, la couche intermédiaire utilisant une fonction d'activation ReLU. L'orateur aborde l'utilisation de la fonction Softmax et de la fonction d'activation ReLU, en utilisant les fonctions de perte comme mesures pour évaluer la performance du modèle, et le concept d'optimisation de descente de gradient. Enfin, l'instructeur discute de l'idée d'apprentissage en profondeur et de la façon dont un grand réseau de neurones entraîne une faible perte malgré sa capacité à mémoriser les données. Le conférencier introduit également le concept de réglage des hyperparamètres dans les réseaux de neurones pour améliorer leurs performances avec des ensembles de données spécifiques. Il note qu'il n'y a pas de valeurs universelles pour les hyperparamètres et suggère d'explorer différentes options telles que les numéros de couche et les fonctions d'activation. En raison de contraintes de temps, la conférence se termine brusquement, mais le conférencier assure aux étudiants que le quiz à venir ne sera pas trop difficile et sera accessible sur la plateforme GreatScope.

  • 00:00:00 Dans cette section, l'instructeur demande au public s'il a des questions sur la conférence précédente, en particulier concernant le compromis biais-variance et les encodages à chaud. Ils abordent brièvement l'analyse exploratoire des données et la validation croisée k-fold, indiquant que ces sujets ne seront pas beaucoup abordés dans le cours. L'instructeur explique comment fonctionne la validation croisée k-fold avant de commencer le deuxième cours sur l'apprentissage en profondeur.

  • 00:05:00 Dans cette section du cours, l'instructeur donne un bref aperçu de ce que les étudiants peuvent s'attendre à apprendre, y compris les bases des modèles d'apprentissage en profondeur et comment les former à l'aide de la descente de gradient. La conférence couvre également différents éléments constitutifs des réseaux de neurones et explique pourquoi l'apprentissage en profondeur est une technologie si répandue. Avant de plonger dans les spécificités de l'apprentissage en profondeur, l'instructeur passe en revue certains concepts fondamentaux de l'algèbre linéaire tels que les produits scalaires vectoriels et la multiplication vectorielle matricielle. Ces concepts sont importants pour comprendre le fonctionnement interne des modèles d'apprentissage en profondeur. L'instructeur fournit des exemples et des notations pour aider les étudiants à bien comprendre la matière.

  • 00:10:00 Dans cette section de la vidéo, l'orateur discute de la notation et de l'indexation dans l'apprentissage en profondeur, où les vecteurs et les matrices sont utilisés pour représenter les paramètres de la fonction de boîte noire. L'orateur explique que chaque élément de la matrice est un paramètre, et lors de l'indexation dans un vecteur, il se réfère à un seul scalaire. Ils soulignent la facilité de prendre des dérivées partielles par rapport aux entrées et expliquent la motivation derrière les réseaux de neurones.

  • 00:15:00 Dans cette section, le conférencier aborde les différents types de problèmes que l'apprentissage en profondeur peut résoudre, tels que la régression, la classification et l'apprentissage par renforcement. L'objectif est de créer un modèle universel pouvant être utilisé pour toutes sortes de tâches, similaires aux capacités du cerveau humain. Pour créer ce modèle, l'enseignant introduit le perceptron, une formulation mathématique qui s'apparente à un neurone. Le perceptron prend des entrées, les pondère, les additionne, puis les active via une fonction pas à pas. Le but est de créer un mini-cerveau capable de résoudre des problèmes complexes, comme la régression non linéaire sur un polynôme qui a l'air compliqué.

  • 00:20:00 Dans cette section, la vidéo présente le concept d'empilement de plusieurs perceptrons pour créer un réseau neuronal plus complexe et sophistiqué. La vidéo montre comment l'opération perceptron peut être écrite de manière plus compacte sous la forme d'un produit scalaire entre les entrées et les poids, et d'un terme de biais. La vidéo prend ensuite cette opération et la répète pour plusieurs perceptrons afin de créer un réseau de neurones à une seule couche. La vidéo note que les poids de chaque perceptron peuvent être appris en fonction de l'ensemble de données et du problème à résoudre.

  • 00:25:00 Dans cette section, le conférencier explique comment le produit scalaire fonctionne pour calculer la sortie du perceptron, où chaque perceptron a ses propres poids et biais uniques. Chaque élément du vecteur représente la sortie du perceptron, qui est le produit scalaire avec un scalaire ajouté. La conférence présente ensuite un exemple de jouet, demandant au public de se tourner vers son voisin et de discuter des mathématiques pour prédire la sortie.

  • 00:30:00 Dans cette section, l'orateur présente un réseau neuronal de base composé d'une couche d'entrée à deux entrées, d'une couche cachée à trois nœuds et d'une couche de sortie à une sortie. L'orateur montre comment calculer la sortie par multiplication matricielle et une addition finale, la couche intermédiaire utilisant une fonction d'activation ReLU. L'orateur explique ensuite comment compacter la notation de passage vers l'avant et répond à une question sur l'ordre des poids. Enfin, le conférencier introduit brièvement la classification à l'aide de réseaux de neurones.

  • 00:35:00 Dans cette section de la conférence, l'orateur parle de l'interprétation de la sortie d'un modèle d'apprentissage en profondeur. L'orateur utilise l'exemple de la classification d'un chiffre et de la représentation des étiquettes sous la forme d'une représentation unique. Pour contraindre la sortie du modèle et s'assurer que la sortie du modèle peut être interprétée comme la probabilité que le modèle pense qu'il appartient à une certaine classe, l'orateur introduit l'opération softmax à la toute fin du réseau de neurones. La fonction softmax prend l'exponentielle de toutes les valeurs de sortie, puis normalise les résultats, en veillant à ce que tous les éléments soient compris entre 0 et 1 et totalisent jusqu'à 1. Cette fonction garantit que le modèle n'a jamais une confiance parfaite à moins qu'il ne produise un infini négatif pendant presque chaque valeur, d'où le meme qu'il y aura toujours de l'incertitude dans l'apprentissage en profondeur.

  • 00:40:00 Dans cette section, le conférencier discute de la fonction Softmax, qui prend un vecteur de valeurs et génère un vecteur de valeurs dont la somme est égale à un et qui sont toutes supérieures à zéro. Cette fonction est utilisée à la fin d'un réseau de neurones si l'on veut interpréter les sorties du réseau comme des probabilités pour différentes classes. La conférence explique également que la raison de l'ajout de la fonction d'activation ReLU, qui ajoute de la complexité au réseau, est de permettre la modélisation de fonctions complexes qu'une simple multiplication matricielle, en l'absence de ReLU, peut ne pas capturer. Le conférencier aborde également l'utilisation des fonctions de perte comme mesures pour évaluer la performance du modèle, comme l'erreur quadratique moyenne. Enfin, la métaphore d'être sur une colline et de vouloir descendre tout en ne voyant qu'un pied autour est introduite pour expliquer le concept d'optimisation de descente de gradient.

  • 00:45:00 Dans cette section, le conférencier présente le concept d'escalade en optimisation et comment il s'applique à l'apprentissage en profondeur. Le réseau de neurones est une fonction vectorielle et la direction la plus raide est le gradient de la fonction vectorielle. Le conférencier explique que déterminer la direction de l'ascension la plus raide peut être fait en utilisant le calcul multivariable où prendre le gradient de n'importe quelle fonction de plusieurs variables par rapport à ses entrées donnera la direction la plus raide. Dans l'apprentissage en profondeur, le problème de trouver les meilleurs poids qui optimisent la perte minimale est incroyablement difficile, donc le conférencier propose que nous initialisions simplement tous les poids et biais à des valeurs aléatoires et que nous fassions de petits pas dans la direction de la descente la plus raide. Avec une évaluation continue, ce processus devrait conduire à la bonne sélection des pondérations et des biais.

  • 00:50:00 Dans cette section, l'orateur explique comment réduire la pente d'une fonction de perte en prenant la dérivée partielle de la fonction de perte par rapport à tous les paramètres individuels. L'orateur mentionne également que la fonction de perte dépend de tous les paramètres, tels que les poids et les biais. Pour mettre à jour ces poids et biais, on prend la dérivée de la fonction de perte par rapport aux paramètres évalués à leur valeur actuelle et on fait un petit pas dans la direction opposée au plus grand changement, mis à l'échelle par un taux d'apprentissage. L'espoir est qu'après la mise à jour, la valeur de la fonction de perte diminuera de manière significative.

  • 00:55:00 Dans cette section, le conférencier explique comment échelonner les poids afin de réduire la perte d'un exemple dans le but de réduire la perte pour l'ensemble des données. Le gradient de chaque exemple d'entraînement est pris et, lorsqu'il est moyenné, c'est l'étape qui peut être franchie pour entraîner la plus grande diminution des pertes sur l'ensemble de données. Pour plus d'efficacité de calcul, fragmentez-le et regardez simplement de petits morceaux appelés descente de gradient par lots. Le conférencier détaille le processus des éléments constitutifs du réseau tels que les fonctions d'activation et les fonctions de perte, soulignant qu'en fin de compte, tout ce qui compte, c'est que la fonction de perte quantifie notre performance. Le conférencier note également qu'il n'existe aucun moyen concret de définir les meilleures valeurs pour tous les poids et biais du réseau de neurones, d'où l'utilisation de ces méthodes paresseuses. Enfin, une explication de l'idée d'apprentissage en profondeur et de la façon dont un grand réseau de neurones entraîne une faible perte malgré sa capacité à mémoriser les données est fournie, comme le montrent les résultats empiriques.

  • 01:00:00 Dans cette section, le conférencier discute du processus de réglage des hyperparamètres dans un réseau de neurones pour optimiser ses performances avec un ensemble de données donné. Il reconnaît qu'il n'y a pas d'ensemble fixe d'hyperparamètres qui fonctionnera pour tous les ensembles de données et recommande plutôt de tester différentes valeurs pour des paramètres tels que le nombre de couches, les fonctions d'activation, etc. Le conférencier a dû se précipiter jusqu'à la fin de la conférence et mentionne que un quiz sera bientôt publié, mais il ne sera pas trop difficile et sera disponible sur une grande échelle.
 

CS 198-126 : Cours 3 - Introduction à l'apprentissage en profondeur, partie 2



CS 198-126 : Cours 3 - Introduction à l'apprentissage en profondeur, partie 2

Dans cette section de la conférence, le concept de rétropropagation est expliqué, qui est un moyen plus rapide d'obtenir toutes les dérivées partielles requises pour l'algorithme de descente de gradient sans effectuer d'opérations redondantes. Le conférencier explique également comment améliorer la descente de gradient vanille pour l'optimisation de l'apprentissage en profondeur et présente Momentum, RMSprop et Adam comme méthodes d'optimisation. L'importance de garder une trace de l'historique de formation d'un modèle, l'utilisation de la normalisation par lots et l'assemblage comme technique pour améliorer les performances du modèle sont également discutées, ainsi que les techniques couramment utilisées dans l'apprentissage en profondeur pour aider à réduire le surajustement tel que l'abandon et les sauts de connexions. Enfin, le conférencier aborde brièvement la facilité d'utilisation de PyTorch et ouvre la parole aux questions.

  • 00:00:00 Dans cette section de la conférence, l'orateur fait quelques annonces rapides sur la prochaine date limite pour le devoir de codage et le premier quiz. Le premier devoir est une chance pour les étudiants d'apprendre les outils nécessaires pour le reste du cours, et le quiz est destiné à servir de contrôle de compréhension. L'orateur décrit ensuite les sujets qui seront abordés dans la conférence, y compris la rétropropagation et les outils modernes d'apprentissage en profondeur, et assure aux étudiants que s'ils ne comprennent pas les détails mathématiques de la rétropropagation, tout va bien tant qu'ils comprennent l'idée de haut niveau. . La seconde moitié de la conférence est importante, couvrant les outils qui font bien fonctionner l'apprentissage en profondeur moderne.

  • 00:05:00 Dans cette section de la conférence, le concept de création d'un graphe de calcul pour les fonctions et d'utilisation de la règle de chaîne pour calculer les dérivées partielles est discuté. Le graphe de calcul permet un calcul efficace des dérivées par rapport aux nœuds individuels. Ce concept est ensuite appliqué à la rétropropagation dans un exemple de réseau neuronal jouet où la règle de chaîne est utilisée pour calculer les dérivées partielles de la perte par rapport à chaque paramètre de poids et de biais. En multipliant toutes les dérivées partielles le long du chemin de chaque paramètre au nœud de perte, un calcul redondant peut être évité.

  • 00:10:00 Dans cette section, le concept de rétropropagation est expliqué, qui est un moyen plus rapide d'obtenir toutes les dérivées partielles requises pour l'algorithme de descente de gradient sans effectuer d'opérations redondantes. À mesure que la profondeur du réseau augmente, de nombreux calculs deviennent répétés et redondants, ce qui les rend inadaptés à la formation de réseaux profonds. La rétropropagation fonctionne en mettant en cache les valeurs lors de la passe avant et en les réutilisant lors de la passe arrière lors du calcul des dérivées partielles. Cependant, comme les dérivées partielles impliquent désormais des matrices et des matrices, la mise en cache devient plus critique car elle évite les opérations de multiplication, qui sont généralement plus coûteuses. La vidéo explique que nous pouvons utiliser des outils comme pyTorch pour mettre automatiquement en cache les valeurs requises pour nous.

  • 00:15:00 Dans cette section, le conférencier explique comment améliorer la descente de gradient vanille pour l'optimisation de l'apprentissage en profondeur. Un problème avec la descente de gradient de vanille est qu'il se débat aux minima locaux ou aux points plats où le gradient est nul, empêchant l'algorithme de trouver de meilleures solutions. Pour résoudre ce problème, le conférencier introduit le concept d'élan, inspiré par une balle dévalant une colline. En prenant la moyenne pondérée des gradients passés et en l'ajoutant au gradient actuel, l'élan peut aider à dépasser les petits minima locaux et les points plats. Bien qu'il ne s'agisse pas techniquement d'une véritable descente de gradient, l'élan peut permettre à l'algorithme de surmonter ces obstacles et, espérons-le, de trouver de meilleures solutions. Le conférencier explique également comment mettre à l'échelle la moyenne pondérée des gradients passés pour ne pas trop réduire le gradient actuel.

  • 00:20:00 Dans cette section, le concept de quantité de mouvement dans la descente de gradient est discuté. La conférence explique que les bêtas sont utilisés afin de contrôler les tailles de pas de sorte que les tailles de pas ne deviennent pas trop grandes et incohérentes. La conférence explique l'élan comme un moyen pour que les tailles de pas restent les mêmes lors de la descente, mais aussi pour être utilisé pour continuer à se déplacer dans la direction que le gradient a historiquement pointée. La conférence présente ensuite la méthode d'optimisation prop RMS, qui stocke une moyenne pondérée des composantes au carré des gradients précédents.

  • 00:25:00 Dans cette section, l'instructeur explique le concept de RMSprop, qui est une forme de descente de gradient, et son fonctionnement par rapport aux méthodes traditionnelles. Il explique que RMSprop divise les gradients par la racine carrée des moyennes mobiles au carré des gradients, ce qu'il démontre en utilisant des exemples de petits et grands gradients. Ce faisant, l'algorithme est capable d'ajuster de manière adaptative le taux d'apprentissage, appelé taux d'apprentissage adaptatif. Il conclut finalement qu'Adam est la meilleure forme de descente de gradient car elle présente les avantages à la fois du RMSprop et des méthodes traditionnelles.

  • 00:30:00 Dans cette section, le conférencier présente Adam, une combinaison de RMSProp et de momentum, comme méthode d'optimisation préférée pour la descente de gradient dans les modèles d'apprentissage en profondeur. Adam offre les avantages de pouvoir éviter les minima locaux avec élan tout en tenant compte des problèmes liés aux points plats qui nécessitent une amplification à travers eux. Cela ne change pas la direction du dégradé mais seulement sa mise à l'échelle. La conférence suggère le point de contrôle du modèle comme moyen de lutter contre tout comportement erratique pouvant survenir avec Adam ou RMSProp après avoir atteint un minimum local. Des méthodes d'optimisation de second ordre peuvent également être utilisées, mais elles nécessitent plus de puissance de calcul et sont moins courantes.

  • 00:35:00 Dans cette section, l'instructeur explique l'importance de garder une trace de l'historique d'entraînement d'un modèle et de ses performances sur de nouvelles données qu'il n'a jamais vues auparavant pour déterminer efficacement quel point de contrôle est le meilleur. Une technique de normalisation appelée normalisation par lots est également discutée, qui consiste à soustraire la moyenne et à diviser par l'écart type pour chaque activation sur un réseau de neurones, puis à permettre au réseau de redimensionner ces valeurs comme bon lui semble en multipliant chaque poids par une valeur gamma et en ajoutant le biais. Cette technique aide à normaliser les données et crée des surfaces perdues d'aspect régulier qui sont beaucoup plus faciles à envoyer avec une descente en dégradé, ce qui facilite grandement la vie.

  • 00:40:00 Dans cette section, nous apprenons la normalisation par lots, qui est une méthode utilisée pour normaliser les activations des neurones d'un réseau de neurones en calculant la moyenne et l'écart type des sorties d'une certaine couche. Cette normalisation fait du comportement par défaut du réseau de neurones des activations normalisées, ce qui les rend bien comportées. Bien que cette méthode n'ajoute pas d'expressivité au modèle, elle permet de meilleurs gradients et une plage de valeurs plus normalisée en tant qu'entrées sur toutes les couches du réseau. De plus, nous en apprenons davantage sur l'assemblage en tant que technique utilisée pour améliorer les performances du modèle en formant plusieurs modèles et en faisant la moyenne de leurs prédictions.

  • 00:45:00 Dans cette section, la conférence aborde deux techniques couramment utilisées dans l'apprentissage en profondeur pour aider à réduire le surapprentissage : l'abandon et les connexions ignorées. L'abandon consiste à supprimer au hasard un certain nombre de neurones avant l'entraînement pour forcer chaque neurone à apprendre à utiliser toutes les fonctionnalités qui l'ont précédé, le forçant à apprendre la même sortie que les autres neurones. En revanche, les connexions sautées permettent l'apprentissage d'une fonction d'identité qui aide à propager l'information sans ajouter de bruit ou de confusion ; il s'agit d'apprendre des zéros pour tous les poids, ce qui permet trivialement de transmettre de bonnes informations à la dernière couche pour les classer correctement. Les deux techniques, ainsi que d'autres discutées dans cette conférence, aident à augmenter les performances en diminuant le surajustement et en permettant des réseaux arbitrairement profonds.

  • 00:50:00 Dans cette section, le conférencier explique comment les connexions de saut peuvent être un outil utile lors de la construction de réseaux de neurones. Ces connexions peuvent être ajoutées pour améliorer les performances et améliorer votre réseau. Le conférencier n'a pas eu le temps de discuter pleinement de PyTorch, mais il est expliqué dans les devoirs. Ils expliquent que PyTorch peut être très facile à utiliser si vous savez déjà utiliser numpy. Ils peuvent créer des fonctions qui acceptent une valeur et la renvoient, ce qui rend possible le calcul de la valeur du gradient sur une certaine entrée. Le conférencier conclut en ouvrant la parole aux questions.
 

CS 198-126 : Cours 4 - Introduction à la préformation et aux augmentations



CS 198-126 : Cours 4 - Introduction à la préformation et aux augmentations

Dans cette conférence, le conférencier explique l'évolution de l'extraction de caractéristiques dans l'apprentissage automatique, les avantages de l'apprentissage en profondeur et comment l'apprentissage par transfert peut être utilisé pour améliorer la précision et la vitesse des modèles. Ils discutent également du concept de gel et de réglage fin des couches dans les réseaux de neurones et de l'importance des intégrations dans la réduction de la dimensionnalité des variables catégorielles. La conférence présente l'apprentissage auto-supervisé et ses différentes tâches, y compris les tâches de puzzle, de rotation et de prédiction de mots masqués, qui peuvent être utilisées pour pré-entraîner des modèles et transférer des représentations apprises vers des tâches en aval. Enfin, le regain d'intérêt pour l'apprentissage auto-supervisé en vision par ordinateur est discuté, et la conférence encourage les étudiants à compléter les devoirs sur le cahier high Crush.

  • 00:05:00 Dans cette section de la conférence, l'auteur discute de l'apprentissage de la représentation et de l'apprentissage superficiel. Avec l'apprentissage superficiel, le pipeline d'apprentissage automatique commence par une entrée X, les fonctionnalités en sont extraites à l'aide d'un extracteur de fonctionnalités, puis les fonctionnalités extraites sont transmises à un algorithme d'apprentissage automatique pour obtenir une sortie Y. Le facilitateur explique que l'extraction de fonctionnalités dépend sur les données et peut être
    simple pour les données tabulaires, mais complexe pour les données comme le texte, l'audio ou les images. Cependant, pour les images, il existe des extracteurs de caractéristiques spécialisés disponibles en vision par ordinateur classique.

  • 00:10:00 Dans cette section, le conférencier explique le concept d'extraction de caractéristiques et son évolution dans l'apprentissage automatique. Dans l'apprentissage automatique classique, un extracteur de caractéristiques programmé manuellement tel que Hog, qui capture les informations de bord dans une image, est utilisé pour créer des modèles. Cependant, ce processus est difficile car les extracteurs de caractéristiques varient pour différentes tâches. L'apprentissage en profondeur fournit un processus de bout en bout en apprenant à la fois l'extraction de caractéristiques et la prédiction de sortie. Le conférencier explique que ce processus permet l'apprentissage de représentations abstraites des données d'entrée, qui sont transmises à travers des couches d'extracteurs de caractéristiques apprises dans un réseau de neurones, ce qui donne des représentations hiérarchiques. La conférence fournit un exemple de la façon dont les réseaux de neurones profonds apprennent les représentations d'images de voitures.

  • 00:15:00 Dans cette section, le conférencier explique comment la profondeur des réseaux de neurones permet d'affiner les représentations. Les premières couches du réseau détectent les détails de bas niveau tels que les contours, tandis que les couches ultérieures se concentrent sur des éléments plus concrets tels que les portes ou les fenêtres d'une image. Les couches finales tentent de déterminer si l'image d'entrée est réellement ce que le modèle a appris à reconnaître, créant ainsi un modèle mental abstrait. Les conférenciers discutent ensuite de l'apprentissage par transfert comme moyen d'exploiter des modèles pré-formés et d'éviter d'avoir à former des modèles à partir de zéro, ce qui peut être coûteux en termes de temps, de calcul et de données.

  • 00:20:00 Dans cette section, l'orateur discute du concept de superposition dans les réseaux de neurones et de la manière dont la pré-formation et l'apprentissage par transfert peuvent être utilisés pour améliorer la précision et la vitesse des modèles. L'orateur explique comment les couches précédentes capturent des caractéristiques générales telles que les formes et les motifs, tandis que les couches ultérieures capturent des caractéristiques plus abstraites telles que les objets et les humains. Le concept de gel, dans lequel certaines couches sont conservées et utilisées dans les modèles ultérieurs, est également abordé comme un moyen de personnaliser les modèles pour des tâches spécifiques. La technique de congélation peut accélérer la formation du modèle et améliorer la précision, mais il convient de veiller à ce que les couches soient figées au niveau approprié.

  • 00:25:00 Dans cette section, l'instructeur discute de l'apprentissage par transfert dans les réseaux de neurones, en particulier de la technique de réglage fin où le modèle pré-formé est davantage formé sur les couches de sortie et les couches non figées. Ils soulignent l'importance de prendre en compte la taille et la similitude du nouvel ensemble de données avec l'ensemble de données d'origine au moment de décider de geler ou d'affiner le modèle pré-formé. De plus, ils expliquent l'importance des incorporations dans les réseaux de neurones et comment ils peuvent réduire la dimensionnalité des variables catégorielles, les rendant plus faciles à représenter dans un espace de transformation. L'utilisation des incorporations est illustrée par un exemple impliquant la mise en correspondance de genres de livres avec un espace vectoriel de dimension inférieure.

  • 00:30:00 Dans cette section de la conférence, le professeur parle des données de grande dimension et des difficultés qui surviennent lorsqu'on essaie de les représenter. Le professeur introduit le concept d'espace latent de dimension inférieure, qui consiste à coder toutes les informations importantes qui représentent les données de grande dimension dans un espace de dimension inférieure. L'objectif est de capturer ces informations à travers ce qu'on appelle un espace latent de caractéristiques, et dans de nombreux cas, cela peut être réalisé grâce à des incorporations. Le professeur donne un exemple de la façon dont une structure unidimensionnelle peut être représentée en utilisant une seule variable au lieu de trois variables dans un espace 3D afin que les données ne soient pas éparpillées dans un espace de grande dimension. Enfin, le professeur explique comment apprendre les incorporations en formant un modèle pour classer les images dans l'ensemble de données MNIST à l'aide de la fonction de perte softmax, et prendre la sortie de certaines couches du modèle comme une représentation de l'image.

  • 00:35:00 Dans cette section, l'orateur discute des avantages des réseaux pré-formés et de l'apprentissage par transfert, qui peuvent économiser du temps et de la puissance de calcul tout en obtenant de meilleurs résultats. Les réseaux pré-formés peuvent être formés sur des ensembles de données plus volumineux, ce qui peut conduire à de meilleures représentations. L'apprentissage par transfert permet l'application des connaissances acquises d'un réseau pré-formé à une autre tâche, ce qui le rend particulièrement utile dans le traitement du langage naturel. Une pré-formation auto-supervisée est alors mise en place, qui permet d'apprendre sans supervision à partir de labels, en apprenant à partir de données brutes.

  • 00:40:00 Dans cette section, le conférencier discute de l'apprentissage non supervisé, qui est un type d'apprentissage où aucune étiquette n'est fournie, mais le modèle apprend toujours des modèles et des relations au sein de l'ensemble de données. Des exemples d'apprentissage non supervisé comprennent l'analyse en composantes principales (ACP) et le regroupement. L'enseignant parle ensuite d'apprentissage auto-supervisé, qui consiste à assurer une supervision à partir des données elles-mêmes, plutôt qu'à partir de labels externes. La technique consiste à prédire les parties cachées ou les propriétés des données à partir des parties observées. L'apprentissage auto-supervisé est bénéfique dans les situations où les données étiquetées sont rares ou coûteuses à collecter.

  • 00:45:00 Dans cette section de la conférence, l'orateur discute de l'apprentissage auto-supervisé et des différentes tâches impliquées telles que la tâche de prétexte et la tâche en aval. Ces tâches peuvent être utilisées dans divers domaines tels que la vision par ordinateur, le NLP et le RL. L'orateur donne ensuite des exemples de tâches d'apprentissage auto-supervisé telles que la tâche de puzzle, où une image est divisée en neuf patchs, mélangés, et le modèle est invité à prédire l'ordre d'origine. Une autre tâche est la tâche de rotation, où une image est tournée d'un certain angle et le modèle est invité à prédire l'angle de rotation. Ces tâches peuvent être utilisées pour pré-entraîner des modèles et transférer les représentations apprises vers des tâches en aval telles que la classification d'images et la détection d'objets.

  • 00:50:00 Dans cette section de la conférence, le concept de modèles de préformation utilisant l'apprentissage auto-supervisé (SSL) est introduit. Un exemple de SSL en vision par ordinateur est la formation d'un modèle pour prédire l'angle de rotation d'une image et se concentrer sur l'orientation, l'emplacement, la pose et le type de l'objet au lieu des détails de bas niveau. Cette idée n'est pas limitée au CV car SSL peut également être appliqué à la PNL et à l'audio, comme la prédiction d'un ou plusieurs mots à partir de phrases. Un modèle célèbre en PNL appelé BERT utilise un modèle Transformer pour prédire simultanément les mots masqués de deux phrases et apprend une intégration au niveau du mot et au niveau de la phrase. BERT a été un énorme succès en PNL.

  • 00:55:00 Dans cette section de la conférence, l'orateur discute du regain d'intérêt pour l'apprentissage auto-supervisé (SSL) en vision par ordinateur (CV) après le succès du BERT en traitement du langage naturel (TAL). On dit que l'état de l'art actuel en CV est similaire à BERT. Le cours donne un aperçu de l'apprentissage par représentation, de l'apprentissage par transfert et du SSL, et présente différents concepts et méthodologies. Bien que cette conférence n'ait pas de devoirs, il y a un devoir pour l'ensemble du cluster sur le cahier high Crush qui est attendu mardi prochain, et une future conférence sur Advanced SSL pour CV aura un devoir. Le jeu de diapositives peut être consulté sur le site Web pour examen.
 

CS 198-126 : Cours 5 - Introduction à la vision par ordinateur



CS 198-126 : Cours 5 - Introduction à la vision par ordinateur

Cette conférence sur la vision par ordinateur couvre divers sujets, y compris l'histoire de la vision par ordinateur et son développement au fil des ans. L'instructeur explique également l'apprentissage en profondeur et comment il améliore les méthodes classiques de vision par ordinateur. La conférence se penche sur le concept de convolutions et sur la manière dont elles sont utilisées comme extracteurs de caractéristiques dans la vision par ordinateur, conduisant à la création de réseaux de neurones convolutifs (CNN). De plus, la conférence discute du rôle des champs réceptifs et présente les couches de regroupement comme méthode pour augmenter le champ réceptif des CNN. Dans l'ensemble, la conférence donne un aperçu de la vision par ordinateur en tant que domaine et des techniques utilisées pour extraire des informations à partir d'images. Dans la deuxième partie du cours, diverses techniques pour préserver la taille d'une image pendant les convolutions sont discutées, y compris le rembourrage et le même rembourrage. Le concept de foulée dans les couches convolutionnelles est également couvert, démontrant comment il peut imiter l'effet d'une couche de regroupement. L'anatomie d'un CNN et ses hyper-paramètres, y compris la taille du noyau, la foulée, le rembourrage et les couches de regroupement, sont expliqués, en mettant l'accent sur la façon dont une couche convolutive agit comme un extracteur de caractéristiques qui transmet des blocs de caractéristiques de faible dimension à un entièrement connecté. réseau de classement. Les conférences couvrent également l'architecture du réseau LeNet pour la classification des chiffres manuscrits et l'importance de normaliser les données d'image avant de les faire passer par un réseau de neurones. Enfin, l'augmentation des données est discutée en tant que technique de création de données d'entraînement supplémentaires, et l'importance du point de contrôle du modèle pendant l'entraînement est soulignée.

  • 00:00:00 Dans cette section, l'instructeur présente la vision par ordinateur en tant que domaine de l'IA qui traite de l'extraction d'informations d'une image à un niveau sémantique. Ils décrivent la classification, la détection et la segmentation comme des tâches qu'un modèle d'apprentissage automatique peut effectuer. Pour permettre à une machine de comprendre une image et d'effectuer ces tâches, elle doit avoir une compréhension de niveau supérieur du contenu de l'image, de sorte que les modèles sont conçus pour extraire des caractéristiques telles que les bords pour classer les images. L'instructeur explique que le domaine de la vision par ordinateur a ses racines dans les sciences cognitives et la psychologie, avec des développements dans les extracteurs de caractéristiques tels que le porc provenant d'une expérience réalisée sur des chats en 1959.

  • 00:05:00 Dans cette section de la conférence, l'instructeur explique comment l'apprentissage en profondeur a remplacé les méthodes classiques de vision par ordinateur, où les extracteurs de caractéristiques étaient programmés à la main. L'apprentissage en profondeur permet aux modèles d'apprendre non seulement les mappages des caractéristiques aux sorties, mais également les extracteurs de caractéristiques eux-mêmes, et cette percée a eu lieu en 2012 avec le réseau de neurones d'Alex Krajevski. L'instructeur parle du défi de reconnaissance visuelle ImageNet et de la façon dont AlexNet a considérablement réduit le taux d'erreur, devenant un tournant pour l'apprentissage en profondeur. La conférence aborde ensuite la manière dont les images sont représentées numériquement sous forme de matrices et l'utilisation des valeurs de luminosité pour représenter les images en niveaux de gris.

  • 00:10:00 Dans cette section du cours, l'instructeur aborde le concept de dimensions et de canaux de couleur dans les images. Chaque pixel coloré peut être décomposé en trois valeurs différentes, ce qui signifie qu'une image RVB peut être représentée par trois matrices pour chaque composante. Ces matrices peuvent ensuite être empilées les unes sur les autres pour former une matrice 3D appelée tenseur. L'instructeur note qu'il s'agit d'un concept important pour comprendre les réseaux de neurones convolutifs (CNN), car les réseaux de neurones réguliers ou les perceptrons multicouches ne sont pas utiles pour le traitement de grandes images en raison de la nécessité de convertir le tenseur 3D en vecteur, ce qui entraîne un énorme nombre d'éléments.

  • 00:15:00 Dans cette section, l'orateur discute du nombre de paramètres pour une couche entièrement connectée en vision par ordinateur. La couche prend une entrée de 120 000 dimensions et produit un vecteur à 10 dimensions, ce qui signifie que la matrice de poids doit avoir des dimensions de 10 sur 120 000, ce qui donne 1,2 million de poids et 10 paramètres du vecteur de biais. Ce nombre de paramètres rendrait le réseau trop grand et difficile à former, en particulier si une sortie de plus grande dimension est souhaitée. De plus, traiter chaque pixel comme une caractéristique distincte n'est pas orthodoxe dans la classification des images, car les humains ont tendance à décomposer les images en différentes parties et à utiliser ces informations pour construire un modèle mental. L'orateur suggère de regarder les régions locales de l'image au lieu de pixels individuels pour donner plus de sens aux données.

  • 00:20:00 Dans cette section, le conférencier discute de l'importance de regarder les pixels voisins dans une image pour recueillir des informations et comment cela pose un défi pour les réseaux de neurones, qui traitent généralement chaque pixel séparément. Il introduit le concept de régions locales, qui est pertinent pour la vision par ordinateur et concerne la structure d'une image. La conférence parle également de la nécessité d'extraire des représentations hiérarchiques d'une entrée et de la façon dont ces représentations dépendent les unes des autres, permettant au modèle d'apprendre des concepts abstraits comme à quoi ressemble un visage. Enfin, la conférence explique le concept d'équivalence translationnelle, où les représentations d'une image doivent être traduites avec ses pixels pour maintenir la cohérence.

  • 00:25:00 Dans cette section, le concept d'invariance translationnelle et de traitement de région locale est abordé en vision par ordinateur. L'architecture de réseau traditionnelle ne peut pas répondre à ces exigences, ce qui a conduit les chercheurs à développer à la place des réseaux de neurones convolutifs (CNN). L'opération de convolution impliquée dans les CNN est expliquée en utilisant un filtre de pondération qui peut glisser sur une image et calculer des produits scalaires pour créer de nouvelles sorties. La technique de partage de poids est également introduite, où chaque patch est passé à travers une couche avec les mêmes poids et biais pour donner la même représentation, rendant les CNN capables de satisfaire aux critères définis pour la vision par ordinateur.

  • 00:30:00 Dans cette section de la conférence, l'orateur explique le processus de convolutions, qui consiste à prendre un produit élément par élément d'un filtre sur un patch d'entrée et à additionner les résultats. Ce processus permet aux algorithmes de vision par ordinateur de se concentrer sur des patchs uniques de l'image d'entrée plutôt que sur l'image entière, et d'utiliser le même filtre pour chaque patch, en partageant les poids. En concevant stratégiquement les filtres, les algorithmes peuvent extraire différents types d'informations, telles que la détection des contours. L'orateur donne un exemple de filtre conçu pour détecter les bords verticaux en mettant en évidence les activations élevées le long du milieu de la sortie convoluée, avec les activations faibles sur les bords.

  • 00:35:00 Dans cette section du cours, l'instructeur explique le concept de convolutions en vision par ordinateur et comment elles sont utilisées comme extracteurs de caractéristiques. Les réseaux de neurones convolutifs (CNN) utilisent des filtres qui peuvent extraire différentes caractéristiques d'une image, et ces filtres peuvent être appris grâce au processus d'apprentissage en profondeur. En utilisant plus de filtres, les CNN peuvent extraire différents types de fonctionnalités d'une image d'entrée et utiliser des informations sur chacun d'eux. L'instructeur explique également comment généraliser le processus de convolution à une image d'entrée avec plusieurs canaux et la sortie de ce processus est appelée une carte d'activation, qui représente l'activation de différentes fonctionnalités.

  • 00:40:00 Dans cette section, l'orateur discute du concept de représentation des images dans un format RVB et comment la carte d'activation peut avoir une structure 3D. Le processus consiste à extraire différentes caractéristiques et à les convoluer pour obtenir une sortie 3D. Cette opération de convolution est générale et peut être appliquée à n'importe quelle entrée 3D, ce qui permet d'empiler des couches convolutives les unes sur les autres, conduisant à des réseaux de neurones profonds. De plus, l'orateur entre dans les détails de mise en œuvre concernant le concept de champ réceptif, qui ne se limite pas aux seuls réseaux de neurones convolutifs.

  • 00:45:00 Dans cette section, le concept de champs réceptifs dans les cartes d'activation est discuté. Le champ réceptif fait référence à la région de l'entrée qui influence chaque élément d'une carte d'activation. Cette section explique comment fonctionnent les champs réceptifs et comment l'augmentation de la taille du champ réceptif peut avoir un impact sur les performances du réseau. Il est également à noter que les champs récepteurs peuvent être influencés par différents filtres convolutifs et qu'avoir un champ récepteur trop grand ou trop petit peut conduire à des informations importantes manquantes dans l'entrée.

  • 00:50:00 champ réceptif, dans cette section de la conférence, le professeur explique comment la taille du champ réceptif affecte la capacité d'un réseau neuronal convolutif (CNN) à classer une image. Avoir un petit champ récepteur peut empêcher le réseau de traiter suffisamment d'informations pour la tâche de classification d'images, tandis qu'un grand champ récepteur peut conduire à un surajustement. La conférence aborde également l'importance d'introduire des non-linéarités grâce à l'utilisation de fonctions d'activation dans un CNN. Le professeur explique que si deux convolutions différentes peuvent avoir le même champ récepteur, leurs sorties ne seront pas les mêmes en raison de l'introduction de non-linéarités par les fonctions d'activation.

  • 00:55:00 Dans cette section, le conférencier présente les couches de regroupement comme méthode pour augmenter le champ récepteur des réseaux de neurones convolutifs sans ajouter trop de couches qui pourraient rendre le modèle trop grand. Les couches de mise en commun impliquent de regarder des régions carrées d'entrées et d'appliquer des opérations maximales ou moyennes. Par exemple, un regroupement maximum de deux par deux permet au modèle de ne sélectionner qu'une seule valeur dans chaque bloc de quatre pixels, réduisant ainsi les dimensions de l'entrée par deux. Le conférencier explique également comment la mise en commun maximale préserve les informations cruciales d'une zone locale, ce qui la rend courante dans la réduction des dimensions spatiales de l'activation.

  • 01:00:00 Dans cette section, l'orateur discute de différentes techniques pour préserver la hauteur et la largeur d'une image pendant les convolutions, y compris le processus de rembourrage et même rembourrage. Le même remplissage se produit lorsque vous augmentez artificiellement la taille de l'entrée en l'entourant de zéros ou d'autres constantes pour conserver les dimensions spatiales de la carte d'activation. Il s'agit d'une préférence dans la communauté de l'apprentissage en profondeur, mais il n'y a aucune preuve empirique que cela conduit à de meilleures performances par rapport au remplissage régulier. De plus, l'orateur discute du concept de foulée dans les convolutions et comment il peut avoir le même effet qu'une couche de regroupement.

  • 01:05:00 Dans cette section, le conférencier discute de l'utilisation de la foulée dans les couches convolutives qui peuvent agir comme une approximation d'une couche de regroupement en vision par ordinateur. Il explique que l'utilisation d'une foulée supérieure à un s'apparente à la combinaison de couches de convolution et de mise en commun, mais n'offre aucun avantage particulier à le faire. Il présente également une formule pour déterminer les dimensions de l'activation de sortie, qui dépendent de facteurs tels que les dimensions d'entrée d'origine, la taille du filtre, la taille du rembourrage et les foulées. Le conférencier explique ensuite comment la rétropropagation des gradients peut être effectuée à travers des couches convolutives, soulignant que PyTorch facilite la définition de couches convolutives à l'aide de plusieurs paramètres.

  • 01:10:00 Dans cette section, le conférencier discute des hyper-paramètres des couches convolutionnelles et de la façon dont ils constituent l'anatomie d'un CNN. Ces hyper-paramètres incluent la taille du noyau, la foulée, le rembourrage et les couches de mise en commun. Le conférencier explique qu'une couche convolutive peut être considérée comme un extracteur de caractéristiques qui convertit une entrée de grande dimension en blocs de caractéristiques de faible dimension qui peuvent être transmises à un réseau entièrement connecté pour une tâche de classification. La sortie de la couche convolutive à la fin est un bloc de caractéristiques de faible dimension, qui peut être transmis au MLP à l'intérieur de la boîte rouge, qui est le classificateur. Enfin, le conférencier explique qu'il existe différents types de couches de mise en commun, mais la norme dans la communauté Deep Learning est d'utiliser la mise en commun maximale au lieu de la mise en commun moyenne.

  • 01:15:00 Dans cette section, la vidéo explique la structure d'un réseau neuronal convolutif (CNN) à l'aide d'un exemple concret. Le réseau, appelé LeNet, a été développé par Jan Lacun pour classer les chiffres manuscrits. La vidéo explique que le réseau LeNet prend une entrée et la transforme en cartes d'entités, extrait ces cartes dans des tailles plus petites, applique une autre convolution et un regroupement jusqu'à ce qu'il obtienne une représentation plus petite de l'entrée, avant de la faire passer à travers des couches entièrement connectées pour obtenir une sortie. représentant l'un des dix chiffres possibles. La vidéo explique ensuite les choix de conception pour les architectures CNN, tels que l'empilement des couches de convolution, ReLU et de regroupement, ainsi que l'utilisation de couches de normalisation par lots pour rendre la formation plus stable. Enfin, la vidéo aborde certains des ensembles de données couramment utilisés en vision par ordinateur, tels que l'ensemble de données de classification des chiffres manuscrits MNIST et l'ensemble de données CIFAR-10.

  • 01:20:00 Dans cette section de la conférence, l'instructeur discute de plusieurs ensembles de données de vision par ordinateur populaires, notamment MNIST, CIFAR-10 et ImageNet. L'ensemble de données ImageNet, en particulier, est un ensemble de données d'un million d'images qui a été largement utilisé comme référence pour évaluer les algorithmes de vision par ordinateur. L'instructeur insiste également sur l'importance de normaliser les données d'image avant de les transmettre dans un réseau de neurones et sur le défi de la collecte et de l'étiquetage des données, qui nécessite une attention particulière pour s'assurer que les données proviennent d'une distribution similaire. De plus, plus de données peuvent aider à éviter le surajustement, mais la collecte de grands ensembles de données peut être coûteuse et chronophage.

  • 01:25:00 Dans cette section, la conférence couvre le sujet de l'augmentation des données où l'on peut créer artificiellement plus de données à partir d'une seule image en apportant de légères modifications à sa luminosité, son contraste, sa couleur, le recadrage, le retournement ou la rotation de l'image, et en attribuant eux la même étiquette pour créer de nouveaux ensembles de données de formation. Cette méthode est un moyen très simple et peu coûteux de créer de nouvelles données à partir d'ensembles de données préexistants. En outre, la conférence met également l'accent sur l'importance du point de contrôle du modèle lors de la formation des réseaux de neurones à convolution, car le temps de formation prend généralement des heures, voire des jours, voire des semaines, et la perte de progression en raison d'une interruption soudaine telle qu'une panne de machine ou un arrêt accidentel peut être coûteuse. Il est essentiel de stocker des instantanés de taux de modèle à différents points du processus de formation pour continuer à partir du dernier instantané si la formation est interrompue.
 

CS 198-126 : Cours 6 - Architectures avancées de vision par ordinateur



CS 198-126 : Cours 6 - Architectures avancées de vision par ordinateur

Cette conférence sur les architectures avancées de vision par ordinateur se concentre sur les réseaux de neurones convolutifs (CNN) et leurs différentes techniques. Le conférencier explique l'architecture d'AlexNet et de VGG avant de se plonger dans des techniques avancées telles que les résidus pour maintenir des valeurs résiduelles en arrière pour une plus grande précision et des architectures plus simples. L'utilisation de goulots d'étranglement et de convolutions un par un est discutée, ainsi que l'importance de pouvoir apprendre l'identité dans les architectures de vision par ordinateur. La conférence couvre également les problèmes de disparition des gradients dans les réseaux de neurones et comment ils peuvent être atténués avec la normalisation par lots et les réseaux résiduels. Des techniques telles que la mise en commun moyenne globale et la convolution séparable en profondeur sont expliquées en profondeur, suivies d'une discussion sur l'architecture du réseau mobile et ses avantages.

Le conférencier examine également les architectures avancées de vision par ordinateur et se concentre sur l'optimisation des modèles de réseaux neuronaux convolutifs en utilisant des convolutions locales par étapes et des convolutions une par une. Il souligne l'importance de comprendre ces optimisations et les problèmes qui peuvent survenir avec certaines optimisations pour construire efficacement les futurs réseaux. La conférence se termine par une discussion sur le compromis entre la précision, la performance et la taille du modèle, mis en évidence par la comparaison du modèle net efficace à d'autres réseaux. Les étudiants sont informés d'un quiz à venir et d'un devoir à rendre le vendredi suivant.

  • 00:05:00 Dans cette section, l'orateur commence par récapituler la conférence précédente avant de se plonger dans des architectures CNN plus avancées. Ils s'excusent pour l'introduction approximative dans la dernière conférence et font quelques modifications de dernière minute avant de commencer. Il y a un bref échange à propos d'un microphone, mais ensuite l'orateur saute dans la conférence.

  • 00:10:00 Dans cette section, le conférencier passe en revue l'architecture d'un réseau neuronal convolutif (CNN) et en quoi il diffère d'un réseau neuronal dense standard. L'orateur précise que la couche convolutive dans un CNN est similaire à une couche dans un réseau neuronal dense, avec des paramètres appris tels que des filtres et des termes de biais. L'orateur explique comment un filtre génère une carte de sortie pour chaque emplacement dans l'entrée, et plusieurs filtres génèrent différents canaux de sortie. L'orateur explique également comment une couche de regroupement peut être utilisée pour réduire la taille du volume de sortie. Dans l'ensemble, l'orateur souligne que la mécanique d'un CNN est similaire à un réseau de neurones dense, les convolutions remplaçant la multiplication matricielle.

  • 00:15:00 Dans cette section, l'orateur explique l'utilisation de la mise en commun maximale dans les réseaux de neurones convolutifs pour réduire la taille du volume des fonctionnalités et accélérer les convolutions. Cette technique consiste à prendre la valeur maximale dans chaque petit carré du volume caractéristique et à l'utiliser comme sortie. L'orateur aborde également le concept de segmentation, qui consiste à étiqueter chaque pixel d'une image avec une classification spécifique, et note que pour cette tâche, la taille de sortie sera la même que la taille d'entrée. La section se termine par une brève introduction aux architectures CNN avancées, en mettant l'accent sur ResNet comme le plus important à retenir de la conférence.

  • 00:20:00 Dans cette section, le conférencier aborde diverses architectures de vision par ordinateur, en mettant l'accent sur les réseaux de neurones convolutionnels (CNN). La conférence commence par discuter de la motivation derrière les CNN, qui consiste à empiler des couches convolutives et à regrouper des couches pour synthétiser les informations à partir de fonctionnalités de bas niveau et progresser vers des fonctionnalités plus élevées. La conférence aborde ensuite l'architecture d'AlexNet, qui était un exploit révolutionnaire qui a atteint un taux d'erreur d'environ 17 % sur ImageNet en 2012. Cependant, le conférencier note que ces architectures ne sont plus à la pointe de la technologie, car il y a eu des progrès dans les architectures de transformateurs qui seront discutés dans des conférences ultérieures.

  • 00:25:00 Dans cette section, le conférencier discute de l'architecture d'AlexNet et de VGG, deux réseaux neuronaux de vision par ordinateur largement utilisés. AlexNet implique cinq couches convolutives, la sortie finale étant un vecteur unidimensionnel aplati passé à travers trois couches denses et une fonction softmax pour produire une classe prédite. D'autre part, VGG a 23 couches convolutionnelles et trois couches denses. De plus, l'orateur met en évidence l'utilisation de convolutions une par une comme forme d'ajout et de réduction de remplissage et de dimensionnalité.

  • 00:30:00 Dans cette section, le conférencier discute des architectures avancées de vision par ordinateur, en se concentrant sur les réseaux de neurones convolutifs (CNN). La conférence met l'accent sur l'utilisation de convolutions une par une pour maintenir la taille d'entrée ainsi que sur la combinaison de convolutions en profondeur et ponctuelles pour augmenter l'efficacité de calcul. La conférence souligne également l'importance de l'apprentissage des fonctionnalités de bas niveau dans les premières étapes du classificateur et décrit les problèmes liés à l'empilement aveugle des couches. Pour résoudre ces problèmes, la conférence explique l'utilisation des résidus pour maintenir les valeurs résiduelles en arrière, conduisant à une plus grande précision et à des architectures plus simples.

  • 00:35:00 Dans cette section, la conférence aborde le concept de résidus dans les réseaux de neurones à convolution profonde. Bien que l'ajout de couches supplémentaires ne devrait pas diminuer la précision car la transformation d'identité peut être apprise, en pratique, l'ajout de couches supplémentaires affecte les identités précédentes à partir de la post-transformation, ce qui entraîne la disparition des gradients, l'explosion des gradients et l'éclatement des gradients. Les résidus résolvent ce problème en conservant les informations des étapes précédentes dans les calculs futurs, ce qui facilite l'apprentissage de la transformation d'identité. La conférence traite également des goulots d'étranglement dans le traitement des résidus, où l'ajout de résidus augmentera le temps de convergence, mais pas nécessairement les résultats. Une solution consiste à ajuster la taille et la fréquence du goulot d'étranglement.

  • 00:40:00 Dans cette section de la conférence, l'orateur discute de l'importance de pouvoir apprendre l'identité dans les architectures de vision par ordinateur. Ils expliquent que si les poids et les biais d'un réseau sont tous nuls, le réseau produira exactement la même chose qu'il absorbe, ce qui permettra au réseau de reconnaître plus facilement quand il a suffisamment d'informations pour faire une bonne classification et arrêter d'apprendre. fonctions plus compliquées. L'orateur aborde également la question du choix du nombre de couches dans un réseau, deux étant un choix courant dans l'architecture ResNet.

  • 00:45:00 Dans cette section de la conférence, le présentateur aborde le problème des gradients de disparition dans les réseaux de neurones et comment cela peut affecter les mises à jour de poids. Le problème du gradient de fuite se produit lorsque les dérivées partielles des étapes individuelles deviennent trop petites dans une chaîne de multiplication ou trop grandes, ce qui peut entraîner des problèmes de mise à jour cohérente des poids. La présentation explique également comment la normalisation par lots et les réseaux résiduels aident à atténuer le problème du gradient de fuite. La conférence passe ensuite à la discussion sur la mise en commun des moyennes globales, qui est utilisée pour remplacer les couches entièrement connectées dans les réseaux de neurones convolutifs (CNN) et générer des cartes de caractéristiques pour chaque catégorie dans les tâches de classification.

  • 00:50:00 Dans cette section de la conférence, l'orateur explique comment l'utilisation de couches denses dans les réseaux de neurones entraîne souvent un surajustement et une réduction des performances. Pour éviter cela, ils suggèrent d'utiliser la mise en commun des moyennes globales (GAP), qui génère des cartes de caractéristiques, les calcule en moyenne et les alimente dans une fonction softmax sans régler aucun paramètre. L'orateur introduit également le concept de convolutions séparables en profondeur, qui utilisent des cartes de caractéristiques de dimension inférieure sur chaque canal séparément avant de les combiner intelligemment pour réduire le calcul et conserver les données de chaque canal. Cette technique est particulièrement importante pour la mise à l'échelle des calculs sur une large gamme de filtres dans les réseaux de neurones profonds.

  • 00:55:00 Dans cette section de la conférence, l'orateur discute de l'architecture du réseau mobile, qui utilise la profondeur et la convolution ponctuelle pour réduire le nombre de calculs nécessaires pour une image. En appliquant une couche un par un par trois à chaque canal de l'image, puis en concaténant les résultats et en leur appliquant une convolution ponctuelle plus petite, la sortie est obtenue, ce qui réduit considérablement le nombre de calculs. L'architecture du réseau mobile a moins de paramètres et converge plus rapidement tout en correspondant à la précision de l'Inception de D3. L'orateur poursuit également en discutant des réseaux de compression et d'excitation, où vous pouvez compresser et développer des cartes d'entités en utilisant des couches denses et une mise à l'échelle, ce qui nécessite moins de calculs.

  • 01:00:00 Dans cette section, le conférencier explique comment utiliser les convolutions locales par étapes et les convolutions une par une pour optimiser un modèle de réseau neuronal convolutif (CNN). Il mentionne également comment la compréhension des optimisations et des problèmes rencontrés par certaines optimisations peut aider à construire de futurs réseaux plus efficacement. La conférence se termine par une comparaison de la précision, des performances et de la taille du modèle de réseau efficace avec d'autres réseaux, soulignant qu'il existe toujours un compromis entre ces mesures.
 

CS 198-126 : Cours 7 - Détection d'objets



CS 198-126 : Cours 7 - Détection d'objets

La conférence traite de la détection d'objets, en ajoutant spécifiquement la localisation à un CNN de classification simple, la méthode IOU pour la détection d'objets, le système R-CNN et l'optimisation des algorithmes de détection d'objets pour minimiser le temps de traitement avec YOLO. La vidéo explique YOLO en coupant une image et discute des défis de la détection d'objets YOLO, y compris l'utilisation de boîtes d'ancrage pour éliminer l'ambiguïté. Enfin, l'architecture YOLO est explorée, qui est un réseau neuronal entièrement convolutif pour la détection d'objets, et le stockage d'un grand nombre de classes pour la classification est présenté comme une question de recherche en cours. L'orateur recommande de lire "The Yellow Paper" tout en déconseillant RCNN en raison de son illisibilité.

  • 00:00:00 Dans cette section, le conférencier discute du processus d'ajout de la localisation à un CNN de classification simple pour la détection de points de repère. En ajoutant une sortie X et Y au réseau, le réseau génère l'emplacement exact d'une caractéristique spécifique dans une image, comme le nez de l'animal. Le conférencier explique ensuite comment étendre ce réseau en ajoutant plus de sorties pour créer une boîte englobante pour le chat dans son ensemble. Le conférencier explore également différentes idées d'expansion du réseau pour proposer une boîte englobante et le processus de formation du réseau sur cette tâche élargie.

  • 00:05:00 Dans cette section, le conférencier discute de la méthode IOU (intersection over Union) pour la détection d'objets. Cette approche vise à maximiser le chevauchement entre la boîte englobante prédite et la boîte englobante réelle en calculant la zone d'intersection et en la divisant par la zone de l'Union. L'enseignant explique que plus cette valeur est proche de 1, meilleure est la détection. De plus, le conférencier aborde les défis de la détection de plusieurs objets dans la même image, mentionnant la solution de base consistant à utiliser une recherche exhaustive ou des fenêtres coulissantes. Cependant, cette approche présente des problèmes importants, notamment l'inefficacité et la nécessité d'une puissance de traitement trop importante.

  • 00:10:00 Dans cette section, l'orateur discute de la solution proposée au problème des faibles rapports d'aspect dans la détection d'objets, qui est le système appelé R-CNN. Son idée de base est de deviner les boîtes englobantes probables et d'effectuer une classification sur celles-ci en utilisant des algorithmes classiques d'apprentissage non automatique pour segmenter une image et proposer un ensemble de boîtes englobantes pour les objets. Cette approche fonctionne car les bords d'une image sont susceptibles d'être les limites d'une boîte englobante. L'algorithme utilise également la suppression non maximale pour supprimer la redondance causée par la classification potentielle du même objet plusieurs fois. Cependant, ce système est encore lent car la plupart des images ont des milliers de régions de segmentation différentes, selon la façon dont l'algorithme classique est défini.

  • 00:15:00 Dans cette section, le conférencier explique comment optimiser les algorithmes de détection d'objets pour minimiser le temps de traitement. Une façon consiste à créer une carte des caractéristiques qui extrait les informations clés de l'image, puis à effectuer une classification uniquement sur la section de la carte des caractéristiques nécessaire pour chaque détection d'objet, éliminant ainsi le besoin de réexécuter le réseau neuronal convolutif complet à chaque fois. Le conférencier présente ensuite YOLO, un algorithme de détection d'objets qui utilise un seul réseau neuronal convolutif pour produire l'emplacement et les boîtes englobantes de plusieurs objets dans une image. L'architecture de YOLO se compose de couches convolutives et d'une couche de classification, permettant un temps de traitement plus rapide et la détection de plusieurs objets à la fois.

  • 00:20:00 Dans cette section, la vidéo explique comment YOLO (You Only Look Once) fonctionne en découpant une image dans une grille, chaque grille représentant un vecteur de classification ou une boîte englobante. Cela signifie théoriquement que le nombre d'objets pouvant être classés est égal au nombre de grilles dans l'image. YOLO utilise également la largeur et la hauteur XY, la coordonnée XY étant le milieu de la boîte englobante et la largeur et la hauteur étant la taille de la boîte. La vidéo poursuit ensuite en expliquant la suppression non maximale, un processus qui élimine les chevauchements et choisit la meilleure boîte englobante avec la plus grande confiance pour chaque tracé de classification.

  • 00:25:00 Dans cette section, nous découvrons les défis de la détection d'objets YOLO, y compris le problème de plusieurs objets centrés dans la même cellule et comment générer plusieurs classifications et cadres de délimitation dans une cellule. La solution consiste à utiliser des boîtes d'ancrage, où des boîtes de délimitation génériques sont définies avant la classification, et l'ensemble de données est classé en fonction de la similitude avec ces boîtes d'ancrage. Cela permet de déterminer de manière déterministe quel objet doit être classé dans quel vecteur et élimine l'ambiguïté des boîtes englobantes dupliquées.

  • 00:30:00 Dans cette section, l'architecture YOLO est discutée, qui est un réseau de neurones entièrement convolutionnel pour la détection d'objets. Le réseau YOLO effectue un passage sur l'image et est de conception simple, éliminant les composants classiques tels que les fenêtres coulissantes. En utilisant des boîtes d'ancrage et d'autres techniques, YOLO est capable d'égaler la précision de RCNN tout en améliorant considérablement sa vitesse. De plus, le concept de boîtes d'ancrage est exploré, qui sont des formes géométriques qui correspondent aux objets d'une image. Il est difficile de détecter des objets avec des boîtes d'ancrage qui ont la même forme et la même taille et qui se chevauchent. Cependant, il existe des algorithmes qui peuvent trouver des boîtes d'ancrage mathématiquement optimales pour séparer ces objets. Enfin, la discussion porte sur le stockage d'un grand nombre de classes pour la classification, qui est encore une question de classification actuellement explorée par les chercheurs.

  • 00:35:00 Dans cette section, l'orateur recommande un document technique appelé "The Yellow Paper" pour ceux qui souhaitent lire sur la détection d'objets. En revanche, le locuteur déconseille de lire RCNN en raison de son illisibilité. L'orateur invite l'auditoire à poser des questions avant de conclure la conférence.
 

CS 198-126 : Cours 8 - Segmentation sémantique



CS 198-126 : Cours 8 - Segmentation sémantique

La conférence traite de la segmentation des images, y compris la segmentation sémantique et la segmentation des instances. L'objectif principal de la segmentation est de détecter tous les objets d'une image et de les séparer. Le conférencier explique comment un réseau neuronal convolutif (CNN) peut être utilisé pour la segmentation sémantique et comment le sous-échantillonnage peut aider avec des images pleine résolution coûteuses en calcul. Différentes approches pour transformer un petit volume en une taille d'image sont également discutées. La conférence présente le U-Net, un modèle de segmentation sémantique qui combine les améliorations précédentes avec des connexions de saut, et explique comment il peut être étendu à la segmentation d'instance en utilisant l'approche Mask R-CNN. Un modèle de segmentation sémantique pré-formé est démontré, et le conférencier parle de la pré-formation et des devoirs de cours à venir.

  • 00:00:00 Dans cette section, le cours couvre la segmentation d'images, en particulier la segmentation sémantique et la segmentation d'instances. La segmentation sémantique consiste à trouver les pixels spécifiques où un objet est présent dans l'image, tandis que la segmentation d'instance identifie où chaque instance de chaque classe se trouve dans l'image. L'objectif ultime de la segmentation est de détecter tous les objets d'une image et de les séparer. Cette technique est utile car les humains perçoivent les objets à travers une combinaison de composants individuels, et être capable d'identifier et de classer ces composants plus spécifiquement est essentiel. La segmentation offre des applications utiles, telles que la détection d'objets et l'identification des relations d'objets.

  • 00:05:00 Dans cette section, le conférencier discute du concept de segmentation et comment l'aborder. L'idée est de créer des segments connectés en les regroupant sur la base d'une sorte de critères de similarité. L'approche classique consistait à définir une fonction pour regrouper les pixels en fonction de leur similitude dans certaines mesures, telles que l'intensité. Cependant, le conférencier mentionne de nouvelles approches d'apprentissage en profondeur, telles que les fenêtres glissantes, qui peuvent apprendre à effectuer une segmentation au lieu d'utiliser un algorithme fixe.

  • 00:10:00 Dans cette section, le conférencier explique comment un réseau de neurones convolutifs (CNN) peut être utilisé pour la segmentation sémantique. Au lieu d'exécuter l'approche de la fenêtre glissante CNN plusieurs fois, une opération convolutive peut être utilisée à la place. Cela permet d'obtenir les effets souhaités sans l'inefficacité du recalcul des fonctionnalités partagées. La couche convolutive peut être exécutée comme un filtre sur l'image, et la couche de sortie mappera une à une avec l'image d'origine, quelle que soit sa taille. Le rembourrage peut également être utilisé pour gérer les cas où la taille de l'entrée est inférieure à la taille du filtre.

  • 00:15:00 Dans cette section, le conférencier aborde la question du sous-échantillonnage des grandes images pour rendre la segmentation sémantique plus réalisable, car le traitement des images en pleine résolution peut être coûteux en calcul. La solution consiste à sous-échantillonner progressivement l'image avec chaque couche de convolution et à supprimer les informations redondantes, créant ainsi un volume plus petit avec lequel travailler. Cette image sous-échantillonnée est ensuite suréchantillonnée à la fin pour créer une carte de segmentation de l'image d'origine, chaque pixel étant segmenté dans une classe particulière en fonction de la sortie de classification maximale. La conférence aborde également brièvement différentes approches du rembourrage et du traitement des bords des images.

  • 00:20:00 Dans cette section, l'instructeur aborde différentes approches pour transformer un petit volume, tel qu'une carte de segmentation, en une image de la taille de l'image d'entrée d'origine. L'approche classique consiste à agrandir l'image et à utiliser des fonctions d'interpolation telles que le voisin le plus proche ou l'interpolation linéaire pour remplir l'espace supplémentaire. Cependant, cette approche peut entraîner une certaine perte de détails. L'instructeur suggère une approche apprise qui utilise la déconvolution, qui consiste à faire passer la couche d'entrée sur la couche de sortie et à supprimer un par un les pixels de l'image d'entrée d'origine. L'instructeur passe brièvement en revue les convolutions et explique le fonctionnement de la déconvolution en inversant les positions des couches d'entrée et de sortie.

  • 00:25:00 Dans cette section, le conférencier dessine un exemple d'image d'entrée simple et explique une méthode de décomposition qui consiste à regarder chaque pixel de l'image d'entrée et à utiliser un filtre pour le projeter sur l'image de sortie. L'enseignant note une limitation de cette méthode dans la mesure où elle peut écraser des valeurs déjà écrites. Pour résoudre ce problème, le conférencier introduit une approche incrémentale impliquant des convolutions convolutives pour sous-échantillonner l'image d'entrée dans une représentation à basse résolution, puis en utilisant des convolutions D pour la suréchantillonner à sa taille d'origine. Le conférencier note que cette méthode est bénéfique car l'échantillonnage ascendant est appris plutôt qu'un simple algorithme classique, ce qui permet une plus grande adaptabilité et un raffinement des formes.

  • 00:30:00 Dans cette section, nous découvrons le U-Net, un modèle de segmentation sémantique qui combine les améliorations précédentes avec des connexions de saut. Les connexions de saut permettent d'extraire des informations de différents niveaux du chemin de sous-échantillonnage pendant le sur-échantillonnage. Il existe également différentes variantes du U-Net, telles que les modèles de famille plats profonds et les modèles basés sur des transformateurs comme le Sendformer. Le U-Net peut également être étendu pour résoudre le problème de la segmentation des instances en utilisant l'approche Mask R-CNN, qui prédit l'emplacement des objets dans la valeur identifiée.

  • 00:35:00 Dans cette section, le conférencier discute de la segmentation complète des instances à l'aide du masque R-CNN, qui est utile pour les voitures autonomes détectant les contours d'objets tels que les voitures, les piétons ou les sacs à dos. Le conférencier explique comment la boîte englobante potentielle est réduite en une image de taille fixe et classée. Les étiquettes des objets sont collectées par diverses méthodes, telles que le fait de le faire par des humains ou l'utilisation de méthodes d'assistance. La matrice est apprise de la même manière qu'un filtre, et lors de la mise hors service d'une image, le conférencier explique qu'il s'agit d'une projection où le filtre est multiplié par chaque valeur de pixel correspondante, puis itéré sur l'image, ce qui n'inverse pas réellement une convolution .

  • 00:40:00 Dans cette section, l'enseignant et un étudiant présentent un modèle de segmentation sémantique pré-entraîné qui a été entraîné sur Cloud GPU. Le modèle est exécuté sur une image du Japon et les résultats montrent que le modèle peut détecter plusieurs objets avec des précisions variables. L'étudiant mentionne également qu'un seuil de score peut être appliqué au modèle pour filtrer les informations avec des scores de précision faibles. Dans l'ensemble, la démo sert d'exemple de la façon dont la segmentation sémantique peut être appliquée aux images du monde réel.

  • 00:45:00 Dans cette section, l'orateur parle de la pré-formation et de la manière dont le modèle peut être pré-formé sur AWS et d'autres services déchargés. Ils mentionnent également une affectation de résident obligatoire et une unité optionnelle recommandée qui implique une segmentation. Les dates d'échéance et les liens sont sur le site Web du cours et ils encouragent les étudiants à se présenter aux heures de bureau pour toute question. Dans l'ensemble, cette section a fourni des informations logistiques sur le cours et les devoirs à venir.