[PYTHON] Envisagez d'améliorer la précision de la détection des anomalies VAE

Diverses méthodes de détection d'anomalies utilisant des modèles d'apprentissage et de génération à distance ont été proposées. Parmi eux, nous avons mené une expérimentation utilisant la méthode de détection d'anomalies utilisant le terme non régulier, qui a été annoncée lors de la conférence nationale 2018 de l'Artificial Intelligence Society et est utile pour la détection d'anomalies de produits industriels complexes avec VAE.

Parmi les méthodes, il existe un problème selon lequel un jugement d'anomalie se produit de manière erronée dans la partie normale, en particulier, il existe un problème selon lequel un jugement d'anomalie excessif se produit en raison d'une sous-estimation de la couche de sortie d'écart type σ, et nous considérerons une méthode de solution. fait. Cette fois, nous vérifierons l'effet de l'amélioration de la précision en élargissant les données. (Qu'est-ce que l'expansion des données? ... En ajoutant un traitement de conversion (inversion, agrandissement, réduction, etc.) à l'image, les données d'apprentissage sont "gonflées". En gonflant, la même image a moins de chances d'être apprise, donc généralisation Les performances sont améliorées.)

Auto-introduction

Bonjour. Je suis maharuda, stagiaire de recherche chez ProsCons.

Dans le cadre de l'expérience de travail de benchmarking de l'entreprise, j'écrirai un article sur la VAE, qui est utilisée comme l'une des méthodes de détection d'anomalies. Ravi de vous rencontrer!

Objectif

Un des problèmes survenus lors de l'expérimentation de la méthode de détection d'anomalies utilisant le terme de non-régularisation, l'amélioration du jugement d'anomalie erronée de la pièce normale.

Détection d'anomalies à l'aide de VAE

Un réseau neuronal qui convertit les données X en variable latente z (moins de dimensions que les données d'origine) est appelé un encodeur, et un réseau neuronal qui reconstruit la variable latente z et restaure les données d'origine est appelé un décodeur. Entraînez les données d'entrée et les données reconstruites pour qu'elles soient aussi similaires que possible. L'architecture ci-dessus est appelée Auto Encoder (AE). Et celui qui pousse la variable latente AE dans la distribution de probabilité s'appelle VAE. Veuillez vous référer à l'article suivant pour plus de détails.

・ Explication approfondie de l'autoencodeur variationnel (https://qiita.com/kenmatsu4/items/b029d697e9995d93aa24)

En général, la détection d'anomalie à l'aide de VAE est réalisée en détectant la différence entre les données avant qu'elles ne soient introduites dans le codeur et les données reconstruites par VAE comme une anomalie.

Méthode utile pour détecter les anomalies dans les produits industriels complexes

Les produits industriels sont constitués de divers éléments. Par exemple, dans le cas des engrenages, il s'agit de la surface plane de l'engrenage, de la partie dentée et du trou au centre. Les éléments d'image qui apparaissent fréquemment ont une probabilité plus élevée que les éléments d'image occasionnels.

Ainsi, lorsque la fonction de perte est utilisée comme fonction de détection d'anomalies, le seuil de prise en compte des anomalies dans les images qui apparaissent fréquemment est plus grand que celui des images qui n'apparaissent qu'occasionnellement (dans les images qui apparaissent fréquemment, des anomalies apparaissent dans les images qui n'apparaissent qu'occasionnellement). Il sort plus souvent). Screenshot from 2020-03-25 17-23-20.png Figure 1. Illustration intuitive de la probabilité dans des images de produits industriels (à partir de papier)

Les articles suivants proposent des méthodes qui peuvent éliminer les effets de la complexité et de la fréquence des groupes auxquels appartiennent les images. En utilisant cela, il est possible de détecter des anomalies dans les images de produits industriels complexes (objets présentant des anomalies même dans des pièces simples).

・ Détection d'anomalies des produits industriels à l'aide du degré d'anomalie dénormalisé par modèle de génération profonde (https://confit.atlas.jp/guide/event-img/jsai2018/2A1-03/public/pdf?type=in)

La fonction de perte de VAE est Screenshot from 2020-03-25 17-24-58.png Il peut être exprimé par. (D'après le journal)

Généralement, cette fonction de perte $ L_ {VAE} $ est utilisée pour évaluer la détection d'anomalies VAE. En soustrayant $ D_ {VAE} $ et $ A_ {VAE} $ de $ L_ {VAE} $ pour faire $ M_ {VAE} $, il a été amélioré afin que les anomalies puissent être jugées avec le même seuil.

$ M_ {VAE} $ a le carré de la différence entre la moyenne des données $ x $ et la différence des données $ x $ dans la molécule, et a un écart type de $ \ sigma_x $ qui représente potentiellement l'incertitude et la complexité des données $ x $. C'est une fonction qui a un dénominateur. Comme nous le verrons plus loin, $ σ_x $ dans le dénominateur de cette $ M_ {VAE} $ est trop petit, ce qui pose des problèmes. Les méthodes couvertes dans cet article sont expliquées en détail dans les articles suivants, veuillez donc vous y référer.

・ Détection d'anomalies des images à l'aide du codeur automatique variationnel, partie 1 (https://qiita.com/shinmura0/items/811d01384e20bfd1e035)

Détectons immédiatement les anomalies en utilisant cette méthode.

résultat de l'inspection

Un petit engrenage blanc a été utilisé comme cible pour la détection d'anomalies. L'image résultante est de la gauche ・ Une image montrant la partie anormale avec une carte thermique · L'image originale est.

![Screenshot from 2020-03-25 19-47-42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/608276/73095215-80f4-b153-87f4-61af7223accf.png)

<Image 1 avec anomalie> Anormal: dent droite manquante Screenshot from 2020-03-25 19-48-15.png

<Image 2 avec anomalie> Anormal: toutes les dents sont usées Screenshot from 2020-03-25 19-49-13.png

Il détecte une pièce anormale (la pièce où les dents de l'engrenage sont manquantes), mais Un jugement d'anomalie est également apparu sur la partie normale (la surface de l'engrenage blanc).

hypothèse

En VAE, l'écart type $ \ sigma_x $ est ajusté par rapport à l'incertitude de reconstruction pour que $ A_ {VAE} $ et $ M_ {VAE} $ soient équilibrés. (D'après le journal)

Au fur et à mesure que l'apprentissage progresse dans le sens de la réduction de la fonction de perte, il est peu probable que $ M_ {VAE} $ soit dans un état important au moment de l'apprentissage.

Au moment de l'apprentissage, le vecteur moyen $ \ mu_x $ est aussi proche que possible de $ x $, et même si $ \ sigma_x $ est une très petite valeur, $ M_ {VAE} $ peut être maintenu petit, donc $ au moment de la détection d'anomalie. Si (\ mu_x-x) ^ 2 $ grandit encore un peu, on pense que $ M_ {VAE} $ va sauter. Nous chercherons une solution ci-dessous.

Solution (extension des données)

L'apprentissage se déroule dans le sens de l'abaissement de la fonction de perte. D'un autre côté, les données gonflées font qu'il est difficile pour $ \ mu_x $ et $ x $ de s'approcher l'un de l'autre pendant l'apprentissage. Cela évitera que $ σ_x $ ne devienne trop petit.

modèle 1

Ajoutez une image avec la valeur RVB de chaque pixel de l'image d'origine réduite de 2 (4,6,8,10) aux données. La quantité de données sera de 6 fois.

Image avant le traitement Image avec 10 soustraits de chacun des RVB Screenshot from 2020-03-25 17-32-49.png

![Screenshot from 2020-03-25 19-49-49.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/608276/ca1d1d4b-12c9-dbdf-db88-bf51ec8ffb0e.png)

<Image 1 avec anomalie> Anormal: dent droite manquante Screenshot from 2020-03-25 19-50-50.png

<Image 2 avec anomalie> Anormal: toutes les dents sont usées Screenshot from 2020-03-25 19-51-10.png

Hmm. Il est jugé à tort anormal.

Motif 2

J'ai ajouté du bruit de poivre salé, qui est communément appelé. Le rapport des points blancs aux points noirs est de 1: 1. Image avant traitement: rapport de bruit 0,4% Screenshot from 2020-03-25 17-38-00.png

![Screenshot from 2020-03-25 19-53-20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/608276/fad126f5-bdb5-fe2c-11f3-c00ebd0b0454.png)

<Image 1 avec anomalie> Anormal: dent droite manquante Screenshot from 2020-03-25 20-14-15.png

<Image 2 avec anomalie> Anormal: toutes les dents sont usées Screenshot from 2020-03-25 19-55-08.png

Ça fait du bien. Il n'est pas complètement supprimé, mais la carte thermique de la partie normale a diminué.

Considération

Les résultats pour le modèle 2 sont positifs, et on peut voir que l'expansion des données crée une diversité dans les données, créant une différence entre $ μ $ et $ x $ et ne rendant pas $ σ $ trop petit. J'ai fait. L'utilité de l'expansion des données pour ce problème de détermination erronée de la partie normale a été démontrée.

En outre, étant donné que le modèle 1 n'améliorait pas la précision, il a été constaté qu'il y a des cas où l'on peut dire qu'il est utile même dans l'expansion des données. En ce qui concerne l'expérience de vérification menée cette fois, il est préférable de fournir des pixels blancs (0,0,0) ou noirs (255,255,255) comme images différentes que de réduire uniformément RVB et d'éviter le surapprentissage. On peut dire que c'était possible. Par conséquent, l'extension de l'image avec une luminosité modifiée n'affecte pas les informations de forme et n'affecte pas la complexité intrinsèque, tandis que l'extension de l'image du bruit de poivre salé modifie les informations de forme et est intrinsèquement compliquée. On pense que cela a fonctionné efficacement parce que le nombre de personnes a augmenté. Par conséquent, bien qu'il s'agisse d'une étape hypothétique, des images avec des informations de forme modifiées peuvent être plus utiles pour l'expansion des données.

En conclusion, l'expansion des données peut empêcher la sous-estimation de l'écart type de la couche de sortie $ σ $ dans les techniques de détection d'anomalies utilisant des termes anormaux. Le fait d'utiliser ou non une image avec des informations de forme modifiées pour l'expansion des données peut être lié à l'efficacité. Tu peux dire ça.

Après le stagiaire

Malgré la courte période d'un mois, j'ai pu en apprendre davantage sur l'apprentissage automatique. Pros Cons développe une IA d'inspection visuelle pour les produits industriels appelée Gemini eye. Ce fut une expérience très enrichissante pour moi d'être impliquée dans le travail sous la forme du travail de benchmarking. Merci de travailler dans une entreprise chaleureuse.

Recommended Posts

Envisagez d'améliorer la précision de la détection des anomalies VAE
Considérez la description de Dockerfile (Django + MySQL②)
10 méthodes pour améliorer la précision de BERT
Prenons la description de docker-compose.yml (Django + MySQL ③)
À propos de la précision de la méthode de calcul du rapport de circonférence d'Archimède
[Apprentissage automatique] "Détection d'anomalies et détection de changement" Dessinons la figure du chapitre 1 en Python.
Diminuer le nom de classe de l'affichage des résultats de détection de la détection d'objets