Apprentissage Automatique et Réseaux Neuronaux - page 35

 

CS 198-126 : Cours 19 - Préformation avancée de la vision



CS 198-126 : Cours 19 - Préformation avancée de la vision

Cette vidéo couvre diverses techniques utilisées pour la préformation auto-supervisée en vision avancée, y compris l'apprentissage contrastif, les auto-encodeurs de débruitage, les encodeurs de contexte et le réseau Mae. L'orateur donne un aperçu de chaque méthode, discute de ses forces et de ses faiblesses, et souligne les avantages de combiner les pertes contrastives et de reconstruction dans la méthode BYOL, qui surpasse les deux individuellement. La vidéo fournit des informations utiles sur les dernières tendances de la recherche en matière d'apprentissage auto-supervisé et leur potentiel pour améliorer les performances des modèles de vision par ordinateur.

  • 00:00:00 Dans cette section, l'instructeur présente le concept d'apprentissage auto-supervisé (SSL), qui est une branche de l'apprentissage non supervisé qui crée des étiquettes à partir d'ensembles de données sans aucune étiquette associée. Cette approche est utile lorsque vous travaillez avec de petits ensembles de données ou lorsque vous pré-entraînez des modèles sur des ensembles de données volumineux et diversifiés pour extraire des représentations pouvant être transférées vers des tâches en aval. L'instructeur fournit également une analogie de John McCune pour expliquer comment SSL fournit plus de supervision que l'apprentissage non supervisé et moins que l'apprentissage supervisé, ce qui en fait une approche précieuse pour diverses tâches de vision par ordinateur.

  • 00:05:00 Dans cette section, le concept d'apprentissage non supervisé comme base de l'intelligence a été introduit dans le contexte de la vision par ordinateur. L'apprentissage auto-supervisé a été discuté comme un moyen de créer des étiquettes à partir de zéro comme principale forme d'apprentissage, tandis que l'apprentissage supervisé et l'apprentissage par renforcement n'étaient que de petites parties du processus. Le concept d'apprentissage contrastif a été introduit comme une approche non supervisée populaire qui se concentre sur la similarité comme objectif d'optimisation, et l'objectif de la fonction de perte a été expliqué comme poussant l'intégration pour l'échantillon positif aussi près que possible de l'intégration pour l'entrée, tandis que poussant simultanément l'enrobage pour l'échantillon négatif plus loin de l'enrobage d'entrée.

  • 00:10:00 Dans cette section, la vidéo explique le concept de perte de triplet utilisé pour entraîner les réseaux de reconnaissance faciale et comment il peut être amélioré à l'aide d'une fonction de perte contrastive. La fonction de perte contrastive s'attaque au problème consistant à éloigner l'entrée de tous les échantillons négatifs possibles, ce qui n'est pas réalisable en raison du grand nombre d'échantillons négatifs. La mise en œuvre de cette fonction de perte est similaire à un problème de classification, où l'échantillon positif sert d'étiquette correcte et tous les échantillons négatifs servent d'étiquettes incorrectes. La vidéo présente ensuite l'algorithme MOCO, qui définit l'apprentissage contrastif comme un revenu de dictionnaire différentiable, permettant la collecte de toutes les périodes et requêtes en un seul endroit.

  • 00:15:00 Dans cette section, le présentateur explique le processus d'apprentissage contrastif et comment définir la similarité à travers les réseaux de neurones. L'auteur définit ce que signifie similaire et souligne qu'il est passé à travers le même échantillon en utilisant le même réseau, connu sous le nom de discrimination d'instance. Pour créer une bonne représentation des tâches en aval, la clé et la requête proviennent du même réseau, donc l'utilisation de plusieurs réseaux n'est pas très utile, et à la place, un énorme pool de négatifs est nécessaire pour encourager de meilleures représentations. Cependant, il peut être difficile en termes de calcul et peu pratique de sélectionner un seul positif parmi un énorme pool de négatifs, ce qui limite la taille du lot. Le présentateur discute ensuite d'une idée de pré-calculer toutes les clés et les requêtes à partir d'un modèle unique.

  • 00:20:00 Dans cette section de la conférence, l'orateur discute de l'idée de pré-calculer les incorporations et de les stocker dans une file d'attente lors de la formation d'un modèle sur un réseau unique qui se met à jour au fil du temps. Cette approche permet de maintenir la cohérence dans le temps et d'éviter le stockage d'intégrations très en amont dans le processus de formation. Cependant, cette méthode ne résout que le problème du calcul des plongements dans la passe avant, pas la passe arrière. L'orateur suggère de mettre à jour l'encodeur de clé avec une moyenne mobile des taux de requête et d'encodeur de clé pour éviter de changer trop rapidement les poids de l'encodeur de clé tout en maintenant la cohérence.

  • 00:25:00 Dans cette section de la vidéo, le présentateur discute des modèles Moco et SimCLR, qui sont tous deux des méthodes d'apprentissage contrastives pour produire de bonnes représentations d'images sans étiquettes. Le modèle Moco implique des encodeurs clés qui sont mis à jour au fil du temps au fur et à mesure que la formation progresse pour produire de bonnes représentations, qui peuvent être utilisées pour les tâches en aval. Le modèle SimCLR simplifie ce processus en utilisant un seul encodeur et en faisant passer les incorporations à travers un petit MLP pour obtenir des résultats encore meilleurs. Cette méthode élimine le besoin de maintenir des moyennes mobiles ou des réseaux différents, et est devenue une méthode d'apprentissage contrastive populaire dans la recherche sur l'apprentissage en profondeur.

  • 00:30:00 Dans cette section, nous découvrons le modèle SimCLR, une méthode auto-supervisée pour former des représentations d'images. Le modèle utilise la perte contrastive et la mise à l'échelle de la température pour calculer les plongements et introduit la notion de similarité selon laquelle la même image est similaire et les différentes ne le sont pas. Les techniques d'augmentation de données utilisées dans le modèle sont présentées et, étonnamment, les augmentations basées sur la couleur produisent les meilleurs résultats. Des sessions de formation plus longues et des lots plus importants montrent également de meilleurs résultats. SimCLR a été la première méthode de modèle qui a battu une base de référence entièrement supervisée sur la classification des images, et elle obtient les meilleurs résultats lorsqu'elle est affinée avec seulement 1 % et 10 % des étiquettes ImageNet.

  • 00:35:00 Dans cette section, la méthode byol pour la vision avancée de pré-formation est couverte. La méthode consiste à appliquer différentes augmentations de données à une image d'entrée, à générer différentes vues, à les faire passer par des réseaux d'encodeurs et à en tirer les représentations, qui sont ensuite projetées sur un petit réseau pour obtenir la projection C et C prime. La méthode n'est pas strictement une méthode d'apprentissage contrastive comme simclr, mais plutôt une combinaison d'éléments de simclr et moco en une seule fonction objectif. L'approche utilise l'amorçage, le maintien de deux réseaux différents et l'ajustement d'un modèle basé sur des métriques estimées à partir d'un autre, au lieu d'utiliser de vraies métriques de l'ensemble de données.

  • 00:40:00 Dans cette section, nous en apprenons davantage sur Deep Key Learning en lourd, ce qui est identique à ce qui se passe dans Deep Free Learning. Cette approche a inspiré BYOL, où le deuxième réseau pilote la supervision du premier réseau et vice versa. En utilisant ce processus d'amorçage, le réseau apprend plus de représentations pour construire des représentations, et comme il ne s'agit pas d'un apprentissage contrastif, il est robuste aux changements de taille de lot et de types d'organisation. BYOL fonctionne bien même avec des tailles de lots plus petites, et il bat MCLR pour les mêmes références. Nous passons ensuite à la deuxième classe de méthodes, où l'entrée est détruite, et nous devons reconstruire l'image d'origine, et ces méthodes fonctionnent bien avec une structure basée sur l'auto-encodeur. La présentation présente l'encodeur de modèle de débruitage, où le bruit est ajouté à une image, et le but est de prédire l'image débruitée. Le Stack Denoising Model Encoder était très populaire car il fonctionne très bien et le réseau apprend quelque chose de significatif même avec des images détruites.

  • 00:45:00 Dans cette section, l'orateur discute des difficultés de formation des réseaux de neurones dans le passé et de la façon dont les auto-encodeurs de débruitage (DAE) ont été utilisés comme solution de contournement. La conférence passe ensuite au concept de masquage de parties d'une image pour prédire la région cachée, appelée encodeur de contexte. La méthode, introduite en 2016 au laboratoire de Berkeley, a pu obtenir de bons résultats en détection et en segmentation, mais pas en classification. L'orateur passe en revue l'implémentation de l'encodeur de contexte et comment l'ajout d'un discriminateur à la fonction objectif a conduit à de meilleures représentations.

  • 00:50:00 Dans cette section, le réseau Mae est discuté, qui utilise une dorsale Transformer, contrairement aux dorsales CNN utilisées dans d'autres méthodes. Le réseau remplace par un vit et utilise le même objectif qu'un décodeur de contexte en masquant les patchs d'une image et en transmettant la région non masquée à un encodeur. Les intégrations codées sont ensuite transmises à un décodeur dans le but de reconstruire l'image d'origine. Ce processus apprend des fonctionnalités significatives dans ce format, et le réseau est illustré par plusieurs exemples tirés de l'article de Mae. Le jeton de classe, qui capture des informations sur la séquence entière, peut être utilisé pour la classification.

  • 00:55:00 se concentre sur la pré-formation auto-supervisée en utilisant le mélange d'apprentissage contrastif et de reconstruction basée sur l'auto-encodeur, et il surpasse les deux stratégies individuellement. Ils combinent les méthodes en utilisant une nouvelle fonction de perte qui équilibre entre les pertes contrastives et de reconstruction. C'est une approche prometteuse qui démontre le potentiel d'amélioration des performances des méthodes auto-supervisées, et c'est un domaine de recherche actuel pour comprendre les raisons sous-jacentes de ces résultats.

  • 01:00:00 Dans cette section, l'orateur discute du nouveau MasS - un modèle qui combine la reconstruction d'image et l'apprentissage contrastif en même temps à travers un seul modèle. MasS génère deux vues de la même image, masque les deux vues différentes et leur ajoute du bruit, combinant ainsi l'objectif de débruitage. La fonction de perte utilisée par MasS est une meilleure combinaison des points finaux, de la perte de reconstruction et de la perte de débruitage, ce qui se traduit par de meilleures performances que les modèles précédents. Le conférencier note qu'il existe de nombreux autres modèles dans le domaine de l'apprentissage de la représentation qui fonctionnent bien et que le domaine est actuellement en pleine effervescence pour la recherche.
 

