Est-ce que l'apprentissage en profondeur tue le traitement des images / la vision par ordinateur?

52

Je suis impatient de m'inscrire à un MSc en traitement du signal et des images, ou peut-être à Computer Vision (je n'ai pas encore décidé), et cette question est apparue.

Ce qui me préoccupe, c'est que l'apprentissage en profondeur n'a pas besoin d'extraction de caractéristiques et presque pas de prétraitement d'entrée, est-il en train de tuer le traitement des images (ou le traitement du signal en général)?

Je ne suis pas un expert en apprentissage en profondeur, mais cela semble très bien fonctionner dans les tâches de reconnaissance et de classification, prenant des images directement au lieu d'un vecteur de caractéristiques comme d'autres techniques.

Existe-t-il des cas dans lesquels une approche traditionnelle d'extraction de caractéristiques + classification serait préférable, utilisant des techniques de traitement d'images, ou est-ce en train de mourir en raison d'un apprentissage en profondeur?

Tony
la source
3
Rouvrez cela car il y a un grand nombre de votes positifs et que la réponse la plus votée a un très grand nombre de votes positifs.
Peter K.
1
@LaurentDuval Je pense que chaque réponse a été utile et très intéressante, mais principalement les vôtres et les mathreadler (ainsi que la discussion qui a été soulevée) ont vraiment clarifié le sujet.
Tony
2
Je voudrais faire un carrefour dans la discussion en cours. Qui a dit que l'apprentissage en profondeur n'exigeait pas l'extraction de fonctionnalités? Dans ma propre expérience pratique, nous ne devrions pas former DNN pour les données brutes. Nous devons extraire certaines fonctionnalités et posséder une compréhension de base de l'image. L'apprentissage en profondeur doit être utilisé avec précaution, mais c'est aussi une bonne idée.
Arun raj

Réponses:

45

Cet article a été mis à jour beaucoup. En haut, vous pouvez voir les mises à jour des liens. Ci-dessous, variations de la réponse initiale. Pour la version courte: les succès des réseaux de neurones convolutionnels et l’apprentissage en profondeur ressemblent à une sorte de révolution galiléenne. Du point de vue pratique, le traitement du signal classique ou la vision par ordinateur sont morts… à condition de disposer de suffisamment de données étiquetées, de se soucier peu des défaillances évidentes de la classification ( défauts profonds ), de disposer d'une énergie infinie pour effectuer des tests sans se soucier de l'empreinte carbone , et ne vous inquiétez pas des explications rationnelles. Pour les autres, cela nous a amené à repenser tout ce que nous faisions auparavant: extraction de fonctionnalités, optimisation (cf. mon collègue J.-C. Pesquet, travail sur les structures de réseaux neuronaux profonds Résoudre les inégalités variationnelles), invariance, quantification, etc. Et de cette recherche émergent des recherches vraiment intéressantes, en rattrapant, espérons-le, des principes bien ancrés et des performances similaires.

Liens mis à jour:

Nous introduisons des exemples contradictoires naturels - des exemples réels, non modifiés et naturels, qui entraînent une dégradation significative de la précision du classificateur. Nous sélectionnons 7 500 exemples contradictoires naturels et les publions dans un ensemble de tests du classificateur ImageNet appelé ImageNet-A. Cet ensemble de données constitue un nouveau moyen de mesurer la robustesse du classifieur. Comme pour les exemples l_p contradictoires, les exemples ImageNet-A sont transférés avec succès vers des classificateurs non vus ou des classificateurs à zone noire. Par exemple, sur ImageNet-A, un DenseNet-121 obtient une précision d’environ 2%, soit une perte de précision d’environ 90%. La récupération de cette précision n’est pas simple, car les exemples ImageNet-A exploitent les failles profondes des classificateurs actuels, notamment leur dépendance excessive à la couleur, à la texture et aux signaux de fond. Nous observons que les techniques d’entraînement populaires pour améliorer la robustesse ont peu d’effet, mais nous montrons que certains changements architecturaux peuvent améliorer la robustesse des exemples contradictoires naturels. Des recherches futures sont nécessaires pour permettre une généralisation robuste à cet ensemble de tests ImageNet.

Vous trouverez en bas des références d’apprentissage approfondi sur le traitement standard du signal et des images. Michael Elad vient d'écrire Deep, Deep Trouble: Impact de Deep Learning sur le traitement des images, les mathématiques et l'humanité (SIAM News, 2017/05), extrait:

Puis les réseaux de neurones sont revenus soudainement et avec vengeance.

