본문 바로가기

Machine Learning Tasks/Anomaly Detection

Deep One-Class Classification

반응형

이 논문은 ICML 2018에 발표된 논문으로 이전의 이상 탐지는 One Class SVM (OC-SVM) 이나 Kernel Density Estimation (KDE) 등의 전통적인 방법을 사용하거나 다른 목적으로 훈련된 deep neural networks를 이상 탐지에 전용하여 사용했습니다. 이 논문은 이상 탐지를 위해 밑의 그림과 같은 Deep Support Data Description (Deep SVDD) 모델을 제안합니다.

위 그림을 보시면 Deep SVDD는 $\phi(;W)$로 표현된 neural networks 가 데이터 $X$를 feature space $F$로 변환합니다. 변환할 때, 대부분의 데이터가 feature space 상의 중심 $c$에서 반경 $R$을 가진 hypersphere 안에 위치하도록 매핑하고 hypersphere 바깥에 위치한 점을 anomaly 라 간주합니다.

Kernel-based one-class classification

기존에 많이 사용하였던 kernel 기반의 이상 탐지 알고리즘은 특정 kernel $k: X\times X \to [0,\infty]$에 대해 Reproduce Kernel Hilbert Space (RKHS) $F_k$와 feature mapping $\phi_k: X \to F_k$를 정의합니다. 이 방법에는 크게 OC-SVM 과 SVDD 가 있습니다.

One-class svm

OC-SVM 은 feature space 상에서 데이터를 원점과 가장 잘 분리하는 최대 마진 hyperplane을 찾습니다. Kernel-SVM이 두 클래스를 분류하는 마진을 최대로 갖는 hyperplane을 찾는 것과 같은 원리이죠. 주어진 데이터 $D_n={x_1, ..., x_n}$에 대해 OC-SVM 은 다음의 최적화 함수를 갖습니다.

위 식에서 $\rho$는 hyperplane $w$와의 거리를 말하며 slack variable $\xi_i$는 soft 마진을 위한 항으로 hyperplane에서 $\xi_i$ 안쪽으로 데이터가 위치할 경우 페널티를 가하지 않습니다. OC-SVM 은 데이터가 feature space 상에서 원점과 멀게 분리되는 hyperplane을 찾는 것이기 때문에 $<w, \phi_k (x_i)>_{F_k}  <  \rho$ 인 지점들이 anomaly로 간주됩니다. 

Support vector data description

SVDD는 데이터를 잘 구분하는 hyperplane을 찾는 OC-SVM과는 다르게 데이터를 잘 구분하는 hypersphere를 찾습니다. 즉, 밑의 수식처럼 대부분의 데이터를 감싸는 feature space 상의 중심이 $c$, 반경이 $R$인 hypersphere를 찾는 것이죠. OC-SVM 처럼 $\xi_i$ 는 soft 마진을 위한 항이며 $\Vert \phi_k (x_i) - c\Vert_{F_k}^2 > R^2$ 인 데이터가 anomaly로 간주됩니다.

OC-SVM과 SVDD에서 공통된 $\nu \in (0,1]$ 파라미터는 기본적으로 목적 함수의 계수를 조절하는 역할을 하며, 더 나아가 anomaly의 비율의 상한이 됩니다. 즉, 데이터에서 anomaly 비율을 미리 알 수 있다면 $\nu$를 그에 맞게 조절할 수 있다는 것이죠. 

위 두개 방법들은 기본적으로 kernel 기반의 방법론이다 보니 데이터가 늘어날 수록 연산량이 4제곱만큼 증가하게 되어 데이터가 많을 경우 연산량 측면에서 매우 불리해집니다. 

 

Deep SVDD

Deep SVDD는 기본적으로 kernel-based SVDD와 대부분의 데이터를 감싸는 가장 작은 feature space 상의 hypersphere를 찾는다는 점에서 굉장히 유사합니다. 다만 kernel 대신 neural networks를 사용한 것이죠. 즉, neural networks의 파라미터 $W$를 최적화시키면서 동시에 대부분의 데이터를 감싸는 hypersphere를 최소화하는 방향으로 훈련됩니다.