CS 198-126 : Cours 20 - Styliser les images



CS 198-126 : Cours 20 - Styliser les images

La vidéo présente diverses techniques de stylisation d'image, notamment le transfert de style neuronal, les GAN et Pix2Pix, qui nécessitent des données appariées, et CycleGAN, qui utilise des données non appariées pour la traduction d'image à image. Les limites de CycleGAN peuvent être résolues par StarGAN, qui peut prendre des informations de plusieurs domaines pour former des générateurs pour des tâches de transition d'images multi-domaines. L'orateur discute également de la traduction image à image multimodale non supervisée utilisant des informations de domaine et des codes latents de faible dimension pour produire diverses sorties, illustrées par le modèle BicycleGAN. Enfin, les avantages potentiels de l'utilisation de Vision Transformers avec des GAN pour les tâches de traduction d'images sont mentionnés, et la conférence se termine par des exemples d'images amusants et une opportunité de questions et de discussion.

  • 00:00:00 Dans cette section, l'orateur discute de la traduction d'image à image et plus particulièrement du transfert de style neuronal. La tâche consiste à transformer des images du domaine source en l'image correspondante dans le domaine cible tout en préservant le contenu de l'image d'origine. Le transfert de style neuronal est une technique utilisée pour fusionner deux images en optimisant l'image de sortie pour qu'elle corresponde au contenu d'une image et à la référence de style d'une autre. Les réseaux convolutifs sont utilisés pour extraire les informations pertinentes des deux images et créer une nouvelle image avec le style souhaité. L'orateur détaille les entrées requises et l'architecture utilisée pour cette technique.

  • 00:05:00 Dans cette section, la conférence aborde le concept d'utilisation de CNN profonds pour représenter le contenu et le style des images. En commençant par les caractéristiques de bas niveau telles que les bords et les textures, le CNN résume les caractéristiques de niveau supérieur avant de produire des représentations d'objets. La conférence explore ensuite comment mesurer la similarité de style à travers différentes cartes de caractéristiques grâce à l'utilisation d'un calcul de matrice de gramme. La conférence explique comment obtenir le contenu et le style des CNN, et la méthode de calcul des pertes pour chacun qui ajuste le modèle pour produire la sortie souhaitée.

  • 00:10:00 Dans cette section de la conférence, l'orateur discute de différentes techniques de traitement d'image. Tout d'abord, ils discutent du processus de génération d'une image de sortie en ajoutant à la fois la perte de contenu et de style dans un optimiseur. Ils montrent un exemple d'une image de contenu et d'une image de style combinées pour créer l'image finale, avec des fonctionnalités de niveau inférieur de l'image de contenu et des fonctionnalités de niveau supérieur de l'image de style. Ensuite, ils passent brièvement en revue les GAN, en mettant l'accent sur les parties discriminateur et générateur. Ils mentionnent également StyleGAN et sa capacité à séparer les attributs de niveau supérieur et inférieur dans l'image. Enfin, ils discutent d'un modèle appelé Pix2Pix, qui utilise un GAN conditionnel pour générer des images de sortie basées sur des informations supplémentaires fournies par l'utilisateur.

  • 00:15:00 Dans cette section, la vidéo aborde diverses techniques de stylisation d'image, notamment les GAN et pix2pix, qui nécessitent des données appariées, et CycleGAN, qui utilise des données non appariées pour la traduction d'image à image. Cependant, CycleGAN a des limites, qui peuvent être résolues par StarGAN, un modèle qui peut prendre des informations de plusieurs domaines pour former des générateurs, permettant ainsi des tâches de transition d'images multi-domaines. L'idée clé derrière StarGAN est d'apprendre une méthode de traduction flexible qui utilise à la fois l'image et les informations de domaine comme entrée.

  • 00:20:00 Dans cette section de la conférence, l'orateur discute du concept de traduction multimodale non supervisée d'image à image et comment il peut être utilisé pour produire plusieurs sorties réalistes et diverses à partir d'une image d'entrée. Le document en cours de discussion intègre des informations de domaine et des codes latents de faible dimension pour produire des sorties plus précises et plus fidèles. Le modèle BicycleGAN a été présenté comme un exemple de la façon dont cette approche peut fonctionner pour minimiser l'effondrement des modes et obtenir des résultats divers. De plus, l'article tente d'apprendre à un encodeur à mapper la sortie dans l'espace latent et à minimiser la probabilité que deux codes différents génèrent le même style ou la même sortie.

  • 00:25:00 Dans cette section de la conférence, l'orateur discute des défis liés à l'utilisation des transformateurs de vision pour des tâches telles que la traduction d'image à image et des avantages potentiels de leur utilisation en combinaison avec des GAN. Ils mentionnent des techniques récentes qui tirent parti des avantages des transformateurs de vision avec les GAN pour s'attaquer aux tâches de traduction d'images, bien que ce ne soit pas aussi simple que d'utiliser les GAN seuls pour ces tâches. L'orateur conclut en partageant quelques images amusantes montrant les capacités de ces techniques et ouvrant la voie aux questions et à la discussion.
 

CS 198-126 : Cours 21 - Audio génératif



CS 198-126 : Cours 21 - Audio génératif

