Apprentissage Automatique et Réseaux Neuronaux - page 8

 

Vers la singularité - Neuroscience Inspiring AI




Vers la singularité - Neuroscience Inspiring AI

Cette vidéo traite du potentiel de l'intelligence artificielle pour atteindre un point d'intelligence générale, et des différents défis qui devront être surmontés en cours de route.
Il aborde également le potentiel des robots à être considérés comme une espèce, ainsi que les avantages et les inconvénients de cette approche.

  • 00:00:00 Le cerveau est un organe complexe responsable de nombreuses tâches différentes. Des recherches récentes ont montré que le cerveau est également capable d'effectuer des tâches simples qui étaient autrefois considérées comme difficiles pour les humains. Cela suggère que le cerveau n'est pas seulement un intellect, mais contient également une grande quantité de complexité computationnelle.

  • 00:05:00 L'auteur discute de la difficulté de comprendre le cerveau au niveau des systèmes et de la manière dont les scientifiques utilisent le poisson zèbre pour comprendre comment se produit le développement normal du cerveau. Il poursuit en disant que l'intelligence artificielle pourra éventuellement se développer de manière plus organique, sur la base de ce que nous apprenons sur le fonctionnement du cerveau.

  • 00:10:00 Le cerveau est très différent d'un ordinateur, la façon dont il est structuré. Un ordinateur a essentiellement le CPU est séparé de la mémoire et en connectant le CPU à la mémoire, vous avez cette chose appelée le bus, le bus mémoire. Et le bus mémoire fonctionne à plein temps en continu lorsqu'un ordinateur est allumé. Et c'est en fait un goulot d'étranglement. Ainsi, le processeur peut être très puissant et la mémoire peut être énorme, mais
    vous êtes limité quant à la quantité d'informations que vous pouvez transférer entre les deux. Et c'est un facteur très limitant de la puissance globale de l'ordinateur standard. En revanche, le cerveau fonctionne massivement de manière massivement parallèle, chaque neurone fait de son mieux tout le temps. Même la meilleure IA actuelle que nous ayons est encore très, très différente du cerveau. C'est… vous pourriez dire que c'est inspiré par le cerveau, mais ce n'est pas copier le cerveau. Dans le cerveau se trouvent des quantités massives de connexions de rétroaction. Donc, évidemment, lorsque nous traitons les entrées sensorielles, et cela arrive dans les régions supérieures du cerveau, et est ensuite traité et abstrait de l'entrée originale que nous voyons. Mais il y a aussi une énorme quantité de rétroaction provenant de ces régions supérieures vers les zones perceptuelles. Et cette rétroaction oriente où nous regardons et

  • 00:15:00 La vidéo traite du concept d'intelligence artificielle, discutant des avantages et des inconvénients de l'avoir dans le monde. Il poursuit en disant que l'IA est une approche prometteuse, mais qu'elle nécessitera un saut dans la technologie pour atteindre la précision et la fiabilité.

  • 00:20:00 La vidéo discute des progrès des neurosciences qui sont utilisés pour inspirer l'intelligence artificielle, et comment cela aide à créer des robots aussi intelligents que les humains. Cependant, la technologie a encore du chemin à parcourir avant de pouvoir être largement déployée.

  • 00:25:00 L'intelligence artificielle joue un grand rôle dans le développement de robots sociaux capables de comprendre, de se comporter et de communiquer avec les gens dans leur vie quotidienne. Le monde est actuellement conçu pour les humains, donc concevoir des robots qui ont une forme humanoïde ou une compréhension du fonctionnement du monde humain facilite l'intégration de ces robots dans la société, mais aussi la création de valeur et d'avantages sans avoir à restructurer des bâtiments ou tâches ou la façon dont le monde est conçu pour s'adapter à cet humain.

  • 00:30:00 La vidéo explique comment les neurosciences inspirent les progrès de l'IA, y compris l'apprentissage en profondeur et la cognition incarnée. La cognition incarnée est à l'opposé de l'idée de Descarte selon laquelle « je pense, donc je suis ». La robotique finira par s'intégrer plus étroitement à la société et l'IA deviendra un "outil très utile" pour la science.

  • 00:35:00 La vidéo traite de l'idée d'"intelligence artificielle générale" ou AGI, qui est la capacité d'une machine à atteindre le niveau d'intelligence d'un humain adulte compétent. Alors que la validité du "test de Turing" - un examen qui mesure si une machine peut tromper quelqu'un en lui faisant croire qu'il s'agit d'un humain - est toujours contestée, la plupart des chercheurs pensent qu'il est nécessaire que les machines atteignent ce niveau d'intelligence.

  • 00:40:00 La vidéo discute du potentiel de l'intelligence artificielle à imprégner de plus en plus de parties de nos vies, et de l'importance de gérer l'IA avec soin afin qu'elle ne commence pas à prendre des décisions par elle-même. Il suggère que l'IA deviendra éventuellement un service public et discute des moyens par lesquels les gens peuvent avoir cette discussion à la radio et en vidéo.

  • 00:45:00 L'auteur soutient que les gouvernements doivent être proactifs en investissant dans l'intelligence artificielle et la robotique, car il s'agit d'un investissement énorme qui pourrait avoir d'excellents résultats pour la société. Cependant, s'ils ne sont pas utilisés correctement, les robots pourraient entraîner un chômage de masse. Il note également que la société devra s'adapter à la révolution robotique à venir, car les tâches actuellement effectuées par les humains seront remplacées par des machines.

  • 00:50:00 L'auteur discute du potentiel de l'intelligence artificielle générale et de la singularité, qui est le point auquel l'intelligence des machines dépasse l'intelligence humaine. Ils soulignent que bien que cette technologie soit encore quelque peu spéculative, elle est susceptible de se produire dans les 200 prochaines années. Alors que beaucoup de gens peuvent être sceptiques, ceux qui sont au courant s'accordent à dire que c'est certainement quelque chose qui va arriver.

  • 00:55:00 Cette vidéo traite du potentiel de l'intelligence artificielle pour atteindre un point d'intelligence générale et des divers défis qui devront être surmontés en cours de route. Il aborde également le potentiel des robots à être considérés comme une espèce, ainsi que les avantages et les inconvénients de cette approche.

  • 01:00:00 L'orateur donne un aperçu des risques et des avantages potentiels associés aux progrès de l'intelligence artificielle et discute d'une situation hypothétique dans laquelle une IA devient voyou et anéantit l'humanité. La plupart des chercheurs dans le domaine ne sont pas préoccupés par ce type de menace, se concentrant plutôt sur les avantages potentiels de l'intelligence artificielle.
 

Stanford CS230 : Apprentissage en profondeur | Automne 2018 | Cours 1 - Présentation de la classe et logistique, Andrew Ng




Stanford CS230 : Apprentissage en profondeur | Automne 2018 | Cours 1 - Présentation de la classe et logistique, Andrew Ng

Andrew Ng, l'instructeur du cours CS230 Deep Learning de Stanford, présente le cours et explique le format de classe inversée. Il souligne la popularité soudaine de l'apprentissage en profondeur en raison de l'augmentation des enregistrements numériques, permettant des systèmes d'apprentissage en profondeur plus efficaces. Les principaux objectifs du cours sont de permettre aux étudiants de devenir des experts en algorithmes d'apprentissage en profondeur et de comprendre comment les appliquer pour résoudre des problèmes du monde réel. Ng souligne l'importance des connaissances pratiques dans la construction de systèmes d'apprentissage automatique efficients et efficaces et espère enseigner et dériver systématiquement des algorithmes d'apprentissage automatique tout en les mettant en œuvre efficacement avec les bons processus. Le cours couvrira les réseaux de neurones à convolution et les modèles de séquence à travers des vidéos sur Coursera et des devoirs de programmation sur des cahiers Jupyter.

La première conférence du cours CS230 Deep Learning de Stanford présente la variété d'applications du monde réel qui seront développées grâce à des devoirs de programmation et des projets d'étudiants, qui peuvent être personnalisés et conçus pour correspondre aux intérêts d'un étudiant. Des exemples de projets d'étudiants antérieurs vont de la prévision du prix des vélos à la détection de signaux de tremblement de terre. Le projet final est souligné comme l'aspect le plus important du cours, et un mentorat personnalisé est disponible via l'équipe d'assistants techniques et les instructeurs. La logistique du cours est également abordée, notamment la formation d'équipes pour des projets de groupe, la réalisation de quiz sur Coursera et la combinaison du cours avec d'autres cours.

  • 00:00:00 Dans cette section, Andrew Ng, l'instructeur du CS230 de Stanford, présente le cours et explique le format de classe inversée. Dans cette classe, les étudiants regarderont le contenu de deeplearning.ai sur Coursera à la maison et participeront à des discussions plus approfondies pendant les heures de classe et de discussion. Ng présente l'équipe pédagogique, composée des co-instructeurs Kian Katanforosh, le co-créateur de la spécialisation Deep Learning, Swati Dubei, le coordinateur de classe, Younes Mourri, le conseiller de cours et responsable TA, et Aarti Bagul et Abhijeet, co-responsable TA. Ng explique la popularité soudaine de l'apprentissage en profondeur, déclarant que la numérisation de la société a conduit à une augmentation de la collecte de données, donnant aux étudiants la possibilité de construire des systèmes d'apprentissage en profondeur plus efficaces que jamais.

  • 00:05:00 Dans cette section, Andrew Ng explique que l'augmentation des enregistrements numériques a entraîné une augmentation des données, mais que les algorithmes d'apprentissage automatique traditionnels plafonnent même lorsqu'ils sont alimentés avec plus de données. Cependant, à mesure que les réseaux de neurones deviennent plus grands, leurs performances ne cessent de s'améliorer, jusqu'à une limite théorique appelée taux d'erreur de base. Avec l'avènement de l'informatique GPU et des services cloud, l'accès à une puissance de calcul suffisamment importante a permis à davantage de personnes de former des réseaux de neurones suffisamment grands pour atteindre des niveaux élevés de précision dans de nombreuses applications. Bien que l'apprentissage en profondeur ne soit qu'un outil parmi tant d'autres dans l'IA, il est devenu si populaire parce qu'il fournit constamment d'excellents résultats.

  • 00:10:00 Dans cette section, le conférencier explique qu'il existe une variété d'outils et de technologies que les chercheurs utilisent en IA en plus de l'apprentissage en profondeur, tels que les algorithmes de planification et la représentation des connaissances. Cependant, l'apprentissage en profondeur a décollé incroyablement rapidement au cours des dernières années en raison de son utilisation d'ensembles de données massifs et de sa puissance de calcul, ainsi que de l'innovation algorithmique et des investissements massifs. Les principaux objectifs de CS230 sont que les étudiants deviennent des experts en algorithmes d'apprentissage en profondeur et comprennent comment les appliquer pour résoudre des problèmes du monde réel. Le conférencier, qui a une expérience pratique dans la direction d'équipes d'IA performantes chez Google, Baidu et Landing AI, souligne également l'importance d'apprendre les aspects pratiques du savoir-faire de l'apprentissage automatique, qui, selon lui, peuvent ne pas être couverts dans d'autres cours universitaires.

  • 00:15:00 Dans cette section, Andrew Ng parle de l'importance des connaissances pratiques pour prendre des décisions efficaces lors de la construction d'un système d'apprentissage automatique. Il souligne la différence entre un grand ingénieur logiciel et un junior en termes de décisions de jugement de haut niveau et d'abstractions architecturales. De même, il souligne l'importance de savoir quand collecter plus de données ou rechercher des hyperparamètres dans les systèmes d'apprentissage en profondeur pour prendre de meilleures décisions qui peuvent augmenter l'efficacité de l'équipe de 2 à 10 fois. Il vise à transmettre ces connaissances pratiques aux étudiants du cours grâce à un enseignement systématique et recommande également son livre, Machine Learning Yearning, pour les étudiants ayant un peu d'expérience en apprentissage automatique.

  • 00:20:00 Dans cette section, Andrew Ng discute d'une ébauche de son nouveau livre intitulé "Machine Learning Yearning" qui, selon lui, est une tentative de rassembler les meilleurs principes pour créer une discipline d'ingénierie systématique à partir de l'apprentissage automatique. Ng explique également le format de classe inversée du cours où les étudiants regardent des vidéos et répondent à des quiz en ligne à leur rythme, et assistent à des sessions hebdomadaires pour des interactions et des discussions plus approfondies avec les assistants d'enseignement, Kian et lui-même. Il poursuit en parlant de l'importance de l'IA et de l'apprentissage automatique, déclarant qu'il pense que cela transformera toutes les industries, tout comme l'électricité a transformé plusieurs domaines il y a plus d'un siècle.

  • 00:25:00 Dans cette section de la vidéo, Andrew Ng, l'instructeur du cours CS230 Deep Learning de Stanford, exprime son espoir que les étudiants utiliseront leurs nouvelles compétences d'apprentissage en profondeur pour transformer des industries en dehors du secteur technologique traditionnel, comme la santé, génie civil et cosmologie. Il partage une précieuse leçon apprise en étudiant l'essor d'Internet, à savoir que la création d'un site Web ne transforme pas une entreprise physique en une entreprise Internet ; c'est plutôt l'organisation de l'équipe et l'incorporation de pratiques spécifiques à Internet, telles que les tests A/B omniprésents, qui définissent véritablement une entreprise Internet.

  • 00:30:00 Dans cette section de la transcription, Andrew Ng discute des différences entre les entreprises traditionnelles et les entreprises Internet et d'IA. Il explique que les entreprises Internet et d'intelligence artificielle ont tendance à confier le pouvoir de décision aux ingénieurs ou aux ingénieurs et aux chefs de produit, car ces personnes sont les plus proches de la technologie, des algorithmes et des utilisateurs. Ng mentionne également l'importance d'organiser des équipes pour faire les choses que l'apprentissage automatique moderne et l'apprentissage en profondeur permettent. De plus, Ng décrit comment les entreprises d'IA ont tendance à organiser les données différemment et à se spécialiser dans la détection d'opportunités d'automatisation. Enfin, il note que l'essor de l'apprentissage automatique a créé de nouveaux rôles tels que celui d'ingénieur en apprentissage automatique et de chercheur en apprentissage automatique des ressources.

  • 00:35:00 Dans cette section, Andrew Ng souligne l'importance d'une organisation d'équipe efficace à l'ère de l'IA pour faire un travail plus précieux. Il fait une analogie avec la façon dont le monde du génie logiciel a dû développer le développement Agile, les processus Scrum et la révision du code pour créer des équipes d'IA industrielles hautement performantes qui ont construit des logiciels de manière efficace. Ng espère enseigner et dériver systématiquement des algorithmes d'apprentissage automatique et les mettre en œuvre efficacement avec les bons processus. Enfin, Ng guide les personnes aspirant à apprendre l'apprentissage automatique sur les cours à suivre pour atteindre leurs objectifs.

  • 00:40:00 Dans cette section, Andrew Ng discute des différences entre CS229, CS229A et CS230. CS229 est la plus mathématique de ces classes, se concentrant sur les dérivations mathématiques des algorithmes. CS229A est un apprentissage automatique appliqué, passant plus de temps sur les aspects pratiques et étant la rampe d'accès la plus facile à l'apprentissage automatique, tandis que CS230 se situe quelque part entre les deux, plus mathématique que CS229A mais moins mathématique que CS229. La particularité de CS230 est qu'il se concentre sur l'apprentissage en profondeur, qui est le sous-ensemble le plus difficile de l'apprentissage automatique. Andrew Ng établit des attentes précises en voulant passer plus de temps à enseigner le savoir-faire pratique de l'application de ces algorithmes, plutôt que de se concentrer uniquement sur les mathématiques.

  • 00:45:00 Dans cette section, Andrew Ng présente le concept d'IA et d'apprentissage automatique qui disparaît en arrière-plan et devient un outil magique que nous pouvons utiliser sans penser aux algorithmes d'apprentissage qui le rendent possible. Il discute de l'importance de l'apprentissage automatique dans les soins de santé, la fabrication, l'agriculture et l'éducation, où un tutorat précis et des commentaires sur le codage des devoirs peuvent être obtenus à l'aide d'algorithmes d'apprentissage. Le format de cours de CS230 consiste à regarder des vidéos deeplearning.ai sur Coursera avec des conférences supplémentaires de Kian à Stanford pour des connaissances et une pratique plus approfondies. La classe est structurée en cinq cours qui enseignent aux étudiants les neurones, les couches, la construction de réseaux, le réglage des réseaux et les applications industrielles de l'IA.

  • 00:50:00 Dans cette section, Andrew Ng présente les sujets abordés dans le cours et la structure du programme. Le cours est divisé en deux parties qui se concentrent sur les réseaux de neurones à convolution pour l'imagerie et les vidéos, et les modèles de séquence, y compris les réseaux de neurones récurrents pour le traitement du langage naturel et la reconnaissance de la parole. Chaque module comprendra des vidéos sur Coursera, des quiz et des devoirs de programmation sur Jupyter Notebooks. L'assiduité est de deux pour cent de la note finale, huit pour cent sur les quiz, 25 pour cent sur les devoirs de programmation, et une partie importante sur un projet final.

  • 00:55:00 Dans cette section, Andrew Ng explique les devoirs de programmation que les étudiants entreprendront pendant le cours. Les étudiants traduiront des images en langage des signes en nombres, deviendront un ingénieur en Deep Learning pour une Happy House et créeront un réseau à l'aide de l'algorithme de détection d'objets YOLOv2. Ils travailleront sur l'optimisation de la prédiction de tir d'un gardien de but, détecteront les voitures en conduisant de manière autonome, effectueront la reconnaissance faciale et le transfert de style, et créeront un modèle de séquence pour générer de la musique jazz et de la poésie shakespearienne. Le conférencier fournit aux étudiants des liens vers des documents connexes pour chacun des projets.

  • 01:00:00 Dans cette section, l'orateur discute de la variété des applications qui seront construites dans le cours à travers des devoirs de programmation, ainsi que de la possibilité pour les étudiants de choisir leurs propres projets tout au long du cours. Des exemples d'anciens projets d'étudiants sont donnés, y compris la coloration d'images en noir et blanc, la prévision du prix des vélos et la détection des signaux précurseurs des tremblements de terre. Les étudiants sont encouragés à construire et à être fiers de leurs projets, car le projet final est l'aspect le plus important du cours. Le cours est appliqué, avec quelques mathématiques impliquées, et un mentorat personnalisé est disponible via l'équipe d'assistance technique et les instructeurs.

  • 01:05:00 Dans cette section, l'instructeur explique les détails logistiques du cours, y compris comment créer des comptes Coursera, quels devoirs effectuer et comment former des équipes pour le projet de cours. Les équipes de projet seront composées d'un à trois étudiants, avec des exceptions pour les projets difficiles. Les étudiants peuvent combiner le projet avec d'autres classes tant qu'ils en discutent avec l'instructeur, et les quiz peuvent être repris sur Coursera, le dernier quiz soumis étant pris en compte pour la classe CS230.
 

