Pourquoi suffit-il de considérer les réseaux de neurones comme une boîte noire?

image

Si vous aimez les technologies des réseaux de neurones depuis longtemps, vous êtes probablement tombé sur une opinion brièvement conclue dans la question rhétorique: "Comment expliquez-vous à une personne quand un réseau de neurones considère qu'il a un cancer?" Et si dans le meilleur des cas de telles pensées vous font douter de l'utilisation des réseaux de neurones dans des domaines suffisamment responsables , alors dans le pire des cas, vous risquez de perdre tout intérêt.

Je suis tombé sur la meilleure option - j'ai calmement accepté cette limitation et, sans trop réfléchir, j'ai continué à utiliser les technologies des réseaux de neurones dans le domaine de la vision par ordinateur.

Défi


Récemment, une tâche m'a été confiée: créer rapidement un détecteur d'émotions réalisable. Les conditions ont été définies très clairement - une personne située à l'avant avec une résolution de 100x100. À la recherche d'un ensemble de données fini, j'ai passé quelques heures et j'ai réalisé que pratiquement rien ne me convenait. Ou même à des «fins de recherche», il était trop difficile d'accéder à l'ensemble de données. La sortie a été trouvée rapidement - pour prendre une douzaine de longs métrages et simplement parcourir la cascade Haar pour décharger tous les visages. Pendant la nuit, plus de (!) 30 000 images ont été reçues. De plus, les images reçues ont été triées selon 5 émotions principales (joyeuse, triste, neutre, en colère, surprise). Bien sûr, loin de toutes les images, il en résulte que 400 à 500 images de visages sont tombées dans chaque catégorie.

Ensuite, tout a commencé avec le sujet d'expliquer les résultats des réseaux de neurones. Même avec une augmentation des données personnalisées de qualité suffisamment élevée, un tel ensemble de données semblait évidemment insuffisant. Lors de la formation d'un réseau basé sur des blocs Resnet, les nombres suivants ont été obtenus pour les mesures:

image

La reconversion se fait dans le contexte d'un nombre insuffisant d'exemples, mais faute de temps, il était urgent de s'assurer que le réseau fonctionne au moins de manière assez satisfaisante et ne repose pas, par exemple, sur la détermination des émotions.

Avant, je devais travailler avec des outils comme Lime et Keras-Vis, mais c'est ici qu'ils pouvaient devenir une pierre philosophique qui transforme une boîte noire en quelque chose de plus transparent. L'essence des deux outils est approximativement la même - pour déterminer les zones de l'image source qui apportent la plus grande contribution à la solution réseau finale. Pour le test, j'ai tourné une vidéo qui imitait diverses émotions. Ayant déchargé les expressions faciales correspondant à diverses émotions, j'ai exécuté les outils ci-dessus sur eux

Les résultats suivants ont été obtenus auprès de Lime:

image

Malheureusement, même en modifiant divers paramètres de fonctions, Lime ne pouvait pas obtenir un affichage suffisamment lisible par l'homme. Pour une raison quelconque, la moitié droite du visage affecte l'appartenance à la classe «en colère». La seule chose pour «heureux» est la zone logique de la bouche et les fossettes typiques d'un sourire.

De plus, toutes les mêmes images ont été exécutées via Keras-Vis et bingo:

image

Happy cherche l'emplacement des yeux et la forme de la bouche. Sad se concentre sur les sourcils et les paupières tombants. Neutre essaie de regarder l'ensemble du visage dans son ensemble et les coins inférieurs innocents de l'image. "Angry" se concentre logiquement sur les sourcils décalés, MAIS oublie la forme de la bouche et, pour une raison quelconque, recherche les caractéristiques dans le coin inférieur droit. Et "Surpris" regarde la forme de la bouche et de la paupière levée gauche (!) - il est temps de commencer à reconnaître la bonne aussi.

Les résultats ont plu et ont permis de voir les forces et les faiblesses du réseau résultant. Ayant ressenti des faiblesses dans la classification des classes Surpris et En Colère, j'ai trouvé la force d'augmenter légèrement l'échantillon et j'ai ajouté une baisse de plus d'abandon. À l'itération suivante, les résultats suivants ont été obtenus:

image

On voit que les régions d'activation étaient plus localisées. L'attention du réseau sur l'arrière-plan dans le cas de "Angry" a disparu. Bien sûr, le réseau a encore ses inconvénients, oubliant le sourcil d'un côté et ainsi de suite. Mais cette approche a permis de mieux comprendre ce que fait le modèle résultant et pourquoi. Cette approche est idéale dans les cas où nous avons des doutes sur la bonne convergence du réseau.

Conclusions


Les réseaux de neurones restent la solution au problème d'optimisation complexe. Mais même les cartes d'attention réseau les plus simples apportent une certaine transparence à cette jungle. Cette approche peut être utilisée avec l'orientation habituelle de la fonction de perte, ce qui permettra d'obtenir des réseaux encore plus conscients.

Si nous rappelons la question rhétorique du début de l'article, nous pouvons dire que l'utilisation de cartes d'attention ainsi que la réponse finale du réseau portent déjà une certaine explication claire qui faisait tellement défaut.

Visualisez, visualisez et visualisez à nouveau!

Source: https://habr.com/ru/post/fr420381/


All Articles