일반적으로 anomaly detection은 비지도 학습을 가정합니다. 무엇이 정상이고 비정상인지 모르지만 대부분의 데이터가 정상일 것이다라고 가정하고 학습을 진행합니다. 하지만 이상 탐지 문제에서 도메인 전문가들에 의한 라벨 데이터가 주어지는 경우도 많습니다. 즉, 라벨이 되어 있지 않은 데이터 이외에도 정상, 비정상 라벨이 되어 있는 데이터도 존재하는 것이죠. 이 논문은 정상, 비정상으로 라벨링된 데이터를 포함한 semi-supervised 이상 탐지 방법론을 제안하여 라벨링된 데이터를 이용해 기존 비지도 학습 기반 이상 탐지보다 더 높은 성능을 보였습니다.
먼저 semi-supervised (준지도) 의 개념을 먼저 짚고 넘어가야합니다. 준지도 학습은 라벨링되지 않은 데이터와 라벨링된 데이터 모두 사용하는 방법으로 일반적으로 classification 문제에 적용됩니다. Classification에서는 보통 비슷한 데이터는 같은 클래스임을 가정하는 cluster assumption 기반으로 준지도 학습이 적용됩니다. 하지만 이상 탐지에서는 정상 데이터에 대해서는 cluster assumption 이 옳지만 비정상 데이터가 꼭 비슷할 필요는 없습니다. 따라서 이상 탐지에서는 정상 데이터에 대해 compact 하면서 비정상을 잘 구분할 수 있는 feature space 로의 매핑이 중요합니다.
먼저 일반적인 지도 학습과 비지도 학습의 차이를 정보 이론 측면에서 살펴보겠습니다.
An information-theoretic view
입력 $X$와 잠재 변수 $Z$ (deep neural networks가 입력을 받아 마지막에 표현한 feature), 출력 $Y$에 대한 지도 분류 학습은 Information Bottleneck principle 이 적용됩니다. 이는 deep neural networks가 입력 $X$가 최소한으로 압축된 표현 $Z$를 찾으면서 동시에 $Z$로 $Y$를 잘 예측할 수 있게 학습된다는 것입니다. 정보 이론으로 표현하면 다음과 같이 $I(X;Z)$를 최소화하면서 동시에 $I(Z;Y)$를 최대화하는 방향으로 학습된다는 것이죠.
이에 반해 비지도 학습에서는 $Y$가 존재하지 않으므로 Infomax principle이 적용됩니다. 즉, 다음과 같이 $X$와 $Z$의 mutual information이 최대화하는 방향으로 학습하는 것이죠.
여기서 $R(Z)$는 잠재 변수에 가해지는 제약 조건으로 수행하고자 하는 태스크에 따라 달라집니다. Infomax principle은 클러스터링, 생성 모델 등의 일반적인 비지도 representation learning에 사용되며, 특히 auto-encoder 또한 복원 함수을 통해 암묵적으로 $I(X;Z)$를 최대화하는 방향으로 학습되다 보니 Infomax principle을 사용한다고 볼 수 있습니다. (Auto-encoder는 비선형적으로 데이터의 차원을 축소하므로 $x$와 $z$의 mutual information이 최대화 되도록 하면서 mutual information을 최대화 하는 것과 상관 없는 특징들은 떨어져 나가도록 훈련됩니다.)
결과적으로 classification을 통한 이상 탐지는 cluster assumption 으로 인해 훈련시 보았던 비슷한 이상치만을 구분하게 됩니다. 하지만 이상치라는 것은 정상이 아닌 것들을 통칭하는 말이고 여러 종류 혹은 기존에 못보았던 이상치도 충분히 존재할 수 있습니다. 이러한 측면에서 보았을 때, classification을 통한 이상 탐지는 부적합하게 되겠죠. 논문에서는 Infomax principle 을 기반으로 엔트로피를 기반으로 한 $R(Z)$를 통해 이상 탐지를 수행합니다.
Deep semi-supervised anomaly detection
Deep SVDD
먼저 같은 저자가 쓴 Deep SVDD에 대해 간략히 살펴 보겠습니다. 다음 수식과 같이 Deep SVDD는 비지도 기반 이상 탐지 알고리즘으로 데이터 $x_1, ..., x_n$ 을 neural networks $\phi(;W)$를 통해 feature space $Z$의 미리 정의된 hypersphere 중심 $c$ 근방으로 매핑하도록 하는 방법입니다.
Feature space상의 점과 중심 $c$와의 거리로 훈련되어, $c$ 근방으로 정상적인 데이터가 매핑되고 이상치 데이터는 $c$로부터 멀리 매핑됩니다. 이때, $c$는 미리 정의되는데 auto-encoder를 미리 훈련시키고 (pre-train) 입력 데이터의 인코더 forward pass의 평균으로 설정합니다.
Deep SVDD를 위에 언급한 정보 이론으로 어떻게 설명할 수 있을까요? 확률 변수 $Z$의 covariance $\Sigma$가 같다고 가정했을 때, Gaussian 분포의 엔트로피가 가장 크다는 성질과 (같은 $\Sigma$를 가진 확률변수 중 Gaussian 분포의 엔트로피가 가장 큽니다. Differential entropy) $Z$가 isotropic Gaussian 분포를 따른다고 가정하면 다음과 같이 해석이 가능합니다.
Deep SVDD는 feature space상의 점과 중심 $c$와의 거리를 줄이는 방향으로 학습되므로 분산을 줄이는 방향으로 학습된다고 볼 수 있고 이는 자연스럽게 엔트로피 $H(Z)$의 상한을 줄이는 것으로 생각할 수 있습니다. 또한 위에서 언급하였듯이, Deep SVDD는 $I(X;Z)$를 최대화하는 auto-encoder pre-training을 사용하므로 Infomax principle을 따르면서 $R(Z)$ 부분에 feature space가 compact하도록 엔트로피가 작아지게 강제하는 제약 조건이 추가된 것으로 해석할 수 있습니다.
Deep SAD
Deep SVDD에서 더 나아가 라벨링된 데이터를 포함하면 어떻게 될까요? $n$개의 라벨링되지 않은 데이터와 $m$개의 라벨링 데이터 (1은 정상, -1은 비정상)이 있다고 가정했을 때, Deep SAD의 목적 함수는 다음과 같습니다.
위 수식을 보면 $m=0$일 때 Deep SVDD로 환원되는 것을 알 수 있으며 $\eta$를 통해 라벨링, 라벨링 되지 않은 데이터에 따른 목적 함수 항의 계수를 조절합니다. 특히, $\hat{y}_j=-1$ (이상) 일 때 feature space 상의 거리의 역수가 줄어들도록 학습되는 것을 알 수 있습니다.
비정상으로 라벨링된 데이터에 대해서는 feature space 상의 거리의 역수 (inverse squared norm)을 목적 함수로 사용합니다. 이는 이 목적 함수가 기본적으로 bounded below 되어있으므로 negative squared norm loss, hinge loss 등의 다른 목적 함수에 비해 훈련에 안정적이기 때문입니다.
Deep SAD 또한 정보 이론 측면에서 어떻게 해석할 수 있을까요? Deep SAD는 정상 데이터에 대해서는 Deep SVDD와 마찬가지로 엔트로피를 최소화하는 방향으로 학습합니다. 다만 비정상 데이터에 대해서는 분산을 높이도록 학습되다 보니 엔트로피를 최대화하는 방향으로 학습된다고 생각할 수 있습니다. Anomaly 라는 것은 정상 데이터 분포에서 매우 먼 여러 가지 분포의 조합에서 오는 것이기 때문에 자연스럽게 엔트로피가 높다고 가정할 수 있어 본질적으로 옳은 방향이라고 생각할 수 있습니다. 또한, classification 에서처럼 cluster assumption을 가정하지 않습니다. 마지막으로 Deep SVDD에서 처럼 auto-encoder를 미리 훈련시키므로 Infomax principle 범주에 속하게 됩니다.
Experiment
실험은 MNIST, Fasion-MNIST, CIFAR-10 데이터로 진행하였으며, 공정한 비교를 위해 모두 LeNet 모델을 사용하였습니다. 실험은 다음 3가지 시나리오에 대해 수행되었습니다.
Adding labeled anomalies
이 시나리오에서는 라벨링된 데이터의 비율을 ($\gamma_l$) 늘려가면서 semi-supervsed 방법의 이득을 확인하는 실험입니다. 라벨링된 데이터는 이상으로 정의된 9개 클래스 중 한 클래스에서 샘플링 되었으며, 테스트 시에는 라벨링 되지 않은 나머지 8개의 이상 클래스 또한 고려되었습니다. 이 실험에서 라벨링되지 않은 훈련 데이터는 모두 정상이라 세팅합니다. 결과는 다음과 같습니다.
주목할 점은 supervised classifier의 결과가 Deep SAD에 비해 더 낮다는 점입니다. 이는 위에서 언급하였듯이 supervised classifier는 훈련 때 보았던 이상치에 대해서만 잘 구분할 뿐, 새로운 이상치에 대해서는 취약하다는 것을 알 수 있습니다.
Polluted training data
이 시나리오는 라벨링되지 않은 데이터의 일정 비율 ($\gamma_p$)을 이상치로 오염시킨 후의 결과를 확인하는 실험입니다. 이때, $gamma_l=0.05$로 가정하고 이상 라벨링 데이터는 한 개의 클래스에서만 샘플링시킵니다.
당연한 결과이지만 $\gamma_p$가 커질 수록 성능이 더 낮아집니다. 하지만 Deep SAD가 높은 $\gamma_p$에 대해서도 조금 더 견고한 것을 알 수 있습니다.
Number of known anomaly classes
위 두가지 시나리오에서 이상 라벨링 데이터를 추출할 때 이상 클래스 중 한 개의 클래스만 사용하였습니다. 이 실험에서는 이상 라벨링 클래스를 $k_l$을 증가시켰을 때의 성능 추이를 확인합니다. 이때, $\gamma_l=0.05, \gamma_p=0.1$로 고정합니다.
$k_l$이 증가할 수록 성능이 더 좋아지는 것을 확인할 수 있습니다. 특히, supervised classifier의 성능이 위 시나리오에 비해 비약적으로 상승한 것을 알 수 있습니다. 이는 supervised classifier가 이상치의 다양성에 민감하다고 볼 수 있으며, 또한 무수히 많은 이상치를 감지하는데 오히려 부적합하다고 결론지을 수 있습니다.
Sensitivity analysis
마지막으로 최적의 $\eta, d$를 찾습니다. 먼저 $\gamma_l=0.05, \gamma_p=0.1, k_l=1$로 고정시켰을 때의 $\eta$에 따른 성능 추이는 다음과 같습니다. $\eta$에 따른 성능 변동이 크게 없어 논문에서는 $\eta=1$로 고정시킵니다.
Feature space 차원 $d$ 에 대해서는 ${2^4,..., 2^9}$ 범주에 대해 실험했습니다. 밑의 그림을 보면 $d$가 커질수록 성능이 증가하는 추세를 볼 수 있는데 이는 d를 크게 카질 수록 $I(X;Z)$가 충분히 큰 값을 가질 수 있게 되기 때문입니다.
참조
'Machine Learning Tasks > Anomaly Detection' 카테고리의 다른 글
Local Outlier Factor (LOF) (0) | 2021.05.01 |
---|---|
RAPP (0) | 2021.04.30 |
Classification-based Anomaly Detection for General Data (0) | 2021.03.17 |
Deep Anomaly Detection Using Geometric Transformations (2) | 2021.03.16 |
Deep One-Class Classification (0) | 2021.03.14 |