Cours 2 - Intuition d'apprentissage en profondeur



Stanford CS230 : Apprentissage en profondeur | Automne 2018 | Cours 2 - Intuition d'apprentissage en profondeur

La première partie de la conférence se concentre sur diverses applications de l'apprentissage en profondeur, notamment la classification d'images, la reconnaissance faciale et le transfert de style d'image. L'instructeur explique l'importance de divers facteurs tels que la taille de l'ensemble de données, la résolution de l'image et la fonction de perte dans le développement d'un modèle d'apprentissage en profondeur. Le concept d'encodage d'images à l'aide de réseaux profonds pour créer des représentations utiles est également discuté, en mettant l'accent sur la fonction de perte de triplet utilisée dans la reconnaissance faciale. De plus, le conférencier explique le regroupement à l'aide de l'algorithme K-Means pour la classification des images et l'extraction du style et du contenu des images. Dans l'ensemble, la section présente aux étudiants les différentes techniques et considérations impliquées dans le développement de modèles d'apprentissage en profondeur réussis.

La deuxième partie de la vidéo couvre une variété de sujets d'apprentissage en profondeur, tels que la génération d'images, la reconnaissance vocale et la détection d'objets. L'orateur souligne l'importance de consulter des experts en cas de problème et les éléments critiques d'un projet d'apprentissage en profondeur réussi : un pipeline d'acquisition de données stratégiques, une recherche d'architecture et un réglage d'hyperparamètres. La vidéo aborde également différentes fonctions de perte utilisées dans l'apprentissage en profondeur, y compris la fonction de perte de détection d'objet, qui comprend une racine carrée pour pénaliser plus lourdement les erreurs sur les petites boîtes que sur les grandes boîtes. La vidéo se termine par un récapitulatif des modules et des missions à venir, y compris les sessions de mentorat obligatoires du projet TA et les sections TA du vendredi axées sur le transfert de style neuronal et le remplissage d'un formulaire AWS pour des crédits GPU potentiels.

  • 00:00:00 Dans cette section de la conférence, l'objectif est de donner une manière systématique de réfléchir aux projets liés à l'apprentissage en profondeur. Cela implique de prendre des décisions sur la manière de collecter et d'étiqueter les données, de choisir l'architecture et de concevoir une fonction de perte appropriée pour l'optimisation. Un modèle peut être défini comme une architecture plus des paramètres, où l'architecture est la conception choisie pour le modèle et les paramètres sont les nombres qui font que la fonction prend des entrées et les convertit en sorties. La fonction de perte est utilisée pour comparer la sortie à la vérité terrain, et le gradient de la fonction de perte est calculé pour mettre à jour les paramètres afin d'améliorer la reconnaissance. De nombreux éléments peuvent changer dans le contexte de l'apprentissage en profondeur, notamment l'entrée, la sortie, l'architecture, la fonction de perte, les fonctions d'activation, la boucle d'optimisation et les hyperparamètres. La régression logistique est la première architecture discutée, et une image peut être représentée comme une matrice 3D en informatique.

  • 00: 05: 00 Dans cette section de la vidéo, l'instructeur discute de la structure de base d'un réseau neuronal pour classer les images de chats et comment il peut être modifié pour classer plusieurs animaux grâce à l'utilisation de la régression multi-logistique. L'importance d'étiqueter correctement les données est soulignée et le concept d'encodage à chaud est introduit, avec l'inconvénient de ne pouvoir classer les images qu'avec un seul animal mentionné. L'utilisation de Softmax comme fonction d'activation pour l'encodage multi-chaud est également mentionnée, et la notation utilisée dans le cours pour les couches et les indices de neurones est expliquée.

  • 00:10:00 Dans cette section, le conférencier explique comment le deep learning extrait les informations de chaque couche d'un réseau et comment cela est utilisé pour encoder les données d'entrée. Il utilise des exemples de reconnaissance faciale et de classification d'images pour développer l'intuition autour d'applications concrètes de l'apprentissage en profondeur. Le conférencier discute également de l'estimation du nombre d'images nécessaires pour un problème donné et suggère qu'elle devrait être basée sur la complexité de la tâche plutôt que sur le nombre de paramètres dans le réseau.

  • 00:15:00 Dans cette section, l'instructeur explique comment déterminer la quantité de données nécessaires pour un projet d'apprentissage en profondeur, ainsi que comment diviser les données en ensembles d'apprentissage, de validation et de test. L'instructeur explique que la quantité de données nécessaires dépend de la complexité de la tâche et si le projet implique des images intérieures ou extérieures. Un ensemble de données équilibré est également important pour former correctement le réseau. La résolution de l'image est également discutée, l'objectif étant d'obtenir de bonnes performances tout en minimisant la complexité de calcul. L'instructeur suggère de comparer les performances humaines à différentes résolutions pour déterminer la résolution minimale nécessaire. En fin de compte, une résolution de 64 par 64 par trois a été jugée suffisante pour l'exemple d'image utilisé.

  • 00:20:00 Dans cette section, le conférencier discute d'un problème de classification d'image de base où la tâche consiste à détecter si une image a été prise de jour ou de nuit. La sortie du modèle doit être une étiquette pour l'image, où Y est égal à zéro pour le jour et Y est égal à un pour la nuit. L'architecture recommandée pour cette tâche est un réseau superficiel entièrement connecté ou convolutif. La fonction de perte à utiliser est la log-vraisemblance, qui est plus facile à optimiser que les autres fonctions de perte pour les problèmes de classification. Le conférencier applique ensuite ce concept de base à un scénario réel où l'objectif est d'utiliser la vérification faciale pour valider les identifiants des étudiants dans des installations comme la salle de sport. L'ensemble de données requis pour ce problème serait une collection d'images à comparer avec les images capturées par la caméra lors du balayage de l'ID.

  • 00:25:00 Dans cet extrait d'une conférence sur l'apprentissage en profondeur, l'orateur discute de l'idée d'utiliser la reconnaissance faciale comme moyen de vérifier l'identité des sportifs. L'orateur suggère que pour former le système, l'école aurait besoin de photos de chaque élève, étiquetées avec leurs noms, ainsi que de plus de photos de chaque élève pour l'entrée du modèle. Lors de la discussion sur la résolution, l'orateur suggère qu'une résolution plus élevée (environ 400 par 400) est nécessaire afin de mieux détecter des détails tels que la distance entre les yeux ou la taille du nez. Enfin, l'orateur note que de simples comparaisons de distance entre les pixels pour déterminer si deux images représentent la même personne ne fonctionneront pas en raison de variations d'éclairage ou d'autres facteurs tels que le maquillage ou la pilosité faciale.

  • 00:30:00 Dans cette section de la conférence, l'instructeur discute du processus d'encodage d'images à l'aide d'un réseau profond pour créer des représentations utiles d'images. L'objectif est de créer un vecteur qui représente les caractéristiques clés d'une image, telles que la distance entre les traits du visage, la couleur et les cheveux. Ces vecteurs sont utilisés pour comparer différentes images du même sujet et déterminer une correspondance. L'instructeur explique le processus de minimisation de la distance entre l'ancre et les images positives, tout en maximisant la distance entre l'ancre et l'image négative, afin de générer une fonction de perte utile pour le réseau profond. La fonction de perte est cruciale pour entraîner le réseau à reconnaître des caractéristiques spécifiques et à faire des prédictions précises.

  • 00:35:00 Dans cette section, l'instructeur discute de la fonction de perte de triplet utilisée dans la reconnaissance faciale. La perte est calculée comme la distance L2 entre les vecteurs de codage de A et P soustraite de la distance L2 entre les vecteurs de codage de A et N. Le but est de maximiser la distance entre les vecteurs de codage de A et N, tout en minimisant la différence entre A et P. La vraie fonction de perte contient alpha, qui a un rôle spécifique autre que d'empêcher une perte négative. L'instructeur explique que l'utilisation d'alpha dans la fonction de perte ajoute du poids à certaines parties de la fonction de perte. L'objectif est de trouver un encodage qui représente les caractéristiques du visage, et l'algorithme d'optimisation vise à minimiser la fonction de perte après plusieurs passages.

  • 00:40:00 Dans cette section, le conférencier explique l'utilisation d'un terme alpha dans la fonction de perte d'un réseau. Ce terme alpha est connu sous le nom de marge, et son but est de pénaliser les poids importants et de stabiliser le réseau sur les zéros. Cependant, cela n'affecte pas le gradient ou le poids. Le but de ce terme alpha est de pousser le réseau à apprendre quelque chose de significatif au lieu d'apprendre une fonction nulle. Le conférencier discute également de la différence entre la vérification faciale et la reconnaissance faciale, et suggère que l'ajout d'un élément de détection au pipeline peut améliorer la reconnaissance faciale. Un algorithme K-Nearest Neighbors peut être utilisé pour comparer les vecteurs des visages saisis avec les vecteurs d'une base de données pour identifier les individus.

  • 00:45:00 Dans cette section, l'instructeur explique le regroupement, plus précisément l'algorithme K-Means et son utilisation dans la classification des images. Il explique comment l'algorithme prend tous les vecteurs d'une base de données et les regroupe en groupes qui se ressemblent. Cela peut être utilisé pour séparer les photos de différentes personnes dans des dossiers séparés sur un téléphone, par exemple. Il discute également des moyens de définir le paramètre K dans l'algorithme et comment différentes méthodes peuvent être utilisées. L'instructeur discute également de la génération d'art, qui consiste à générer une image qui est le contenu d'une image mais qui est peinte dans le style d'une autre, en utilisant des données dans ce style. L'instructeur utilise le musée du Louvre comme exemple d'image de contenu et un tableau de Claude Monet comme image de style.

  • 00:50:00 Dans cette section, l'orateur explique comment extraire le style et le contenu des images à l'aide de techniques d'apprentissage en profondeur. Ils expliquent que si une méthode consiste à former un réseau pour apprendre un style spécifique, la méthode préférée consiste à apprendre une image à la place. Il s'agit de donner une image de contenu et d'extraire des informations sur son contenu à l'aide d'un réseau de neurones formé à la reconnaissance d'image. Pour extraire les informations de style, l'orateur introduit l'utilisation de la matrice de Gram et explique que le style est une information non localisée. En combinant le contenu extrait et le style, il est possible de générer une image avec le style d'une image donnée tout en préservant le contenu. L'intervenant souligne que cette technique consiste à rétropropager jusqu'à l'image et pas seulement à apprendre les paramètres d'un réseau.

  • 00:55:00 Dans cette section, l'instructeur discute de la fonction de perte pour extraire le style à l'aide de la méthode de la matrice de Gram et comment elle est calculée à l'aide de la distance L2 entre le style de l'image de style et le style généré, ainsi qu'entre le contenu de la image de contenu et contenu généré. L'instructeur souligne qu'ImageNet est utilisé dans ce processus non pas pour la classification, mais pour utiliser des paramètres pré-formés pour le réseau. L'accent est mis sur la formation de l'image à l'aide de bruit blanc, et le contenu G et le style G en sont extraits en l'exécutant à travers le réseau et en calculant les dérivées de la fonction de perte pour revenir aux pixels de l'image.

  • 01:00:00 Dans cette section, l'orateur aborde le processus de formation d'un réseau pour générer une image basée sur le contenu et le style des images. Bien que ce réseau ait la flexibilité de travailler avec n'importe quel style et n'importe quel contenu, il nécessite une nouvelle boucle de formation à chaque fois qu'une image est générée. Le réseau est formé sur des millions d'images et n'a pas besoin d'être formé spécifiquement sur les images Monet. La fonction de perte pour ce réseau provient des images de contenu et de style, où la ligne de base est de commencer par le bruit blanc. L'orateur aborde ensuite une application de détection de mots déclencheurs, qui nécessite de nombreux clips audio de 10 secondes comprenant un mot positif comme "activer" et des mots négatifs comme "cuisine" et "lion".

  • 01:05:00 Dans cette section, la vidéo traite du processus de sélection du meilleur schéma d'étiquetage pour la reconnaissance vocale. L'orateur explique qu'il faut consulter un expert en reconnaissance vocale pour déterminer le meilleur taux d'échantillonnage à utiliser pour le traitement de la parole, et offre un exemple d'un schéma d'étiquetage faible qui rend difficile la détection du mot déclencheur dans une phrase parlée. L'orateur démontre un schéma d'étiquetage différent qui permet au modèle de détecter plus facilement le mot déclencheur, mais note qu'il est toujours important de prendre en compte des problèmes tels que le déséquilibre dans l'ensemble de données et la nécessité d'une fonction sigmoïde à chaque pas de temps pour produire zéro ou un.

  • 01:10:00 Dans cette section de la vidéo, l'orateur discute des deux choses essentielles pour construire un projet d'apprentissage en profondeur réussi. La première consiste à disposer d'un pipeline d'acquisition de données stratégiques. Une façon d'y parvenir est de collecter des enregistrements audio de 10 secondes contenant des mots positifs et négatifs avec divers accents sur le campus à l'aide de téléphones. Le deuxième élément critique est la recherche d'architecture et le réglage des hyperparamètres. L'orateur raconte comment il a utilisé une transformée de Fourier au début pour extraire des caractéristiques de la parole, puis a parlé à des experts et apporté des modifications au réseau en fonction de leurs conseils. Il souligne que trouver la bonne architecture est un processus compliqué mais qu'il ne faut pas abandonner et que des experts doivent être consultés.

  • 01:15:00 Dans cette section, l'orateur discute d'un problème de reconnaissance vocale et comment il a eu du mal à ajuster un réseau de neurones sur les données jusqu'à ce qu'il trouve un expert en reconnaissance vocale qui l'a conseillé sur l'utilisation correcte des hyperparamètres de transformée de Fourier, réduisant le la taille du réseau et l'utilisation d'une convolution pour réduire le nombre de pas de temps, ainsi que l'expansion de la sortie. Il insiste sur l'importance de demander conseil à des experts et de ne pas baisser les bras face à des problèmes au cours d'un projet. L'orateur mentionne ensuite brièvement une autre façon de résoudre la détection d'accord en utilisant l'algorithme de perte de triplet et en codant la parole audio dans un certain vecteur pour comparer la distance entre ces vecteurs. Enfin, il discute d'une belle fonction de perte qui correspond à la détection d'objet et est utilisée dans un réseau appelé YOLO, où la perte compare x, y, la largeur et la hauteur des boîtes englobantes.

  • 01:20:00 Dans cette section de la vidéo, l'orateur discute de la fonction de perte de détection d'objet dans l'apprentissage en profondeur et explique pourquoi elle inclut une racine carrée. La fonction de perte comprend plusieurs termes qui visent à minimiser la distance entre la véritable boîte englobante et la boîte englobante prédite, ainsi qu'à identifier la classe d'objets dans la boîte. La racine carrée est incluse pour pénaliser plus lourdement les erreurs sur les petites boîtes que sur les grandes boîtes. La vidéo se termine par un récapitulatif des modules et des missions à venir, des sessions de mentorat obligatoires sur les projets d'assistance technique et des sections d'assistance technique du vendredi axées sur le transfert de style neuronal et le remplissage d'un formulaire AWS pour des crédits GPU potentiels.
 