Cette tribune est intéressante, car elle montre un passage du "traitement d'image" traditionnel, essayant de modéliser / comprendre les données, à un domaine de correction, sans trop de perspicacité.

Ce domaine évolue assez vite. Cela ne signifie pas qu'il évolue dans une direction intentionnelle ou constante. Ni vrai ni faux. Mais ce matin, j'ai entendu le dicton suivant (ou est-ce une blague?):

un mauvais algorithme avec un énorme ensemble de données peut faire mieux qu'un algorithme intelligent avec des données pauce .

Voici mon très bref essai: l'apprentissage en profondeur peut fournir des résultats à la pointe de la technologie, mais on ne comprend pas toujours pourquoi , et une partie de notre travail de scientifique reste à expliquer pourquoi les choses fonctionnent, quel est le contenu d'une donnée , etc.

Un apprentissage en profondeur nécessite des bases de données (énormes) bien étiquetées. Chaque fois que vous faites du bricolage sur des images uniques ou singulières (c'est-à-dire sans une énorme base de données), en particulier dans des endroits où il est peu probable que des "images avec balises basées sur l'utilisateur" soient fournies gratuitement (dans la série complémentaire de " chats amusants jouant à des jeux et à des visages ") , vous pouvez vous en tenir au traitement traditionnel des images pendant un certain temps et dans un but lucratif. Un récent tweet résume que:

(beaucoup de) données étiquetées (sans vars manquants); l'exigence est un élément décisif (et inutile) pour de nombreux domaines

S'ils sont tués (ce dont je doute fort à court terme), ils ne sont pas encore morts. Donc, toute compétence que vous acquérez dans le traitement du signal, l'analyse d'images, la vision par ordinateur vous aidera dans le futur. Ceci est par exemple discuté dans l'article de blog: Avons-nous oublié la géométrie dans la vision par ordinateur? par Alex Kendall:

L'apprentissage en profondeur a révolutionné la vision par ordinateur. Aujourd'hui, il n'y a pas beaucoup de problèmes pour lesquels la solution la plus performante ne repose pas sur un modèle d'apprentissage approfondi de bout en bout. En particulier, les réseaux de neurones convolutifs sont populaires car ils ont tendance à bien fonctionner tout de suite. Cependant, ces modèles sont en grande partie de grandes boîtes noires. Il y a beaucoup de choses que nous ne comprenons pas à leur sujet.

Un exemple concret peut être le suivant: quelques images très sombres (surveillance, par exemple) du même endroit, devant être évaluées si une d’entre elles contient un changement spécifique qui devrait être détecté, relèvent potentiellement du traitement traditionnel de l’image, Deep Learning (à partir d'aujourd'hui).

D'un autre côté, aussi fructueux que soit Deep Learning à grande échelle, cela peut conduire à la classification erronée de petits ensembles de données, qui pourraient être inoffensifs "en moyenne" pour certaines applications. Deux images qui diffèrent légèrement de l'œil humain pourraient être classées différemment via DL. Ou des images aléatoires pourraient être définies pour une classe spécifique. Voir, par exemple, les réseaux neuronaux profonds sont facilement dupés: prévisions de grande confiance pour des images non reconnaissables (Nguyen A, Yosinski, Clune J. Proc. Vision par ordinateur et Pattern Recognition 2015) ou l' apprentissage en profondeur présente-t-il des défauts profonds? , sur les négatifs contradictoires:

Le réseau peut mal classer une image après que les chercheurs ont appliqué une certaine perturbation imperceptible. Les perturbations sont trouvées en ajustant les valeurs de pixel pour maximiser l'erreur de prédiction.

Avec tout le respect que vous devez à "Deep Learning", pensez à "une production de masse répondant à un comportement enregistré, connu, validable en masse ou prévu" par opposition à un "artisanat singulier". Aucune n’est meilleure (encore) dans une seule échelle d’indice. Les deux peuvent avoir à coexister pendant un moment.

Cependant, l'apprentissage en profondeur imprègne de nombreux domaines nouveaux, comme décrit dans les références ci-dessous.

Heureusement, certaines personnes essaient de trouver une justification mathématique à la base de l'apprentissage en profondeur, comme par exemple les réseaux de diffusion ou les transformations proposées par Stéphane Mallat et ses co-auteurs, voir le site de l'ENS pour la diffusion . Analyse harmonique et opérateurs non linéaires, fonctions de Lipschitz, invariance de translation / rotation, convient mieux au traitement moyen du signal. Voir par exemple Comprendre les réseaux convolutionnels profonds .

Laurent Duval
la source
1
L'augmentation des données de formation insuffisantes à l'aide de copies correctement modifiées permet de généraliser l'apprentissage en profondeur. Dernièrement, des solutions ont été trouvées concernant le besoin d'un marquage supervisé complet: L'augmentation des données non supervisées génère automatiquement des étiquettes pour la partie non étiquetée des données de formation en apprentissage semi-supervisé et utilise ces données pour la formation. (N'hésitez pas à incorporer cette information ou des informations similaires dans la réponse.)
Olli Niemitalo
1
Si vous savez comment augmenter "régulièrement". OK sur les bases de données classiques, toujours sur les données scientifiques dont je traite (géologie, chimie)
Laurent Duval
@Laurent, à propos de ce que vous avez dit: "notre travail de scientifique continue d'expliquer pourquoi les choses marchent" : cela ressemble à de la science des données est une carrière valable pour quelqu'un qui envisage de travailler sérieusement sur DSP. Existe-t-il d'autres noms que le titre typique "d'ingénieur DSP" dont vous avez entendu parler?
JFonseca
21

