对于缺陷检测的问题,由于缺陷数据天然难以获得,所以需要在方法特殊处理来弥补数据上的不足。
方法上有两种思路
- 使用GAN网络来生成数据
- 使用One Class Classification 方法
One Class Classification相关方法
- One-class SVM方法
用autoencoder、预训练的网络或者传统图像处理方法提取feature,然后使用One-class SVM建立模型
具体参考One-class SVM文档 - Learning Deep Features for One-Class Classification
这篇论文提出了两个loss来解决One-Class Classification的问题,一个是Descriptiveness loss,另一个是Compactness loss。
Compactness loss用来使在目标类别上学习到的feature相互近似,也就是说这些feature集中在高维空间中的一个比较小的区域之内。Compactness loss的计算方法类似与方差,但是论文中在用样本减去均值的时候,这个均值是用除当前样本之外的其他样本计算出来的均值。
Descriptiveness loss用来描述feature区分不同类别物体的性能,论文中使用的就是feature 在Multi-Class Reference Dataset (ImageNet)上面分类的cross entropy loss。在模型训练的时候,先加载一个batch的Reference Data,计算Descriptiveness loss,然后加载一个batch的目标One Class Data计算Compactness loss,然后总的loss为Descriptiveness + 0.1 * Compactness loss。 用这个loss去训练网络,得到feature提取网络,然然后可以配合分类器实现One-Class Classification。个人感觉这个方法类似与训练一个多分类器,但是在One-Class Classification所关心的数据类别上提高了类别权重。 - Anomaly Detection using One-Class Neural Networks
就是一个NN,但是loss参照了svm
网友评论