Cours 3 - Projets d'apprentissage en profondeur à cycle complet



Stanford CS230 : Apprentissage en profondeur | Automne 2018 | Cours 3 - Projets d'apprentissage en profondeur à cycle complet

Dans cette conférence sur les projets d'apprentissage en profondeur à cycle complet, l'instructeur souligne l'importance de prendre en compte tous les aspects de la création d'une application d'apprentissage automatique réussie, y compris la sélection des problèmes, la collecte de données, la conception de modèles, les tests, le déploiement et la maintenance. À travers l'exemple de la construction d'un appareil à commande vocale, l'instructeur discute des éléments clés impliqués dans les projets d'apprentissage en profondeur et encourage les étudiants à se concentrer sur des projets réalisables ayant un impact positif potentiel et des contributions uniques à leurs domaines respectifs. L'instructeur souligne également l'importance de collecter rapidement des données, de prendre de bonnes notes tout au long du processus et d'itérer pendant le développement, tout en discutant d'approches spécifiques à l'activation de la parole et à la détection de l'activité vocale.

La deuxième partie de la conférence se concentre sur l'importance de la surveillance et de la maintenance dans les projets d'apprentissage automatique, en particulier la nécessité de surveiller et de mettre à jour en permanence les modèles pour s'assurer qu'ils fonctionnent bien dans le monde réel. Le conférencier aborde le problème de la modification des données, qui peut entraîner une perte de précision des modèles d'apprentissage automatique, et souligne la nécessité d'une surveillance constante, de la collecte de données et de la refonte des modèles pour garantir que les modèles continuent de fonctionner efficacement. La conférence discute également de l'impact de l'utilisation d'un système non-ML par rapport à un réseau de neurones formé dans un système de détection d'activité vocale et suggère que les règles codées à la main sont généralement plus robustes aux données changeantes. Le conférencier conclut sur la nécessité de porter une attention particulière à la confidentialité des données et d'obtenir le consentement de l'utilisateur lors de la collecte de données pour les modèles de recyclage.

  • 00:00:00 Dans cette section de la vidéo, l'instructeur présente l'idée de projets d'apprentissage en profondeur à cycle complet en expliquant les étapes impliquées dans la création d'une application d'apprentissage automatique réussie au-delà de la simple création d'un modèle de réseau neuronal. Il utilise l'exemple de la construction d'un appareil à commande vocale et explique que la première étape consiste à sélectionner un problème, comme l'utilisation de l'apprentissage supervisé pour construire l'application. Il mentionne également le projet à venir sur lequel les étudiants travailleront et qui implique la mise en œuvre d'un appareil à commande vocale comme problème défini plus tard dans le trimestre.

  • 00:05:00 Dans cette section de la conférence, l'orateur discute des composants clés impliqués dans la construction d'un appareil à commande vocale utilisant l'apprentissage en profondeur, qui comprend un algorithme d'apprentissage qui détecte les mots déclencheurs tels que "Alexa", "OK Google", "Hey Siri" ou "Activer". L'orateur décrit les étapes importantes de la création d'un produit d'apprentissage automatique, en commençant par sélectionner un problème, obtenir des données étiquetées, concevoir un modèle, le tester sur un ensemble de test, le déployer et entretenir le système. L'orateur souligne que la formation d'un modèle est souvent un processus itératif et que la construction d'un bon modèle implique de se concentrer sur la première étape, la sixième et la septième étape, en plus du cœur de l'apprentissage automatique.

  • 00:10:00 Dans cette section de la conférence, l'orateur discute des propriétés d'un bon projet d'apprentissage en profondeur candidat. Il utilise l'exemple d'un appareil à commande vocale et explique comment des appareils comme Echo et Google Home, qui ont le potentiel d'être activés par la voix, sont difficiles à configurer en raison de la nécessité de les configurer pour le Wi-Fi. Il fournit une solution à ce problème grâce à un appareil intégré qui peut être vendu aux fabricants de lampes, qui comprend un microphone intégré et peut s'allumer et s'éteindre par une simple commande vocale à la lampe elle-même. L'orateur mentionne que ce projet nécessite la construction d'un algorithme d'apprentissage qui peut fonctionner sur un appareil intégré et détecter le mot de réveil pour allumer et éteindre la lampe. Il suggère en outre de donner des noms à ces appareils pour éviter toute ambiguïté. L'orateur indique que même s'il ne travaillait pas sur ce projet, cela pourrait être un produit raisonnable à poursuivre pour les startups.

  • 00:15:00 Dans cette section de la vidéo, le présentateur demande au public quelles sont les propriétés qu'il recherche habituellement lors de la sélection d'une idée de projet d'apprentissage en profondeur. Il partage ensuite sa propre liste de cinq points clés à prendre en compte lors du brainstorming d'idées de projet. Le début du segment est distrait par quelques difficultés techniques avec un système de réponse, mais le présentateur finit par entrer dans le sujet à portée de main, encourageant le public à réfléchir à ses propres idées et priorités.

  • 00:20:00 Dans cette section de la vidéo, le professeur Ng partage ses cinq points sur la façon de choisir un projet d'apprentissage en profondeur. Il conseille aux étudiants de choisir quelque chose qui les intéresse vraiment et de tenir compte de la disponibilité des données. De plus, ils doivent tirer parti de leurs connaissances du domaine pour appliquer des techniques d'apprentissage automatique à des aspects uniques de leurs domaines, apportant une contribution unique. De plus, il encourage à choisir un projet qui pourrait avoir un impact positif et apporter une utilité aux gens sans nécessairement se focaliser sur l'argent. Enfin, il souligne que la faisabilité est un facteur crucial pour évaluer la viabilité de tout projet ou idée d'apprentissage automatique. Le professeur Ng donne également un exemple de médecins et d'étudiants en radiologie intéressés par l'apprentissage en profondeur, leur rappelant que tirer parti de leurs connaissances dans le domaine de la radiologie des soins de santé pourrait créer des contributions plus uniques que de simplement partir de zéro.

  • 00:25:00 Dans cette section, l'instructeur explique l'importance de choisir un projet réalisable et d'obtenir des données pour former l'algorithme d'apprentissage en profondeur. Il propose un scénario dans lequel les étudiants doivent former un algorithme d'apprentissage en profondeur pour détecter certaines phrases pour un projet de démarrage, et les invite à estimer le nombre de jours nécessaires à la collecte de données à l'aide de la méthode de séquence de Fibonacci. Les élèves sont également invités à décrire comment ils s'y prendraient pour recueillir les données requises. Des difficultés techniques avec l'ordinateur portable du présentateur sont rencontrées et l'utilisation du navigateur Firefox est suggérée comme alternative.

  • 00:30:00 Dans cette section de la vidéo, l'instructeur demande aux étudiants de discuter entre eux en petits groupes et de trouver la meilleure stratégie pour collecter des données et décider du nombre de jours à consacrer à la collecte de données. Il suggère qu'ils réfléchissent au temps qu'il leur faudra pour former leur premier modèle et au temps qu'ils souhaitent consacrer à la collecte de données. L'instructeur avertit que s'il faut un jour ou deux pour former le premier modèle, ils voudront peut-être passer moins de temps sur la collecte de données. Il conseille aux étudiants de discuter avec leurs partenaires de projet pour élaborer un plan de collecte de données.

  • 00:35:00 Dans cette section, l'instructeur explique l'importance de collecter des données pour tester le fonctionnement de l'algorithme avant de collecter le prochain ensemble de données tout en travaillant sur des projets d'apprentissage automatique. L'instructeur suggère de passer 1 à 2 jours à collecter des données et à se procurer un microphone bon marché pour collecter des données en faisant le tour du campus de Stanford ou chez des amis et en leur faisant dire différents mots-clés. Il note qu'il est difficile de savoir ce qui sera difficile ou facile du problème lors de la construction d'un nouveau système d'apprentissage automatique. Par conséquent, il est essentiel de commencer avec un algorithme d'apprentissage rudimentaire pour démarrer.

  • 00:40:00 Dans cette section, l'orateur parle de l'importance de collecter rapidement des données et de les itérer lors du développement de Machine Learning. Il déconseille de consacrer trop de temps à la collecte de données et suggère de commencer par un ensemble de données plus petit pour comprendre ce qui est nécessaire. Il est essentiel de conserver des notes claires sur les expériences effectuées et les détails de chaque modèle afin que les chercheurs puissent se référer aux expériences précédentes plutôt que de les exécuter à nouveau. De plus, il recommande de faire une recherche documentaire pour voir quels algorithmes d'autres utilisent dans un domaine spécifique, mais avertit que la littérature peut être immature dans certains domaines.

  • 00:45:00 Dans cette section, le conférencier discute de l'importance de prendre de bonnes notes tout au long du processus d'apprentissage en profondeur, de la collecte de données et de la conception du modèle au déploiement. Il utilise l'exemple du déploiement d'un système de reconnaissance vocale sur des appareils périphériques (tels que des haut-parleurs intelligents) pour souligner les défis liés à l'exécution d'un grand réseau de neurones sur des processeurs à faible puissance avec des budgets de calcul et de puissance limités. Pour
    Pour relever ce défi, un algorithme plus simple est utilisé pour détecter si quelqu'un parle même avant de transmettre le clip audio au réseau neuronal plus large pour classification. Cet algorithme plus simple est connu sous le nom de détection d'activité vocale (VAD) et est un composant standard dans de nombreux systèmes de reconnaissance vocale, y compris ceux utilisés dans les téléphones portables.

  • 00:50:00 Dans cette section de la conférence, le professeur pose la question de savoir s'il faut utiliser un système de détection d'activité vocale non basé sur l'apprentissage automatique ou former un petit réseau de neurones pour reconnaître la parole humaine pour un projet. Il note qu'un petit réseau de neurones pourrait fonctionner avec un faible budget de calcul et suggère qu'il est plus facile de détecter si quelqu'un parle que de reconnaître les mots qu'il a prononcés. Les élèves de la classe ont des opinions divergentes, certains affirmant que la première option est facile à déboguer et simple, tandis que la deuxième option est meilleure pour détecter le bruit de choses comme les chiens qui aboient ou les gens qui chuchotent.

  • 00:55:00 Dans cette section, le conférencier discute de deux options pour mettre en œuvre l'activation de la parole, qui est un problème qui se pose avec les haut-parleurs intelligents lorsqu'il y a du bruit de fond. La première option est une solution simple et rapide qui peut être mise en œuvre en 10 minutes et consiste à filtrer le bruit de fond avec quelques lignes de code. La deuxième option est plus compliquée et nécessite la construction d'un grand réseau de neurones pour gérer les environnements bruyants. Alors que l'option deux peut être nécessaire pour les grandes entreprises de haut-parleurs intelligents, les petites équipes de démarrage peuvent bénéficier de commencer avec l'option un et d'investir uniquement dans l'option deux lorsque cela devient nécessaire. Le conférencier souligne également le problème des changements de données lors de l'expédition d'un produit et propose des idées pratiques pour le résoudre.

  • 01:00:00 Dans cette section, l'orateur discute d'une faiblesse pratique de l'apprentissage automatique qui est souvent ignorée dans le milieu universitaire - le problème de la modification des données. Lorsque les modèles d'apprentissage automatique sont formés sur un ensemble de données spécifique, ils peuvent ne pas fonctionner correctement lorsque les données changent, comme de nouvelles classes d'utilisateurs avec des accents, un bruit de fond différent ou de nouveaux événements comme un scandale présidentiel. Les exemples donnés incluent la recherche sur le Web, les voitures autonomes et les inspections d'usine. Ce problème met en évidence la nécessité d'une surveillance continue, d'une collecte de données et d'une refonte des modèles pour garantir que les plates-formes d'apprentissage automatique continuent de fonctionner dans le monde réel.

  • 01:05:00 Dans cette section, la classe discute du système qui serait le plus robuste pour le VAD, la détection d'activité vocale, entre une approche non basée sur l'apprentissage automatique et un réseau de neurones formé. La majorité de la classe a voté pour un système non-ML. Cependant, il s'avère que la formation d'un petit réseau neuronal sur la parole accentuée américaine rend plus probable que le réseau neuronal capte certaines idiosyncrasies de l'accent américain, ce qui le rend moins robuste dans la détection de la parole accentuée britannique. La classe conclut que si une règle codée à la main peut fonctionner assez bien, elle est généralement plus robuste pour déplacer les données et généralisera souvent mieux, bien que des algorithmes d'apprentissage automatique soient nécessaires lorsqu'il n'y a pas une telle règle.

  • 01:10:00 Dans cette section, le conférencier discute de l'idée qu'avoir moins de paramètres dans un modèle peut conduire à une meilleure généralisation, comme le soutient une théorie d'apprentissage rigoureuse. Il se pose alors la question de savoir quel type de déploiement, cloud ou edge, facilite la maintenance du modèle, étant donné que le monde change constamment et que des mises à jour peuvent être nécessaires. Après avoir donné au public le temps de saisir leurs réponses, la majorité a répondu que les déploiements dans le cloud facilitent la maintenance grâce à la possibilité de pousser les mises à jour et de recevoir toutes les données traitées dans un emplacement central, mais avec des problèmes de confidentialité et de sécurité des utilisateurs.

  • 01:15:00 Dans cette section, le conférencier explique comment la surveillance et la maintenance sont des considérations importantes dans le déploiement de projets d'apprentissage automatique. Ils soulignent qu'il est essentiel de surveiller les performances et la rétroaction du modèle et d'apporter les modifications nécessaires pour améliorer sa précision ou pour recycler le modèle si nécessaire. Ils suggèrent également que les entreprises mettent en place des processus d'assurance qualité utilisant des tests statistiques pour s'assurer que le modèle continue de fonctionner même s'il y a des mises à jour ou des changements. En outre, ils soulignent l'importance de respecter la vie privée des utilisateurs et d'obtenir le consentement de l'utilisateur lors de la collecte de données à utiliser pour les commentaires et le recyclage du modèle.
 