Premièrement, il n’ya rien de mal à faire un travail graduel en traitement de l’image ou en vision par ordinateur et en utilisant un apprentissage en profondeur. L’apprentissage en profondeur ne tue pas le traitement des images et la vision par ordinateur, il s’agit simplement du sujet de recherche actuellement à l’étude dans ces domaines.

Deuxièmement, l'apprentissage en profondeur est principalement utilisé dans la reconnaissance des catégories d'objets. Mais ce n’est qu’un des nombreux domaines de la vision par ordinateur. Il existe d'autres domaines, tels que la détection d'objet, le suivi, la reconstruction 3D, etc., dont beaucoup reposent encore sur des fonctionnalités "conçues à la main".

Dima
la source
5
Faites attention: les DNN sont très capables de faire tout ce que vous mentionnez: détection d'objet, suivi, reconstruction 3D, etc. Cela dit, le traitement du signal est un aperçu des aspects physiques de la façon dont les signaux sont manipulés et pourquoi manipulez-les d’une certaine manière - et ceux-ci (je crois) reviendront pour expliquer pourquoi les algorithmes adaptatifs comme les DNN fonctionnent. Mais ne vous y trompez pas: les DNN sont très capables de transformer les bases, de l’entrée au dernier objectif (différentiable).
Tarin Ziyaee
11

Aucun apprentissage en profondeur ne tue le traitement de l'image. Vous avez besoin d'énormes ensembles de données et de nombreuses ressources informatiques pour effectuer un apprentissage en profondeur. Il existe de nombreuses applications où il est souhaitable de pouvoir effectuer un traitement d'image avec une charge de calcul moindre, une empreinte mémoire réduite et sans avoir accès à d'énormes bases de données. Quelques exemples sont les téléphones mobiles, les tablettes, les caméras mobiles, les automobiles, les quadcoptères. L’apprentissage en profondeur est très prisé en ce moment car il existe des résultats très impressionnants au classement.

La classification est l'un des nombreux problèmes traités par le traitement des images. Même s'il était vrai que l'apprentissage en profondeur résoudrait tous les problèmes de classification, il resterait de nombreux autres types de traitement de l'image. Réduction du bruit, enregistrement d'image, calculs de mouvement, morphing / blending, netteté, corrections et transformations optiques, calcul de géométries, estimation 3D, modèles de mouvement 3D + temporels, stéréoscopie, compression et codage de données, segmentation, flou, stabilisation de mouvement, infographie, toutes sortes de rendu.

mathreadler
la source
Denoising, estimation 3D, etc., tous ceux que vous avez mentionnés peuvent très bien être approchés et résolus par des DNN d'architecture appropriée et de données appropriées.
Tarin Ziyaee
1
Oui oui et vous pouvez faire vos courses hebdomadaires dans une Jaguar (mais ce n’est pas pour cela qu’elles sont construites).
Mathreadler
1
Hé hé, c’est vrai, mais c’est différent de dire que vous ne pouvez pas acheter avec votre jaguar.
Tarin Ziyaee
Il est facile d'imposer des contraintes utiles à un problème d'ingénierie que les DNN sont plutôt difficiles à gérer. Par exemple, une contrainte selon laquelle la méthode utilisée ne doit pas être biaisée vers un certain ensemble de données d'entrée. Ensuite, les DNN seront bien sûr disqualifiés par défaut car ils ont tous besoin de formation et seront donc biaisés en utilisant les données de formation.
mathreadler
Cela est vrai pour n'importe quel outil d'ingénierie: Mais ce n'est pas la question. Le fait est que toutes les tâches que vous avez mentionnées ci-dessus peuvent en fait très bien être résolues avec les DNN. Oui, certains sont des développements plus récents, mais il est erroné de dire qu'ils ne peuvent pas être résolus avec les DNN! C'est tout!
Tarin Ziyaee
11

