티스토리 뷰

1. Abstract

[문제점]

  정확한 annotation은 시간이 많이 들기 때문에 전문가(방사선사, 의사 등)가 clinical imaging(임상 영상)을 직접 annotation을 표시한 데이터를 얻는 것은 어렵다. 또한 모든 병변에 대해 annotation이 표시되지 않을 수도 있으며 annotation에 대해서 정확하게 이 병변이 어떤 병변인지 설명 되어있지 않은 경우도 있다.

 

[Supervised Learning의 장단점]

  전문가로부터 분류된 training data를 받아 Supervised Learning 방식으로 모델을 학습 시키면 좋은 성능을 얻는 반면, annotation이 표시된 병변으로만 제한이 되는게 단점이다.

 

[Unsupervised Learning으로 접근한 f-AnoGAN을 제안]

  본 논문에서는 biomarker candidates를 할 수 있는 anomalous images 및 image segments를 식별할 수 있는 GAN 기반 Unsupervised Learning 접근법으로 해결하는 f-AnoGAN(fast AnoGAN)을 제안한다.

 

[Fast mapping technique of new data]

  Normal data로 Generator model을 학습 시키고 GAN의 latent space에서 query data(병변 유뮤를 확인하고 싶은 영상)의 fast mapping technique를 제안하고 평가한다. latent space mapping 방법은 Encoder를 기반으로 이루어지며, Discriminator feature residual error 및 image reconstruction error G(z)를 포함하는 훈련된 모델을 기반으로 anomaly score를 통해 anomaly detection이 진행된다.

 

Optical Coherence Tomography(OCT) 촬영 데이터를 사용한 딥러닝 학습 관련 실험은 본 눈문에서 제안한 방법과 대체 접근법(AnoGAN, BiGAN 등)과 비교하고 실험한다, 본 논문에서 제안한 f-AnoGAN 방법이 Anomaly Detection의 정확도를 높인다는 포괄적인 경험적 증거를 제공한다. 또한 두 명의 망막 정문가를 대상으로 한 시각적 테스트 결과 generation된 이미지가 실제 OCT 이미지와 잘 구별이 안되는 것으로 나타났다.

그림 1

 

2. Fast GAN based anomaly detection

본 논문에서 제안한 Anomaly Detection 순서는 크게 두가지로 이루어 진다.

  1. Normal image에 대한 GAN 훈련
  2. 잘 훈련된 GAN을 기반으로 GAN 훈련시 사용한 Normal image를 그대로 사용하여 Encoder를 훈련.

f-AnoGAN의 핵심은 image를 latent space에 mapping하는 방법으로 Encoder 모델을 사용한게 핵심이다. 비슷한 방법인 AnoGAN과 비교를 해보면 확실히 차이점을 확인할 수 있다.

 

[AnoGAN]

AnoGAN의 목표는 query image가 주어지면 query image와 가장 유사하고 manifold X에 위치하는 G(z)의 latent space를 찾는 것이다. (이 과정에서 G(z)의 Probability densitiy function에 의존하게 된다)

 

mapping된 latent space의 세부적인 과정은 다음과 같다.

  • Random하게 zn을 뽑아 G(zn)을 얻는다.
  • query image와 유사한 G(z)를 찾기 위해 latent space 안에서 최적의 z를 찾기 위해 residual loss + discrimination loss를 기반으로 backpropagation을 통해 찾는다.(OCT 기준 500 iteration)
  • 최종적으로 residual loss 수식을 그대로 사용하여 anomaly score를 계산한다.(score 구하는 방법은 f-anogan에서도 동일하게 사용된다)

해당 방법은 학습 이미지 크기가 작으면 효율적이고 나름 빠르게 진행이 되겠지만, 이미지 사이크가 크면 클수록 그만큼 많은 정보들을 고려해야하므로 random하게 iteration하며 학습을 하는 AnoGAN 방법은 제대로 mapping이 잘 안되는 경우가 발생될 수 있다.

 

[f-AnoGAN]

f-AnoGAN은 이런 문제를 해결하고자 AutoEncoder에서 아이디어를 얻었다고 할 수 있다. AutoEncoder는 입력된 정보들을 잘 설명할 수 있는 latent vector로 차원을 압축 시켰다가 다시 그것을 Decoder를 통해서 복원하는 간단한 모델이다. 이 과정에서 사용된 Encoder 모델만 쏙 가지고와 image를 latent space에 mapping하는 모델로 사용된 것 이다. 이렇게 training data(normal image)를 latent space에 mapping 시켜주는 과정은 identity transformation(항등변환) 해주는 과정이라고 볼 수 있다.

 

2-1. Learning a fast mapping from images to encodings in the latent space

GAN 훈련은 latent space Z -> Manifold X로 mapping 되는 G(z) = z -> x 를 생성 하지만, Anomaly Detection에서 필요한 Manifold X -> latent space Z 로의 inverse mapping은 불가능하다.(AnoGAN paper에서도 똑같이 언급한 개념이다)

 