Cours 4 - Attaques contradictoires / GAN




Stanford CS230 : Apprentissage en profondeur | Automne 2018 | Cours 4 - Attaques contradictoires / GAN

Cette conférence introduit le concept d'exemples contradictoires, qui sont des entrées qui ont été légèrement modifiées pour tromper un réseau neuronal pré-formé. La conférence explique la base théorique du fonctionnement de ces attaques et discute des applications malveillantes de l'utilisation d'exemples contradictoires dans l'apprentissage en profondeur. La conférence présente également les réseaux antagonistes génératifs (GAN) comme moyen de former un modèle capable de générer des images qui semblent réelles, et la conférence traite de la fonction de coût du générateur dans un modèle GAN. La conférence se termine en expliquant le graphique logarithmique de la sortie de D lorsqu'on lui donne un exemple généré.

La conférence couvre divers sujets liés aux réseaux antagonistes génératifs (GAN), y compris des trucs et astuces pour la formation des GAN et leurs applications dans la traduction image à image et les réseaux antagonistes génératifs non appariés utilisant l'architecture CycleGAN. L'évaluation des GAN est également discutée, avec des méthodes telles que l'annotation humaine, les réseaux de classification, et le score de début et la distance de début de Frechet étant des méthodes populaires pour vérifier le réalisme des images générées.

  • 00:00:00 Dans cette section, l'instructeur présente le concept d'attaques contradictoires sur les réseaux de neurones et fixe l'objectif de trouver une image d'entrée qui n'est pas un iguane, mais qui est classée comme iguane par un réseau pré-entraîné. L'instructeur explique que les réseaux de neurones ont des angles morts qui les rendent vulnérables à ces attaques et discute de la base théorique du fonctionnement de ces attaques. L'instructeur souligne que ce sujet est plus théorique et énumère les lectures recommandées pour une meilleure compréhension.

  • 00:05:00 Dans cette section, l'orateur discute du processus de génération d'exemples contradictoires à l'aide d'une fonction de perte qui minimise la différence entre les résultats attendus et non attendus. La fonction de perte peut être L1, L2 ou entropie croisée, selon ce qui fonctionne le mieux dans la pratique. L'image est ensuite optimisée de manière itérative à l'aide de la descente de gradient jusqu'à ce qu'elle soit classée comme la sortie souhaitée. Cependant, l'image résultante peut ne pas nécessairement ressembler à la sortie souhaitée en raison du vaste espace d'images d'entrée possibles que le réseau peut voir, qui est considérablement plus grand que l'espace des images du monde réel.

  • 00:10:00 Dans cette section, le conférencier discute des applications malveillantes d'exemples contradictoires dans l'apprentissage en profondeur, où les attaquants peuvent utiliser ces exemples pour tromper les réseaux de neurones en interprétant mal les entrées. Par exemple, un attaquant pourrait utiliser un exemple contradictoire pour faire apparaître une photo de son visage comme celui de quelqu'un d'autre, casser les CAPTCHA ou contourner les algorithmes qui détectent le contenu violent sur les réseaux sociaux. Le conférencier explique ensuite comment la contrainte du problème d'optimisation peut rendre les exemples contradictoires plus dangereux, où une image qui ressemble à un chat pour les humains pourrait être interprétée comme un iguane par un réseau de neurones, ce qui a des implications pour les voitures autonomes et d'autres éléments du monde réel. applications. Enfin, l'image initiale utilisée pour le problème d'optimisation est discutée, le conférencier suggérant que commencer par l'image de l'objet cible peut être la stratégie la plus efficace.

  • 00:15:00 Dans cette section, l'orateur discute de l'utilisation de l'erreur RMSE comme fonction de perte et de la façon dont il peut ne pas être un moyen précis d'évaluer si un humain voit ou non deux images comme similaires. Ils relèvent également le défi de créer une fonction de perte complexe qui prend un groupe de chats et met une distance minimale entre eux. L'orateur passe ensuite à parler d'exemples contradictoires et de la façon dont l'espace des images qui semblent réelles aux humains est en fait plus grand que l'espace des images réelles. L'orateur poursuit en expliquant les attaques non ciblées et ciblées et comment la connaissance de l'attaquant est un facteur important lors de l'examen de différents types d'attaques.

  • 00:20:00 Dans cette section de la conférence, le professeur discute des moyens d'attaquer un modèle de boîte noire pour les attaques contradictoires. Une idée consiste à utiliser le gradient numérique pour estimer comment la perte change lorsqu'une image est légèrement perturbée. Un autre concept est la transférabilité, où un exemple contradictoire créé pour un modèle peut également tromper un autre modèle similaire. Le professeur mentionne des défenses potentielles telles que la création d'un modèle "Safety Net" pour filtrer les exemples contradictoires et l'assemblage de plusieurs réseaux avec différentes fonctions de perte. Une autre approche consiste à s'entraîner sur des exemples contradictoires avec des exemples normaux, mais cela peut être coûteux et ne pas nécessairement se généraliser à d'autres exemples contradictoires.

  • 00:25:00 Dans cette section, le conférencier discute de la complexité de l'utilisation d'exemples contradictoires dans l'optimisation de la descente de gradient. Le processus implique la propagation de x à travers le réseau pour calculer le premier terme, la génération d'un exemple contradictoire avec le processus d'optimisation, le calcul du deuxième terme en transmettant la propagation de l'exemple contradictoire, puis l'utilisation de la rétropropagation pour mettre à jour les poids du réseau. La technique de l'appariement logit est également brièvement mentionnée comme une autre méthode d'entraînement contradictoire. Des perspectives théoriques sur la vulnérabilité des réseaux de neurones aux exemples contradictoires sont également évoquées, l'argument clé étant que les parties linéaires des réseaux, plutôt que les non-linéarités élevées et le surajustement, sont la cause de l'existence d'exemples contradictoires.

  • 00:30:00 Dans cette section, l'orateur discute du concept d'exemples contradictoires et comment modifier une entrée de telle manière qu'elle change radicalement la sortie du réseau tout en étant proche de l'entrée d'origine. L'orateur utilise la dérivée de y-hat par rapport à x et définit la valeur de perturbation, epsilon, et montre qu'en ajoutant epsilon*w-transpose à x, nous pouvons déplacer x d'un peu, ce qui aide à modifier la sortie en conséquence . L'orateur souligne que le terme w*w-transpose est toujours positif, et nous pouvons faire ce changement peu en changeant epsilon à une petite valeur.

  • 00:35:00 Dans cette section, le conférencier discute d'un exemple de création d'une attaque contradictoire en calculant une légère modification de x, appelée x-star, qui pousse y-hat, la sortie du réseau neuronal, de -4 à 0,5. Le conférencier note que si W est grand, x-star sera différent de x, et si le signe de W est utilisé à la place de W, le résultat poussera toujours le terme x vers le côté positif. De plus, à mesure que x augmente en dimension, l'impact du signe epsilon positif de W augmente.

  • 00:40:00 Dans cette section, l'orateur discute d'une méthode appelée Fast Gradient Sign Method, qui est un moyen général de générer des exemples contradictoires. Cette méthode linéarise la fonction de coût à proximité des paramètres et est utilisée pour pousser les images de pixels dans une direction qui aura un impact significatif sur la sortie. Le conférencier explique que cette méthode fonctionne aussi bien pour les réseaux de neurones linéaires que pour les réseaux de neurones plus profonds, car la recherche se concentre sur la linéarisation des comportements de ces réseaux. De plus, l'orateur explique comment la règle de la chaîne est utilisée pour calculer la dérivée de la fonction de perte et l'importance d'avoir un gradient élevé pour entraîner les paramètres d'un neurone.

  • 00:45:00 Dans cette section de la vidéo, le concept de réseaux antagonistes génératifs (GAN) est présenté comme un moyen de former un modèle capable de générer des images qui semblent réelles, même si elles n'ont jamais existé auparavant. L'objectif est que le réseau comprenne les principales caractéristiques d'un ensemble de données et apprenne à générer de nouvelles images qui correspondent à la distribution réelle. Un jeu minimax se joue entre deux réseaux : un générateur et un discriminateur. Le générateur commence par générer une image aléatoire et utilise les commentaires du discriminateur pour apprendre à générer des images plus réalistes. Les GAN sont difficiles à former, mais l'objectif est que le générateur apprenne à imiter la distribution réelle des images avec moins de paramètres que la quantité de données disponibles.

  • 00:50:00 Dans cette section, l'instructeur présente le concept de réseaux antagonistes génératifs (GAN) et comment ils peuvent être formés par rétropropagation. Le GAN se compose d'un générateur et d'un discriminateur, le discriminateur essayant d'identifier si une image est réelle ou fausse. Le générateur génère alors de fausses images et essaie de tromper le discriminateur en lui faisant croire qu'elles sont réelles. Le discriminateur est formé à l'aide d'une entropie croisée binaire, avec des images réelles étiquetées comme un et des images générées étiquetées comme zéro. La fonction de perte pour le discriminateur est JD, qui a deux termes : l'un qui étiquette correctement les données réelles comme une seule, et l'autre est l'entropie croisée binaire.

  • 00:55:00 Dans cette section, les instructeurs parlent de la fonction de coût du générateur dans un modèle GAN. L'objectif est que le générateur crée des échantillons réalistes qui trompent le discriminateur, et la fonction de coût doit refléter cela. Cependant, comme il s'agit d'un jeu, D et G doivent s'améliorer ensemble jusqu'à ce qu'un équilibre soit atteint. La fonction de coût pour le générateur indique que le discriminateur doit classer les images générées comme "un", et cela est réalisé en inversant le signe du gradient. Les instructeurs discutent également du graphique logarithmique de la sortie de D lorsqu'on leur donne un exemple généré.

  • 01:00:00 Dans cette section, l'instructeur discute du problème avec la fonction de coût du générateur et comment elle passe à l'infini négatif, ce qui rend le gradient très important lorsqu'il se rapproche de un. Au lieu de cela, il suggère d'utiliser une fonction de coût non saturante qui a un gradient plus élevé lorsqu'elle est proche de zéro et convertit la fonction de coût actuelle en cette fonction de coût non saturante à l'aide d'une astuce mathématique. La fonction de coût non saturante a un gradient élevé au début lorsque le discriminateur est meilleur que le générateur, c'est-à-dire là où ils sont généralement au début de la formation.

  • 01:05:00 Dans cette section, l'orateur discute des trucs et astuces pour la formation des GAN, y compris la modification de la fonction de coût, la mise à jour du discriminateur plus que le générateur et l'utilisation de Virtual BatchNorm. L'orateur montre également des exemples de résultats GAN impressionnants, notamment l'utilisation d'un générateur pour créer des visages avec un code aléatoire et la réalisation d'opérations linéaires dans l'espace latent des codes pour avoir un impact direct sur l'espace de l'image. De plus, le conférencier montre comment les GAN peuvent être utilisés dans la traduction d'image à image pour générer des images satellites basées sur des images de carte et convertir entre différents objets tels que des zèbres et des chevaux ou des pommes et des oranges.

  • 01:10:00 Dans cette section, l'instructeur discute de l'utilisation de réseaux antagonistes génératifs non appariés pour convertir les chevaux en zèbres et vice versa. L'architecture utilisée est appelée CycleGAN, qui implique deux générateurs et deux discriminateurs. Les générateurs sont formés pour transformer une image du domaine source vers le domaine cible, puis de nouveau vers le domaine source. Ceci est important pour faire respecter la contrainte selon laquelle le cheval doit être le même cheval qu'un zèbre, et vice versa. Les fonctions de perte utilisées incluent les fonctions de coût classiques vues précédemment et des termes supplémentaires qui assurent la correspondance entre les images originales et générées.

  • 01:15:00 Dans cette section de la vidéo, les conférenciers discutent de diverses applications des GAN, y compris l'utilisation des coûts de cycle pour améliorer les fonctions de perte pour les GAN conditionnels, la capacité de générer des images basées sur des bords ou des images à basse résolution, et le potentiel d'utilisation des GAN dans des ensembles de données médicales préservant la confidentialité et dans la fabrication personnalisée d'objets tels que des os et des prothèses dentaires. Les haut-parleurs mettent également en évidence les applications amusantes qui ont été créées, telles que la conversion de ramen en visage et en dos, et la génération de chats basés sur les bords.

  • 01:20:00 Dans cette section, le conférencier discute de l'évaluation des GAN et comment vérifier si les images générées sont réalistes ou non. Une méthode est l'annotation humaine, où le logiciel est construit et les utilisateurs sont invités à indiquer quelles images sont fausses et lesquelles sont réelles. Une autre méthode consiste à utiliser un réseau de classification comme le réseau Inception pour évaluer les images. Le conférencier mentionne également le score initial et la distance initiale de Frechet comme méthodes populaires pour évaluer les GAN. Enfin, le conférencier rappelle aux étudiants les quiz à venir et le devoir de programmation et leur conseille de revoir les vidéos BatchNorm.
 

Cours 5 - IA + Santé




Stanford CS230 : Apprentissage en profondeur | Automne 2018 | Cours 5 - IA + Santé

La conférence donne un aperçu des applications de l'IA dans les soins de santé dans cette conférence. Il décompose les types de questions auxquelles l'IA peut répondre, telles que les questions descriptives, diagnostiques, prédictives et prescriptives. L'auteur présente ensuite trois études de cas de son laboratoire qui démontrent l'application de l'IA à différents problèmes de santé. Un exemple est la détection d'arythmies cardiaques graves, que les experts pourraient avoir mal diagnostiquées mais qui pourraient être détectées par une machine. Un autre exemple consiste à utiliser des réseaux neuronaux convolutifs pour identifier les anomalies des examens IRM du genou, en identifiant spécifiquement la probabilité d'une déchirure du LCA et d'une déchirure méniscale. Enfin, le conférencier aborde les questions liées à la distribution et à l'augmentation des données dans l'IA des soins de santé.

