Giter Site home page Giter Site logo

stacked-denoising-ae's Introduction

Stacked Denoising AutoEncoder using MNIST datasets

MMORPG에서 비정상 행위를 AI로 탐지한 넷마블 영상에서 영감을 얻어 MNIST 데이터셋을 사용하여 Stacked Denoising AutoEncoder 모델을 구현했습니다.
정상 데이터로 훈련된 오토인코더 모델에 비정상 데이터가 입력으로 주어지는 경우 비정상적인 Loss 값이 도출되는 원리를 이용해 이상 탐지에 활용할 수 있습니다.
넷마블의 경우 게임에서 발생하는 로그 데이터를 활용하여 전체 데이터를 학습하고 비정상 행위를 탐지하는 방식으로 모델을 활용하고 있습니다.

Noise가 추가된 이미지 데이터 생성하기

이미지 분야에서 기본적인 노이즈 중 하나인 가우시안 노이즈(Gaussian noise)를 추가했습니다.
가우시안 노이즈는 보통 이미지의 전송 과정에서 나타나는데, 이미지를 압축하여 보낸 후 복구하는 과정에서 원래의 픽셀값이 아닌 오차가 생기는 것입니다.

본 구현에서는 평균이 0이고 표준편차가 0.1인 정규(가우시안) 분포에서 랜덤한 값들을 생성하여 노이즈를 추가했습니다.
게임 데이터를 사용하는 경우 환경에 따라, 여러 요인에 따라 발생하는 이상값(노이즈)들이 존재할 것이기 때문에 이를 제어함으로써 비정상 행위 탐지 성능을 높일 수 있습니다.

Stacked AutoEncoder

Stacked AutoEncoder는 여러 개의 오토인코더를 쌓아 올린 구조, Basic AutoEncdoer에서 Hidden Layer를 깊게 만든 구조입니다.
해당 구현에서는 MNIST datasets를 사용하기 때문에 Convolution layer를 사용했습니다.

Training & Test

학습 환경은 다음과 같습니다.
Epochs : 100
Optimizer : SGD / Adam
Loss Function : MSE
Learning Rate : 0.00001
두 옵티마이저의 성능 비교를 위해서 random seed를 0으로 고정했습니다.

Adam Optimizer

Test Loss : 0.0010

SGD Optimizer

Test Loss : 0.0026

Adam과 SGD 모두 Loss가 Epoch이 증가함에 따라 잘 감소하는 모습을 보이며 원본 복원 결과 또한 원본과 매우 유사하게 잘 복원한 모습입니다.
그 중에서도 Test Loss가 0.001로 더 작은 것으로 볼 때 Adam Optimizer를 사용해 학습했을 때의 결과가 더 좋음을 알 수 있었습니다.

stacked-denoising-ae's People

Contributors

cku7808 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.