Aujourd'hui, nous avons eu une discussion avec un de mes amis. C'était un jour de pluie ici à Munich, alors qu'une grande partie de l'Europe avait une sorte d'ambiance ensoleillée. Les gens partageaient des photos sur les médias sociaux, où ils étaient vêtus de jolies robes d'été, errant dans les mers. Vexée, elle s’est retournée vers moi et a demandé: «Pourriez-vous écrire un logiciel pour bloquer les images sur les médias sociaux, qui impliquent de si jolies photos de l’été, quand il fait si mauvais ici?». J'ai dit, pourquoi pas. Tout ce que vous avez à faire est de rassembler un vaste ensemble d’images d’été et d’exemples négatifs, puis de l’alimenter via un réseau, qui effectue une classification binaire au niveau "Bloc" ou "Aucun bloc". Former et régler le réseau. C'est ça.

Ensuite, je me suis tourné vers moi-même: est-ce que je sais réellement comment écrire un algorithme simple pour décider si le temps est beau ou non, sans laisser à la machine le soin de penser pour moi? Barely ... Peut-être ... Pour le lecteur curieux, voici quelques fonctionnalités que vous voudrez peut-être concevoir si vous voulez essayer:

Classification météorologique à deux classes, Cewu Lu§ Di Lin, Jiaya Jia, Chi-Keung Tang , CVPR 2014

De toute évidence, je ne me soucierais même plus de cette publication de CVPR de nos jours et je voudrais aller en profondeur. Donc, même si j'apprécie l'apprentissage en profondeur pour ses performances robustes dans de nombreux scénarios, je l'utilise également avec prudence. Même si cela ne nuirait pas à ma connaissance du traitement d'images, cela tend à diminuer les compétences de domaine dont j'ai besoin. Intellectuellement, ce n'est pas très élégant.

Dès que la personne décide de rester sur la bonne voie et profite des deux mondes, elle sera en sécurité.

Tolga Birdal
la source
7

La réponse courte est que non. DL peut reconnaître une tasse sur une photo, mais cela ne gêne en aucun cas le traitement du signal. Cela dit, votre question est tout à fait pertinente en ces temps troublés. Il y a une belle table ronde sur le sujet, mettant en vedette Stéphane Mallat, etc., ici .

dohmatob
la source
5

L’ingénierie des données est toujours utilisée dans l’apprentissage automatique pour prétraiter et sélectionner les données transmises aux DNN afin d’améliorer leur temps d’apprentissage et leur efficacité d’évaluation. Le traitement de l'image (le contenu entre le capteur de la caméra et les bitmaps RGB / etc. Transmis aux DNN), une forme de traitement de données, est toujours nécessaire.

hotpaw2
la source
4

Une compréhension approfondie du traitement du signal (ainsi que de l’algèbre linéaire, du calcul vectoriel, des statistiques mathématiques, etc.) est indispensable pour un travail non trivial dans le domaine de l’apprentissage en profondeur, en particulier de la vision par ordinateur.

Certains des documents les plus percutants de l'apprentissage en profondeur (maintenant que la plupart des solutions simples ont été retenues) démontrent une bonne compréhension des concepts de traitement du signal.

Quelques concepts de motivation:

  • Convolutions diluées : consultez cet article de blog . L’une des premières équations serait celle d’une personne bien ancrée dans le traitement du signal. Il est également étroitement lié à l' algorithme de trous trouvé dans le traitement classique du signal en ondelettes.
  • Couches convolutives transposées / couches Deconv. Encore une fois, les concepts de base du traitement du signal.
  • Mise en forme des filtres de convection - une bonne idée des normes de l'opérateur et du mappage de la contraction est nécessaire. Cela se trouve généralement dans un cours d'EE supérieur en théorie des signaux ou systèmes de contrôle, ou dans les cours de mathématiques en analyse (réels ou fonctionnels).
  • Exemples contradictoires : l’un des premiers articles à étudier cela ( "propriétés intrigantes de ..." ) a formalisé cela en termes de perturbations et a utilisé les constantes de Lipschitz des différentes couches et les non-linéarités dans un réseau neuronal afin de lier la sensibilité à de telles perturbations. D'accord, l'analyse était très préliminaire, mais encore une fois, je crois que cela prouve que faire des progrès non négligeables dans n'importe quoi, y compris dans l'apprentissage en profondeur, nécessite une compréhension non triviale de la théorie.