La deuxième partie couvre divers sujets liés à la mise en œuvre de l'apprentissage profond dans les applications de santé. L'importance de l'augmentation des données est discutée, comme le démontre la solution d'une entreprise aux problèmes de reconnaissance vocale dans les voitures autonomes causés par les personnes qui parlent à l'assistant virtuel tout en regardant en arrière. Les hyperparamètres impliqués dans l'apprentissage par transfert pour les applications de soins de santé, tels que le choix du nombre de couches à ajouter et celles à geler, sont également abordés. La conférence passe ensuite à l'analyse d'images, où l'importance d'ajouter des limites aux ensembles de données étiquetés est mise en évidence. Les avantages et les différences entre la détection d'objets et la segmentation dans l'analyse d'images médicales sont discutés, et le sujet de la classification binaire pour les images médicales étiquetées avec zéro ou un est introduit. La conférence se termine par une discussion sur l'importance des données dans l'apprentissage en profondeur et les évaluations à venir pour le cours.

  • 00:00:00 Dans cette section de la vidéo, la conférence donne un aperçu des applications de l'IA dans les soins de santé. Il décompose les types de questions auxquelles l'IA peut répondre, telles que les questions descriptives, diagnostiques, prédictives et prescriptives. Il discute également du changement de paradigme de l'apprentissage en profondeur et du potentiel de l'IA pour automatiser le travail de l'ingénieur en apprentissage automatique. Rajpurkar présente ensuite trois études de cas de son laboratoire qui démontrent l'application de l'IA à différents problèmes de santé.

  • 00:05:00 Dans cette section, le conférencier aborde le problème de la détection des arythmies à l'aide de l'imagerie médicale. Les arythmies sont un problème important affectant des millions de personnes, et les détecter par des tests ECG peut être difficile en raison des différences subtiles entre les rythmes cardiaques. Le conférencier souligne la quantité de données générées en deux semaines à partir du suivi des patients à l'aide d'appareils récents, tels que le Zio Patch, qui peuvent rendre nécessaire une interprétation automatisée. Cependant, la détection des arythmies à l'aide de méthodes automatisées présente des défis tels que la disponibilité limitée de plusieurs électrodes et les différences subtiles entre les rythmes cardiaques. Pour surmonter ces défis, le conférencier propose d'utiliser l'apprentissage en profondeur, qui peut changer les approches traditionnelles de l'ingénierie et de la classification des fonctionnalités.

  • 00:10:00 Dans cette section, l'orateur discute de l'utilisation d'un réseau neuronal profond avec une architecture de réseau neuronal convolutif 1D de 34 couches de profondeur, pour cartographier les rythmes cardiaques (étiquetés A, B et C) de l'entrée à la sortie. Le réseau utilisé était un réseau résiduel avec des raccourcis qui aident à minimiser la distance entre le signal d'erreur et chacune des couches, et il a été combiné avec une base de données plus grande qui était 600 fois plus grande que le plus grand ensemble de données précédent. Cette nouvelle base de données permet à l'algorithme de surpasser les cardiologues sur la précision et le rappel des mesures F1, la plus grande erreur étant de distinguer deux rythmes qui semblent très similaires mais qui n'ont aucune différence de traitement, et même de trouver une erreur de coût que les experts ont manquée.

  • 00:15:00 Dans cette section, le conférencier discute de l'utilisation de l'automatisation dans les soins de santé et de la manière dont l'apprentissage en profondeur et l'apprentissage automatique permettent une surveillance continue des patients, une meilleure compréhension scientifique des facteurs de risque et des percées médicales potentielles. Un exemple est la détection d'arythmies cardiaques graves, que les experts auraient peut-être mal diagnostiquées, mais qui pourraient être détectées par une machine. Le conférencier aborde également la détection de la pneumonie avec des radiographies pulmonaires, soulignant l'utilité de la détection automatique, en particulier chez les enfants où la pneumonie a un fardeau global élevé.

  • 00:20:00 Dans cette section, l'orateur discute de l'utilisation d'un réseau neuronal convolutif 2D qui a été pré-formé sur ImageNet pour prendre une image d'entrée de la radiographie pulmonaire d'un patient et produire une étiquette binaire indiquant la présence ou l'absence de pneumonie. L'ensemble de données utilisé était un grand ensemble de données de 100 000 radiographies pulmonaires publiées par le NIH, chaque radiographie étant annotée avec jusqu'à 14 pathologies différentes. Une évaluation a été effectuée pour déterminer si le modèle était meilleur que les radiologues ou à égalité avec eux en évaluant s'ils étaient d'accord avec d'autres experts de la même manière. Le score F1 a été calculé une fois pour chaque expert et le modèle, et il a été démontré que le modèle était plus performant que le radiologue moyen dans cette tâche. Les résultats étaient également meilleurs que l'état de l'art précédent sur les 14 pathologies.

  • 00:25:00 Dans cette section, l'orateur discute des défis du diagnostic des patients sans accès à leurs antécédents cliniques et de la manière dont les algorithmes d'apprentissage en profondeur peuvent être formés sur des rapports de radiologie qui ont accès à plus d'informations. L'objectif est d'identifier les pathologies potentielles à partir d'un ensemble de symptômes observés sur la radiographie pulmonaire d'un nouveau patient. L'interprétation du modèle est essentielle pour informer les cliniciens sur le processus de prise de décision de l'algorithme, et ils utilisent des cartes d'activation de classe pour générer des cartes thermiques qui mettent en évidence les zones d'une image présentant des pathologies. L'approche peut améliorer la prestation des soins de santé en donnant la priorité au flux de travail, en particulier dans le monde développé, et accroître l'expertise en imagerie médicale à l'échelle mondiale, où les deux tiers de la population n'ont pas accès aux diagnostics.

  • 00:30:00 Dans cette section, le conférencier présente un prototype d'application qui permet aux utilisateurs de télécharger des images radiographiques, que le modèle diagnostique ensuite. Le modèle est formé sur 14 pathologies et est capable d'identifier la cardiomégalie, l'élargissement du cœur. Le conférencier est enthousiasmé par la capacité de l'algorithme à se généraliser à des populations autres que celles sur lesquelles il a été formé, comme en témoigne le diagnostic réussi d'une image téléchargée sur Internet. De plus, le conférencier discute d'une étude de cas sur les images IRM du genou, où l'objectif était d'identifier les anomalies du genou. Le problème 3D permet de visualiser le genou sous différents angles, ce qui est essentiel pour les radiologues dans l'établissement de diagnostics.

  • 00:35:00 Dans cette section, l'orateur discute de l'utilisation de réseaux de neurones convolutifs pour identifier les anomalies des examens IRM du genou, en identifiant spécifiquement la probabilité d'une déchirure du LCA et d'une déchirure méniscale. L'orateur a formé neuf réseaux convolutifs pour chaque paire vue-pathologie, puis les a combinés à l'aide de la régression logistique. Ils ont testé le modèle sur 120 examens et ont constaté qu'il réussissait bien à identifier les anomalies. L'orateur discute également de l'importance de pouvoir généraliser les modèles pour travailler avec des ensembles de données provenant de différentes institutions et de différents pays. La question des modèles collaborant avec des experts de différents domaines, tels que les radiologues, pour améliorer les performances est également évoquée.

  • 00:40:00 Dans cette section de la conférence, l'orateur discute d'une étude sur l'efficacité des radiologues utilisant un modèle d'IA pour détecter les déchirures du LCA. L'étude a révélé que l'utilisation du modèle aux côtés des radiologues augmentait les performances et la spécificité de la détection des déchirures du LCA. Cependant, le problème du biais d'automatisation se pose et l'orateur aborde des solutions potentielles, telles que la réussite d'examens avec des réponses inversées pour alerter les radiologues s'ils s'appuient trop sur le modèle. L'orateur partage également deux opportunités pour les étudiants de s'impliquer dans l'IA et les soins de santé, notamment en travaillant avec l'ensemble de données MURA et en participant au camp d'entraînement AI for Healthcare.

  • 00:45:00 Dans cette section, le conférencier discute des applications et de la rémunération potentielle des experts médicaux dans le développement et la mise en œuvre de modèles d'IA dans les soins de santé. Bien qu'il y ait beaucoup de travail en cours sur le sujet, il n'y a pas de solution simple aux préoccupations éthiques entourant l'impact potentiel sur les moyens de subsistance des professionnels de la santé. Le conférencier aborde également une question sur les limites des modèles d'IA dans la détection de certaines pathologies et l'importance de transmettre ces limites aux utilisateurs. La section se termine par une étude de cas sur l'utilisation de l'apprentissage en profondeur pour segmenter des images microscopiques de cellules cutanées afin de détecter des maladies.

  • 00:50:00 Dans cette section, l'orateur discute de la segmentation des images médicales et de la division de l'ensemble de données en ensembles d'entraînement, de développement et de test. Les images sont binaires segmentées en pixels qui correspondent à une cellule ou à aucune cellule. Le public est invité à discuter et à fournir des stratégies pour diviser les données de trois microscopes différents - A, B et C, les données étant divisées en 50 % pour A, 25 % pour B et 25 % pour C. Le consensus est de divisez les données en 95-5 pour l'entraînement et le test de développement, avec des images C dans les ensembles de développement et de test, et des images C également incluses dans 90 % des données d'entraînement.

  • 00:55:00 Dans cette section, l'orateur aborde les problèmes liés à la distribution et à l'augmentation des données dans l'IA des soins de santé. Il souligne l'importance de s'assurer que la distribution des données de formation correspond à celle de l'application réelle et suggère des techniques d'augmentation telles que la rotation, le zoom, le flou et la symétrie. L'orateur met également en garde contre les cas où l'augmentation des données peut nuire plutôt qu'aider le modèle, comme dans la reconnaissance de caractères où les retournements de symétrie peuvent conduire à un mauvais étiquetage.

  • 01:00:00 Dans cette section, l'importance de l'augmentation des données est abordée avec l'exemple d'une entreprise travaillant sur les voitures autonomes et les assistants virtuels dans les voitures. Ils ont remarqué que le système de reconnaissance vocale ne fonctionnait pas bien lorsque la voiture reculait et ont découvert que les gens parlaient à l'assistant virtuel avec leur main sur le siège du passager en regardant en arrière. Grâce à l'augmentation intelligente des données, ils ont pu modifier la voix des données pour donner l'impression qu'elles étaient utilisées par quelqu'un qui parlait à l'arrière de la voiture, ce qui a résolu le problème. De plus, des sujets tels que les hyperparamètres impliqués dans l'apprentissage par transfert sont abordés.

  • 01:05:00 Dans cette section, le conférencier aborde les hyperparamètres impliqués dans l'apprentissage par transfert pour les applications de santé utilisant l'apprentissage en profondeur. Ils se concentrent sur des hyperparamètres tels que le nombre de couches, la taille des couches ajoutées et la décision de geler les couches pendant la formation. L'orateur explique comment choisir les couches à conserver à partir d'un réseau pré-formé et le nombre de couches à ajouter pour créer un nouveau réseau pour la segmentation. De plus, ils expliquent qu'il est important de décider de la quantité de couches pré-entraînées à geler pendant le réentraînement pour un petit jeu de données.

  • 01:10:00 Dans cette section, l'instructeur montre une image d'une sortie produite par un algorithme, qui ne correspond pas à ce que le médecin souhaite. L'image a des cellules qui ne peuvent pas être séparées, ce qui rend son interprétation difficile pour le médecin. La solution à ce problème consiste à ajouter des limites à l'ensemble de données étiqueté. Les jeux de données peuvent être réétiquetés, en tenant compte de la présence de limites. Lorsque le modèle ne fonctionne toujours pas bien, la pondération de la fonction de perte est ajustée, ce qui signifie que le modèle est formé pour se concentrer sur les limites. Des coefficients peuvent être attribués à chaque valeur de la fonction de perte pour indiquer au modèle comment procéder s'il manque des limites. Le réétiquetage du jeu de données peut être effectué manuellement là où vous dessinez des lignes, et la zone à l'intérieur des lignes sera traitée comme la cellule, et la limite sera traitée comme la ligne.

  • 01:15:00 Dans cette section, la conférence traite des avantages et des différences entre la détection d'objets et la segmentation dans l'analyse d'images médicales. Alors que la détection d'objets peut mieux fonctionner pour une analyse plus rapide, la segmentation est plus précise dans la séparation des cellules. La conférence passe ensuite à la discussion de la classification binaire des images médicales qui sont étiquetées avec zéro ou un, indiquant la présence ou l'absence de cellules cancéreuses. L'orateur recommande d'utiliser des valeurs de gradient pour interpréter la prédiction du réseau après avoir atteint un taux de précision de 99 %. On se demande alors s'il est possible pour un réseau d'atteindre une plus grande précision qu'un médecin, auquel la réponse est oui en raison des différences d'expérience et de perception.

  • 01:20:00 Dans cette section, les instructeurs discutent de l'erreur de base et des performances au niveau humain dans les modèles d'IA de soins de santé. Ils mentionnent que l'exactitude d'un groupe de médecins qui ont étiqueté l'ensemble de données doit être prise en compte, car elle pourrait dépasser celle d'un seul médecin. Le pipeline pour la conduite autonome est également discuté, et il est suggéré que l'isolement de chaque composant et la vérification de leurs performances peuvent aider à identifier où se situe le problème. En outre, les avantages d'une approche en pipeline sont discutés, notamment le fait que la collecte de données peut être plus facile à obtenir pour chaque étape individuelle que pour l'ensemble du système de bout en bout.

  • 01:25:00 Dans cette section, l'instructeur discute de l'importance des données dans l'apprentissage en profondeur et comment le choix du problème sur lequel travailler peut dépendre des données facilement accessibles. Il introduit ensuite le sujet des réseaux de neurones convolutifs et mentionne que les prochains modules se concentreront fortement sur l'analyse d'images. L'instructeur rappelle aux étudiants le quiz à venir, les devoirs de programmation et la mi-session, qui couvriront tout jusqu'aux vidéos de la semaine en cours.
 

Cours 6 - Stratégie de projet d'apprentissage en profondeur




Stanford CS230 : Apprentissage en profondeur | Automne 2018 | Cours 6 - Stratégie de projet d'apprentissage en profondeur