Dans cette conférence sur l'audio génératif, le présentateur aborde divers sujets tels que la quantification, l'aliasing, le traitement du signal, les projections, l'apprentissage en profondeur et les transformateurs. Le conférencier explique comment échantillonner et quantifier des signaux continus et le compromis entre la précision des profondeurs de bits et la puissance de calcul. Le théorème d'échantillonnage de Shannon-Nequist et ses effets sur la reconstruction des signaux et l'importance des projections et leur utilisation pour la reconstruction des signaux sont également expliqués. L'apprentissage en profondeur est exploré pour la reconstruction audio, et le présentateur présente l'audio génératif et comment il peut reconstruire la musique à partir d'enregistrements perdus ou endommagés. L'utilisation de Transformers est discutée pour la génération audio, et le processus de représentation de la musique comme une série de jetons est expliqué. L'orateur souligne également l'importance d'avoir un ensemble de données vaste et varié et discute du fonctionnement du modèle de transformateur pour les prédictions musicales. La conférence se termine par une démonstration de musique générée, montrant la capacité du modèle à prédire avec précision les notes futures.

  • 00:00:00 Dans cette section de la conférence, l'accent est mis sur l'audio génératif et sur la façon de discrétiser les signaux continus, ce qui est nécessaire pour que les ordinateurs traitent l'audio. Le processus d'échantillonnage et de quantification d'un signal continu est utilisé pour générer des signaux numériques. La conférence explique comment le convertisseur analogique-numérique utilise le circuit d'échantillonnage et de maintien et comment la sortie est discrétisée, en fonction du niveau de précision requis. La conférence traite également du convertisseur numérique-analogique et de la manière dont un filtre passe-bas est utilisé pour maintenir la bande passante du signal, certaines fréquences de coupure déterminant la pente du signal. Ces concepts sont essentiels à l'audio génératif et constituent une base importante pour la compréhension du contenu ultérieur de la conférence.

  • 00:05:00 Dans cette section, la conférence couvre les niveaux de quantification et leur corrélation avec la plage dynamique du signal quantifié. Une profondeur de bits plus élevée conduit à une approximation du signal plus précise, réduisant considérablement les erreurs jusqu'à atteindre une approximation presque parfaite à une profondeur de 16 bits. Cependant, il existe un compromis en matière de puissance de calcul, qui peut se demander si une hauteur sans perte ou une hauteur avec perte beaucoup plus rapide suffirait à l'oreille de l'auditeur. Le théorème d'échantillonnage de Shannon-Nequist affirme qu'un signal peut être reconstruit à partir de ses échantillons sans aucune perte d'information si et seulement si les fréquences du signal d'origine sont inférieures à la moitié de la fréquence d'échantillonnage. Le non-respect de ce critère conduira à un crénelage, qui produit une approximation problématique du signal.

  • 00:10:00 Dans cette section, nous en apprenons davantage sur l'aliasing et ses effets sur le traitement du signal, en particulier en termes de mauvais échantillonnage résultant en un signal de sortie modifié par rapport à l'entrée d'origine. Nous en voyons des exemples à travers des visualisations de formes d'onde et l'échantillonnage d'images. De plus, nous entendons parler de la théorie du signal géométrique, en particulier de l'utilisation de projections pour la reconstruction du signal et de l'utilisation de déconvolutions dans la segmentation d'image. Enfin, le présentateur partage une démonstration amusante de génération de musique 8 bits à l'aide d'une ligne de code C.

  • 00:15:00 Dans cette section, le conférencier discute des projections et comment elles peuvent être utilisées pour la reconstruction. La formule de projection est le produit scalaire de deux vecteurs, et cette mesure de similarité peut être utilisée pour reconstruire un signal en utilisant une combinaison linéaire de projections sur un autre ensemble de vecteurs. Cependant, une base est nécessaire et l'ensemble de vecteurs utilisés doit être orthogonal les uns aux autres pour garantir le maximum d'informations acquises. En prenant la projection sur différentes bases orthogonales les unes aux autres, nous pouvons obtenir des informations sur le vecteur projeté et finalement reconstruire le signal.

  • 00:20:00 Dans cette section, le conférencier présente l'utilisation de l'apprentissage en profondeur pour la reconstruction audio et comment il peut générer un son haute résolution en reconstruisant une forme d'onde de faible qualité. L'architecture du modèle ressemble à celle d'une unité qui utilise une représentation unidimensionnelle d'une convolution sous-pixel pour le suréchantillonnage. La forme d'onde sous-échantillonnée passe par huit blocs de sous-échantillonnage à l'aide de couches convolutives avec une foulée de deux, et la normalisation par lots est appliquée avec une fonction d'activation ReLU. Au niveau de la couche de goulot d'étranglement, qui est construite de la même manière qu'un bloc de sous-échantillonnage, la forme d'onde se connecte à huit blocs de suréchantillonnage. Ces blocs ont des connexions résiduelles aux blocs de sous-échantillonnage et utilisent une convolution sous-pixel pour réorganiser les informations selon une certaine dimension afin d'étendre le gain d'informations, augmentant la résolution de la forme d'onde tout en préservant les caractéristiques de la forme d'onde à basse résolution. La couche convolutive finale a une opération de réempilement qui réorganise les informations après la déconvolution des sous-pixels, et le suréchantillonnage de la forme d'onde de sortie est généré à l'aide de la fonction de perte d'erreur quadratique moyenne.

  • 00:25:00 Dans cette section, le conférencier discute de l'utilisation de l'audio génératif et de la manière dont il peut être utilisé pour reconstruire la musique de groupes enregistrés entre le milieu et la fin des années 1900 dont les enregistrements n'ont peut-être pas été conservés en pleine qualité. Elle parle du spectre sous-échantillonné et comment il peut être amélioré pour correspondre à la vraie forme d'onde en y ajoutant de la clarté et de la couleur. Le conférencier passe ensuite à Transformers pour la génération audio et comment l'architecture Transformer peut être utilisée pour prédire les notes de musique dans une mélodie. Cela nécessite de convertir des données, qui sont des fichiers musicaux, en une séquence de jetons, un problème unique qui doit être largement pris en compte en raison de la série temporelle qui doit être capturée, telle que la signature musicale, la clé et les battements.

  • 00:30:00 Dans cette section, l'orateur discute du processus de représentation de la musique comme une série de jetons qui peuvent être introduits dans un modèle de transformation pour l'audio génératif. Ils expliquent comment la hauteur, la durée et d'autres attributs peuvent être utilisés pour capturer des informations sur les notes de musique, mais notent également le défi de la segmentation des données de piano roll 2D en une seule dimension. Différentes approches, telles que les notes un-à-plusieurs ou le mappage de plusieurs notes sur un seul jeton, sont comparées, et l'utilisation de jetons séparateurs et d'une taille de vocabulaire réduite est introduite. Le conférencier conclut en abordant l'augmentation des données comme moyen d'augmenter la diversité des données d'entraînement pour les modèles audio génératifs.

  • 00:35:00 Dans cette section, l'orateur discute de l'importance d'avoir un ensemble de données vaste et varié lors de l'utilisation de modèles audio génératifs. Ils expliquent comment une seule chanson peut être transformée en 12 chansons de tonalités différentes et comment plus un modèle a de données et de généralisation, mieux il sera performant. L'orateur discute également de l'utilisation de l'encodage positionnel des battements comme moyen de fournir des métadonnées au modèle pour lui donner une meilleure idée de la synchronisation musicale. Ils notent que la méthode de structure positionnelle utilisée dans le traitement du langage naturel peut également être appliquée à la musique. La section se termine par une discussion sur le forçage des enseignants, un moyen d'appliquer un masque d'attention pour empêcher le modèle d'accéder à toutes les informations en même temps et de divulguer des informations sur les jetons qu'il est censé prédire ensuite.

  • 00:40:00 Dans cette section, l'orateur explique comment fonctionne le modèle de transformateur utilisé dans l'audio génératif. Le transformateur XL utilisé dans l'implémentation comprend un codage de position relative et une mémoire d'état cachée, qui permettent une inférence rapide et précise pour les prédictions musicales. Étant donné que la positionnalité est importante en musique, le modèle utilise uniquement la position relative au lieu de la position absolue. Le modèle capture également deux attributs de chaque note, à savoir la hauteur et la durée, pour les stocker en mémoire et prédire avec précision les futures notes. L'orateur présente ensuite une démo du Pachelbel Canon en ré majeur générée à l'aide du modèle, qui montre que bien que les notes générées s'écartent de la composition originale, elles sonnent toujours bien.
 

CS 198-126 : Cours 22 - Apprentissage multimodal



CS 198-126 : Cours 22 - Apprentissage multimodal

L'apprentissage multimodal consiste à représenter des objets de différentes manières, par exemple à travers du texte, des images, des vidéos ou de l'audio, tout en reconnaissant qu'il s'agit du même objet. Les conférences expliquent l'importance de l'apprentissage multimodal dans la capture de divers ensembles de données et la résolution du problème de décalage de distribution. La vidéo se concentre sur CLIP, une méthode de pré-formation d'images en langage contrastif, qui utilise des encodeurs de texte et d'image pour créer des incorporations pour des paires image-légende similaires. Les intégrations peuvent être utilisées pour la classification, la robotique, la génération de texte en image et la vision 3D. L'orateur souligne que l'universalité des latentes CLIP montre l'importance de l'apprentissage des représentations et son utilité dans l'apprentissage automatique. La méthode CLIP a fait évoluer le domaine de l'apprentissage multimodal.

  • 00:00:00 Dans cette section de la vidéo, le conférencier explique le concept d'apprentissage multimodal et son importance. L'apprentissage multimodal consiste à représenter des objets de différentes manières, par exemple à travers du texte, des images, des vidéos ou de l'audio, et à capturer leurs nuances tout en reconnaissant qu'il s'agit du même objet. Les ensembles de données multimodaux peuvent comprendre tous ces types de données, et l'objectif est de conserver toutes les informations pour fournir plus de contexte pour l'apprentissage. Le conférencier soutient que l'apprentissage multimodal est important parce que les données peuvent provenir de différentes sources et ensembles de données, et jeter toutes ces informations supplémentaires peut entraîner moins d'informations pour l'apprentissage.

  • 00:05:00 Dans cette section, l'accent est mis sur le problème de décalage de distribution, qui survient lorsqu'un modèle de vision par ordinateur est entraîné sur des données photoréalistes et testé sur des données caricaturales. Le problème est que les ensembles de données individuels ont de petites distributions par rapport à ce qui est possible. En raison de la diversité des données, le problème de décalage de distribution devient un problème important car il existe divers ensembles de données avec différents objets, formats de données et relations. L'apprentissage multimodal vise à résoudre ce problème en utilisant toutes les données disponibles et les relations entre les données pour former de meilleurs modèles pour des données plus diversifiées. L'objectif est d'apprendre des représentations compressées significatives pour tout, des images au texte et à l'audio.

  • 00:10:00 Dans cette section, la vidéo traite de l'importance de l'apprentissage multimodal et des défis qui accompagnent les modèles de formation sur divers ensembles de données. L'article examiné s'appelle CLIP, qui signifie Contrastive Language Image Pre-Training, et vise à étudier les relations entre les images et le texte correspondant. L'idée derrière le modèle CLIP est que si une image et une légende sont liées, alors les représentations apprises pour l'image et la légende doivent être similaires. Le modèle utilise deux modèles différents : un transformateur de vision pour le traitement des images et un transformateur pour le traitement du langage naturel, et les forme à partir de zéro. La procédure de formation implique une formation préalable des encodeurs de texte et d'image à l'aide d'un grand nombre de paires de légendes d'image provenant de diverses sources, dans le but de générer des intégrations pour les deux similaires pour une paire de légendes d'image correspondantes et différentes pour une paire différente. .

  • 00:15:00 Dans cette section, l'orateur explique comment l'encodeur d'image et l'encodeur de texte fonctionnent ensemble pour créer des versions intégrées de données d'image et de texte qui sont très similaires pour les paires correspondantes et très différentes pour les paires non correspondantes. Les éléments diagonaux de la matrice résultante représentent le produit scalaire entre les plongements pour les paires correspondantes, qui sont idéalement très grands, tandis que les éléments hors diagonale représentent les similitudes entre les plongements qui ne correspondent pas et doivent être très petits ou négatifs. L'orateur explique que cette approche est similaire à une tâche de classification, où la fonction de perte tente de rendre les éléments diagonaux aussi grands que possible tout en minimisant les éléments hors diagonale. L'encodeur de texte et l'encodeur d'image travaillent ensemble pour atteindre cet objectif et créer des intégrations similaires pour les paires correspondantes.

  • 00:20:00 Dans cette section, nous découvrons une application d'apprentissage multimodal appelée CLIP, ou Contrastive Language-Image Pre-training. CLIP utilise un encodeur de texte et un encodeur d'image pour créer des incorporations d'images et de légendes. Il effectue ensuite un produit scalaire des incrustations pour voir dans quelle mesure l'image correspond à la légende. En faisant cela, CLIP peut prédire ce qu'est l'image sans aucun réglage fin, ce qui s'appelle une prédiction de tir zéro. Cette méthode montre que les représentations codées du texte et des images sont significatives et peuvent bien se généraliser à de nouvelles données.

  • 00:25:00 Dans cette section de la conférence, l'orateur discute de l'applicabilité et de l'importance de l'apprentissage de la représentation via les latents CLIP. Les latentes sont des sorties généralisables et significatives du codage d'image via un modèle pré-formé gelé. Ces latents ont plusieurs cas d'utilisation, y compris la classification d'objets et la robotique, où ils peuvent aider à la représentation intégrée d'images. L'orateur souligne que l'apprentissage de la représentation est applicable partout et peut être utile dans la génération de texte à l'image et la vision 3D. Le champ Radiance peut être optimisé à l'aide de la fonction de perte où l'image rendue correspond au clip latent correspondant aux légendes d'entrée. Le processus d'optimisation est différenciable, ce qui en fait un outil efficace pour la reconstruction d'images.

  • 00:30:00 Dans cette section, l'orateur discute du concept d'utilisation de l'intégration d'images pour générer des champs de rayonnement basés sur une invite donnée. Bien que cette méthode soit coûteuse, elle démontre l'universalité des latentes de clip, qui sont basées sur la pré-formation d'une variété de données et l'utilisation de représentations ou de relations pour générer des latentes utilisables pour n'importe quel domaine. Cette technique d'apprentissage multimodal s'est avérée efficace et est considérée comme un sous-domaine important dans le domaine de l'apprentissage automatique. L'orateur note que si la méthode du clip n'est qu'un début, elle a conduit à de nouvelles évolutions dans le domaine.
 

