2022-12-28,   권재우

오늘은 비지도 학습 방법인 OGNet알고리즘에 대한 포스팅을 하겠습니다.

  • 논문 주소

https://arxiv.org/pdf/2004.07657.pdf

실제 논문은 위 링크에서 확인 가능합니다.

  • Model Architecture

Screenshot_1

OGNet은 2020년에 나온 One-Class Image Unsupervise Learning 알고리즘 입니다. GAN알고리즘 기반으로 Generator(생성기)와 Discriminator(분류기) 두 모델을 학습에 사용합니다. 이 때 OGNet에서는 낮은 Epoch의 Generator를 저장한 뒤 이 모델은 학습에 사용하지 않고 계속 Noise가 섞인 비정상 데이터를 만들어낼 때 사용됩니다.

이렇게 Generator(학습이 잘 된)로 정상데이터를, Old state Generator(학습이 안된)로 비정상데이터를 만드는 두개의 Generator 모델을 활용해서 Discriminator를 학습하는 시스템입니다.

구현

논문에서 제공하는 공식 깃헙에 접속해서 관련 데이터와 코드를 받았습니다

  • 깃헙 주소

https://github.com/xaggi/OGNet#requirements

Screenshot_2

위 사진처럼 폴더에 소스코드를 불러왔고 데이터도 가져왔습니다. 데이터는 MNIST 숫자 데이터입니다.

  • Train

Screenshot_4

Train 데이터는 숫자 0만 있는 One-Class 이미지 데이터 입니다.

  • Test

Screenshot_5

Test 데이터는 0부터 9까지 모든 숫자가 포함되어 있는 이미지 숫자 데이터입니다.

해당 논문에서 제공하는 이미 학습되어있는 모델을 가져와서 위 이미지를 얼마의 정확도로 분류하는지 테스트 해보았습니다.

  • 결과

1

OGNet 알고리즘을 활용해서 One-Class 분류 결과는 97%의 정확도0.92 f1-score라는 높은 성능으로 분류하는 것을 볼 수 있었습니다.

이번 포스팅은 여기서 마무리하겠습니다 감사합니다.

업데이트: