OGNet
오늘은 비지도 학습 방법인 OGNet알고리즘에 대한 포스팅을 하겠습니다.
- 논문 주소
https://arxiv.org/pdf/2004.07657.pdf
실제 논문은 위 링크에서 확인 가능합니다.
- Model Architecture
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
위 사진처럼 폴더에 소스코드를 불러왔고 데이터도 가져왔습니다. 데이터는 MNIST 숫자 데이터입니다.
- Train
Train 데이터는 숫자 0만 있는 One-Class 이미지 데이터 입니다.
- Test
Test 데이터는 0부터 9까지 모든 숫자가 포함되어 있는 이미지 숫자 데이터입니다.
해당 논문에서 제공하는 이미 학습되어있는 모델을 가져와서 위 이미지를 얼마의 정확도로 분류하는지 테스트 해보았습니다.
- 결과
OGNet 알고리즘을 활용해서 One-Class 분류 결과는 97%의 정확도와 0.92 f1-score라는 높은 성능으로 분류하는 것을 볼 수 있었습니다.
이번 포스팅은 여기서 마무리하겠습니다 감사합니다.