Tensorflow pour la recherche en apprentissage profond - Cours 1



Tensorflow pour la recherche en apprentissage profond - Cours 1

La vidéo "Tensorflow for Deep Learning Research - Lecture 1" présente le didacticiel sur TensorFlow en couvrant la nécessité d'un didacticiel approfondi, expliquant les bases et les applications pratiques de la bibliothèque. La conférence explique comment créer et structurer des modèles à l'aide de TensorFlow dans une perspective d'apprentissage en profondeur. Le didacticiel couvre également les outils utilisés dans TensorBoard pour visualiser un modèle de graphe de calcul, y compris comment opérer avec des nœuds, des arêtes et des sessions, qui fournissent des options de calcul efficaces en exécutant des sous-graphes. Le conférencier recommande d'apprendre TensorFlow à partir de zéro pour créer des modèles personnalisés et gérer efficacement les ressources, avec la possibilité de fonctionner sur CPU, GPU, Android ou iOS, tout en offrant la possibilité de déployer des modèles.

  • 00:00:00 Dans cette section, l'orateur présente le didacticiel sur TensorFlow en expliquant qu'il existe un besoin de didacticiels vidéo qui ne soient pas trop superficiels et abordent les points qui manquent aux autres didacticiels. Il annonce que la conférence suivra le contenu de CS 20 de l'Université de Stanford et utilise les diapositives créées par Chip Huyen, avec ses réflexions personnelles. De plus, il souligne que TensorFlow est une bibliothèque de calcul numérique, développée par Google, qui permet des graphes et des calculs numériques, ce qui la rend adaptée à la construction de divers modèles d'apprentissage automatique allant de la régression logistique aux modèles d'apprentissage en profondeur. TensorFlow offre également la possibilité de déployer des modèles sur CPU, GPU, Android ou iOS.

  • 00:05:00 Dans cette section, l'orateur discute du concept de points de contrôle - états enregistrés des modèles qui permettent la poursuite à partir du même point en cas d'interruptions. L'importance de la différenciation dans les cadres d'apprentissage en profondeur est soulignée, et l'orateur suggère d'essayer d'écrire manuellement les couches de rétropropagation pour comprendre la facilité que Tensorflow apporte au processus. La popularité de Tensorflow est attribuée à son utilisation par une grande communauté, et divers projets tels que le transfert de style d'image, la génération d'écriture manuscrite et les StackGAN sont discutés. La conférence vise à couvrir le modèle de graphe informatique de Tensorflow, les fonctions de construction et les modèles de structuration dans une perspective d'apprentissage en profondeur. Enfin, l'orateur conseille d'utiliser le site Web Tensorflow comme source pour les dernières API et bibliothèques.

  • 00:10:00 Dans cette section, l'orateur explique l'importance d'apprendre TensorFlow à partir de zéro. Alors que les abstractions de haut niveau peuvent gérer des tâches plus complexes, comprendre le fonctionnement du code est crucial pour créer des modèles personnalisés. L'orateur explique que TensorFlow sépare la définition du calcul de son exécution, en assemblant un graphe de calcul et en utilisant une session pour exécuter des opérations. La section explique comment la définition d'opérations dans TensorFlow crée un graphique qui peut être visualisé à l'aide de l'outil intégré TensorBoard. L'exemple de code utilisé montre des nœuds pour les opérateurs et les tenseurs, où les valeurs d'arête représentent des valeurs de tenseur.

  • 00:15:00 Dans cette section, le conférencier discute des nœuds et des arêtes dans un graphe TensorFlow, ainsi que de l'utilisation de sessions pour exécuter des calculs dans le graphe. Les nœuds peuvent être des opérateurs, des variables ou des constantes, tandis que les arêtes sont des tenseurs. Une session est utilisée pour instancier le graphe et exécuter des calculs, la session prenant en charge les ressources nécessaires. L'exécution d'un nœud spécifique dans le graphique avec une session calculera le graphique et renverra la valeur du nœud, et le conférencier le démontre avec un exemple utilisant l'addition. L'objet de session encapsule l'environnement de ressources dans lequel les opérateurs et les objets tenseurs s'exécutent. Le conférencier mentionne également l'utilisation de l'instruction "avec" comme alternative à la fermeture explicite de la session.

  • 00:20:00 Dans cette section, la vidéo explique le concept d'évaluation paresseuse dans Tensorflow. Il indique que lorsqu'un graphique est créé dans Tensorflow, il n'est pas pré-calculé ou mis en cache quelque part, mais les calculs sont effectués paresseusement au fur et à mesure qu'ils sont nécessaires. La puissance de l'évaluation paresseuse vient du fait que tout n'a pas besoin d'être calculé, donc cela permet d'économiser un tas de calculs au fur et à mesure que nous avançons plus profondément dans les modèles. Lors de l'appel de la méthode d'exécution de points de session, le premier argument est une liste de nœuds dans la liste des extractions qui doivent être calculées, et Tensorflow calcule tous ces différents nœuds et renvoie les résultats sous forme de liste.

  • 00:25:00 Dans cette section, le conférencier discute des avantages de la modélisation des calculs sous forme de graphe dans TensorFlow, y compris la possibilité d'exécuter des sous-graphes en parallèle sur plusieurs CPU ou GPU. Ils expliquent comment spécifier un graphique spécifique à exécuter sur un GPU particulier à l'aide de la commande GPU du périphérique TF, et comment créer plusieurs graphiques dans TensorFlow, ce qui pourrait être utile dans des cas comme l'apprentissage d'ensemble où vous pourriez avoir différents modèles exécutés en parallèle. Le conférencier note également que les sessions dans TensorFlow peuvent être gourmandes en termes d'utilisation des ressources, il peut donc être nécessaire de gérer les ressources avec soin lors de l'utilisation de plusieurs graphiques.

  • 00:30:00 Dans cette section, le conférencier explique comment créer et manipuler des graphiques dans TensorFlow. Ils expliquent que plusieurs sessions peuvent être créées, mais qu'il peut être complexe de transmettre des données entre elles. Il est recommandé de n'utiliser qu'une seule session pour plus de simplicité. Pour ajouter des nœuds à un graphique, l'API TF dot Graph est utilisée, où le graphique instancié peut être défini par défaut. Lorsque la session est instanciée, le graphe peut être passé en argument, et tout l'environnement d'exécution est créé autour de lui. Il est important d'éviter de mélanger deux graphes, et pour obtenir un handle sur le graphe par défaut, l'API TF dot get underscore default est utilisé.

  • 00:35:00 Dans cette section, l'orateur discute des avantages de l'utilisation de graphiques dans TensorFlow. L'un des avantages est la possibilité d'exécuter des sous-graphes et même une seule opération, plutôt que d'avoir à exécuter le graphe entier, ce qui rend les calculs plus efficaces. TensorFlow dispose également d'un mode distribué, permettant d'exécuter des calculs sur différents appareils et machines lorsque le calcul est décrit à l'aide de sous-graphes. Le point à retenir de cette section est l'importance de configurer des graphiques de calcul et d'exécuter des sous-graphiques au sein d'une session.
 

Tensorflow pour la recherche en apprentissage profond - Cours 2



Tensorflow pour la recherche en apprentissage profond - Cours 2

La conférence sur TensorFlow pour Deep Learning Research couvre un large éventail de sujets, y compris les opérations de base, les types de tenseurs, les espaces réservés et le chargement différé. L'importance d'utiliser TensorBoard pour visualiser le graphique en cours d'exécution est soulignée, et diverses fonctions de l'API TensorFlow sont discutées, y compris le mélange aléatoire, le recadrage aléatoire, le multinomial TF.dot et la fonction gamma aléatoire. La vidéo couvre également les concepts de définition de l'état zéro pour différents types de données, l'initialisation de variables, leur attribution de valeurs et les avantages de l'utilisation d'une session interactive TensorFlow. Enfin, l'utilisation d'espaces réservés dans TensorFlow est abordée en détail, et les problèmes potentiels liés à l'utilisation d'espaces réservés avec des formes non définies sont discutés.