Dans cette vidéo, le conférencier discute de l'importance de choisir une bonne métrique pour mesurer le succès d'un projet d'apprentissage automatique. La métrique choisie doit refléter le problème à résoudre et le résultat souhaité. L'orateur fournit des exemples d'exactitude, de précision, de rappel et de score F1 et explique quand chacun doit être utilisé. Ils discutent également de la différence entre l'ensemble de validation et l'ensemble de test et expliquent pourquoi il est important d'utiliser les deux. De plus, l'orateur souligne la nécessité d'un modèle de base comme point de comparaison pour mesurer l'efficacité de l'algorithme d'apprentissage. Enfin, l'orateur répond à quelques questions de l'auditoire sur le choix du seuil pour la classification binaire et sur la manière de gérer le déséquilibre des classes.

  • 00:00:00 Dans cette section, l'instructeur présente un scénario de projet de construction d'un système de reconnaissance vocale pour détecter une phrase spécifique, "Robert allume", qui peut être utilisée pour allumer une lampe à l'aide de la commande vocale. Le but est de construire un algorithme d'apprentissage capable de reconnaître cette phrase et d'allumer la lampe lorsqu'elle est prononcée. L'instructeur insiste sur l'importance d'être stratégiquement sophistiqué pour décider quoi faire ensuite dans un projet d'apprentissage automatique pour le rendre plus efficace et le faire avancer rapidement. La conférence sera interactive et les étudiants sont encouragés à s'asseoir avec quelqu'un avec qui ils ne travaillent pas traditionnellement.

  • 00:05:00 Dans cette section, l'instructeur demande au public de s'imaginer en tant que PDG d'une startup chargé de créer un algorithme d'apprentissage pour détecter une phrase spécifique. Il souligne l'importance de lire la littérature existante avant de se lancer dans un nouveau projet et donne des conseils sur la façon de lire efficacement les articles de recherche. Il conseille au public de parcourir plusieurs articles à la surface avant de décider lequel lire plus en détail. Il avertit également que tous les documents n'ont pas de sens ou ne sont pas importants, et qu'il est donc essentiel de filtrer les informations non pertinentes.

  • 00:10:00 Dans cette section de la conférence, l'importance de parler à des experts et de contacter les auteurs d'articles est soulignée lorsque l'on essaie de comprendre un sujet particulier. L'orateur aborde également le processus de collecte des ensembles de données de formation, de développement et de test appropriés pour un projet d'apprentissage en profondeur. Ils suggèrent d'enregistrer les individus prononçant la phrase spécifique à détecter, telle que "Robert s'allume", et d'utiliser des techniques d'augmentation des données pour réduire la variance dans l'algorithme d'apprentissage. L'orateur souligne l'importance de valider le besoin d'augmentation des données avant d'y investir du temps et des efforts.

  • 00:15:00 Dans cette section, l'orateur discute d'un exemple de problème de devoir qui implique la création d'un système de détection de mots déclencheurs. Le système est conçu pour détecter quand quelqu'un prononce une phrase spécifique, telle que "Robert allume", puis déclencher une action, telle qu'allumer une lampe. Pour collecter les données nécessaires, le conférencier propose de collecter 100 clips audio de 10 secondes chacun, dont 25 pour l'ensemble de développement et 0 pour l'ensemble de test. Il explique que ce processus pourrait être fait rapidement, estimant qu'une personne pourrait être enregistrée toutes les minutes ou deux dans une zone animée telle que la cafétéria de Stanford.

  • 00:20:00 Dans cette section de la vidéo, le conférencier explique comment transformer un problème de détection audio en un problème de classification binaire pour l'apprentissage supervisé. Ils suggèrent de couper des clips audio de trois secondes d'un clip de dix secondes, avec des étiquettes cibles différentes pour chaque clip. Cette méthode peut produire des milliers d'exemples de formation. L'enseignant reconnaît qu'il existe d'autres méthodes pour traiter les données de séquence, mais c'est une façon de procéder. Ils répondent également aux questions du public sur les cibles clairsemées et le choix des clips de trois secondes. Enfin, ils discutent d'un scénario où la précision est élevée, mais l'algorithme ne détecte aucune instance de la phrase en question.

  • 00:25:00 Dans cette section, l'orateur discute d'un scénario où un algorithme d'apprentissage donne une précision de 95 % mais aucune détection. Ils suggèrent qu'une façon d'améliorer l'algorithme consiste à spécifier un ensemble de développement et à évaluer des métriques plus proches de l'objectif réel. Cela peut être fait en rééchantillonnant les ensembles de formation et de développement pour les rendre plus proportionnés en termes d'exemples positifs et négatifs ou en donnant plus de poids aux exemples positifs. Une autre approche pourrait être de changer les étiquettes cibles en plusieurs, ce qui peut être une méthode rapide et sale mais pas mathématiquement rigoureuse. L'orateur aborde également une question sur la façon de rééquilibrer les ensembles de données lors du déploiement et fait référence à la nécessité d'ajuster le biais qui peut être introduit.

  • 00:30:00 Dans cette section, l'orateur discute de la stratégie de construction d'algorithmes d'apprentissage et souligne qu'il peut ressembler plus à du débogage qu'à du développement. Le flux de travail implique généralement de résoudre un problème, puis d'en rencontrer un nouveau à résoudre. Par exemple, si l'algorithme est surajusté, une analyse des erreurs est nécessaire et d'autres peuvent être ajoutées pour équilibrer l'ensemble de données. Cependant, la manière simple de rééquilibrer peut entraîner le rejet de nombreux exemples négatifs, ce qui aurait pu être utile pour l'algorithme d'apprentissage. L'orateur a également mentionné les paramètres permettant de mesurer l'efficacité d'un système, tels que la probabilité de se réveiller ou d'allumer la lampe et le caractère aléatoire de celle-ci s'allumant d'elle-même.

  • 00:35:00 Dans cette section, l'orateur discute de l'augmentation des données pour l'audio et suggère trois façons possibles de collecter des données de bruit de fond pour rendre un système plus robuste. La première méthode consiste à collecter des échantillons audio de bruits de fond à l'intérieur des maisons des personnes avec leur permission d'être ajoutés aux clips audio pour simuler ce que cela donnerait dans la maison de l'utilisateur. La deuxième méthode consiste à télécharger des clips audio de 10 heures de pluie ou de voitures à partir de contenu sous licence Creative Commons en ligne, tandis que la troisième option consiste à utiliser Amazon Mechanical Turk pour amener des personnes du monde entier à fournir des échantillons audio.

  • 00:40:00 Dans cette section de la vidéo, l'orateur demande au public d'estimer combien de temps il faudrait pour collecter 10 heures de données audio à divers endroits autour de Stanford grâce à différents mécanismes. L'orateur suggère que la collecte de données en parallèle en ayant plusieurs amis avec des ordinateurs portables peut être effectuée rapidement, tandis que le téléchargement de clips en ligne peut être plus difficile car les clips peuvent tourner en boucle et ne pas contribuer ainsi à la diversité des données. Le conférencier souligne l'importance de passer par de tels exercices afin de réfléchir efficacement à des idées et de déterminer combien de temps et d'efforts ils nécessiteront.

  • 00:45:00 Dans cette section, l'instructeur explique l'importance d'être efficace et de faire des choix basés sur des idées de remue-méninges et des estimations de temps pour construire un système de détection de mots déclencheur décent. Le conseil donné est de construire rapidement quelque chose de "sale" et de développer plus tard des ensembles de données pour améliorer encore le système. L'instructeur souligne que la différence entre le succès et l'échec d'une entreprise se résume finalement à être efficace et à tirer le meilleur parti du laps de temps imparti. Enfin, l'instructeur encourage les étudiants à remplir un sondage anonyme pour aider à améliorer le cours .
 

Cours 7 - Interprétabilité du réseau de neurones




Stanford CS230 : Apprentissage en profondeur | Automne 2018 | Cours 7 - Interprétabilité du réseau de neurones

Dans cette conférence, le conférencier présente plusieurs méthodes d'interprétation et de visualisation des réseaux de neurones, telles que les cartes de saillance, la sensibilité à l'occlusion et les cartes d'activation de classe. Les cartes d'activation de classe sont utilisées pour interpréter les couches intermédiaires d'un réseau de neurones en cartographiant la sortie à l'espace d'entrée pour visualiser quelles parties de l'entrée étaient les plus discriminantes dans le processus de prise de décision. Le professeur discute également de la mise en commun des moyennes globales comme moyen de conserver les informations spatiales dans un réseau neuronal convolutif et de la déconvolution comme moyen de suréchantillonner la hauteur et la largeur des images pour des tâches telles que la segmentation d'images. De plus, la conférence explore l'hypothèse d'orthogonalité dans les filtres convolutionnels et comment la convolution sous-pixel peut être utilisée pour la reconstruction dans les applications de visualisation.

La conférence couvre diverses méthodes d'interprétation et de visualisation des réseaux de neurones, y compris la convolution sous-pixel, la déconvolution 2D, le suréchantillonnage, le dégroupage et l'utilisation d'outils tels que la boîte à outils DeepViz et l'algorithme Deep Dream. L'orateur explique comment la visualisation des filtres dans la première couche d'un réseau peut faciliter l'interprétation, mais à mesure que nous approfondissons, le réseau devient plus difficile à comprendre. En examinant les activations dans différentes couches, le conférencier montre comment certains neurones répondent à des caractéristiques spécifiques. Bien qu'il existe des limites à l'interprétation des réseaux de neurones, les techniques de visualisation peuvent fournir des informations et des applications potentielles telles que la segmentation, la reconstruction et la génération de réseaux contradictoires.

  • 00:00:00 Dans cette section, l'orateur introduit l'idée d'interpréter les réseaux de neurones, au lieu de simplement utiliser des essais et des erreurs pour les améliorer. Ils présentent ensuite trois méthodes d'interprétation des réseaux de neurones : les cartes de saillance, la sensibilité à l'occlusion et les cartes d'activation de classe. Ces méthodes aident à comprendre le processus de prise de décision du réseau en cartographiant l'espace d'entrée pour vérifier quelle partie de l'entrée était discriminante pour une certaine sortie. L'orateur poursuit ensuite en expliquant comment ils approfondiront encore les couches intermédiaires et comment ils utiliseront des méthodes telles que la visualisation du modèle de classe d'ascension de gradient, la recherche d'ensembles de données et la déconvolution pour mieux comprendre le réseau. L'objectif est de fournir une méthode scientifique pour améliorer les réseaux de neurones au lieu de simplement compter sur des essais et des erreurs.

  • 00:05:00 Dans cette section, le conférencier discute de l'interprétabilité des réseaux de neurones et de l'utilisation de cartes de saillance pour visualiser ce que le réseau regarde. Ils expliquent qu'au lieu d'utiliser les probabilités de la couche softmax, il est préférable d'utiliser les scores pré-softmax afin d'identifier quels pixels ont la plus grande influence sur la sortie générale du réseau. Le conférencier présente également la sensibilité à l'occlusion comme méthode de visualisation plus précise. Cela implique de placer un carré gris sur le chien dans l'image d'entrée et de le propager à travers le réseau plusieurs fois pour créer une carte de probabilité du chien de classe, où la confiance du réseau est indiquée par différentes couleurs. En déplaçant le carré gris, la carte montre quelles régions de l'image d'entrée sont les plus cruciales pour que le réseau la classe comme un chien.

  • 00:10:00 Dans cette section, le conférencier discute de trois méthodes différentes pour interpréter et comprendre les réseaux de neurones. La première méthode consiste à occulter des parties de l'image pour voir où le réseau regarde et sur quoi il se concentre. Le conférencier démontre cette méthode avec des images de chiens et de chaises, montrant comment la confiance du réseau change en fonction de la partie de l'image qui est occluse. La deuxième méthode est la sensibilité à l'occlusion, où la confiance du réseau augmente en fait lorsque certaines parties de l'image sont supprimées. La troisième méthode est les cartes d'activation de classe, qui démontrent la capacité d'un réseau à localiser des objets dans des images même lorsqu'ils sont formés uniquement sur des étiquettes au niveau de l'image. Le conférencier explique que cette capacité de localisation est cruciale pour des tâches comme la détection d'objets et est souvent développée grâce à une formation sur les tâches de classification.

  • 00:15:00 Dans cette section, l'instructeur montre comment utiliser la mise en commun de la moyenne globale au lieu d'aplatir plus entièrement connectée dans un réseau de neurones à convolution (CNN) pour conserver les informations spatiales, ce qui est utile pour visualiser ce que le réseau regarde. Après avoir obtenu un volume avec six cartes d'entités, une mise en commun de la moyenne globale est appliquée pour le convertir en un vecteur de six valeurs, qui sont ensuite introduites dans une couche entièrement connectée avec activation softmax pour obtenir des probabilités. En examinant les poids de la couche entièrement connectée, il est possible de déterminer la contribution de chaque carte d'entités à la sortie, et une somme pondérée de toutes ces cartes d'entités peut révéler ce que le réseau regarde dans l'image d'entrée.

  • 00:20:00 Dans cette section, l'orateur discute des cartes d'activation de classe et de la manière dont elles dépendent de la classe analysée dans le réseau de neurones. En examinant les bords entre la première activation et la couche précédente, l'orateur explique que les poids seront différents selon la classe analysée. En additionnant toutes les cartes de caractéristiques, différents résultats sont obtenus. L'orateur explique ensuite comment les cartes d'activation de classe peuvent être visualisées avec un réseau en modifiant les dernières couches, et comment cela nécessite un réglage fin. L'orateur explique également comment le processus de mise en commun de la moyenne globale, qui implique une normalisation de 116, ne tue pas les informations spatiales car les cartes des caractéristiques sont connues et peuvent donc être cartographiées exactement.

  • 00:25:00 Dans cette section, l'orateur explique comment les cartes d'activation de classe fonctionnent pour interpréter les couches intermédiaires d'un réseau de neurones. Cette méthode fait correspondre la sortie à l'espace d'entrée, permettant aux utilisateurs de visualiser quelles parties de l'entrée étaient les plus discriminantes dans le processus de prise de décision. Grâce à l'ascension du gradient, un processus itératif qui maximise le score de la sortie souhaitée, l'orateur montre comment utiliser cette méthode pour trouver l'image qui représente ce à quoi le réseau pense qu'un chien ressemble. L'orateur dit que si cette méthode est un moyen efficace d'interpréter les données d'image, d'autres méthodes comme les modèles d'attention sont utilisées pour interpréter les données non-image.

  • 00:30:00 Dans cette section de la conférence, le professeur discute de différentes techniques pour visualiser ce que voit un réseau de neurones. Il montre des exemples de la façon dont le fait de pousser certaines valeurs de pixels peut conduire à un score plus élevé pour une classe particulière, et comment la régularisation, comme le flou L2 ou gaussien, peut améliorer la qualité des visualisations. Le professeur introduit également l'idée de la visualisation du modèle de classe, où une fonction objective est utilisée pour maximiser le score d'une classe particulière, et comment elle peut être utilisée pour valider que le réseau regarde la bonne chose. De plus, le professeur explique comment la recherche d'ensembles de données peut être utilisée pour comprendre ce à quoi pense une activation particulière au milieu du réseau, en sélectionnant une carte de caractéristiques et en exécutant beaucoup de données sur le réseau pour voir quels points de données ont le activation maximale de cette carte de fonctionnalités.

  • 00:35:00 Dans cette section, le conférencier explique comment différentes cartes de caractéristiques dans un réseau neuronal convolutif sont activées par différentes parties d'une image. Le conférencier présente des exemples d'une carte de caractéristiques qui détecte les chemises et une autre qui détecte les bords. Le conférencier explique ensuite que les activations d'une image dans le réseau ne voient qu'une sous-partie de l'image d'entrée, et à mesure que le réseau s'approfondit, l'activation de chaque couche regarde une plus grande partie de l'image. Le conférencier explique également comment les réseaux de déconvolution peuvent être utilisés pour produire des images basées sur une entrée de code, et comment cette méthode peut être plus pratique que l'utilisation d'une couche entièrement connectée avec de nombreux neurones.

  • 00:40:00 Dans cette section, le conférencier explique l'utilisation de la déconvolution dans les réseaux de neurones. La déconvolution peut suréchantillonner la hauteur et la largeur des images, ce qui la rend utile pour des tâches telles que la segmentation d'images. L'orateur discute également de la méthode d'ascension du gradient et de la manière de reconstruire les activations dans l'espace d'entrée par dégroupage, non-ReLU et déconvolution. L'orateur définit ensuite la déconvolution comme une opération mathématique vectorielle matricielle et donne un exemple de convolution 1D avec remplissage.

  • 00:45:00 Dans cette partie du cours, le professeur discute de l'opération mathématique entre une matrice et un vecteur. Il donne un exemple d'une couche convolutive avec un filtre qui a une taille de quatre et une foulée de deux. La taille de sortie est calculée à l'aide d'une formule, qui est nx-f+2p/stride. Il explique ensuite comment définir cette convolution comme une opération mathématique entre une matrice et un vecteur, en écrivant un système d'équations et en trouvant la forme de la matrice. La matrice résultante est remplie selon le système d'équations et le vecteur d'activations est multiplié par la matrice.

  • 00:50:00 Dans cette section du cours, l'instructeur explique comment l'opération de convolution peut être représentée comme une simple matrice multipliée par un vecteur. La matrice se compose de poids et leur placement dans la matrice est dicté par la foulée et la taille de la fenêtre. En définissant la convolution comme une opération matricielle, nous pouvons ensuite inverser la matrice pour effectuer une déconvolution et reconstruire l'entrée d'origine. Cependant, cette approche suppose que la matrice de poids est inversible et orthogonale, ce qui n'est pas toujours vrai en pratique. L'hypothèse d'orthogonalité est utile dans les cas où le filtre convolutionnel est un détecteur de bord.

  • 00:55:00 Dans cette section du cours, le professeur présente une méthode pour générer X à partir de Y en supposant que la reconstruction sera utile même si elle n'est pas toujours vraie. Ils démontrent le processus à l'aide d'illustrations et d'un code Menti, montrant comment une convolution sous-pixel peut être utilisée pour effectuer la même opération avec une frappe allant de gauche à droite au lieu de haut en bas. La technique consiste à recadrer et à remplir l'entrée pour obtenir la sortie souhaitée. Le professeur note que ce type de convolution est souvent utilisé pour la reconstruction dans les applications de visualisation.

  • 01:00:00 Dans cette section, le conférencier explique le concept de convolution sous-pixel, qui consiste à insérer des zéros dans un vecteur Y pour permettre un calcul plus efficace de la déconvolution. En inversant les poids, en divisant la foulée par deux et en insérant des zéros, le processus de déconvolution devient essentiellement équivalent à la convolution. Ce processus peut être étendu à la convolution bidimensionnelle et permet globalement une meilleure compréhension de l'opération mathématique entre une matrice et un vecteur de convolution.

  • 01:05:00 Dans cette section, l'orateur se penche sur l'interprétation de la déconvolution 2D. L'intention derrière la déconvolution est d'obtenir une entrée cinq par cinq, qui est le x reconstruit. Pour ce faire, le locuteur démontre qu'un filtre de taille deux par deux est appliqué aux entrées se propageant vers l'avant avec une foulée égale à deux dans une couche conv. Ensuite, la technique de déconvolution est appliquée pour obtenir l'image reconstruite. La conférence explique que le processus de déconvolution consiste à prendre le filtre et à multiplier tous les poids par y11, en les déplaçant d'un pas de un et en répétant le même processus pour toutes les entrées. L'orateur conclut en notant que le processus est quelque peu compliqué; cependant, il n'y a pas lieu de s'inquiéter si le concept de déconvolution n'est pas bien compris.

  • 01:10:00 Dans cette partie du cours, le professeur explique le processus de suréchantillonnage d'une image de manière visuelle. Il explique que pour reconstruire une image, les poids du ConvNet doivent être utilisés si possible. Il montre ensuite une représentation visuelle du processus de suréchantillonnage en commençant par une image 4x4, en insérant des zéros et en la complétant en une image 9x9 avant d'utiliser un filtre pour convoluer sur l'image et effectuer une convolution au fur et à mesure. Il explique également brièvement comment dégrouper et unReLU, indiquant que le pool max n'est pas mathématiquement inversible, mais que le processus peut être approximé via des commutateurs de propagation et de mise en cache pour les valeurs maximales.

  • 01:15:00 Dans cette section, le concept de dégroupage et de maxpooling dans les réseaux de neurones est expliqué, ainsi que l'utilisation de commutateurs et de filtres pour reconstruire l'entrée d'origine. La fonction d'activation ReLU est également discutée et le concept de ReLU vers l'arrière est introduit. L'utilisation de ReLU DeconvNet est expliquée comme une méthode de reconstruction impartiale qui ne dépend pas de la propagation vers l'avant. L'approche est décrite comme un hack et n'est pas toujours scientifiquement viable, mais elle est utile pour visualiser et interpréter le réseau de neurones.

  • 01:20:00 Dans cette partie de la conférence, l'intervenant explique comment visualiser et comprendre ce qui se passe à l'intérieur des réseaux de neurones en découvrant à quoi correspond chaque activation. La technique de visualisation consiste à choisir une activation, à trouver l'activation maximale, à mettre toutes les autres à zéro, puis à reconstruire l'image. L'orateur explique comment les filtres de la première couche du réseau peuvent être interprétables en raison du fait que les poids multiplient directement les pixels. Cependant, à mesure que nous progressons dans le réseau, les filtres deviennent plus difficiles à interpréter. L'orateur poursuit également en expliquant comment plus nous approfondissons, plus nous voyons de complexité, et fournit des exemples de différents filtres et des types d'images qui les activent.

  • 01:25:00 Dans cette section de la conférence, l'orateur démontre l'utilisation de la boîte à outils DeepViz pour étudier l'interprétabilité des réseaux de neurones. En examinant les activations des neurones dans différentes couches d'un réseau convolutif, le conférencier montre comment certains neurones se déclenchent en réponse à des caractéristiques spécifiques, telles que les visages ou les rides. L'orateur mentionne également l'utilisation facultative de la technique Deep Dream pour générer des images en définissant le gradient pour qu'il soit égal aux activations d'une couche spécifique, permettant une exploration plus approfondie du comportement du réseau neuronal.

  • 01:30:00 Dans cette section, le conférencier démontre l'algorithme Deep Dream, qui génère des images en rétropropageant les activations d'un réseau de neurones à la couche d'entrée et en mettant à jour les pixels. Le résultat est une variété d'images surréalistes avec des animaux et d'autres objets transformés ensemble. Le conférencier discute également des limites de l'interprétation des réseaux de neurones et de la manière dont les techniques de visualisation, telles que les cartes d'activation de classe et les déconvolutions, peuvent être utilisées pour comprendre comment le réseau voit le monde et détecte les neurones morts. De plus, le conférencier met en évidence les applications potentielles de ces visualisations, notamment la segmentation, la reconstruction et la génération de réseaux contradictoires.
 