Soft-boundary Deep SVDD

먼저 soft-boundary Deep SVDD 목적 함수를 다음과 같이 정의합니다.

Kernel SVDD와 마찬가지로 hypersphere의 볼륨 $R^2$를 최소화하면서 두번째 항에서 hypersphere의 바깥에 있는 데이터에 대해 페널티를 가합니다. $\nu$는 위에서 언급했듯이 outlier의 비율을 조절합니다.

훈련이 잘 되었다면 neural networks는 대부분의 데이터의 공통된 feature를 잘 추출하여 hypersphere의 중심 $c$ 근방으로 매핑할 것입니다. 따라서 정상적인 데이터는 hypersphere의 안쪾에 있고 비정상적인 데이터는 hypersphere의 중심에서 멀어지게 되는 것이죠. 이러한 방법을 통해 정상적인 데이터의 compact 한 feature space 표현을 얻고 이를 기반으로 이상 데이터를 탐지할 수 있습니다.

One-Class Deep SVDD

더 나아가 조금 더 간단한 One-Class Deep SVDD 목적 함수를 다음과 같이 정의합니다.

위 수식에 비해 직관적으로 더 와닿는 목적 함수임을 알 수 있습니다. 이 목적 함수의 첫 번째 항을 보면 데이터의 feature representation인 $\phi (x_i;W)$와 중심 $c$와의 거리를 직접적으로 최소화하는 것을 알 수 있습니다. Soft-boundary Deep SVDD와 마찬가지로 데이터를 중심 $c$의 근방으로 매핑하기 위해서 데이터의 공통된 feature를 잘 추출해야 함은 동일합니다. 

Anomaly score

여기서 자연스럽게 테스트 데이터에 대한 anomaly score를 다음과 같이 정의할 수 있습니다. 즉, neural networks를 통과한 $\phi (x_i;W)$와 $c$와의 거리가 anomaly score가 되어 거리가 클 수록 anomaly라고 판단할 수 있는 것이죠.

Soft-boundary Deep SVDD 에서도 마지막 $R^*$을 $\phi (x;W^{*})$에서 빼주면 anomaly는 양수, 정상 데이터는 음수를 가지게 될 것입니다. Deep neural networks를 통해 빠른 inference를 함으로써 kernel 기반 방법들에 비해 더 효율적으로 이상 탐지를 할 수 있습니다.

 

Optimization of Deep SVDD

위 수식에서 중요한 점을 hypersphere의 중심 $c$가 미리 정의된다는 점입니다. $c$를 어떻게 정의하고 모델을 어떻게 구성하여야 될까요? 먼저 Soft-boundary Deep SVDD 는 $W,R$을 동시에 최적화하는데, $W,R$의 scale이 보통 다르므로 $W, R$을 각각 alternative 하게 훈련합니다. 즉, $R$를 고정시키고 $W$을 일정 epoch 만큼 최적화하고 특정 epoch마다 $W$을 고정시키고 $R$를 최적화시킵니다. 

Deep SVDD를 위한 neural networks 구성과 $c$는 모델 최적화에 굉장히 중요합니다. 논문에서는 다음과 같은 Deep SVDD가 갖춰야할 property들을 정의합니다.

All zero weights solution

네트워크의 모든 파라미터가 0일 때, 모든 데이터들이 특정한 한 점으로 매핑되는 hypersphere collapse 현상이 일어날 수 있습니다. 즉, neural networks가 상수 함수처럼 모든 점을 특정 상수로만 mapping하게 된다는 점이죠. 이는 네트워크의 모든 파라미터가 0이므로 목적 함수를 최소화하는 (0이 되는) trivial한 hypersphere의 중심이 ($c_0$) 있을 때 이런 현상이 발생합니다. 즉, 우리가 $c$를 정할 때, trivial한 솔루션이 ($c=c_0$) 되지 않도록 잘 정해야 한다는 것이죠.