L'orateur discute également de l'utilisation des espaces réservés dans TensorFlow, notamment de la façon d'alimenter plusieurs points de données et d'utiliser des dicts gratuits. La conférence passe ensuite au chargement paresseux, où le calcul est différé jusqu'à l'exécution pour éviter de gonfler le graphe causé par plusieurs nœuds de la même opération dans des boucles. Séparer la définition des objets d'opération du code de calcul et de structuration pour les définitions de variables et les fonctions de calcul permet d'éviter les problèmes d'appel de fonctions dans TensorFlow. L'orateur explique également comment l'optimiseur minimise l'entropie croisée et met à jour les poids et les biais tout en utilisant des propriétés pour structurer efficacement le code TensorFlow.

  • 00:00:00 Dans cette section du cours, l'instructeur couvre les opérations de base, les types de tenseurs, les espaces réservés et le chargement différé. Ils montrent comment visualiser le graphique TF à l'aide de TensorBoard avec un programme graphique simple visualisé à l'aide de TensorBoard. Le processus implique l'ajout d'un rédacteur de fichier récapitulatif de table TF au contexte de session, la fourniture d'un emplacement pour écrire les événements, la spécification de ce qu'il faut écrire, puis la fermeture du rédacteur une fois terminé. Ils montrent également comment rendre le graphique plus lisible en ajoutant des arguments de nom.

  • 00:05:00 Dans cette section, l'orateur souligne l'importance d'utiliser TensorBoard pour visualiser le graphique en cours d'exécution, qui est une fonctionnalité automatique de TensorFlow qui n'est pas facilement disponible dans d'autres frameworks. La conférence se penche ensuite sur la signature de la fonction TF.constant et sur la façon dont sa valeur, sa forme et son type de données peuvent être spécifiés ou déduits. De plus, l'orateur explique ce qui se passe lorsque verify_shape est défini sur true ou false, et comment TensorFlow gère les noms uniques pour les constantes. Enfin, la conférence montre comment créer un vecteur et une matrice, les additionner et utiliser TensorBoard pour visualiser le graphique.

  • 00:10:00 Dans cette section de la conférence, le sujet de la diffusion dans TensorFlow est introduit et il est démontré en quoi il est similaire à NumPy. La diffusion est illustrée par des exemples d'ajout et de multiplication de constantes à une matrice. Le concept de création de tenseurs pré-remplis avec certaines valeurs est également abordé, que ce soit avec des zéros ou des uns, et comment créer des tenseurs remplis avec une valeur personnalisée à l'aide de la méthode TF.fill. L'importance de définir correctement le type de données pour ces tenseurs est soulignée. Dans l'ensemble, la conférence souligne l'importance de comprendre les similitudes et les différences entre TensorFlow et d'autres bibliothèques numériques, comme NumPy.

  • 00:15:00 Dans cette section, l'orateur discute de différents types de contraintes et de séquences pouvant être utilisées dans Tensorflow. Un exemple est l'utilisation de l'espace lin pour créer une séquence d'intervalles équidistants, où les valeurs de début et de fin sont le flotteur 32 ou le flotteur 64. Un autre exemple est la fonction normale aléatoire, qui génère un tenseur d'une forme spécifiée en échantillonnant à partir d'une distribution normale. La normale tronquée est similaire, mais les échantillons se situent à moins de deux écarts-types de la moyenne. Enfin, le mélange aléatoire est discuté comme un moyen de mélanger les valeurs d'un tenseur sur une dimension spécifique. Le conférencier suggère de pratiquer ces fonctions pour développer la mémoire musculaire et éviter de se fier constamment à la documentation.

  • 00:20:00 Dans cette section, le conférencier aborde diverses fonctions de l'API Tensorflow, à commencer par la fonction de mélange aléatoire, qui mélange les données sur la quatrième dimension par défaut, ce qui la rend utile pour les ensembles de données d'images. La fonction de recadrage aléatoire recadre des blocs de données contigus d'une forme spécifiée à partir d'un tenseur. La fonction multinomiale TF.dot échantillonne à partir d'une distribution multinomiale avec un tenseur logit et un nombre d'échantillons donnés. Enfin, la fonction gamma aléatoire est discutée, qui est une autre distribution dans les statistiques qui a deux paramètres : forme et bêta.

  • 00:25:00 Dans cette section, l'orateur discute de l'utilisation des fonctions TensorFlow pour générer des constantes et des séquences générées aléatoirement pour la recherche en apprentissage profond. La fonction set_random_seed est introduite, qui permet aux utilisateurs de configurer un flux aléatoire pour l'ensemble du graphique, rendant les résultats plus aléatoires de manière déterministe et permettant aux utilisateurs de répéter les expériences de manière cohérente. L'orateur explique également diverses fonctions TensorFlow pour les opérations de base, telles que l'addition par élément, la multiplication de matrices et les opérations modulo. De plus, l'orateur souligne que certains des types Python natifs, tels que booléen et chaîne, peuvent être utilisés avec TensorFlow.

  • 00:30:00 Dans cette section de la conférence, l'orateur discute des concepts de définition de 0 pour différents types de données, tels que des vecteurs, des matrices et des chaînes, dans TensorFlow, et quelle sera la sortie attendue pour chaque type. Ils couvrent également les types de données TensorFlow, qui incluent lent 32 64, en 8 16 32 64, et comment ils peuvent être utilisés de manière interchangeable avec NumPy. De plus, l'orateur met en garde contre l'utilisation de constantes dans TensorFlow, car elles sont stockées dans la définition du graphique, ce qui peut entraîner des problèmes ultérieurement.

  • 00:35:00 Dans cette section, l'orateur discute de l'utilisation des variables TensorFlow, expliquant que les utilisateurs peuvent définir une variable à l'aide de TFDOTvariable avec une valeur et un nom facultatif. Les tailles sont déduites de la valeur saisie et les utilisateurs peuvent choisir d'initialiser leurs variables à l'aide de la fonction TF.global_variables_initializer(). L'orateur avertit que les variables non initialisées entraîneront des erreurs, mais que les utilisateurs ne peuvent initialiser qu'un sous-ensemble des variables si nécessaire. De plus, l'orateur explique que les constantes sont différentes des variables, car la constante est un opérateur alors qu'une variable est une classe avec plusieurs fonctions et méthodes que les utilisateurs peuvent appeler.

  • 00:40:00 Dans cette section, la vidéo explique les différentes manières d'initialiser les variables dans TensorFlow, dont l'une consiste à appeler l'op "assign" sur elles avec une certaine valeur. Cette approche peut être utile lors de la formation d'un modèle à l'aide de l'apprentissage par transfert, où certaines couches se voient attribuer des valeurs à partir d'un modèle pré-formé tandis que d'autres sont initialisées de manière aléatoire. La vidéo explique également comment initialiser une seule variable et comment obtenir la valeur d'une variable à l'aide de la méthode "eval". De plus, la vidéo explique que lors de l'attribution d'une valeur à une variable, il n'y a pas de problème si la variable n'a pas été initialisée auparavant, et l'op "assign" peut initialiser la variable avant d'attribuer la valeur.

  • 00:45:00 Dans cette section, la vidéo couvre l'initialisation des variables et leur attribution de valeurs. L'opération d'initialisation attribue la valeur initiale d'une variable à la variable elle-même. De plus, l'op assign additionne, soustrait ou multiplie la valeur actuelle d'une variable avec une nouvelle valeur, tandis que l'op assign soustrait la nouvelle valeur de la valeur actuelle. Plusieurs sessions conserveront leurs propres copies de variables et d'initialisations, et il est important de gérer et de suivre soigneusement le chemin d'exécution lors du traitement de plusieurs sessions pour éviter des résultats inattendus. Enfin, les variables non initialisées n'auront aucun effet sur les affectations ou les opérations, et toutes les sessions doivent être fermées pour libérer des ressources.

  • 00:50:00 Dans cette section, l'orateur aborde l'initialisation des variables dans la bibliothèque TensorFlow. Lors de l'exécution de TensorFlow, toutes les variables utilisées dans le code doivent être initialisées. Cela peut être risqué lors de l'utilisation de plusieurs variables car elles peuvent dépendre les unes des autres. Dans de tels cas, il faut utiliser la valeur d'initialisation de la variable pour s'assurer que la valeur de la variable est sûre avant de l'utiliser pour initialiser une autre variable. L'orateur poursuit ensuite en expliquant les avantages de l'utilisation d'une session interactive TensorFlow et comment utiliser la session pour évaluer une série d'opérations dans le code. Enfin, l'orateur discute de la dépendance de contrôle, une méthode pour s'assurer que toutes les opérations pertinentes sont exécutées avant d'appeler l'opération finale. Cela peut être utile dans les modèles d'apprentissage automatique complexes contenant de nombreuses opérations.

  • 00:55:00 Dans cette section, la vidéo traite des espaces réservés dans TensorFlow, qui permettent l'assemblage d'un graphique sans connaître les valeurs des données qui seront utilisées dans le calcul. Les espaces réservés agissent comme des espaces réservés pour les valeurs réelles qui seront calculées sur toute la ligne, et ils sont définis à l'aide de l'opérateur TF.placeholder avec un type et une forme définis. Lors de l'exécution d'opérations impliquant des espaces réservés, un dictionnaire doit être créé avec les espaces réservés et leurs valeurs, et ce dictionnaire est ensuite introduit dans l'appel session.run(). Il convient de noter que même si les espaces réservés peuvent avoir la forme définie sur aucune, certaines opérations nécessitent que la forme soit définie, ce qui peut entraîner des erreurs.

  • 01:00:00 Dans cette section, la vidéo traite des espaces réservés et de la manière dont ils constituent des opérations de première classe valables sur leur propre pied, qui peuvent être visualisées dans TensorBoard. La section explique également comment alimenter plusieurs points de données et comment utiliser le dict libre pour l'une des variables ou constantes de votre graphique. La vidéo passe ensuite au chargement paresseux, où les objets sont créés uniquement lorsqu'ils sont nécessaires, et au chargement normal où un nœud est créé dans le graphe avant de l'exécuter. Le concept de chargement différé facilite la gestion de la mémoire, en particulier lorsque vous travaillez avec de grands ensembles de données.

  • 01:05:00 Dans cette section, l'orateur explique le chargement différé et ses implications pour TensorFlow. Le chargement paresseux est une technique où le calcul est différé jusqu'à l'exécution, plutôt qu'à la construction du graphe - cela peut conduire à plusieurs nœuds de la même opération dans le graphe de calcul, en particulier dans les boucles. Afin d'éviter de gonfler le graphe et d'autres problèmes associés, l'orateur recommande de séparer la définition des objets d'opération du calcul et de l'exécution des opérations. De plus, l'orateur souligne l'importance de structurer le code afin que les définitions de variables soient à un endroit et les fonctions informatiques à un autre.

  • 01:10:00 Dans cette section, le conférencier explique comment structurer le code pour éviter les problèmes d'appel de fonctions lors de l'utilisation de TensorFlow pour la recherche en apprentissage approfondi. À l'aide des propriétés Python, le conférencier montre comment définir des attributs internes tels que 'start_prediction', 'optimized' et 'error'. La première partie du bloc de code calcule la taille des données, la taille cible, le poids et le biais avant d'ajouter une opération. La sortie résultante de cette opération est ajoutée au graphique. La fonction 'optimize' suit le même modèle, créant les nœuds initiaux la première fois qu'elle est appelée et renvoyant des descripteurs à ces nœuds les fois suivantes.

  • 01:15:00 Dans cette section, l'orateur explique comment l'optimiseur minimise l'entropie croisée et met à jour les pondérations et les biais dans TensorFlow. Lorsque l'optimiseur est appelé pour la première fois, TensorFlow effectue la rétropropagation et met à jour les variables qui contribuent à la perte. Lorsque l'optimiseur est appelé par la suite, TensorFlow dispose déjà du graphique et calcule les nœuds entrants pour minimiser et mettre à jour les poids sans appeler de nœuds supplémentaires. L'utilisation de propriétés permet de structurer plus efficacement le code TensorFlow. La prochaine conférence fournira un exemple pour mieux comprendre ce processus.
 