Cours 8 - Conseils de carrière / Lecture d'articles de recherche




Stanford CS230 : Apprentissage en profondeur | Automne 2018 | Cours 8 - Conseils de carrière / Lecture d'articles de recherche

Dans cette conférence, le professeur Andrew Ng donne des conseils sur la façon de lire efficacement les articles de recherche et de suivre l'évolution rapide du domaine de l'apprentissage en profondeur. Il souligne l'importance de résumer le travail dans les sections d'introduction et de conclusion, ainsi que de prêter attention aux figures et aux tableaux. Ng partage également des conseils de carrière, recommandant aux candidats d'avoir des connaissances à la fois larges et approfondies dans plusieurs domaines de l'IA et de l'apprentissage automatique, et de se concentrer sur le travail avec des individus plutôt qu'avec de grandes marques afin de maximiser les opportunités de croissance. Il suggère la cohérence dans la lecture des articles et le développement de compétences horizontales et verticales à travers des cours et des projets pour une base solide en apprentissage automatique.

  • 00:00:00 Dans cette section de la conférence, l'orateur partage des conseils sur la façon de lire efficacement les articles de recherche, en particulier dans le domaine en évolution rapide de l'apprentissage en profondeur. Il suggère de compiler une liste d'articles et de ressources, y compris des articles de recherche publiés sur arXiv, des publications moyennes et des publications occasionnelles sur GitHub. Il recommande ensuite de parcourir les documents et de comprendre rapidement chacun d'eux, en sautant les documents qui n'ont pas de sens ou qui ne sont pas utiles. Il suggère de passer plus de temps sur des articles fondateurs et d'utiliser les citations pour trouver des articles supplémentaires sur le sujet.

  • 00:05:00 Dans cette section, le conférencier fournit des lignes directrices pour la lecture d'articles de recherche afin d'accroître sa compréhension d'un sujet particulier. Il suggère que la lecture de 15 à 20 articles donnera une compréhension de base d'un domaine, tandis que la lecture de 50 à 100 articles conduira à une très bonne compréhension. De plus, il fournit des conseils sur la façon de lire un article, suggérant que plusieurs passages doivent être effectués sur l'article, en mettant l'accent sur la lecture du titre, du résumé et des figures lors du premier passage. Le conférencier souligne l'importance de résumer le travail dans les sections d'introduction et de conclusion, car c'est souvent là que les auteurs présentent clairement l'importance de leur travail.

  • 00:10:00 Dans cette section de la conférence, l'orateur donne des conseils sur la façon de lire efficacement les articles de recherche. Il suggère de commencer par le résumé, l'introduction et la conclusion de l'article pour bien comprendre de quoi il s'agit. Il conseille également de survoler la section de travail connexe, qui peut souvent être difficile à comprendre si vous n'êtes pas déjà familier avec la littérature. L'orateur recommande de lire l'intégralité de l'article, mais de sauter les parties qui n'ont pas de sens, car il n'est pas rare que les articles contiennent des sections sans importance. Enfin, il propose une série de questions auxquelles les lecteurs doivent essayer de répondre afin de consolider leur compréhension de l'article, y compris ce que les auteurs essayaient d'accomplir et quels éléments clés peuvent être appliqués.

  • 00:15:00 Dans cette section du cours, le professeur encourage les étudiants à lire des articles de recherche et recommande de commencer par le texte anglais avant de se plonger dans les mathématiques. Il attribue un article intitulé "Densely Connected Convolutional Neural Networks" et suggère aux étudiants de prendre sept minutes pour le lire avant d'en discuter avec leurs camarades de classe. Il note également qu'avec la pratique, les étudiants peuvent accélérer la lecture et la compréhension des documents de recherche, y compris la compréhension des formats courants utilisés pour décrire l'architecture du réseau. Le professeur souligne qu'on peut apprendre plus rapidement en se concentrant sur les principaux concepts présentés dans les figures et les tableaux de l'article.

  • 00:20:00 Dans cette section, le professeur Andrew Ng donne des conseils sur la façon de suivre et de comprendre la recherche en apprentissage profond. Il suggère de faire des recherches sur le Web et de rechercher des articles de blog sur des articles importants, de vérifier Twitter et le ML Subreddit, et de suivre des chercheurs qui partagent fréquemment des articles en ligne. Ng recommande également de former une communauté avec des collègues ou des camarades de classe pour partager des articles intéressants et de re-dériver les mathématiques à partir de notes détaillées afin de comprendre en profondeur l'algorithme. Ng souligne que le temps passé par article peut varier en fonction du niveau d'expérience et de la difficulté, mais passer plus de temps peut conduire à une compréhension plus riche des concepts d'apprentissage en profondeur.

  • 00:25:00 Dans cette section, l'instructeur conseille aux étudiants de re-dériver les algorithmes d'apprentissage automatique à partir de zéro pour assurer une compréhension approfondie, car cela permet de généraliser et de dériver de nouveaux algorithmes. Il recommande également la répétition espacée plutôt que le bachotage en matière d'apprentissage, et encourage les élèves à former des groupes de lecture et à collaborer avec leurs pairs pour continuer à apprendre et à naviguer dans une carrière dans l'apprentissage automatique. Il met l'accent sur l'apprentissage constant plutôt que sur une activité intense et donne des conseils sur la façon d'aborder la navigation de carrière.

  • 00:30:00 Dans cette section de la conférence, l'orateur explique comment obtenir un emploi ou rejoindre un programme de doctorat dans le domaine de l'apprentissage automatique et souligne l'importance de faire un travail important. Les recruteurs recherchent des compétences techniques, des capacités de codage et une expérience de travail significative dans l'apprentissage automatique. La capacité de continuer à acquérir de nouvelles compétences et de se tenir au courant de l'évolution rapide du domaine est également très appréciée. Les ingénieurs en IA et en apprentissage automatique qui réussissent sont ceux qui ont découvert différents domaines de l'apprentissage automatique et ont travaillé dans ces domaines, ce qui leur a permis de bien comprendre comment appliquer les algorithmes d'apprentissage automatique dans divers contextes.

  • 00:35:00 Dans cette section, le conférencier discute des compétences en «T» qui sont souhaitables chez les candidats à un emploi, ce qui signifie avoir une large compréhension de plusieurs domaines de l'IA et de l'apprentissage automatique, tout en ayant une compréhension approfondie d'au moins un domaine spécifique. zone. Il souligne l'importance d'avoir une expérience pratique, comme travailler sur des projets significatifs, contribuer à l'open source ou faire des recherches pour convaincre les recruteurs des capacités du candidat. Le conférencier met en garde contre le fait de suivre trop de cours sans acquérir une expérience pratique, d'essayer d'aller trop loin trop rapidement ou de faire trop de petits projets avec peu de profondeur.

  • 00:40:00 Dans cette section de la conférence, le professeur Ng donne des conseils sur la façon de construire une base solide dans l'apprentissage automatique en recommandant de construire des pièces horizontales et verticales. Il note que la réalisation de 10 petits projets peut ne pas impressionner autant les recruteurs qu'un ou deux grands projets. Pour construire la pièce horizontale, qui consiste en des compétences fondamentales en IA et en apprentissage automatique, il recommande de suivre des cours, de lire des articles de recherche et de rejoindre une communauté. Pour construire la pièce verticale, qui implique de faire des projets plus pertinents et plus profonds, Ng conseille de travailler sur des choses qui sont pertinentes pour l'apprentissage automatique ou l'IA pour aider à développer une carrière dans ces domaines. Il poursuit en soulignant l'importance de s'amuser et de faire des pauses, car il n'y a souvent pas de récompense à court terme pour un travail d'apprentissage en profondeur en dehors de la satisfaction personnelle.

  • 00:45:00 Dans cette section, le conférencier explique à quel point la cohérence est essentielle pour s'améliorer dans le domaine de l'apprentissage en profondeur. La lecture régulière de deux articles par semaine pendant un an conduira à avoir lu 100 articles et contribuera à son amélioration dans le domaine. De plus, des personnes et des projets formidables sont les plus grands prédicteurs de succès, et le fait d'avoir des amis proches qui travaillent dur, lisent beaucoup d'articles et se soucient de leur travail peut inciter quelqu'un à faire de même. Dans le choix d'un emploi, il est conseillé de se concentrer sur l'équipe et d'interagir avec un groupe de 10 à 30 personnes qui peuvent construire sa carrière et monter en compétences.

  • 00:50:00 Dans cette section, l'orateur fournit des conseils de carrière aux passionnés d'apprentissage en profondeur, les exhortant à se concentrer sur les individus d'une entreprise plutôt que sur sa marque. L'orateur souligne que son manager et le groupe central avec lequel il interagit les influenceront le plus, compte tenu de leur niveau de travail acharné et de leur volonté d'enseigner, rendant l'évaluation personnelle et les relations avec les individus plus importantes que la marque de l'entreprise. Des exemples de scénarios donnés, tels qu'une entreprise géante envoyant des offres d'emploi à une petite équipe d'IA, sont évalués, l'accent étant mis sur les individus et leur influence sur leur croissance. Le mode d'échec d'ignorer les individus en faveur de l'image de marque de l'entreprise est mis en évidence avec un exemple personnel d'un étudiant dont la carrière a atteint un plateau après avoir accepté une offre d'emploi de paiement back-end basée sur Java d'une entreprise bien connue, plutôt que de se concentrer sur le travail avec des personnes spécifiques en petite équipe.

  • 00:55:00 Dans cette section, Andrew Ng recommande la prudence lors de l'examen de programmes de rotation qui semblent bons en théorie mais qui peuvent ne pas fournir une direction claire ou une opportunité de croissance au sein d'une entreprise. Il suggère de rechercher des opportunités de travailler avec des équipes plus petites et moins connues qui peuvent effectuer un travail important dans l'apprentissage automatique, plutôt que de courir après de grandes marques. Il souligne l'importance de donner la priorité aux expériences d'apprentissage et de faire un travail percutant plutôt que de se concentrer uniquement sur les marques prestigieuses de l'industrie.

  • 01:00:00 Dans cette section de la vidéo, le conférencier donne des conseils de carrière à ceux qui en sont au début de leur carrière. Rejoindre une équipe avec un grand nombre de coéquipiers et faire un travail significatif qui aide les autres est recommandé. Cependant, il conseille de ne pas travailler pour des entreprises qui fabriquent des produits nocifs comme les cigarettes. Il croit qu'il y a beaucoup de travail important à faire dans diverses industries et que le monde a besoin de gens pour travailler sur différentes choses. Il suggère que la prochaine vague d'apprentissage automatique n'est pas seulement destinée aux entreprises technologiques, mais aussi à toutes les industries traditionnelles qui n'ont pas mis en œuvre de technologie.
 