논문에서는 실험적으로 훈련 데이터의 일부분을 훈련되지 않은 neural networks 의 통과시킨 feature representation의 평균으로 $c$를 고정합니다. 결론적으로 $c\neq c_0$가 되도록 $c$를 잘 정의해줘야 합니다.

Bias terms

이것은 어떤 $c$가 고정되었을 때, neural networks에 bias term이 있다면 hypersphere collapse가 발생한다는 것입니다. 이것도 마찬가지로 네트워크의 모든 파라미터가 0이라면 bias 파라미터가 목적 함수를 최소화하기 위해 모든 데이터에 대해 상수 함수처럼 행동하도록 훈련된다는 것으로부터 유도할 수 있습니다. 즉, bias term 이 단순한 상수 함수가 되버린다는 것이죠. 따라서 Deep SVDD에서는 neural networks에 bias term을 사용하지 않습니다.

Bounded activation functions

이 특징은 간단하게 말해 sigmoid나 tanh 처럼 위아래가 bounded 된 활성 함수를 사용하면 안된다는 것입니다. 즉, 모든 입력 데이터에 대해 공통된 부호를 가진 feature가 존재한다면 bounded 활성 함수가 포화되고 이로 인해 위에 언급한 bias term이 활성화되어 hypersphere collapse를 유발한다는 것입니다. 따라서 Deep SVDD에서는 ReLU 활성 함수를 사용합니다.

$\nu$ property

이것은 kernel-based 이상 탐지 모델에서의 $\nu$ 처럼 soft-boundary Deep SVDD의 $\nu$ 또한 비슷한 특성을 가진다는 것을 보입니다. 즉, $\nu$는 outlier 비율의 상한이 된다는 것입니다. Hypersphere 상에서 $c$와의 거리를 $d_i$=$\Vert\phi (x_i;W) - c\Vert^2$ 라 하면 $d_i > R^2$인 포인트들을 outlier라 생각할 수 있습니다. 따라서 soft-boundary Deep SVDD의 목적 함수를 다음과 같이 생각할 수 있습니다. $n_{out}$은 outlier의 개수이고 soft-boundary Deep SVDD의 목적 함수가 hypersphere에 바깥에 위치한 점들에 대해서 적용된다는 점을 생각하면 됩니다.

이때, $J_{soft} (R)$은 0보다 커야 되므로 $n_{out} \leq \nu n$을 만족하는 이상 $R$이 줄어들게 됩니다. 즉, $\frac{n_{out}}{n} \leq \nu$가 되면서 $R^*$는 이 수식이 만족하는 최대의 $n_{out}$에 대해 주어지게 됩니다. ($R$ 이 줄어들수록 $n_{out}$이 늘어나기 때문입니다) 따라서 $\nu$는 outlier 비율의 상한이 되게 되며 이를 통해 이상 비율의 사전 지식을 반영할 수 있습니다.

 

Experiment

MNIST and CIFAR-10

MNIST와 CIFAR-10은 각각 10개의 클래스를 가지고 있습니다. 이상 탐지에서의 실험은 기본적으로 하나의 클래스를 정상, 나머지 클래스들을 이상이라 가정하고 실험합니다. 실험 결과는 다음과 같습니다.

몇 개의 클래스를 제외하면 one-class Deep SVDD의 성능이 제일 좋은 것을 알 수 있습니다. 이는 soft-boundary Deep SVDD 보다 일관적으로 더 좋은 성능을 나타내는데 이는 one-class Deep SVDD 에서는 전체 데이터가 모두 정상 데이터라고 가정하기 때문입니다.

Adversarial attack

Adversarial attack은 neural networks가 어떠한 판단을 내리는데 가장 방해하는 방향으로 입력을 조작하는 행위로 다음 그림에서 초록색 사각형으로 표시된 것이 adversarial example 입니다.

이를 통해서 neural networks의 강건성을 측정할 수 있습니다. 이 실험에서는 adversarial 하게 조작된 입력을 anomaly로 판단하는 실험으로 다음 실험 결과에서 알 수 있듯이 one-class Deep SVDD의 성능이 제일 좋은 것을 확인할 수 있습니다. 

 

참조

반응형