Tensorflow pour la recherche en apprentissage profond - Cours 3



Tensorflow pour la recherche en apprentissage profond - Cours 3

La troisième conférence sur TensorFlow pour la recherche en apprentissage profond couvre la régression linéaire et la régression logistique à l'aide de l'ensemble de données MNIST. Le conférencier montre comment former un modèle de régression linéaire dans TensorFlow en créant des espaces réservés pour les données d'entrée, en initialisant des variables pouvant être formées pour les poids et les biais, en proposant des prédictions, en calculant la perte et en définissant l'optimiseur comme une descente de gradient avec un taux d'apprentissage spécifique. La conférence explique également la descente de gradient stochastique en mini-lots et l'importance de se souvenir de la forme des variables. La précision du modèle est calculée en comparant l'indice de la valeur maximale obtenue à partir de la fonction TF argmax avec la variable cible y, en calculant le nombre de prédictions correctes à l'aide de TF reduce sum et TF float, et en le divisant par le nombre total de test exemples. Enfin, le conférencier note que ce modèle n'est pas considéré comme puissant et qu'il existe des modèles plus robustes tels que les couches convolutionnelles qui offrent une plus grande précision.

  • 00:00:00 Dans cette section, l'orateur commence la troisième conférence sur TensorFlow pour la recherche en apprentissage profond et commence par un examen du matériel de la conférence précédente. Ils expliquent comment TensorFlow sépare la définition du graphe de calcul de son exécution et comment assembler un graphe en y ajoutant diverses opérations. Ils discutent ensuite des constantes, des variables et des espaces réservés TF et de leurs fonctionnalités dans un graphique. L'orateur insiste sur l'importance d'éviter le chargement paresseux et de séparer plutôt l'assemblage du graphique et son exécution pour une efficacité optimale. Ils présentent ensuite le premier exemple de régression linéaire et expliquent comment prédire la variable dépendante Y en fonction des variables indépendantes de l'ensemble de données. L'orateur recommande aux auditeurs de suivre les exemples et de résoudre eux-mêmes les problèmes.

  • 00:05:00 Dans cette section, le conférencier explique les bases de la régression linéaire et montre comment entraîner un modèle de régression linéaire dans TensorFlow. Un modèle linéaire simple est utilisé où la valeur prédite de y est W multiplié par X, ajouté à B. La perte est calculée comme la différence entre la valeur prédite et la valeur réelle de Y, et la formation se produit en minimisant la perte en optimisant le variables formables de W et B. Le conférencier partage ensuite le code pour un exemple de régression linéaire avec des données d'entrée étant le nombre d'incendies et la variable cible de sortie étant le nombre de tests dans un échantillon donné. Le code montre comment créer des espaces réservés pour les données d'entrée, initialiser les variables entraînables de W et B, proposer des prédictions, calculer la perte et définir l'optimiseur comme descente de gradient avec un taux d'apprentissage spécifique.

  • 00:10:00 Dans cette section, le conférencier décrit le processus de formation d'un modèle dans TensorFlow pour la recherche en apprentissage profond. Après avoir créé le modèle et conçu la fonction de perte, l'étape suivante consiste à lancer une session et à exécuter le modèle pendant un nombre défini d'époques. Chaque époque implique l'exécution répétée des données d'entraînement tout au long de la session et la mise à jour des variables pour minimiser la perte. Le processus est visualisé via TensorBoard et le modèle résultant peut être utilisé pour prédire la sortie pour toute valeur d'entrée donnée. Le professeur note également la présence d'une valeur aberrante dans les données qui affecte la prédiction du modèle.

  • 00:15:00 Dans cette section, le conférencier explique le rôle des optimiseurs dans les modèles d'entraînement dans TensorFlow et répertorie plusieurs optimiseurs, notamment la descente de gradient, l'élan de gradient, Adam, RMSprop, le gradient proximal et le gradient proximal. Le conférencier souligne l'importance de tester les performances du modèle sur des données qu'il n'a pas vues auparavant pour s'assurer que le modèle est généralisable. Pour aborder la sensibilité de la fonction de perte d'erreur carrée aux valeurs aberrantes, le conférencier présente la fonction de perte de Huber et explique son fonctionnement. Le conférencier fournit également des instructions sur la façon de coder la fonction de perte de Huber dans TensorFlow.

  • 00:20:00 Dans cette section, le conférencier explique la mise en œuvre de la perte de Huber, qui est une fonction de perte couramment utilisée dans l'apprentissage en profondeur. La perte de Huber est utilisée pour les problèmes de régression et fonctionne en trouvant le résidu entre les prédictions et les étiquettes. Si le résidu est inférieur à la valeur Delta, une fonction appelée Small Res est renvoyée. Cependant, s'il est supérieur à Delta, Large Res est renvoyé. Le conférencier passe ensuite à la discussion sur la régression logistique à l'aide de l'ensemble de données MNIST. La régression logistique est utilisée pour les problèmes de classification et fonctionne en calculant le logit comme X dans W plus B. Le résultat de ceci est ensuite passé à travers une fonction softmax, produisant une distribution de probabilité. La fonction de perte utilisée dans ce cas est la perte d'entropie croisée, qui mesure la distance entre deux distributions de probabilité.

  • 00:25:00 Dans cette section, l'instructeur explique le concept de descente de gradient stochastique en mini-lots et l'utilisation de lots lors de la formation de modèles pour l'apprentissage en profondeur. Ce faisant, cela aide à tirer le meilleur parti de la mémoire GPU et est efficace lorsque nous ne pouvons pas utiliser l'ensemble de formation complet. Le didacticiel comprend des étapes pour créer un espace réservé pour le modèle, initialiser les valeurs de poids et de biais pour les fonctionnalités d'entrée et de sortie, et créer un modèle avec tensorflow à l'aide de la fonction tf.random.normal pour l'initialisation. L'importance de se souvenir de la forme de ces variables lors de leur création a également été soulignée, en particulier avec la dernière dimension de caractéristique d'entrée et le nombre de classes.

  • 00:30:00 Dans cette section, le modèle DF simple avec dimensionnalité à la taille de lot de 10 est discuté, où la fonction de perte d'entropie croisée est utilisée pour calculer la perte. Un optimiseur est défini et une fois le modèle formé, il est testé pour trouver le nombre total de prédictions correctes. Les prédictions correctes sont calculées à l'aide du lot logits et de la fonction softmax, où les valeurs de probabilité sont introduites dans le modèle et comparées aux étiquettes réelles pour calculer les valeurs de prédiction correctes. Il est conseillé de ne pas exécuter l'optimiseur sur l'ensemble de test pour éviter le surajustement.

  • 00:35:00 Dans cette section, le présentateur explique comment calculer la précision du modèle. La fonction TF argmax est utilisée pour obtenir la valeur maximale dans la ligne et renvoie l'index du chiffre qui a la probabilité la plus élevée. Nous comparons cet indice avec la variable cible y. Ensuite, nous calculons le nombre de prédictions correctes en utilisant TF reduce sum et TF float. Enfin, nous divisons le nombre de prédictions correctes par le nombre total d'exemples de test pour obtenir la précision, qui est de 90 % pour ce modèle linéaire spécifique. Le présentateur note également que ce modèle n'est pas considéré comme puissant et qu'il existe des modèles plus robustes tels que les couches convolutives qui offrent une plus grande précision.
 

Tensorflow pour la recherche en apprentissage profond - Cours 4



Tensorflow pour la recherche en apprentissage profond - Cours 4

