前言

排名第二(这是papers with code统计的发表在MVTec数据集的论文排名。)

模型原理

思想:以往采用的记忆库的方式做异常检测都采用预训练网络,CFA也是,但同时也会有针对正常数据集的训练,这样可以避免预训练网络范化性太强带来的偏差。还提出了一种记忆库的制作方法,可拓展到任意大小的记忆库。

耦合超球体的含义可以从这篇论文中理解到,相当于那种电子原子结构,原子是记忆库,电子是训练集或测试集。

迁移学习:ResNet是在大的自然数据集上训练出来的,具备了先验知识,可以提取得到图像的先验特征。就是个预训练网络提取特征,叫迁移学习是做个包装罢了。

文中出现的量按官方给的取,比如张量,CNN的选择等,这样想着能好理解一些。

Patch descriptor及之前的操作

之前的操作

正常图像数据集经ResNet网络提取特征,形成三个张量[4,64,56,56],[4,128,28,28],[4,256,14,14],每个张量经平均池化,后两个张量再经上采样,三个张量合并后形成张量[4,448,56,56]。

Patch descriptor

构建两个张量xx/yy:[4,1,56,56],内部数值(0~55)如下,yy张量相当于xx的转置。再将内部的每个数值除55乘2减1,合并到张量[4,448,56,56]形成[4,450,56,56]。经卷积形成张量[4,448,56,56],取名为A1。

Compression-->Memory bank

一个batch为4,可以形成A1,将所有的A1求平均形成张量[1,448,56,56],再转化为张量[448,3136],取名为B1。

上面是源码中的一个方法,原论文还介绍了一种数据库更新方法,也在源码中有体现,但默认没使用。

NN Search

A1张量转化形状[4,3136,448]后,其中每个值求平方再在维度层面相加形成张量A2[4,3136,1];B1张量每个值求平方再在维度层面相加形成张量B2[1,3136]。A2与B2相乘再乘2(可以想象一下两个矩阵的相乘,相当于每张图的像素值与总体图的像素值乘了一下。)形成张量C1[4,3136,3136],A2与B2相加(以矩阵相乘的形式相加)形成张量C2。

C2-C1形成D1,D1求根号以行为方向每个像素位置处返回最小的K(3)个值(形成超球),通过softmin为这三个值加权,再取第一个值形成张量D2[4,3136,1],形成分数图S[4,1,56,56]。

损失函数

上面的操作返回6个,选前3个 使用损失函数(Euclidean distance),选后3个使用损失函数(Hard negative features)

用两个损失函数,一个从圈(超参数r)外让超球逼近r,一个从圈内让超球逼近r,两者结合再利用超参数限制一下,达到训练效果。

在一个像素位置会产生许多超球,这里只是选择最小的三个值构成超球,在这三个值中,任何一个都可能在后三个超球里,这样不就在检测异常区域时使得该区域检测不稳定了,所以加入后三个值的训练使这个模糊的值也限制住(理解的,不一定对...)。

实验

对比实验:在MVTec和RD-MVTec(数据增强后的)数据集上用不同模型做实验。

消融实验:使用不同损失函数/不同的记忆库大小/不同的backbone。

补充

PatchCore/PaDiM/SPADE(采用类似的记忆库的方法。)

问题(请教请教啊,搞不懂--_--)

Patch descriptor 里的维度增加了两个由448到500,那个操作是为了什么呢?

CFA【异常检测:Embedding_based】相关推荐

  1. 异常检测算法:Isolation Forest

    iForest (Isolation Forest)是由Liu et al. [1] 提出来的基于二叉树的ensemble异常检测算法,具有效果好.训练快(线性复杂度)等特点. 1. 前言 iFore ...

  2. 一文掌握异常检测的实用方法 | 技术实践

    作者 | Vegard Flovik 译者 | Tianyu 责编 | Jane 出品 | AI科技大本营(ID: rgznai100) [导读]今天这篇文章会向大家介绍几个有关机器学习和统计分析的技 ...

  3. KDD Cup 2021 时序异常检测总结!

    ↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 方向:时序异常检测,来源:Coggle 赛题描述 KDD Cup 202 ...

  4. 6种时序异常检测思路总结!

    ↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 内容:异常检测,来源:Coggle数据科学 时序异常检测并不困难,如果你 ...

  5. 使用计算机视觉来做异常检测!

    ↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 作者:Mia Morton,来源:AI公园 导读 创建异常检测模型,实现 ...

  6. CMU赵越 关于异常检测的分享!

    ↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 作者:赵越,卡内基梅隆大学,Datawhale特邀 作者信息 知乎微调: ...

  7. CMU赵越:异常检测的算法、案例和落地

    ↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale线上 分享:赵越,卡内基梅隆大学   研究方向:异常检测等 东南大学微软技术俱 ...

  8. 时序预测竞赛之异常检测算法综述

    本文将介绍在时间序列预测相关问题中常见的异常检测算法,可以很大程度上帮助改善最终预测效果. 异常分类 时间序列的异常检测问题通常表示为相对于某些标准信号或常见信号的离群点.虽然有很多的异常类型,但是我 ...

  9. 利用Kafka和Cassandra构建实时异常检测实验

    导言 异常检测是一种跨行业的方法,用于发现事件流中的异常事件 - 它适用于物联网传感器,财务欺诈检测,安全性,威胁检测,数字广告欺诈以及许多其他应用程序.此类系统检查流数据以检查异常或不规则,并在检测 ...

最新文章

  1. 安装exchange server 2003服务器
  2. 修复 SyntaxHighlighter 3.0.83 Java 代码多行注释 Bug
  3. 粉色温馨——HTML框架示例
  4. 信号量释放和等待函数sem_post()和sem_wait()
  5. PHP环境安全性能检查
  6. bert关键词提取_BERT可以上几年级了?Seq2Seq“硬刚”小学数学应用题
  7. Linux分区的那些方案
  8. c语言 符号怎么,c语言怎么说明符号
  9. Flowable入门系列文章39 - 网关 01
  10. js二次压缩工具nodejs版
  11. 编程入门先学什么小白想入门看这里
  12. 解决github图片无法访问问题(DNS污染)
  13. 零基础入门学习HTML(下)
  14. 23种设计模式中英文对照
  15. python添加背景图片_Python实例 tkinter canvas (设置背景图片及文字)
  16. Xmy的Python----Numpy库
  17. OpenStack组件部署之Placement
  18. 如何搭建符合企业数字化电商解决方案之理解建议
  19. Ubuntu18.04安装QQ、网易云音乐、百度云盘、搜狗输入法
  20. 论文封面摘要目录不设置页码-word2013

热门文章

  1. 智能车K60学习笔记
  2. 【Designing ML Systems】第 10 章 :MLOps 的基础设施和工具
  3. java编程手册破解版,值得收藏!
  4. php++i和i++区别_PHP和i,第1部分
  5. 【蓝桥杯】2015初赛 三羊献瑞
  6. 87: 企业监控系统部署 、 搭建Harbor私有仓库 、 总结和答疑
  7. 图文并茂:推荐算法架构——粗排
  8. 无监督聚类算法该如何评价
  9. python中查找文件当前位置_如何查找当前目录和文件目录
  10. python 构造函数里的同名变量_Python22个构造函数法-助力数据挖掘与分析