Cours 9 - Apprentissage par renforcement en profondeur




Stanford CS230 : Apprentissage en profondeur | Automne 2018 | Cours 9 - Apprentissage par renforcement en profondeur

La conférence présente l'apprentissage par renforcement profond, qui combine l'apprentissage en profondeur et l'apprentissage par renforcement. L'apprentissage par renforcement est utilisé pour prendre de bonnes séquences de décisions dans des situations avec des étiquettes retardées, et il est appliqué dans différents domaines tels que la robotique, les jeux et la publicité. L'apprentissage par renforcement profond remplace la table Q par une fonction Q qui est un réseau de neurones. Le conférencier discute des défis de l'application de l'apprentissage par renforcement profond mais décrit une technique pour créer une valeur cible pour les scores Q basée sur l'équation de Bellman pour former le réseau. La conférence aborde également l'importance de la relecture d'expérience dans la formation à l'apprentissage par renforcement profond et le compromis entre l'exploitation et l'exploration dans les algorithmes RL. L'application pratique de l'apprentissage par renforcement profond au jeu Breakout est également abordée.

La conférence aborde divers sujets liés à l'apprentissage par renforcement profond (DRL). Le compromis exploration-exploitation dans DRL est discuté, et une solution utilisant un hyper-paramètre est proposée qui décide de la probabilité d'exploration. L'importance de la connaissance humaine dans le DRL et comment elle peut augmenter les processus décisionnels algorithmiques est explorée. La conférence couvre également les gradients politiques, les différentes méthodes pour leur mise en œuvre et la prévention du surajustement. De plus, les défis dans les environnements de récompense clairsemés sont mis en évidence, et une solution d'un article récent intitulé "Unifying the Count-based Metas for Exploration" est brièvement discutée. Enfin, la conférence mentionne brièvement les articles YOLO et YOLO v2 de Redmon et al. concernant la détection d'objets.

  • 00:00:00 Dans cette section, l'orateur introduit l'idée de l'apprentissage par renforcement profond qui est la combinaison de l'apprentissage profond et d'un autre domaine de l'IA qui est l'apprentissage par renforcement. L'orateur explique que les réseaux de neurones profonds sont excellents pour l'approximation de fonctions et peuvent être appliqués à de nombreux domaines différents qui nécessitent des approximateurs de fonctions, et l'apprentissage par renforcement est l'un de ces exemples. L'orateur motive l'idée de l'apprentissage par renforcement avec des exemples tels que AlphaGo et l'article DeepMind de Google où ils ont utilisé l'apprentissage en profondeur pour former un agent à battre les performances au niveau humain dans divers jeux, principalement des jeux Atari. Le conférencier explique également que l'apprentissage par renforcement est important car il permet aux agents d'avoir une stratégie à long terme dans des jeux complexes comme le Go, qui est beaucoup plus grand qu'un échiquier.

  • 00:05:00 Dans cette section de la vidéo, le professeur met les étudiants au défi de réfléchir à la façon de construire un agent qui pourrait apprendre à gagner au jeu de Go en utilisant l'apprentissage en profondeur. Un ensemble de données possible serait un appariement entrée-sortie du plateau de jeu et une probabilité de victoire pour cette position, mais cela est difficile car il est difficile de représenter la probabilité de gagner dans une position de plateau donnée. Une autre option serait de regarder les mouvements des joueurs professionnels et de les enregistrer en tant qu'entrées et sorties de données, en créant un ensemble de données des mouvements que les joueurs professionnels ont effectués dans le passé. Cependant, cela est également difficile car il y a trop d'états dans le jeu pour une représentation précise, et la vérité de terrain est susceptible d'être fausse car différents joueurs professionnels ont des stratégies différentes. Il y a aussi un risque que l'algorithme ne se généralise pas car c'est une question de stratégie plutôt que de simple reconnaissance de formes.

  • 00:10:00 Dans cette section, le conférencier présente l'apprentissage par renforcement (RL), qui est une méthode pour apprendre automatiquement à prendre de bonnes séquences de décisions. RL est utilisé dans des situations où des étiquettes retardées, telles qu'une probabilité de victoire dans un jeu, sont présentes. RL est appliqué dans divers domaines tels que la robotique, les jeux et les publicités. Pour illustrer le fonctionnement de RL, le conférencier présente un jeu à cinq états et explique comment le rendement à long terme est défini dans ce jeu. Le but du jeu est de maximiser la récompense sur le long terme en se déplaçant dans les états et en prenant des décisions en fonction des récompenses disponibles.

  • 00:15:00 Dans cette section, le concept de rendement à long terme et l'utilisation du rendement actualisé pour Q-learning dans l'apprentissage par renforcement sont discutés. Le rendement actualisé tient compte de l'importance du temps dans la prise de décision et aide à atténuer le problème de convergence qui pourrait survenir avec un rendement non actualisé. Le but du Q-learning est d'apprendre l'action optimale dans chaque état en stockant une matrice de table Q qui représente le score de chaque action dans chaque état. En utilisant les scores de la table Q, un agent peut déterminer la valeur maximale et l'action correspondante dans un état donné pour prendre des décisions rapidement. Le processus de construction d'une table Q à travers un diagramme en arbre a également été expliqué.

  • 00:20:00 Dans cette section, le professeur explique l'algorithme itératif du Q-learning, en utilisant une matrice qui indique l'action à entreprendre dans chaque état. Pour calculer la récompense actualisée à long terme pour chaque état, ils utilisent l'équation de Bellman, qui consiste en la récompense immédiate plus la réduction multipliée par la récompense future maximale possible. L'algorithme itératif doit converger à un moment donné et la fonction Q doit suivre l'équation optimale de Bellman. Le professeur souligne l'importance de l'équation de Bellman dans la compréhension du Q-learning.

  • 00:25:00 Dans cette section, l'orateur parle du vocabulaire de l'apprentissage par renforcement qui comprend l'environnement, l'agent, l'état, l'action, la politique, la récompense, le rendement total, le facteur d'actualisation, la table Q et l'équation de Bellman. La table Q est la matrice d'entrées représentant la qualité de l'action A dans l'état S, et la politique est la fonction de prise de décision qui nous indique quelle est la meilleure stratégie à appliquer dans un état. Le nombre d'états peut être trop grand, rendant la solution Q-table peu pratique. L'apprentissage en profondeur entre dans l'apprentissage par renforcement en remplaçant la table Q par une fonction Q qui est un réseau de neurones. Cependant, les changements dynamiques des scores Q rendent la formation du réseau différente d'un cadre d'apprentissage supervisé classique.

  • 00:30:00 Dans cette section de la conférence, le professeur discute des défis qui se posent lors de l'application de l'apprentissage par renforcement profond, car il diffère considérablement de l'apprentissage supervisé. L'un des principaux problèmes est le manque d'étiquettes, car les Q-scores sont dynamiques et en constante évolution. Pour résoudre ce problème, le professeur décrit une technique de création d'une valeur cible ou d'une étiquette pour les scores Q basée sur l'équation de Bellman. En utilisant ce proxy comme étiquette, le réseau peut être formé pour se rapprocher de la fonction Q optimale grâce à des mises à jour itératives qui, espérons-le, conduiront à la convergence.

  • 00:35:00 Dans cette section, le concept de l'équation de Bellman et son utilisation dans la rétropropagation dans l'apprentissage par renforcement profond sont discutés. L'équation de Bellman est utilisée pour calculer des valeurs plus proches des valeurs optimales que l'on essaie d'atteindre en termes de récompenses. La fonction Q est générée et comparée à l'équation de Bellman pour déterminer la meilleure fonction Q. Cependant, il existe un potentiel de divergence dans l'algorithme et la convergence de l'algorithme est prouvée dans un article de Francisco Melo. La mise en œuvre de l'algorithme DQN est expliquée par un pseudocode qui implique l'initialisation des paramètres du réseau Q, la boucle sur les épisodes, le calcul de la valeur cible via l'équation de Bellman et la rétropropagation à l'aide d'un réseau cible Q fixe.

  • 00:40:00 Dans cette section, la vidéo traite de l'application pratique d'un Deep Q-Network au jeu Breakout. Le but de Breakout est de détruire toutes les briques sans laisser la balle passer la ligne du bas. Après s'être entraîné au Q-learning, l'agent a trouvé une astuce pour terminer le jeu rapidement en creusant un tunnel pour se rendre de l'autre côté des briques. Le réseau a élaboré cette stratégie par lui-même sans supervision humaine. L'entrée du réseau Q est une représentation de caractéristiques qui inclut la position de la balle, de la raquette et des briques. Cependant, pour obtenir toutes les informations, les pixels doivent être utilisés. La sortie du réseau est constituée de trois valeurs Q représentant l'action d'aller à gauche, d'aller à droite ou de rester inactif dans un état spécifique.

  • 00:45:00 Dans cette section, l'orateur discute de diverses techniques de prétraitement pour aider à mettre en place l'architecture de réseau Q profond pour l'apprentissage par renforcement profond, en particulier dans le travail avec des images. La première technique consiste à prendre des images successives afin de fournir des informations supplémentaires au réseau, tandis que d'autres techniques de prétraitement incluent la réduction de la taille des entrées, la conversion en niveaux de gris pour la compression des images et la suppression des pixels sans importance tels que les scores dans certains jeux. L'orateur met en garde contre les dangers de perdre des informations importantes lors de la réduction en niveaux de gris, et explique en détail l'architecture du réseau Q profond, en disant que les réseaux de neurones convolutifs sont utilisés car les entrées sont des images. Enfin, l'orateur explique la nécessité de garder une trace d'un état terminal afin d'assurer une bonne terminaison de boucle, ce qui est important pour la fonction y.

  • 00:50:00 Dans cette section, le conférencier explique l'importance de la relecture de l'expérience dans l'apprentissage par renforcement, qui permet de s'entraîner sur les expériences passées plutôt que sur ce qui est actuellement exploré. Étant donné que l'apprentissage par renforcement ne forme que sur ce qu'il explore, il peut ne plus jamais rencontrer certaines transitions d'état, ce qui rend les expériences passées inestimables pour la formation. La relecture d'expérience crée une mémoire de relecture où les expériences passées peuvent être stockées, et pendant la formation, l'algorithme peut échantillonner à partir de la mémoire de relecture en plus d'explorer de nouvelles transitions d'état. Cela permet aux expériences passées d'être utilisées plusieurs fois dans la formation, ce qui peut être crucial pour apprendre des points de données importants.

  • 00:55:00 Dans cette section de la conférence, l'orateur discute des avantages de la relecture d'expérience dans l'apprentissage par renforcement profond. Premièrement, cela permet aux données d'être utilisées plusieurs fois, plutôt qu'une seule, ce qui améliore l'efficacité des données. Deuxièmement, la relecture de l'expérience décorrèle les expériences, empêchant le réseau d'être biaisé pour prédire une action à plusieurs reprises. Enfin, il permet d'échanger le calcul et la mémoire contre l'exploration, ce qui est coûteux. L'orateur parle également du compromis entre l'exploitation et l'exploration dans l'algorithme RL, et suggère un moyen d'encourager l'exploration en ne prenant pas toujours la meilleure action.

  • 01:00:00 Dans cette section, l'instructeur et les étudiants discutent du problème de compromis exploration-exploitation dans l'apprentissage par renforcement et proposent une solution à l'aide d'un hyper-paramètre qui décide avec quelle probabilité l'agent doit explorer au lieu d'exploiter. Ils expliquent pourquoi l'exploration est cruciale et ajoutent des lignes au pseudocode pour une exploration gourmande en epsilon dans la mémoire de relecture. Ils soulignent que le principal avantage de l'utilisation de l'apprentissage en profondeur dans l'apprentissage par renforcement est sa capacité à bien approximer les fonctions. Enfin, ils abordent brièvement le sujet de la connaissance humaine dans l'apprentissage par renforcement et pourquoi il est essentiel d'évaluer les performances de l'algorithme.

  • 01:05:00 Dans cette section de la conférence, le professeur explique comment la connaissance humaine joue un rôle important dans l'apprentissage par renforcement profond (DRL). Les humains peuvent interpréter efficacement et instinctivement les signaux contextuels, par exemple les humains savent qu'une clé déverrouille une porte, et que la compréhension peut augmenter considérablement le processus de prise de décision algorithmique. La difficulté vient de la formation d'algorithmes avec des informations contextuelles limitées, comme le jeu notoirement difficile Montezuma's Revenge, un exploit que DeepMind a réalisé en mettant en œuvre des algorithmes de recherche d'arbres et d'apprentissage en profondeur. La conférence aborde brièvement le jeu Alpha Go et comment les réseaux combinés de recherche arborescente et de valeur peuvent améliorer les processus décisionnels algorithmiques.

  • 01:10:00 Dans cette section, le conférencier présente les gradients de politique, qui sont une classe d'algorithmes complètement différente de DQN qui optimise le mappage de l'état à l'action (politique) directement. Le conférencier explique que dans les gradients de politique, l'accent est mis sur la politique elle-même, plutôt que sur la valeur Q, et que le réseau de politiques est mis à jour à l'aide du gradient de la politique, par opposition à la mise à jour de la fonction Q dans DQN. À travers diverses vidéos, le conférencier explique les différentes méthodes de gradient de politique comme l'optimisation de politique proximale (PPO) et l'auto-jeu compétitif, et met en évidence des points techniques sur le surajustement à l'agent réel en face de vous, suggérant la nécessité d'alterner entre différentes versions du agent pour éviter le surajustement. Enfin, l'enseignant explique comment le méta-apprentissage s'entraîne sur une distribution de tâches similaires pour permettre l'apprentissage de tâches spécifiques avec des étapes de gradient minimales.

  • 01:15:00 Dans cette section de la conférence, l'orateur discute du dilemme exploration-exploitation et comment cela peut être un défi, surtout lorsque la récompense est rare. Il parle d'un article récent intitulé "Unifying the Count-based Metas for Exploration" qui introduit l'idée de compter combien de fois un état a été visité et de donner une récompense intrinsèque à l'agent pour avoir visité des états avec moins de comptes. Cela encourage l'agent à explorer et à regarder davantage, ce qui l'amène à découvrir différentes salles du jeu. L'orateur discute également brièvement de l'apprentissage par imitation et de la manière dont il peut aider lorsqu'il est difficile de définir les récompenses.

  • 01:20:00 Dans cette section, l'orateur mentionne brièvement qu'il a couvert les articles YOLO et YOLO v2 de Redmon et al. concernant la détection d'objets. Aucune autre information n'est donnée.