Les scientifiques ou les experts de la recherche savent-ils dans la cuisine ce qui se passe dans un réseau de neurones «profonds» complexe avec au moins des millions de connexions qui se déclenchent instantanément? Comprennent-ils le processus sous-jacent (par exemple, ce qui se passe à l'intérieur et comment ça fonctionne exactement), ou est-ce un sujet de débat?
Par exemple cette étude dit:
Cependant, on ne comprend pas clairement pourquoi ils fonctionnent si bien ou comment ils pourraient être améliorés.
Cela signifie-t-il que les scientifiques ne savent pas vraiment comment fonctionnent les modèles de réseau convolutionnels complexes?
Réponses:
De nombreuses approches visent à rendre un réseau de neurones formés plus interprétable et moins à la "boîte noire", en particulier les réseaux de neurones à convolution que vous avez mentionnés.
Visualiser les activations et les poids de couche
La visualisation des activations est la première solution évidente et simple. Pour les réseaux ReLU, les activations commencent généralement par être relativement blobées et denses, mais à mesure que la formation progresse, les activations deviennent généralement plus clairsemées (la plupart des valeurs sont nulles) et localisées. Cela montre parfois sur quoi un calque particulier est concentré lorsqu'il voit une image.
Un autre excellent travail sur les activations que je voudrais mentionner est deepvis qui montre la réaction de chaque neurone à chaque couche, y compris les couches de pooling et de normalisation. Voici comment ils le décrivent :
La deuxième stratégie commune consiste à visualiser les poids (filtres). Celles-ci sont généralement les plus interprétables sur la première couche CONV qui examine directement les données de pixels brutes, mais il est également possible d'afficher les poids de filtre plus en profondeur dans le réseau. Par exemple, la première couche apprend généralement des filtres de type gabor qui détectent essentiellement les contours et les gouttes.
Expériences d'occlusion
Voici l'idée. Supposons qu'un ConvNet classe une image en tant que chien. Comment pouvons-nous être sûrs que cela représente réellement le chien dans l'image, par opposition à certains indices contextuels de l'arrière-plan ou à un autre objet divers?
Une façon de déterminer quelle partie de l'image provient d'une prévision de classification consiste à tracer la probabilité de la classe d'intérêt (par exemple, la classe chien) en fonction de la position d'un objet occlus. Si nous parcourons des régions de l'image, la remplaçons par des zéros et vérifions le résultat de la classification, nous pouvons créer une carte thermique bidimensionnelle de ce qui est le plus important pour le réseau sur une image donnée. Cette approche a été utilisée dans Visualizing and Understanding Convolutional Networks de Matthew Zeiler (auquel vous faites référence dans votre question):
Déconvolution
Une autre approche consiste à synthétiser une image qui déclenche le déclenchement d'un neurone, en gros ce que le neurone recherche. L'idée est de calculer le dégradé par rapport à l'image, au lieu du dégradé habituel par rapport aux poids. Donc, vous choisissez un calque, définissez le dégradé sur zéro, à l’exception d’un pour un neurone et d’une rétroprojection à l’image.
Deconv effectue en réalité une action appelée rétroprojection guidée pour créer une image plus esthétique , mais ce n’est qu’un détail.
Approches similaires à d'autres réseaux de neurones
Recommande fortement cet article d’Andrej Karpathy , dans lequel il joue beaucoup avec les réseaux de neurones récurrents (RNN). En fin de compte, il applique une technique similaire pour voir ce que les neurones apprennent réellement:
Conclusion
Je n'ai mentionné qu'une petite fraction des résultats dans ce domaine de recherche. C'est assez actif et de nouvelles méthodes qui éclairent le fonctionnement interne du réseau de neurones apparaissent chaque année.
Pour répondre à votre question, il y a toujours quelque chose que les scientifiques ne savent pas encore, mais dans de nombreux cas, ils ont une bonne image (littéraire) de ce qui se passe à l'intérieur et peuvent répondre à de nombreuses questions particulières.
Pour moi, la citation de votre question souligne simplement l’importance de la recherche non seulement sur l’amélioration de la précision, mais également sur la structure interne du réseau. Comme Matt Zieler l’a dit dans son exposé , une bonne visualisation peut parfois conduire à une meilleure précision.
la source
Cela dépend de ce que vous entendez par "savoir ce qui se passe".
Conceptuellement, oui: ANN effectue une régression non linéaire. L’expression réelle représentée par la matrice de pondération / la ou les fonctions d’activation d’un RNA peut être explicitement développée sous forme symbolique (par exemple, elle contient des sous-expressions telles que ).1/1+e1/1+e…
Cependant, si par "savoir", vous entendez prédire la sortie de certains ANN spécifiques (boîte noire) , par un autre moyen, alors l'obstacle est la présence de chaos dans un ANN qui présente un degré de liberté élevé .
Voici également quelques travaux relativement récents de Hod Lipson sur la compréhension des ANN par la visualisation .
la source
La réponse courte est non .
L’interprétabilité des modèles est un domaine de recherche actuel très actif (pensez au Saint Graal, etc.), qui a été mis en avant récemment, notamment en raison du succès (souvent énorme) des modèles d’apprentissage en profondeur dans diverses tâches; ces modèles ne sont actuellement que des boîtes noires, et nous nous sentons naturellement mal à l'aise à ce sujet ...
Voici quelques ressources générales (et récentes, en date de décembre 2017) sur le sujet:
Un article récent (juillet 2017) dans Science fournit un bon aperçu de l'état actuel des recherches: La façon dont les détectives de l'IA ouvrent la boîte noire de l'apprentissage en profondeur (pas de liens dans le texte, mais les noms et les termes googler porteront leurs fruits)
La DARPA elle-même exécute actuellement un programme sur l'intelligence artificielle explicable (XAI)
Dans NIPS 2016, il y avait un atelier sur l' apprentissage machine interprétable pour les systèmes complexes , ainsi qu'un tutoriel ICML 2017 sur l'apprentissage machine interprétable par Been Kim de Google Brain.
Et à un niveau plus pratique (code, etc.):
L'outil What-If de Google, une toute nouvelle fonctionnalité (septembre 2018) de l'application Web open source TensorBoard, qui permet aux utilisateurs d'analyser un modèle ML sans écrire de code ( page de projet , article de blog )
Boîte à outils LRP (Layer-Wise Relevance Propagation) pour les réseaux de neurones ( papier , page de projet , code , wrapper TF Slim )
FairML: Audit de modèles prédictifs Black-Box, par Cloudera Fast Forward Labs ( billet de blog , papier , code )
LIME: explications locales du modèle interprétable locales ( papier , code , message de blog , port R )
Un article très récent (novembre 2017) de Geoff Hinton, Distiller un réseau de neurones en un arbre décisionnel souple , avec une implémentation indépendante de PyTorch
SHAP: une approche unifiée pour interpréter les prédictions de modèle ( document , code Python des auteurs , package R )
Réseaux de neurones de convolution interprétables ( article , code de l' auteur )
Lucid, un ensemble d’infrastructures et d’outils de recherche sur l’interprétabilité des réseaux de neurones par Google ( code ; papiers: Visualisation des entités , Les éléments constitutifs de l’interprétabilité )
Réseaux de transparence par conception (TbD) ( papier , code , démo )
SVCCA: Analyse de corrélation canonique de vecteur singulier pour une dynamique d'apprentissage en profondeur et une capacité d'interprétation ( papier , code , message de blog Google )
TCAV: Test avec des vecteurs d'activation de concept ( papier ICML 2018 , code Tensorflow )
Grad-CAM: Les explications visuelles des réseaux profonds par localisation en fonction de gradient ( papier , auteurs du code Torch , le code tensorflow , le code PyTorch , Keras portable par exemple )
Dissection du réseau: Quantification de l’interprétabilité des représentations visuelles profondes, par MIT CSAIL ( page de projet , code Caffe , port PyTorch )
Dissection du GAN: Visualiser et comprendre les réseaux d’attaque génératifs, par MIT CSAIL ( page du projet , avec liens vers papier et code)
Expliquez comment: Un cadre pour interpréter et corriger les prédictions de détecteur d'objets DNN ( papier , code )
Dernièrement, il y a eu un regain d'intérêt pour commencer à construire une base plus théorique pour les réseaux neuronaux d'apprentissage en profondeur. Dans ce contexte, le statisticien de renom et pionnier de la détection par compression, David Donoho, a récemment commencé (à l'automne 2017) à proposer un cours à Stanford, Theories of Deep Learning (STATS 385) , avec presque tout le matériel disponible en ligne; il est fortement recommandé ...
MISES À JOUR :
la source
Vous ne savez pas si c'est ce que vous recherchez, mais Google a extrait des images de réseaux lorsqu'ils étaient alimentés par du bruit blanc.
Voir Inceptionism: approfondir les réseaux de neurones (Google Research Blog) .
Ce type de représente ce que le réseau sait.
la source
Je crains de ne pas avoir les citations spécifiques à portée de main, mais j'ai vu / entendu des citations d'experts comme Andrew Ng et Geoffrey Hinton, dans lesquels ils disent clairement que nous ne comprenons pas vraiment les réseaux de neurones. Autrement dit, nous comprenons quelque chose sur leur fonctionnement (par exemple, le calcul de la propagation en arrière), mais nous ne comprenons pas vraiment pourquoi ils fonctionnent. C'est une sorte de distinction subtile, mais le fait est que non, nous ne comprenons pas les détails les plus profonds de la façon dont vous passez exactement d'un poids, à reconnaître, par exemple, un chat jouant avec une balle.
Au moins en termes de reconnaissance d'image, la meilleure explication que j'ai entendue est que les couches successives d'un réseau de neurones apprennent des fonctionnalités plus sophistiquées, composées des fonctionnalités plus granulaires des niveaux précédents. C'est-à-dire que la première couche pourrait reconnaître des "arêtes" ou des "lignes droites". La couche suivante peut alors apprendre des formes géométriques telles que "boîte" ou "triangle", puis une couche supérieure peut apprendre le "nez" ou "l'oeil" en fonction de ces caractéristiques précédentes, puis une couche de niveau supérieur apprend toujours "la face" de "œil", "nez", "mâchoire", etc. Mais même cela, si je comprends bien, reste hypothétique et / ou n’est pas compris en détail.
la source
Voici une réponse de Carlos E. Perez à la question " Qu'est-ce que la théorie derrière l'apprentissage en profondeur?"
En résumé: nous avons des idées, mais nous ne sommes pas tout à fait sûrs.
la source
OUI
Je suppose que "savoir de la cuisine" signifie "connaître en détail"?
Laissez-moi vous donner une série d'analogies:
Le diable est dans les détails, mais un point crucial ici est qu’il s’agit de structures artificielles. Ils n'apparaissent pas au hasard. Vous avez besoin de beaucoup de connaissances pour obtenir quelque chose d'utile. Pour Neural Networks, je dirais que cela a pris environ 40 ans entre la publication de l’idée principale (Rosenblatt perceptron, 1957) et la première application (US Postal Service, 1989). Et à partir de là encore 13 ans de recherche active sur des systèmes vraiment impressionnants (ImageNet 2012).
Nous savons très bien comment fonctionne la formation . Parce qu'il doit être mis en œuvre. Donc, sur une très petite structure, nous le connaissons en détail.
Pensez aux ordinateurs. Les concepteurs de puces connaissent très bien le fonctionnement de leur puce. Mais ils n’auront probablement qu’une idée très approximative du fonctionnement du système d’exploitation Linux.
Un autre exemple est la physique et la chimie: la physique décrit les forces fondamentales de l'univers. Est-ce que cela signifie qu'ils savent tout sur la chimie? Sûrement pas! Un physicien "parfait" peut tout expliquer en chimie ... mais ce serait pratiquement inutile. Il aurait besoin de beaucoup plus d'informations, ne pas être capable de sauter les parties non pertinentes. Tout simplement parce qu'il a trop "zoomé" - considère des détails qui ne sont en pratique ni intéressants ni importants. S'il vous plaît noter que la connaissance du physicien n'est pas faux. Peut-être pourrait-on même en déduire le savoir du chimiste. Mais cette compréhension "de haut niveau" de l'interaction des molécules est manquante.
Les informations clés tirées de ces deux exemples sont les couches d'abstraction: vous pouvez créer de la complexité à partir de structures simples .
Quoi d'autre?
Nous savons bien ce qui est en principe réalisable avec les réseaux de neurones que nous concevons:
Oh, et bien sûr nous avons des approches analytiques pour les réseaux de neurones. J'ai rédigé mon mémoire de maîtrise sur l' analyse et l'optimisation des architectures de réseaux de neurones convolutionnels . Dans ce contexte, LIME (Explications de Modèle Interprétable Local - Interprétations Agnostiques Locales) est agréable:
la source
Je voulais juste ajouter quelque chose:
cela dépend de ce que vous entendez par scientifique:
Je suis étudiant au doctorat en génie électrique et j'ai vu tellement de chercheurs travailler avec ANN dans des problèmes comme la régression, le contrôle des prévisions, le contrôle adaptatif et la classification.
vous pouvez clairement remarquer que leur manque de compétences en codage est un inconvénient majeur et qu'ils ne comprennent pas vraiment ce qui se passe dans une ANN. Maintenant, je ne parle même pas de Deep , ils ont du mal à comprendre des choses simples comme ADALINEs et ANFIS! tout ce que vous entendez dire est: donnez-lui des données et il s'adaptera!
la source