La liste continue. Ainsi, même si vous finissez par travailler dans le domaine de la vision par ordinateur et à appliquer un apprentissage approfondi à vos problèmes, l’arrière-plan de traitement du signal rendra les choses très faciles à comprendre pour vous.

AruniRC
la source
1
Oui. Tout raccourci pris pour ne pas avoir à apprendre quoi alimenter le réseau devra être appris à la dure par une performance pire.
mathreadler
4

Je ne fais vraiment pas beaucoup de traitement d'image, mais j'ai travaillé pour une organisation (US Navy) qui a financé et financé des recherches sur la classification des signaux la dernière fois que les réseaux de neurones étaient un sujet brûlant, du milieu à la fin des années 80. Je devais passer à travers un grand nombre de choses essentiellement marketing. Les arguments étaient du type:

  • C'est neural, comme votre cerveau et puisqu'il surpasse un classificateur linéaire, il bat les techniques statistiques. En fait, je connais des gens qui ont vu leurs papiers rejetés parce qu'ils utilisaient des statistiques pour évaluer leurs performances.
  • Les réseaux de neurones sont inductifs, ils peuvent classer les objets correctement si aucun ou peu d’exemples ne figuraient dans leurs ensembles d’entraînement.
  • La DARPA finance des travaux et nous savons tous que tout ce que fait la DARPA est un gagnant (Google n'était pas encore disponible).
  • Les performances ne sont pas merveilleuses, vous n'avez pas besoin d'une matrice de confusion, vous n'avez pas besoin de prédateurs de classe, je peux simplement vous dire quelle est ma probabilité d'erreur. Pas besoin de limites, je fais juste le hold-one-out et le recyclage.
  • Choisissez certaines fonctionnalités et allez-y, c'est une boîte noire, la mise à l'échelle, l'alignement des données, le rejet de l'encombrement, les mauvaises étiquettes, l'occurrence de plusieurs classes, pas mon problème.
  • Le brouillard des maths, Boltzmann Machines
  • Jetons dans un SVD et peut-être une chose de dimension fractale.
  • L'appât supervisé / non surveillé et le commutateur, je trouverai tous vos modèles cachés. Cette mémoire associative n’est-elle pas profonde?

Il a fallu le livre de Bishop pour caler mon cynisme.

Dans de nombreuses applications, l'algorithme de traitement du signal optimal nécessitera une recherche d'énumération exhaustive sur un grand espace de paramètres qui devient rapidement intraitable. Une grande batterie de serveurs peut augmenter cet espace de recherche mais, à un moment donné, vous devez trouver une heuristique. DL semble être capable de trouver certaines de ces heuristiques, mais cela ne résout pas l'optimisation dure sous-jacente de NP.

Stanley Pawlukiewicz
la source
Vous avez tout à fait raison d'atténuer le cynisme, car il semble mettre beaucoup de monde à terre. Je souhaite parfois que j'ai appris cela plus tôt dans la vie.
Mathreadler
3

Mon point de vue de l'université était que beaucoup de personnes travaillant dans le traitement du signal étaient un peu hostiles envers le ML, je suppose, parce qu'elles se sentaient menacées que cela empiétait sur leur domaine. Mais récemment, de nombreuses recherches ont été menées sur les avantages de réseaux de neurones profonds complexes et valorisés, ce qui pourrait laisser penser que le meilleur moyen d’aller de l’opinion est une solide compréhension des deux disciplines.

Austin
la source
1
Oui. Le traitement du signal est très étroitement lié à l'apprentissage automatique. Une solide compréhension du traitement du signal aide à comprendre comment construire et utiliser des algorithmes ML et quel type de données est (in) approprié pour les alimenter.
mathreadler
2

Hé bien oui. De la même manière que le développement dans des langages de programmation de niveau supérieur tels que C ++ et la programmation d'assemblage 'tué' de Python. Cela ne veut pas dire pour autant qu'il soit inutile d'apprendre l'assemblage lorsque vous vous inscrivez à un cours CS. Il donne une bonne idée du fonctionnement de l'ordinateur, de ce qui se passe dans les coulisses de langages de haut niveau, des principes de base du langage informatique, etc.

Jochemspek
la source