1. 서론
이상치 탐지는 정상적인 데이터 분포에서 크게 벗어나는 데이터를 탐지하는 작업을 의미한다. 네트워크 침입 탐지, 자동 공정 고장 탐지, 불법 카드 사용탐지, 스마트 계량기 기반 전기 도둑 탐지와 같은 다양한 분야에서 적용되고 있다[1]. 이상치 탐지 방법은 탐지에 사용되는 기법에 따라서 거리 기반, 밀도기반, 트리 기반, 딥러닝 기반 방법 등으로 나눌 수 있다[2]. 그 중에서 k 번째 가장 가까운 이웃까지의 거리를 이용하는 이상치 탐지 방법은 거리 기반 탐지 방법으로서, 개념이 직관적이고 단순한 반면 높은 성능을 보이는 방법으로 많이 활용되고 있다[3]. 그러나, 모든 데이터 샘플과의 거리를 구해야 하기 때문에 계산 복잡도가 높다는 단점이 있다. 특히 고차원데이터에서는 데이터 차원이 높아짐에 따라 거리 계산 복잡도가 비례하여 높아지게 된다.
고차원 데이터는 데이터 샘플이 고차원 벡터로 표현되는 데이터를 의미한다. 예를 들어, 텍스트 데이터를 표현하는 전통적인 방법인 Bag of Words(BOW) 는 텍스트에 등장하는 단어들의 등장 빈도에 의해 벡터로 표현하는데, 단어 사전에 있는 단어의 수가 많기 때문에 고차원 벡터로 표현될 수 밖에 없다. 이미지 데이터도 픽셀값을 벡터 성분으로 할 때 이미지 해상도가 높아짐에 따라 고차원 벡터로 표현된다. 텍스트나 이미지 등 고차원 데이터 분석 수요가 높아짐에 따라 고차원 데이터에서 효과적인 이상 탐지 방법이 필요하다.
고차원 데이터에서 이상치 탐지는 중요한 문제인 반면, 고차원 공간에서는 데이터 희소성(sparsity)과 차원의 저주(the curse of dimensionality)로 인해 기존의 이상 탐지 방법들을 효과적으로 적용하기 어렵다. 특징 추출이나 특징 선택과 같은 차원 감소 방법을 적용하여 고차원에서 저차원으로 데이터를 변형한 후 저차원 공간에서 기존의 이상 탐지 방법을 적용할 수 있다[4, 5, 6]. 전통적인 차원 감소 방법인 주성분 분석(Principal component analysis)은 학습 데이터에서 가장 분산이 큰 벡터 방향으로 사영함으로써 정보의 손실을 최소화한다. 그러나 정상 데이터에서 분산이 가장 큰 벡터 방향이 이상치 발생 탐지를 용이하게 할 수 있는 사영 성분이 될 수 있다는 근거는 없다. 부분 공간(subspace) 이상치 탐지는 전체 속성차원이 아닌 부분 속성들의 공간에서의 이상치 탐지를 타겟으로 한다[7,8]. 그러나 부분 공간에서의 이상치가 전체 공간에서의 이상치는 아닐 수 있고, 반대의 경우일 수도 있어서 이상치 검증이 어렵게 된다. 속성들의 랜덤한 선택에 의한 부분 공간에서의 이상치 탐지 결과를 앙상블로 결합하여 이상치 탐지를 수행하기도 하나, 고차원 공간에서의 랜덤 선택은 성능의 최적화를 보장하기 어렵다[9]. 특히, 정상 데이터만으로 이루어진 학습 데이터가 주어졌을 때, 정상 데이터를 바탕으로 이상 발생 요인이 될 수 있는 속성들을 추출하기가 어렵다는 문제가 있다.
본 논문에서는 고차원 데이터에서 정상 데이터를 대표할 수 있는 소수의 데이터 샘플들인 랜드마크 (landmark)를 이용한 거리 기반 이상치 탐지 방법을 제안한다. 정상 학습 데이터가 주어졌을 때 정상 데이터 분포를 대표할 수 있는 소수의 랜드마크들을 선택하고 가장 가까운 랜드마크까지의 거리를 이용하여 이상치를 탐지하는 방법을 제안하고, 탐지 성능과 시간 복잡도를 기존의 이상치 방법들과 비교한다. 또한, 고차원 데이터에서 거리 기반 방법이 효과적으로 사용될 수 있는 근거를 살펴본다.
2절에서는 고차원 데이터에서의 이상치 탐지 방법들을 검토한다. 3절에서는 랜드마크를 이용한 거리 기반 이상치 탐지 방법을 설명한다. 4절에서는 고차원 데이터를 이용한 실험 결과를 보이고, 5절에서는 결론을 맺는다.
2. 관련연구
이상치 탐지 방법들은 학습 환경에 따라 크게 세 개의 카테고리로 분류할 수 있다[2]. 첫 번째 카테고리는 정상 데이터와 이상 데이터로 구성된 학습 데이터가 주어졌을 때 이진 분류기를 학습하여 이상치를 탐지하는 감독 학습 방법이다[1]. 성능이 잘 입증된 다양한 분류 알고리즘을 활용할 수 있다는 면에서 적용이 쉬우나, 정상 데이터에 비해서 이상 데이터를 수집하기가 어려운 현실을 감안하면 정상 데이터와 이상 데이터의 양이 크게 차이나는 불균형 학습을 하게 될 가능성이 높게 된다.
두 번째 카테고리는 데이터 라벨이 주어지지 않은 무감독 학습에 속하는 방법들로서, 주어진 대부분의 데이터는 정상이고 소수의 이상치만이 포함되어 있다는 전제에서 이상치일 가능성이 상위에 랭크되는 데이터 샘플들을 탐지하는 방법이다[3, 10, 11]. 좋은 성능을 내는 이상치 탐지 방법으로 꼽히는 트리 기반 이상치 탐지 방법인 Isolation Forest[10]는 이상치는 정상 데이터보다 더 쉽게 분리될 수 있다는 가정에 기반한다. 학습 데이터를 이용해 랜덤하게 속성과 분기점을 선택하여 노드를 구성하면서 이진 트리의 앙상블을 구성하고 데이터 샘플이 거쳐가는 루트로부터 리프까지의 경로의 길이를 이용해 이상치 지수를 계산한다. 그러나 트리의 높이가 제한되어 있기 때문에 분할에 사용할 수 있는 속성의 수도 제한될 수밖에 없어서 고차원 데이터에서의 영역 분할에 한계를 가진다. 논문 [10]에서는 고차원 데이터에서의 적용을 위해 일변량 분포의 첨도를 측정하는 Kurtosis test를 이용하여 각 변수에 대한 순위를 계산한 후, 이 순위에 따라 특징을 선택하는 방법을 제안한다. 첨도는 분포의 꼬리 부분에서의 편차의 정도와 관련된 값으로 큰 첨도값은 이상치의 존재를 암시할 수 있다[11]. 그러나, 정상과 이상치가 섞여 있을 때 이상치가 큰 첨도값에 기여하는 것과 달리, 정상 데이터만 주어진 상황에서는 첨도에 의한 속성 선택이 효과적이지 않게 된다.
논문 [12]에서는 데이터 샘플의 R 반경 안에 k보다 적은 수의 데이터들이 있을 때 그 데이터 샘플을 이상치로 판정하는 거리 기반 이상치 탐지 방법이 제안되었다. 그러나 서로 다른 밀도의 영역이 존재할 때두 영역에 모두 적합한 변수 값의 설정이 어렵다는 단점이 있다. 이러한 단점을 극복하는 방법으로 데이터 샘플의 주변 밀도와 이웃 데이터 샘플들의 주변 밀도를 비교하여 이상치 지수를 계산하는 밀도 기반 이상치 탐지 방법인 LOF(Local outlier factor)가 제안되었다[13]. 한 데이터 샘플 주변 밀도가 k개의 근접한 이웃들의 주변 밀도 평균에 비해 낮을수록 높은 LOF를 가지게 된다. 그러나 고차원 데이터에서는 k 개의 근접 이웃 계산에 대한 시간과 공간 복잡도가 높게 된다.
세 번째 카테고리는 정상 데이터만으로 구성된 학습 데이터가 주어질 때, 학습 데이터를 이용해 모델을 구성하고 테스트 데이터에 대해 이상치 탐지를 수행하는 방법이다. 논문 [14]에서는 정상 데이터를 이용해 딥러닝 모델인 오토인코더(auto encoder)를학습하고 테스트 데이터에 대해 재구성 오차(recon- struction error)를 이용해 이상치 지수를 계산하는 방법을 제안하였다. [15]에서는 정상 데이터로만 구성된 학습 데이터로부터 속성값들의 범위를 추정하고, 트리의 노드를 생성할 때 랜덤하게 속성을 선택하고 속성값 구간을 랜덤하게 이분하는 분할값을 반복적으로 생성하여 데이터 영역을 랜덤하게 분할하는 완전 이진 트리인 RS tree(Random-Split tree)를구성한다. 정상 학습 데이터를 구성된 RS tree들에 내려 보내주어 각 노드에 몇 개가 들어갔는지 기록하고 이를 통해 노드의 밀도를 계산하여 이상치 지수를 산출한다. 그러나, RS tree도 Isolation tree와 마찬가지로 분할 속성으로 선택할 수 있는 속성의 수가 제한되기 때문에 고차원 데이터에서 영역 분할에 한계를 가지게 된다.
일반적으로 정상 상태를 나타내는 데이터는 수집이 용이하나 이상 상태를 나타내는 데이터는 얻기가 매우 어려운 현실적인 조건을 고려할 때, 정상 데이터로 구성된 학습 데이터를 이용해서 정상 데이터 분포를 모델링하고 이를 기반으로 테스트 데이터에서 이상치를 탐지하는 방법은 실제 응용 문제에서 적용이 용이하다는 장점을 가진다. 본 논문에서는 정상 데이터로 구성된 학습 데이터가 주어지는 환경에서 고차원 데이터에서 효과적으로 적용할 수 있는 이상치 탐지 방법을 제안한다.
3. 랜드마크를 이용한 거리 기반 이상치 탐지 방법
3.1 고차원 데이터에서 이상치 탐지
논문 [3]에서는 데이터 샘플이 이상치일 가능성을 나타내는 이상치 지수를 데이터 샘플에서 k번째 가까운 이웃까지의 거리를 사용하여 계산하고, 이를 바탕으로 데이터 샘플들의 순위를 정해 상위에 위치한 데이터 샘플들을 이상치로 탐지하는 방법을 제안하였다. 또는 데이터 샘플로부터 주어진 반경 안에 위치한 데이터들의 개수로부터 밀도를 정의하고 이를 전역적이거나 지역적인 이상치 탐지에 적용한다[13,16]. 이러한 거리 기반 이상치 탐지 방법은 직관적이고 단순한 개념을 가지고 있으면서, 다른 잘 알려진 이상치 탐지 방법들에 경쟁할 만한 탐지 성능을 보여준다. 그러나 고차원 데이터에서는 거리의 직관적인 개념이 성립하지 않는다는 것은 널리 알려져 있다.
그럼에도 불구하고 고차원 데이터에서 거리 기반 이상치 탐지 방법이 효과적으로 적용될 수 있는지를 논문 [17]에서의 내용으로 알 수 있다. Fig. 1의 왼쪽 그림에서는 평균이 0, 분산이 1인 표준 정규 분포에 따라 분포된 데이터에서 임의의 두 데이터 간의 거리를 데이터 차원 d에 의해 정규화된 거리 \(\|x\| / \sqrt{d}\)로 나타낼 때 데이터 차원 d가 증가함에 따라 어떻게 달라지는지 보여준다. 최대 거리와 최소 거리가 데이터 차원이 증가함에 따라 근접해짐을 볼 수 있다. 반면에 오른쪽 그림에서는 인위적으로 이상치를 모든 차원에서 2의 지점에 두었을 때, 데이터 차원이 증가할 때 이상치로부터 다른 데이터와의 평균 거리가 정상 데이터로부터 다른 데이터와의 평균 거리와 차이가 있음을 볼 수 있다.
Fig. 1. Normalized Euclidean pairwise distance in the standard normal distribution. (a) with normal data (b) with normal and outlier data [17].
3.2 랜드마크를 이용한 이상치 탐지 방법
X = {x1,x2,...,xn}을 정상 데이터로 구성된 학습 데이터라고 하자. X로부터 랜드마크라고 불리는 소수의 데이터 샘플들을 선택해서 정상 학습 데이터를 대표하여 나타내고자 한다. Z = {z1,z2,...,zn}를 X로부터 선택된 랜드마크들의 집합이라고 하자. 테스트데이터 샘플 x에 대해 X에 있는 데이터들 중에서 x로부터 k번째 가까운 데이터까지의 거리를 사용하여 이상치 지수를 계산하는 대신에 Z에 있는 랜드마크들 중에서 k번째 가까운 랜드마크까지의 거리를 사용해서 이상치 지수를 계산할 수 있다. 적은 수의 랜드마크들의 집합에서 k번째 가까운 데이터를 탐색하므로 시간복잡도를 크게 낮출 수 있다.
전체 정상 데이터를 대표할 수 있도록 랜드마크를 선택하기 위해 k-means clustering 방법을 사용할 수 있다. 선택하고자 하는 랜드마크 수만큼 클러스터를 구성한 후 각 클러스터의 센터를 랜드마크로 사용한다. 학습 단계에서는 k-means clustering 수행에 의해 시간 복잡도가 높아지겠지만, 테스트 단계에서 k-최근접 이웃(k-nearest neighbors) 탐색의 범위를 선택된 랜드마크들로 한정하기 때문에 시간 복잡도를 크게 줄일 수 있다. Fig. 2는 제안 방법의 개념을 그림으로 나타내고 있다. 파란색 원들은 정상 학습데이터를 나타내고 세 개의 그룹으로 클러스터링 되어 있다. 세 개의 검은 색 막대는 각 클러스터의 중심으로서 랜드마크를 표현한다. 붉은색으로 나타낸 테스트 데이터가 주어질 때, 정상 데이터 영역에 있는 1번 테스트 데이터로부터 가장 가까운 랜드마크까지의 거리가 이상치로 간주될 수 있는 2번 테스트 데이터로부터 가장 가까운 랜드마크까지의 거리보다 더 작은 것을 기대할 수 있다. 이는 각 데이터로부터 가장 가까운 랜드마크까지의 거리를 이상치 지수로 사용함으로써 정상 데이터와 이상치를 구별할 수 있음을 보여준다. Fig. 3에서 제안 방법을 요약해서 설명하였다. 4절의 실험에서는 랜드마크의 개수를 변화시킬 때 이상치 탐지 성능의 변화를 살펴보고, 또한 랜드마크를 랜덤하게 선택할 때의 성능과도 비교한 결과를 보인다.
Fig. 2. Discrimination of normal data and outliers by the distance to the nearest landmark.
Fig. 3. The summarization of the proposed method.
4. 실험 결과
4.1 실험 환경
성능 비교를 위하여 숫자 이미지 데이터 MNIST 와 두 개의 텍스트 데이터, BBC News와 Reuters 데이터를 사용하였다. MNIST는 0부터 9까지 숫자를 손으로 쓴 70, 000개의 숫자 이미지들로 구성된 데이터이다[18]. 숫자 이미지는 사이즈 28*28의 그레이레벨 이미지로서 각 이미지는 784차원의 벡터로 저장된다. BBC News 데이터는 BBC에서 작성된 2, 225 개의 뉴스 데이터로 다섯 개의 카테고리 business, entertainment, politics, sport, tech로 구성되어 있다 [19]. 특수기호와 숫자를 삭제하고 한 개의 문서에만 속하는 단어를 제거하여 17, 005개의 단어를 가진다. Reuters 데이터는 UCI machine learning repository 에서 내려받은 Reuters-21578 데이터에서 135개의 TOPICS 카테고리에 속하는 다큐먼트들을 사용하였다. Stopwords removal, stemming, tf-idf trans- formation, unit norm을 가지도록 전처리하고, 두 개 이상의 그룹에 속하는 문서를 제외하여, 15, 484개의 단어로 구성되는 6, 656개의 다큐먼트를 가지게 된다. 135개의 카테고리 중에서 가장 많은 다큐먼트들을가지는 1과 36 카테고리와 나머지 모든 문서를 모은 카테고리로 총 세 개의 클래스를 구성하였다.
실험에서는 각 데이터셑에서 한 개의 클래스를 이상치 클래스로 두고 나머지 클래스를 정상 데이터로 설정하였다. MNIST 데이터에서는 정상 데이터의 30%를 랜덤하게 추출하여 학습 데이터로 사용하고, 나머지 정상 데이터와 이상치 데이터를 테스트 데이터로 하였다. 두 개의 텍스트 데이터에서는 정상 데이터의 50%를 학습 데이터로 사용하고, 나머지 정상 데이터와 이상치 데이터를 테스트 데이터로 설정하였다. 정상 학습 데이터로부터 이상치 탐지 모델을 학습하고, 테스트 데이터에 대해 이상치 지수를 계산하여 AUC(Area Under the Curve) 값을 구할 수 있다. 학습 데이터와 테스트 데이터로 랜덤 선택을 통해 나누는 과정을 10번 반복하여 AUC 평균값을 성능평가 척도로 사용하였다. 또한 어떤 클래스를 이상치 클래스로 설정하느냐에 따라 성능이 달라질 수있으므로 이상치 클래스로 설정하는 클래스를 다르게 반복하여 수행하였다. Table 1은 데이터와 실험설정을 정리하여 보여준다.
Table 1. The description of experimental setting.
4.2 이상치 탐지 성능 비교
테스트 데이터 샘플에서 가장 가까운 k번째 이웃까지의 거리를 이상치 지수로 계산하는 방법을 KNN 이라고 나타내고, 랜드마크를 이용한 제안방법을 KNN_Land라고 표시한다. 거리 기반 이상치 탐지 방법인 KNN_Land을 성능이 높은 이상치 탐지 방법들 중의 하나로 알려진 트리 기반 이상치 탐지 방법인 Isolation Forest 방법과 대표적인 밀도 기반 이상치 탐지 방법인 LOF(Local Outlier Factor)와 성능을 비교한다. Python을 기반으로 Scikit-learn (https:// scikit-learn.org/stable/) 함수들을 이용하여 프로그램을 구현하였고, 비교되는 모든 이상치 탐지 방법들은 python으로 구현된 이상치 탐지 방법 라이브러리인 PyOD[20]의 함수들을 사용하였다. 모든 하이퍼 파라미터는 PyOD 패키지 함수들에서 설정된 디폴트 값을 사용하였다. 예를 들어, KNN에서는 k=5, LOF에서는 k=20, Isolation Forest에서는 100개의 앙상블 멤버와 256개의 subsampling 사이즈를 사용하였다.
Table 2는 세 개의 데이터셑을 이용해서 Table 1 의 실험 환경에서 수행한 이상치 탐지 성능을 평균 AUC를 사용하여 비교한다. Table 1의 각 행에 묘사된 “normal class”와 “outlier class” 설정마다 학습데이터와 테스트 데이터를 랜덤하게 구성하는 것을 10번 반복하면서 수행하여 AUC를 구하였고, 각 데이터셑마다 전체적인 평균 AUC를 계산하였다. KNN_Land(clu)에서는 정상 학습 데이터의 10% 크기의 랜드마크를 k-means clustering 방법으로 구하고 테스트 데이터 샘플에서 가장 가까운 랜드마크까지의 거리에 의해 이상치 지수를 계산하는 방법을 나타낸다. KNN_Land(rand)에서는 정상 학습 데이터의 10% 크기의 랜드마크를 랜덤하게 선택하는 것을 나타낸다. Table 2에서 보여주듯이 KNN 방법이 Isolation Forest나 LOF에 비해서 더 좋은 성능을 나타내고, KNN_Land(clu)는 MNIST와 Reuter에서는 KNN보다 더 좋은 성능을 얻었고, BBC에서는 KNN 보다는 낮으나 LOF와 비숫한 성능을 얻음을 알 수 있다. BBC에서 KNN_Land(clu)가 KNN보다 낮은 성능을 보이는 원인에 대한 정확한 이론적인 분석은 어려우나, 정상 데이터들이 흩어져 있는 정도와 노이즈 데이터의 존재 등에 의해 클러스터링에 의해 선택된 랜드마크들의 대표성이 낮아질 수 있는 것이 원인이 아닐지 추측한다.
Table 2. Performance comparison for outlier detection by the average AUC.
Table 2에서 보여주는 평균 AUC에 의한 비교가 통계적으로 의미가 있는지를 검증하기 위해 Table 1의 각 행마다 10번씩 반복된 실험 결과에 대해 제안 방법인 KNN_Land(clu)과 다른 비교방법에 대해 쌍체표본 t-test를 수행하였다. 유의 수준 5%로 하여 양측검정을 수행하여 제안 방법과 다른 비교 방법들의 비교 결과를 win(제안 방법의 평균이 비교방법의 평균보다 높다), tie(평균이 같다), lose(제안 방법의 평균이 비교방법의 평균보다 낮다)의 빈도수로 Table 3에 나타내었다. KNN과의 비교에서는 win과 lose의 회수가 같았고, 다른 방법들과의 비교에서는 제안 방법의 win의 경우가 lose의 경우보다 더 많은 것을 보여준다.
Table 3. The result of hypothesis testing about the mean of the proposed method and the compared outlier detection methods by the paired t-test.
Table 4는 각 방법들의 실행시간을 비교한다. 모든 방법은 python 패키지인 Scikit-learn과 PyOD 함수들을 사용하여 구현되었고, 10번 반복하여 평균 시간을 초로 나타내었다. training time은 학습 데이터로 모델을 수립하는 fit() 함수 수행시간이며 test time은 테스트 데이터에 대해 이상치 지수를 계산하는 decision_function() 수행시간을 측정하였다. KNN_ Land는 학습 데이터에서 랜드마크를 선택하는 데 걸리는 시간을 training time에 추가하였다. Table 4에서 보여주듯이 KNN_Land(clu)에서 학습 단계에서는 랜드마크 선택을 위한 클러스터링을 위해 걸리는 시간이 크게 늘어나게 된다. 그러나 테스트 단계에서는 KNN의 실행시간에 비해 12%에서 15% 정도의 시간이 걸림을 보여준다.
Table 4. The comparison of execution time in outlier detection methods (in seconds)
Table 2와 Table 4의 평균 AUC와 실행시간 측정은 k-means clustering 알고리즘에서 최대 반복 회수를 100으로 제한하여 수행한 결과이다. 최대 반복 회수를 다르게 변화시켜 가면서 수행할 때 이상치 탐지 성능과 실행시간이 어떻게 달라지는지 비교하기 위해, Table 1에서 설명한 실험 셋팅에서 Mnist (outlier class: 4), Reuter(outlier class: 3), BBC(outlier class: 1)의 세 가지 경우에 대해 탐지 성능과 실행 시간을 비교하였다. Table 5에서 k-means clustering 알고리즘에서 최대 반복 회수를 50, 100, 200 으로 다르게 설정하면서 각 데이터에서 학습 데이터와 테스트 데이터로 랜덤하게 나누는 것을 10번 반복하여 실험을 수행했을 때 training time을 비교해서 보여준다. 최대 반복 회수가 다르게 설정됨에도 AUC 값은 같게 측정되었고 학습에 걸리는 시간도 크게 차이를 보이지 않는 것으로 미루어 k-means clustering에서 50번 이내에 수렴이 이루어짐을 짐작할 수 있다.
Table 5. The comparison of training time when the maximum iteration in k-means clustering was set variously.
Fig. 4에서는 KNN_Land 방법에서 랜드마크 사이즈를 정상 학습 데이터의 10%, 20%, 30%로 선택하고, 가장 가까운 랜드마크까지의 거리를 이용해 이상치 지수를 계산할 때의 성능을 비교하였다. KNN_ Land(rand)는 랜드마크 사이즈가 커질수록 더 좋은 성능을 보인 반면, KNN_Land(clu)는 랜드마크 사이즈가 10%-30% 범위에서 비교적 안정적인 성능을 보였다.
Fig. 4. Performance comparison when various landmark sizes are used.
Fig. 4에서는 랜드마크 사이즈를 변화시켜 가면서 성능을 비교한 반면, Fig. 5에서는 제안 방법 KNN_Land(clu)에서 가장 가까운 랜드마크까지의 거리를 이용해 이상치 지수를 계산하는 경우와 두 번째 가까운 랜드마크까지의 거리를 이용해 이상치 지수를 계산하는 경우의 AUC를 비교한다. Mnist와 BBC 데이터에서는 가장 가까운 랜드마크까지의 거리를 이용해 이상치 지수를 계산하는 경우의 AUC 값이 더 높고, Reuter 데이터에서는 두 번째 가까운 랜드마크까지의 거리를 이용해 이상치 지수를 계산하는 경우의 AUC가 약간 높으나, 그 차이는 최대 0.023으로 크지 않다.
Fig. 5. Performance comparison when the first and second nearest landmarks are used.
5. 결론
k번째 가까운 이웃과의 거리가 멀면 멀수록 이상 치일 가능성이 더 커지는 KNN 기반 이상치 탐지 방법은 개념이 단순하고 탐지 성능도 높으나 이웃 간의 거리를 계산하는데 걸리는 시간이 높다는 단점이 있다. 특히, 고차원 데이터에서는 거리 계산이 데이터 차원에 비례해서 높아지게 된다. 본 논문에서는 KNN 기반 이상치 탐지 방법의 성능을 유지하면서 테스트단계에서의 계산 복잡도를 크게 낮출 수 있는 랜드마크를 이용한 거리 기반 이상치 탐지 방법을 제안하였다. 정상 학습 데이터가 주어졌을 때, k-means clustering 방법을 사용하여 클러스터들의 중심을 정상 데이터를 대표할 수 있는 랜드마크로 선택한다. 각 테스트 데이터 샘플에서 가장 가까운 랜드마크까지의 거리를 이용해 이상치 지수를 계산한다. 학습 단계에서는 k-means clustering에 드는 시간이 커지게 되나, 테스트 단계에서는 전체 학습 데이터에서 이웃 탐색을 하는 대신에 매우 적은 수의 랜드마크에서 이웃 탐색을 하게 되므로 시간 복잡도를 크게 낮출 수 있게 된다. 고차원 데이터를 이용한 실험에서 전체 학습 데이터의 10% 크기의 랜드마크를 선택할 때, 테스트 단계에서 전체 데이터를 이용할 때보다 수행 시간은 12%에서 15% 정도로 낮추면서 이상치 탐지성능은 유지하거나 더 향상될 수 있음을 보였다.
제안 방법은 정상 데이터로 구성된 학습 데이터가 주어질 때 적용할 수 있는 이상치 탐지방법이다. 일반적으로 이상 데이터는 정상 데이터에 비해 수집하기가 어려운 경우가 많으므로 이러한 제한 조건은 실제 문제에 대한 적용에 있어서 크게 문제가 되지 않을 수 있지만, 데이터 라벨이 알려지지 않은 무감독 학습 환경의 고차원 데이터에서도 효과적으로 적용할 수 있는 방법의 개발은 필요하다. k-means clustering에 의한 랜드마크 선택 과정에서 학습 데이터에 포함되어 있을지도 모르는 소수의 이상치 데이터가 랜드마크로 선택되지 않도록 하는 후처리 과정을 도입함으로써 제안방법을 무감독 학습에서도 적용할 수 있도록 향후 연구를 수행할 예정이다.
References
- C. Aggarwal, Outlier Analysis, Springer, Switzerlnd, 2017.
- C. Park. "Outlier and Anomaly Pattern Detection on Data Streams," The Journal of Supercomputing, Vol. 75, pp. 6118-6128, 2019. https://doi.org/10.1007/s11227-018-2674-1
- S. Damaswanny, R. Rastogi, and K. Shim, "Efficient Algorithms for Mining Outliers from Large Data Sets," Proceeding of ACM Sigmod International Conference on Management of Data, pp. 427-438, 2000.
- T. Vries, S. Chawla, and M. Houle, "Finding Local Anomalies in Very High Dimensional Space," Proceeding of International Conference on Data Mining, pp 128-137, 2010.
- H. Hoffmann, "Kernel PCA for Novelty Detection," Pattern Recognition, Vol. 40, pp. 863- 874, 2007. https://doi.org/10.1016/j.patcog.2006.07.009
- S. Choi and C. Park, "Emerging Topic Detection Using Text Embedding and Anomaly Pattern Detection in Text Streaming Data," Journal of Korea Multimedia Society, Vol. 23, No. 9, pp. 1181-1190, 2020. https://doi.org/10.9717/KMMS.2020.23.9.1181
- S. Sathe and C. Aggarwal, "Subspace Histograms for Outlier Detection in Linear Time," Knowledge and Information Systems, Vol. 56, pp. 691-715, 2018. https://doi.org/10.1007/s10115-017-1148-8
- H. Kriegel, P. Kroger, E. Schubert, and A. Zimek, "Outlier Detection in Axis-parallel subspaces of High Dimensional Data," Proceeding of Pacific-Asia Conference on Knowledge Discovery and Data Mining, pp. 831-838, 2009.
- A. Lazarevic and V. Kumar, "Feature Bagging for Outlier Detection," Proceeding of ACM SIGKDD Conference on Knowledge Discovery and Data Mining, pp. 157-166, 2005.
- F. Liu, K. Ting, and Z. Zhou, "Isolation Forest," Proceeding of International Conference on Data Mining, pp. 413-422, 2008.
- A. Putina, M. Sozio, D. Rossi, and J. Navarro, "Random Histogram Forest for Unsupervised Anomaly Detection," Proceedings of International Conference on Data Mining, pp. 1226-1231, 2020.
- E. Knorr and R. Ng, "Finding Intensional Knowledge of Distance-based Outliers," Proceeding of 25th International Conference on Very Large Databases, pp. 211-222, 1999.
- M. Breunig, H. Kriegel, R. Ng, and J. Sander, "LOF: Identifying Density-based Local Outliers," Proceeding of the ACM Sigmod International Conference on Management of Data, pp. 93-104, 2000.
- E. Marchi, F. Vesperini, F. Weninger, F. Eyben, S. Squartini, and B. Schuller, "Non-linear Prediction with LSTM Recurrent Neural Networks for Acoustic Novelty Detection," Proceeding of International Joint Conference on Neural Networks, 2015.
- K. Wu, K. Zhang, W. Fan, A. Edwards, and P. Yu, "RS-Forest: A Rapid Density Estimator for Streaming Anomaly Detection," Proceeding of the 14th International Conference on Data Mining, pp. 600-609, 2014.
- E. Knor and R. Ng, "Algorithms for Mining Distance-based Outliers in Large Datasets," Proceeding of International Conference on Very Large Databases, pp. 392-403, 1998.
- A. Zimek, E. Schubert, and H. Kriegel, "A Survey on Unsupervised Outlier Detection in High-dimensional Numerical Data," Statistical Analysis and Data Mining, Vol. 5, pp. 363-387, 2012. https://doi.org/10.1002/sam.11161
- The MNIST Database(1998), http://yann.lecun.com/exdb/mnist (Accessed February 20, 2019).
- D. Greene and P. Cunningham, "Practical Solutions to the Problem of Diagonal Dominance in Kernel Document Clustering," Proceeding of International Conference on Machine Learning, pp. 377-384, 2006.
- Y. Zhao, Z. Nasrullah and Z. Li, "PyOD: A Python Toolbox for Scalable Outlier Detection," Journal of Machine Learning Research, Vol. 20, pp. 1-7, 2019.