Likelihood Ratios of Out-of-Distribution Detection

Anomaly Detection

본 연구에서는 OOD Detection 을 위한 Likelihood Ratio 기법을 제안한다.

이상치 탐지는 다양한 분야에서 활용될 수 있다. 그 중에서도 의료 분야에서의 이상치 탐지는 알고리즘의 잘못된 결과가 큰 COST를 부담할 수 있으므로 중요하다. 사람은 23쌍 (총 46)개의 염색체를 가지고 있으며, 염색체는 DNA와 단백질로 이루어 진다. DNA 는 A,G,C,T 이렇게 네 종류의 염기로 된 이중 나선 구조를 가지고 있는데, 46개의 염색체 속에서는 30억 쌍의 DNA 염기가 존재한다.

이미 알려진 염기서열로부터 이상치 (질병을 유발하는 박테리아) 가 들어왔을 때, 질병을 식별하고, 치료할 수 있다.

이상치를 탐지하는 기법은 정상 데이터의 확률 분포를 먼저 추정하여, 이 분포에서 크게 벗어난 데이터를 이상치로 탐지하는 것이다. 즉 정상데이터의 분포를 추정해야하는데 데이터의 분포를 찾는 것을 (Probability) Density Estimation 이라고 하며, 확률 분포를 추정하는 방법은 여러가지가 있습니다.

Density Estimation BackGround

확률 분포를 추정하는 것을 크게 두가지로 나누면, Explicit Density Estimation 과 Implict Density Estimation 이 있습니다.

Explicit Density Estimation : 모델을 정의하고, 샘플에 대한 가능도를 최대화 하는 파라미터를 추정합니다. Implicit Density Estimation 은 모델을 정의하지 않고 샘플을 생성합니다.

본 논문에서는 Explicit Density Estimation 중 PixelCNN++ 모델을 사용하였습니다.

정규분포를 가정하여 모수를 구할 수 있고, 딥러닝의 생성모델 AR, VAE, GAN 모델로 고차원의 확률분포 추정도 가능하다.

  • GAN : Implict Density Estimation

  • VAE(Variational AutoEncoder) : Approximate Density Estimation

  • AR(Auto Regressive) : Explicit Density Estimation \rightarrow (장점)

    • 1) Provides a way to calculate likelihood : These models have the advantage of returning explicit probability densities (unlike GANs), making it straightforward to apply in domains such as compression and probabilistic planning and exploration

    • 2) The training is more stable than GANs : Training a GAN requires finding the Nash equilibrium. Since, there is no algorithm present which does this, training a GAN is unstable as compared to PixelRNN or PixelCNN.

    • 3) It works for both discrete and continuous data : It’s hard to learn to generate discrete data for GAN, like text.

Density Estimation 기법 중 가우시안 Density Estimation 의 알고리즘은 다음과 같다.

Gaussian Density Estimation : 총 m 개의 Data가 들어 있고, x 는 n차원의 feature vector이다. 첫번째 feature, 두번째 feature, .., n번째 feature 가 각각 정규분포를 따른다고 가정한다. 정상 데이터를 준비한다. 각각의 분포의 모수인 평균과 표준편차를 알 수 있다. 이들을 곱한 것이 x 의 분포 p(x) 이고, 이 p(x) 가 특정 임계값보다 작은 것을 이상치라고 할 수 있다.

Algorithm

Gaussian Density Estimation Anomaly Detection Algorithm

  • [1] 이상치를 감지할 수 있는 피처들을 선택한다.

  • [2] 모수 μ1,...μn,σ12,..,σn2\mu_1, ...\mu_n, \sigma^2_1, ..,\sigma^2_n 를 계산한다.

    • μj=1mi=1mxj(i)\mu_j = \frac{1}{m}\sum_{i=1}^m x_j^{(i)}

    • σj2=1mi=1m(xj(i)μj)2\sigma_j^2 = \frac{1}{m}\sum_{i=1}^m(x_j^{(i)}-\mu_j)^2

  • [3]Given new example x, compute p(x)p(x)

p(x)=Πj=1np(xj;μj,σj2)=Πj=1n12πσjexp((xjμj)22σj2)p(x) = \Pi_{j=1}^np(x_j;\mu_j, \sigma_j^2) = \Pi_{j=1}^n \frac{1}{\sqrt{2\pi \sigma_j}}exp(-\frac{(x_j-\mu_j)^2}{2\sigma_j^2})
  • Anomaly if p(x)<ϵp(x) < \epsilon