이 방법을 해결하고자 AnoGAN에서는 위에서 언급한 방법으로 latent space에 mapping을 해주었지만 f-AnoGAN에서는 Deep Encoder Network를 사용하여 E(x) = x -> z가 가능하도록 학습을 하여 inverse mapping이 가능하도록 학습을 해준다. 해당 논문에서 제안한 방법은 2가지다.

  • z - image - z
  • image - z -image

이 방법 모두 (그림 2)처럼 image에서 latent space Z로 mapping하는 방법이다.

그림 2

2-2-1. Training the encoder with generated images: ziz architecture

훈련중에 latent space Z로 부터 random하게 sampling된 샘플은 fixed weight G를 통해 image space에 mapping되고 Encoder는 이를 다시 latent space Z에 mapping 하도록 훈련된다. 따라서 ziz architecture의 경우 GAN 학습할때 사용했던 normal image data가 필요하지 않는다. 

 

해당 구조로 학습을 할 때 사용되는 loss는 z와 E(G(z))의 MSE를 최소화 하는 방법으로 학습이 진행된다.

이런 방법은 학습할때 생성된 이미지만 잘 mapping 될 뿐 query image가 들어오면 제대로 mapping을 못하게 된다는 단점이 있어 f-AnoGAN 논문에서는 해당 방법으로 학습을 진행 안했다.

 

2-2-2. Training the encoder with real images: izi architecture

  훈련하는 동안 real image에서 latent space Z 로 encoding되어 mapping하는 과정은 encoder로 수행되고 encoding된 latent space Z를 image space로 다시 mapping 하는 것은 fixed Generator Model로 이루어 진다.

이런 방법은 input image x와ㄷ reconstructed images G(E(x))의 MSE residual loss를 최소화 하도록 학습이 진행된다.

izi architecture는 GAN 훈련할 때 사용한 training data(normal image)를 이용하서 학습이 진행된다.

 

이 방법에도 단점이 존재한다. query image가 latent space Z에서 정확하게 어디에 위치하는지 ziz architecture는 G(z)를 바로 latent space에 mapping 시켜서 알 수 있었지만 izi architecture는 알 수 없다. 따라서 image space로 다시 mapping 하고 image-to-image residual loss를 계산하여 image-to-z mapping의 정확도를 간접적으로 측정할 수 밖에 업다.

 

이런 방법으로만 할 때 normal image가 들어오면 문제가 없지만 abnomaly(비정상 데이터)이 들어오면 그땐 residual이 적은 이미지가 생성될 수 있다.

 

이러한 문제점으로 feature space를 loss로 사용해서 mapping과정이 이루어지는 izif architecture를 고안했다.

 

2-2-3. Discriminator guided izi encoder training: izif architecture

  izi architecture 문제점을 해결하기 위해 Discriminator model의 중간 계층의 features space의 residual loss를 추가적으로 사용하여 Encoder를 학습한다.

 

  • nd : 중간 계층의 feature space의 dimenstion
  • k : weight factor

수식을 보면 Discriminator features는 AnoGAN에서 사용된 loss와 관련이 있는것을 볼 수 있다. Discriminator feature는 GAN을 학습할 때 얻은 parameter들을 사용한 것이다. feature space를 loss로 사용함으로 써 image space와 latent space에서 잘 mapping이 되도록 가이드를 제공해주는 역할을 한다고 논문에서 나와있다.

 

2-3. Detection of anomalies

GAN도 학습이 잘 되었고 Encoder도 학습이 잘 되었다면 이제 query image를 입력으로 넣어서 anomaly score를 계산하면 된다. anomaly score를 계산하는 것은 image-lavel 단의 anomaly detection중에 query image와 reconstruction image의 deviation을 score로 나타내야 한다. 이 스코어를 anomaly score라고 하며 수식은 아래와 같다.

수식을 보면 Loss_izif 수식과 동일한 것을 볼 수 있다.(anomaly score를 계산하는 수식은 학습할 때 사용했던 residual loss 수식을 그대로 사용한다고 생각하면 좋을거 같습니다)

 

일반적으로 수식 모두 비정상 이미지에서 높은 anomaly score, 정상 이미지는 낮은 anomaly score가 계산된다. 모델을 Normal image에 대해서만 학습하므로 입력 이미지와 시각적으로 유사한 image만  normal image의 Manifold X에 눞여서 재구성 된다.

 


 

f-AnoGAN의 공식 RePo : https://github.com/tSchlegl/f-AnoGAN

Pytorch로 작성하여 F-AnoGAN을 구현한 코드는 해당 Github Repo에서 보실 수 있습니다. : https://github.com/mulkong/f-AnoGAN_with_Pytorch

 

⭐️ 해당 글은 제 생각이 많이 들어가 있으므로 자세한 내용들은 Paper를 직접 보시길 추천 드립니다. 

Comments