일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- DeepLearning
- pytorch project
- darknet
- RCNN
- SVM margin
- pytorch c++
- CS231n
- Faster R-CNN
- Object Detection
- pytorch
- computervision
- cs231n lecture5
- Computer Vision
- yolo
- SVM 이란
- SVM hard margin
- EfficientNet
- support vector machine 리뷰
- libtorch
- yolov3
- TCP
- 서포트벡터머신이란
- Deep Learning
- svdd
- fast r-cnn
- 데이터 전처리
- 논문분석
- cnn 역사
- CNN
- self-supervision
- Today
- Total
아롱이 탐험대
Deep One-Class Classification 분석 본문
1. Motivation
위 논문은 18년도 ICML 학회에서 나온 논문이다. 이전까지의 Anomaly detection 분야는 주로 SVM (Support Vector Machine)과 SVDD (Support Vector Data Description)과 같은 전통적인 방법을 통해 해결하였다.
이 논문은 Anomaly detection을 SVDD에 기반으로 딥러닝을 적용하였다.
2. Relation works
Deep One-Class Classification에서 등장하는 가장 중요한 이론인 Deep SVDD를 이해하기 위해서는 SVDD에 대한 사전 지식이 필요하다.
SVDD를 간단하게 요약하면 feature space에서 정상에 해당하는 데이터를 둘러싸는 Hypersphere를 찾고, 해당 Hypersphere의 boundary를 통해 정상과 비정상 데이터를 구분하는 방법이다.
SVDD는 input space에 존재하는 x들을 phi k 함수를 통해 F k라는 feature로 mapping을 시킨다.
이에 대한 mapping 결과로 가장 작은 구를 구해 정상과 비정상의 경계선인 boundary를 결정하게 된다.
구를 표현할 때에는 c와 R 그리고 xi를 파라미터로 설정한다.
Parameter
c: 구의 중심
R: 반지름
xi: soft margin
Hyperparameter
phi k: kernel function, feature mapping 함수
v: trade-off value, outlier 조절
여기서 Parameter는 가장 작은 구를 찾기 위해 사용되고, Hyperparameter는 경곗값을 찾는 파라미터로 생각하면 된다.
위 objective 식을 살펴보면 왼쪽에 위치한 R^2의 최소 값인 term 1은 가장 작은 구를 찾기 위함이고 오른쪽 term 2는 normal과 abnormal의 경계를 결정해준다.
kernel function을 통해 mapping 된 input의 feature들과 구의 중심의 차이가 R^2에 xi i를 더한 것보다 작다고 정의한다.
한마디로 구의 중심과 feature 사이의 값보다 크게 되면 abnormal로 정의가 되는데, xi i는 normal과 abnormal을 결정해주는 상한선이라고 생각하면 된다.
따라서 이를 통해 objective function을 결정하여 normal, abnormal을 구분할 수 있다.
SVDD는 기본적으로 kernel based model이기 때문에 데이터가 늘어날수록 연산량이 4 제곱만큼 늘어나 데이터가 많을 경우 연산의 비효율성이 발생한다.
3. Deep SVDD
Deep SVDD는 기존 SVDD를 딥러닝 기반으로 한 방법론이다.
SVDD와 가장 차이나는 부분은 위 그림과 같이 기존 Kernel function을 딥러닝으로 바꾼 것이다.
위 수식을 비교해 보면 달라진 점은 c, v가 hyperparameter로 변경, xi i가 해당과 같이 변환되었다는 점, 가중치에 대한 정규화도 추가된 점이다.
각 식을 왼쪽부터 해석해보면 구의 부피를 최소화, 두 번째는 point에 대해 penalty 부여, 3번째는 weight reularize 진행이다.
최종적으로는 이 식을 통해 목적 함수를 최적화하고, w는 정상 데이터의 공통적 feature를 추출하여 각 데이터 point를 구의 중심 c에 가깝게 mapping 하도록 만든다.
하지만 대부분의 데이터가 정상이라고 가정한다면 식을 더 간단하게 변경할 수 있다.
위 목적 함수를 살펴보면 최적화를 통해 w는 각 데이터 point를 구의 중심 c에 가깝게 더 직접적으로 mapping 하도록 학습하는 모습을 볼 수 있다.
위 목적 함수를 통해 test dataset에 대한 anomaly score도 위 수식과 같이 정의할 수 있습니다. Neural network를 통과한 phi 함수와 c의 거리가 anomaly score가 되어 정상, 비정상을 판단할 수 있다.
앞서 말한 바와 같이 Deep SVDD의 목적 함수에서 hypersphere의 중점인 c는 hyperparameter이다. Soft-boundary Deep SVDD에서는 W와 R을 동시에 최적화하는데, W과 R의 scale이 다르므로 각각 교대로 최적화를 진행한다.
R을 고정하고, k epoch 동안 backpropagation을 통해 W를 업데이트한다. k번째 epoch에서는 lastest updated W를 기반으로 line search를 통해 R을 업데이트한다.
4. Trival Solution
(1) hypersphere collapse
네트워크의 모든 파라미터가 0일 때, 모든 데이터들이 특정한 점으로 매핑되는 문제가 일어날 수 있다. 이를 방지하기 위해 C를 정상 데이터의 가장 대표적인 feature로 설정해야 한다.
Deep SVDD와 비슷한 모델인 CAE의 pretrain 된 encoder parameter를 가중치로 초기화한다.
(2) Bias terms
어떤 c가 고정되어 있을 때 NN에 bias term이 있다면 hypersphere collapse가 발생한다. 이도 마찬가지로 모든 파라미터가 0이면 bias parameter가 결국에는 단순한 상수가 되어버리는 문제가 있다는 것이다. 따라서 이 논문에서는 bias term을 사용하지 않았다.
(3) Bounded activation functions
sigmoid나 tanh와 같이 부호가 다른 영역이 존재하는 activation function을 사용하였을 때, 모든 입력 데이터에 대해 공통된 부호를 가진 feature가 존재한다면 activation function이 포화가 되고, 이로 인해 bias term이 활성화되어 hypersphere collapse를 유발한다.
따라서 activation function은 relu를 사용한다.
5. Experiment
6. Reference
1. http://proceedings.mlr.press/v80/ruff18a.html
'study > paper reviews' 카테고리의 다른 글
Deep semi-supervised anomaly detection (Deep SAD) 분석 (0) | 2021.10.25 |
---|---|
Self-Supervised GANs via Auxiliary Rotation Loss 분석 (0) | 2021.07.22 |
Unsupervised Anomaly Detection with GAN to Guide Marker Discovery 분석 [AnoGAN] (0) | 2021.07.21 |
Auto-Encoding Variational Bayes (VAE) 분석 (2) | 2021.07.14 |
CNN attention based networks (2) | 2021.03.12 |