본 논문에서는 두개의 모델을 적합화 시킨다. 하나는 정상 데이터를 가지고 접합시키며, 다른 하나는 Pertubated input data를 사용하여 적합시킨다. 테스트시, LLR 값이 낮으면 이상치로 예측한다.

Log Likelihood Histogram 을 그리는 방법

Failure of Density Estimation for OOD Detection

본 논문에서 Log Likelihood Ratio 기법을 제안하는 이유는 기존의 Likelihood 기법으로 추정하는 방법들에 문제가 있었기 때문이다. 아래 첫번째 그림을 보면 Fashion MNIST 를 정상 데이터로 두고, MNIST를 이상치로 두었을 때, 빨간색 이상치의 Log Likelihood 가 더 높음을 알 수있다. 이상치 탐지 알고리즘에서 로그 가능도가 낮은 샘플을 이상치로 예측하는데 가능도 값이 높아버리면 이상치를 탐지할 수 없다.

우측 ROC 커브를 보듯이 이상 데이터를 정상 데이터로 인식하고 정상 데이터를 이상 데이터로 인식하면서 AUROC 가 0.091로 램덤보다 훨씬 못함을 볼 수 있다.

  • Data

    • In-Distribution : Fashion-MNIST / Out-of-Distribution : MNIST

  • TRAIN

    • 정상데이터를 PixelCNN++ 훈련함

    • Perturbation 을 가한 인풋 데이터를 PixelCNN++ 로 훈련함.

  • 정상 데이터의 확률 분포와 이상 데이터의 Log Likelihood 의 확률 분포가 유사함.

    • 데이터의 분포는 다를 수 있지만, Log Likelihood 의 확률 분포가 유사함을 알 수 있음.

  • 정상 데이터보다 이상 데이터의 Likelihood 가 높다.

    • 이상 데이터가 Softmax 로 값을 추정하였을 때, high confidence 를 가진다

본 논문에서는 이렇게 이상 데이터가 높은 가능도를 가지는 원인을 인풋 데이터의 어떤 특성때문이라고 말한다. 논문에서는 이 특성을 Background component 이라고 하는데, 아래 유전자 데이터 예시와 이미지 데이터를 가지고 살펴보자.

왼쪽은 유전자 데이터의 피처 GC content 에 따른 로그가능도 값을 보여주고 있다. GC content 는 제가 이해하기론, 유전자 염기서열이 A,C,G,T로 네 종류의 염기로 구성이 되는데 전체 염기서열중에 G 또는 C 가 차지하 비율이다. GC 함량이 높으면 가능도가 높음을 확인할 수 있고, 이미지 데이터인 경우에도 이미지에 배경의 비율이 높으면 로그 가능도가 높음을 확인할 수 있다.

이처럼 데이터에서 백그라운드 요소가 높은 가능도에 지대한 영향을 주므로 이 부분을 제거하는 것이 이 논문의 핵심 내용이다.

백그라운드 요소를 제거하기 위해 시퀀스 데이터에서 베르누이 분포를 따르는 데이터와 같은 길이의 0과 1 요소의 벡터를 만들고, 요소가 1일 경우 그 위치의 데이터의 요소를 다른 샘플원소로 대체하여 다른 인풋을 생성하는 것이다. 이를 데이터의 어떤 변화를 주어서 perturbated input 이라하고 이 데이터를 가지고 학습한 모델을 백그라운드 모델이라고 한다. 기존에는 정상 데이터로 학습한 확률에 로그를 씌운 로그가능도를 기준으로 이상치를 판별했는데,

정상 데이터 모델에 백그라운드 모델을 나누어주면 정상데이터와 교란된 데이터간의 백그라운드 피처들은 동일하게 학습이 되었다고 가정이 되어 결론적으로 데이터에서 식별하고자 하는 semantic한 정보로 확률을 구한셈이 된다.

LLR 을 사용한 결과, 로그 가능도를 사용했을 때보다 유전자 데이터에서는 63%에서 75% 로 올랐고, 이미지 데이터에서는 9%에서 99%로 성능이 올랐음을 확인할 수 있었습니다.

  • 이상 데이터의 가능도가 더 높게 나옴.

Deep Generative Model 전에 머신러닝 모델로 위 내용들을 테스트해보도록 하자.

Density Estimation for OOD Detection 방법이 유전자 데이터에서도 잘 적용하는지를 확인함.

  • Gaussian Density Estimation

  • Mixture of Gaussian Density Estimation

  • Kernel-density Estimation

  • Parzen Window Density Estimation

  • Local Outlier Factors(LOF)

그리고 어떤 변수가 가질 수 있는 값 및 그 값을 가질 가능성의 정도를 추정하는 것이 density estimation이다

Last updated