Dans la conférence 4 de la série TensorFlow for Deep Learning Research, l'orateur se penche sur les incorporations de mots dans le traitement du langage naturel basé sur l'apprentissage en profondeur. La conférence explique le concept d'apprentissage des incorporations de mots pour les problèmes de PNL et décrit le processus de représentation des mots sous forme de vecteurs numériques dans les réseaux de neurones. La conférence aborde différentes méthodes de génération de vecteurs de mots à l'aide de CBOW basé sur l'IA et de sauts de grammes et aborde le problème de la complexité de calcul dans softmax en utilisant l'échantillonnage négatif et le NCE. En outre, le conférencier met en évidence le processus d'intégration de variables dans TensorFlow et d'utilisation de t-SNE pour visualiser des vecteurs de mots de grande dimension dans des dimensions réduites. Enfin, la conférence se termine par un résumé des concepts abordés et un bref sur la prochaine conférence, qui se concentrera sur la construction de modèles de mots.

  • 00:00:00 Dans cette section, le conférencier discute du concept d'incorporation de mots dans la PNL basée sur l'apprentissage en profondeur. Les incorporations de mots sont un moyen de représenter les mots sous forme de nombres dans un réseau de neurones, qui capture les relations sémantiques entre les mots. L'objectif est de construire un modèle capable de regrouper des concepts similaires, tels que des pays, lors de leur projection sur un espace à deux dimensions. Le conférencier explique également le processus d'apprentissage des intégrations de mots par comptage et présente la nouvelle approche consistant à utiliser la rétropropagation avec les réseaux de neurones.

  • 00:05:00 Dans cette section, l'orateur discute des moyens de représenter les mots sous forme de vecteurs à l'aide de la matrice de cooccurrence. Cependant, la matrice de cooccurrence est très grande et clairsemée, ce qui la rend difficile à utiliser. Pour résoudre ce problème, l'orateur suggère d'utiliser une SVD tronquée pour trouver une approximation de rang inférieur de la matrice. Cela implique de factoriser la matrice en trois matrices et de ne sélectionner que le premier K des vecteurs singuliers droits à utiliser comme représentations. Cependant, SVD est une opération coûteuse en calcul, en particulier pour les grands vocabulaires, ce qui la rend difficile à mettre à l'échelle. De plus, ajouter un nouveau mot au vocabulaire nécessiterait de refaire tout le calcul.

  • 00:10:00 Dans cette section, la vidéo traite de deux méthodes de génération de vecteurs de mots à l'aide de méthodes basées sur la création d'IA : le sac continu de mots (CBOW) et le saut de gramme. CBOW utilise le contexte autour du mot cible pour prédire le mot central, tandis que Skip gram utilise le mot central pour prédire les mots de contexte. Des vecteurs uniques sont utilisés pour représenter chaque mot, et une matrice de pondération est créée via un simple réseau de neurones pour apprendre les vecteurs de mots. Les échantillons d'apprentissage sont choisis en sélectionnant une taille de fenêtre et en déplaçant la fenêtre sur le texte. Le réseau de neurones est formé pour trouver la probabilité de tout autre mot dans le contexte étant donné un mot spécifique au milieu de la phrase.

  • 00:15:00 Dans cette section de la conférence, l'orateur explique la technique d'incorporation de mots, qui consiste à représenter les mots sous forme de vecteurs pour les rendre interprétables par le réseau neuronal. La technique consiste à sélectionner au hasard un mot dans un contexte et à utiliser une matrice de pondération pour apprendre les vecteurs de mots, qui sont ensuite associés à une matrice de sortie pour créer une distribution de probabilité des mots dans le vocabulaire. La fonction softmax est utilisée pour normaliser la distribution de sortie scalaire, de sorte que des mots avec des contextes similaires se verront attribuer des probabilités similaires. En utilisant cette approche, un exemple dans la conférence a montré comment les mots intelligent et smart se produiraient dans des contextes similaires et donc les vecteurs de mots pour ces deux mots seraient très similaires.

  • 00:20:00 Dans cette section, le conférencier discute des solutions potentielles au problème de complexité de calcul qui se pose avec softmax. Les deux méthodes couramment utilisées pour résoudre ce problème sont l'échantillonnage négatif et l'estimation du contraste de bruit (NCE). Bien que NCE puisse approximer softmax avec une garantie théorique, les deux méthodes produisent des résultats similaires à des fins pratiques. Le cours se penche ensuite sur les définitions des distributions empiriques et des connaissances, où le but est d'approximer la distribution empirique à l'aide des paramètres du modèle. Enfin, le conférencier présente NCE comme une méthode pour réduire le problème d'estimation du modèle de langage.

  • 00:25:00 Dans cette section, l'orateur explique comment il va générer des données pour le problème de formation à deux classes en utilisant la classification binaire proxy. Ils échantillonnent un mot central du P tilde C, puis prennent un vrai échantillon de PT petit P tilde W virgule C. Ils généreront K échantillons de bruit en utilisant QW et leur attribueront l'étiquette, D, qui est égale à 0 pour indiquer que ces les points de données sont du bruit. Ils calculent ensuite la probabilité conjointe de D, virgule W dans les données à deux classes en créant un mélange de deux distributions. En utilisant la définition de la probabilité conditionnelle, ils peuvent la transformer en probabilité conditionnelle de D, étant donné W et C pour les deux cas où D vaut 0 et quand il vaut 1.

  • 00:30:00 Dans cette section, l'orateur discute du problème du calcul coûteux de la fonction de partition et de la manière de le résoudre à l'aide de l'estimation contrastive du bruit (NCE). NCE propose d'ajouter la fonction de partition en tant que paramètre pour chaque mot de contexte empirique et de l'apprendre par rétropropagation. En fixant le paramètre Vc à un et en remplaçant le P tilde W virgule C par u thêta W virgule C divisé par la fonction de partition par Vc, on obtient un problème de classification binaire. L'objectif est de maximiser la vraisemblance conditionnelle de D par rapport aux K échantillons négatifs, qui peut s'écrire sous la forme d'une probabilité logarithmique. L'orateur explique comment NCE remplace l'espérance par une approximation de Monte Carlo, ce qui rend le processus moins coûteux en calculs.

  • 00:35:00 Dans cette section, l'utilisation de l'estimation contrastive du bruit (NCE) au lieu de l'échantillonnage négatif (NS) est abordée. NCE est capable de réduire l'objectif de modélisation du langage à un problème de classification binaire, et il est montré que l'objectif sera réalisé au même point pour les paramètres du modèle. L'API TensorFlow pour la perte NCE est présentée ainsi que l'utilisation de la portée du nom, qui permet de regrouper les nœuds pour une meilleure visualisation dans TensorBoard. La portée des noms de variables est également expliquée dans le contexte de la fonctionnalité de portée de nom.

  • 00:40:00 Dans cette section, le conférencier discute du processus d'intégration de variables dans TensorFlow pour la recherche en apprentissage profond. En intégrant des variables dans une portée particulière, elles font partie d'une visualisation bien regroupée dans le tableau TensorFlow. Le conférencier explique également comment visualiser des vecteurs de mots à l'aide d'une technique appelée t-SNE et fournit une recette pour tracer le TC pour la visualisation. En prenant les vecteurs de grande dimension appris à partir de la matrice d'intégration, t-SNE est utilisé pour réduire les dimensions en 2D ou 3D, montrant les relations de voisinage les plus proches entre les mots. Enfin, le conférencier donne un aperçu du code utilisé pour le modèle word to work.

  • 00:45:00 Dans cette section, le conférencier discute du processus de définition des espaces réservés pour l'entrée et la sortie, de la construction d'une variable pour la perte NCE et de la définition des intégrations et de la matrice d'intégration. En utilisant une taille de vocabulaire de 50 000 et une taille de lot de 128, la conférence définit une matrice d'intégration qui apprend un vecteur de mots de 128 dimensions pour chaque mot. Le processus d'inférence dans le saut de gramme est également expliqué, la conférence se concentrant sur un mot à la fois pour faciliter l'explication. La fonction de perte est ensuite définie à l'aide de l'API TensorFlow, la conférence fournissant une ventilation des variables clés telles que les échantillons négatifs et le nombre d'étapes de formation.

  • 00:50:00 Dans cette section, l'orateur explique comment NCE (estimation contrastive du bruit) est utilisé pour créer un problème de classification binaire qui aide à résoudre la complexité de softmax. Chacun des 64 exemples négatifs et un exemple positif créés pour la classification par procuration correspond à un vecteur de mots. La différenciation automatique TensorFlow est utilisée pour mettre à jour les poids d'un classificateur binaire afin de séparer le seul exemple positif des 64 exemples négatifs. La conférence se termine par un résumé des concepts couverts jusqu'à présent, y compris les vecteurs de mots, les NCE, les matrices d'intégration et l'analyse en composantes principales (ACP). La prochaine conférence se concentrera sur la gestion de différents programmes et expériences tout en construisant des modèles de mots.
 

Tensorflow pour la recherche en apprentissage profond - Cours 5_1



Tensorflow pour la recherche en apprentissage profond - Cours 5_1

La cinquième conférence de la série TensorFlow for Deep Learning Research couvre plusieurs sujets, notamment comment gérer efficacement les expériences d'apprentissage profond, l'importance de la différenciation automatique dans TensorFlow et le processus de formation des modèles et d'enregistrement des variables. L'orateur explique que la différenciation automatique est fournie dans les cadres d'apprentissage en profondeur comme TensorFlow, ce qui permet aux utilisateurs de coder plus facilement leurs modèles sans avoir à gérer les gradients. Bien qu'il ne soit pas essentiel de calculer manuellement les gradients, il est toujours utile de les calculer pour des fonctions et des réseaux simples. La création d'un modèle de reconnaissance d'entité nommée avec des sous-classes et les espaces réservés et techniques d'alimentation nécessaires est également couverte, ainsi que l'enregistrement et la restauration de variables dans TensorFlow et le processus d'enregistrement de modèles sur différentes sessions et machines.

  • 00:00:00 Dans cette section, l'intervenant explique comment gérer les expériences d'apprentissage en profondeur et l'importance de la différenciation automatique dans TensorFlow. Ils expliquent que lors de l'écriture d'un modèle, vous allez essayer diverses choses et démarrer et redémarrer la formation, donc une bonne gestion est essentielle. La différenciation automatique est fournie dans des cadres d'apprentissage en profondeur comme TensorFlow, ce qui permet aux utilisateurs de coder facilement leurs modèles sans avoir à gérer les gradients réels. L'orateur donne un exemple où l'opération "gradients" de TensorFlow permet de trouver les gradients de Y par rapport à chaque tenseur dans une liste fournie en deuxième argument. Ils mentionnent également que tout dans TensorFlow et l'apprentissage en profondeur est basé sur la différenciation numérique.

  • 00:05:00 Dans cette section, l'orateur explique s'il est nécessaire d'apprendre à calculer les dégradés à la main lorsque TensorFlow dispose déjà d'une fonctionnalité de dégradés de points. Il suggère que même si ce n'est pas essentiel, il est toujours utile de travailler sur des dégradés pour des fonctions ou des réseaux simples, en particulier lors de l'écriture de calques personnalisés ou de la gestion de problèmes de dégradés tels que l'explosion ou la disparition des dégradés. Il suggère également de structurer le modèle d'une manière plus orientée objet pour le rendre plus facile à utiliser et de déplacer complètement le modèle hors de la fonction. L'orateur mentionne la structure d'affectation CS 244 D comme exemple d'encapsulation des composants d'un modèle d'apprentissage en profondeur.

  • 00:10:00 Dans cette section, l'orateur aborde l'aspect Modèle de la création d'un modèle d'apprentissage en profondeur. Ils expliquent que le modèle est l'endroit où l'inférence complète est écrite, en prenant une entrée et en effectuant une passe avant pour donner la sortie, puis en ajoutant l'opération de perte qui crée un scalaire de perte qui compare la sortie prédite aux véritables étiquettes de sortie des espaces réservés. L'orateur suggère de tout résumer en une seule classe de base et de créer des sous-classes pour des types spécifiques de modèles, comme un modèle de langage. Enfin, ils expliquent comment créer un modèle de reconnaissance d'entité nommée avec des sous-classes et les API nécessaires comme les espaces réservés et la technologie d'alimentation.

  • 00:15:00 Dans cette section, nous découvrons le processus de formation de modèles d'apprentissage en profondeur à l'aide de TensorFlow et comment gérer efficacement les expériences. Le processus implique la création de matrices de variables et l'obtention d'intégrations pour les données d'apprentissage avant d'exécuter une époque de données d'apprentissage dans une boucle, ce qui entraîne les matrices d'intégration. Pour enregistrer la progression, le TF de train.saver enregistre les variables du graphique dans des fichiers binaires, qui peuvent être appelés lors de futures exécutions pour commencer là où l'on s'est arrêté. L'exemple de code montre comment instancier l'objet économiseur et parcourir l'étape de formation pour exécuter l'optimiseur, en enregistrant la session et un nom de répertoire.

  • 00:20:00 Dans cette section, l'orateur plonge dans les détails de la classe Save de TensorFlow et des variables qui lui sont associées. La variable d'étape globale, définie comme une variable de code non entraînable qui commence à 0, peut être incrémentée chaque fois que l'opération d'apprentissage est appelée en la fournissant dans la fonction "minimize". De plus, la variable "max to keep" limite le nombre de points de contrôle enregistrés aux plus récents, et la variable "keep checkpoint every" contrôle la fréquence d'enregistrement d'un point de contrôle, ce qui le rend utile pour les longs cycles d'entraînement.

  • 00:25:00 Dans cette section, l'instructeur explique comment enregistrer et restaurer des variables dans TensorFlow. Il explique que les utilisateurs peuvent spécifier une liste de variables ou un dictionnaire pour enregistrer des variables spécifiques au lieu de tout enregistrer. L'avantage est d'économiser de l'espace et d'augmenter le débit, en particulier lors de l'apprentissage par transfert. Pour restaurer les variables, les utilisateurs peuvent appeler la fonction tf.latest_checkpoint, qui vérifiera le dernier point de contrôle dans un répertoire spécifique et restaurera à partir de là en utilisant la fonction session.restore(). L'instructeur mentionne également que les utilisateurs peuvent enregistrer le graphique dans TensorFlow 0.11 en créant des collections avec des clés et des valeurs correspondant aux variables, puis en instanciant l'objet économiseur avec toutes les valeurs par défaut.

  • 00:30:00 Dans cette section du cours, l'instructeur explique comment enregistrer et restaurer des modèles TensorFlow sur différentes sessions et même sur différentes machines. Les étapes impliquent l'exécution de l'initialiseur de variables globales, l'enregistrement de la session et l'utilisation de la méthode "export meta graph" pour créer un fichier graphique enregistré. Ce graphique enregistré peut être restauré et les variables peuvent être réinitialisées dans un processus ou une machine complètement différent si le graphique d'origine n'est pas disponible. L'instructeur mentionne également TF.summary, qui sera couvert dans la prochaine vidéo.
 

Tensorflow pour la recherche en apprentissage profond - Cours 5_2



Tensorflow pour la recherche en apprentissage profond - Cours 5_2

Le didacticiel vidéo traite de la mise en œuvre des opérations récapitulatives TF, qui permettent de visualiser les données dans TensorBoard. Le didacticiel couvre trois types d'opérations récapitulatives - TF.summary.scalar, TF.summary.histogram et TF.summary.image - et explique comment les fusionner en un seul et les écrire dans un fichier d'événements à l'aide de la classe FileWriter. Le conférencier montre comment utiliser les portées de nom pour visualiser le graphique dans TensorBoard et définit un rédacteur de test et un rédacteur formé pour écrire des résumés dans des fichiers séparés. Ils mettent l'accent sur l'utilisation des capacités de visualisation de TensorBoard pour mieux comprendre les performances de son modèle. Dans l'ensemble, TensorBoard est un outil crucial pour suivre les progrès de la formation, et l'API pour ajouter des opérations et les fusionner est simple.

  • 00:00:00 Dans cette section, le didacticiel vidéo explique comment utiliser les opérations récapitulatives TF, qui sont des fonctions qui associent des informations aux nœuds du graphe de calcul pour générer des données récapitulatives à visualiser dans TensorBoard. Le didacticiel couvre trois types d'opérations récapitulatives : TF.summary.scalar, pour attacher des nœuds de valeur scalaires dans le graphique, tels que la perte, l'entropie croisée et les taux d'apprentissage ; TF.summary.histogram, pour visualiser la distribution d'un tenseur, comme les poids d'une couche particulière ; et TF.summary.image, pour visualiser les images, les entrées ou même certaines couches intermédiaires. Le didacticiel explique comment fusionner toutes les opérations récapitulatives en une seule et les écrire dans un fichier d'événements à l'aide de la classe FileWriter.

  • 00:05:00 Dans cette section, l'intervenant explique comment mettre en place un rédacteur de fichier et un résumé dans TensorFlow afin de visualiser les données sur TensorBoard. Ils recommandent de configurer l'enregistreur pour qu'il s'exécute à des intervalles spécifiques, car son exécution à chaque étape peut produire trop de données. En fournissant à l'auteur du fichier l'objet graphique, le graphique de calcul peut être enregistré en tant que def de graphique et visualisé sur TensorBoard. L'orateur montre comment visualiser les scalaires et les histogrammes sur TensorBoard en sélectionnant des étapes spécifiques sur l'axe des x pour voir les valeurs correspondantes sur l'axe des y. Ils encouragent les utilisateurs à tirer parti des capacités de visualisation de TensorBoard pour mieux comprendre les performances de leur modèle.

  • 00:10:00 Dans cette section, le conférencier discute de la définition d'une fonction appelée variable_summary, qui prend un tenseur et ajoute un nœud de résumé. La fonction couvre la moyenne, l'écart type, le max, le min et l'histogramme ; chaque variable va être délimitée du point de vue de la dénomination. Ils discutent également de l'idée de désordre dans les distributions où les pertes sont les plus élevées lorsque le modèle n'est pas suffisamment formé, et à mesure que la taille du pas augmente, les pertes diminuent. Différents rédacteurs de fichiers peuvent être utilisés pour diverses expériences, et ils peuvent être enregistrés dans l'engrenage du journal. L'option de résidence dense permet de sélectionner et de basculer entre différents choix.

  • 00:15:00 Dans cette section, la vidéo se concentre sur la mise en œuvre d'opérations récapitulatives et l'utilisation de portées de nom dans TensorFlow pour la visualisation. Le code définit les portées de nom pour l'entropie croisée et la précision pour aider à visualiser le graphique dans TensorBoard. L'opération fusionnée est obtenue en appelant TF.summary.merge_all et cette opération est utilisée lors de l'exécution de la session. Le code définit également un rédacteur de test et un rédacteur formé pour écrire les résumés résultants dans des fichiers séparés. Pour chaque étape, le code forme le modèle et écrit les résumés. Si le nombre d'étapes mod 10 est égal à zéro, le résumé est écrit au rédacteur de test, et pour toutes les autres étapes, il est écrit au rédacteur entraîné.

  • 00:20:00 Dans cette section, l'orateur discute de la méthode d'exécution de TensorBoard pour visualiser simultanément les événements dans le rédacteur de test et le rédacteur de train. La commande "s about - - clock there is equal to the path" aide à tout visualiser, et l'hôte actuel est localhost colon six zéro zéro six, qui peut être parcouru via le navigateur. De plus, l'image de points récapitulative des points TF porte par défaut le nom de sorties maximales du tenseur et interprète un tenseur à quatre dimensions avec la forme, la taille, la hauteur, la largeur et les canaux. L'argument max outputs détermine le nombre d'images arrière décalées qui seront rendues et affichées sur TensorBoard. Dans l'ensemble, TensorBoard est un outil crucial pour suivre les progrès de la formation, et l'API pour ajouter diverses opérations et les fusionner est simple.