본문 바로가기
Data Science/Project

[홀로서기 #08] 이상 탐지(Anomaly Detection) 베이직.

by 루크 Luke 2022. 7. 13.
반응형

홀로서기 기획 연재물은 최근 개인 프로젝트를 진행하면서 겪은 어려움들을 기록한 지극히 개인적인 콘텐츠입니다.


 

하찮은 변명을 잠시..

  부트캠프 이후에 최근 데이터분석가로 취업하고, 포스팅 작업을 잠시 쉬었다. 그러면서 자연스럽게, 예전에 진행하던 데이터 프로젝트를 기록하지 못했다. 최근에 분석가로서 자신을 돌아보면서, 학문에 많이 소홀해졌다는 생각이 들어서, 이렇게 다시 포스트를 쓰고 있다. 이전 포스트를 확인해보니 이상탐지 모델링에 꽤나 진심이었던거 같기도 하다. 당시에 많은 논문들도 리뷰하면서 딥러닝 모델을 꾸렸었는데, 결론적으로 해당 프로젝트 모델 성능은 좋지 않았다. 원인을 생각해보면 하나는, 전처리 이슈, 다른 하나는 적합한 모델을 사용하지 않았다는 판단도 선다. 그래서 이상탐지와 관련한 기본적인 내용들을 숙지하고 연관 데이터를 바탕으로 개인 프로젝트를 수행하고자 한다.  

  금융 쪽 데이터에 관심이 생기면서, 금융 관련 이상탐지 모델링을 수행하려고 한다. 그런 와중에, 데이콘(dacon)에서 [신용카드 사기 거래 탐지 AI 경진대회]를 개최하고 있는 것 같아서, 이를 참여하면서 프로젝트 성과를 거두고자 한다.

 

신용카드 사기 거래 탐지 AI 경진대회 - DACON

좋아요는 1분 내에 한 번만 클릭 할 수 있습니다.

dacon.io

 

이상탐지가 왜 필요한가.

  이상감지, 또는 이상징후 감지라고도 한다. Anomaly Detection이라고 검색하면, 국외 학술정보나 기록들을 확인할 수 있는데, 기존에 존재하는 패턴과 다른 '이상'하게 튀는 데이터를 탐지해내는 것을 말한다. 이상탐지는 데이터 분석 관점에서 용어를 만들어 분류한 것인데, 학술적으로는 데이터마이닝의 일부라고도 할 수 있고 한다. 우리가 다루는 데이터로 쓸만한 가치, 즉 특이한 것을 찾는 것이 데이터 마이닝이기 때문에, 이상 탐지도 특이한 패턴을 찾는 연구방식이라고 여기는 것 같다.

  이상 탐지는 사실 최근에 나온 개념은 아니고 상당히 오래 전부터 연구되어 왔다. 빅데이터 시대(요즘은 빅빅데이터 시대라고 해야 맞는거 같기도.)를 맞으면서, 대상이 되는 이상 데이터는 데이터량이 많아지면 많아질수록 찾기 더욱 어려워지고, 그 수도 매우 적기 때문에 현실적으로 굉장히 중요한 분야가 되고 있는 것 같다. 즉, 뒤져야 할 데이터는 매우 많은데 실제로 찾을 수 있는 사례는 거의 없어서 모르고 지나가는 경우도 많고, 그러다 보면 비즈니스 상의 큰 문제로 붉어질 수 있으니까 말이다.

 

지도학습(Supervised)의 한계

  이상탐지 모델링을 할 때, 지도학습으로만 해낼 수 없는 이유들이 있다. 실제로 이상탐지 모델링은 Supervised Learning 보다 Unsupervised(비지도) 또는 Semi-supervised(반지도) 학습을 많이 활용하는 것을 볼 수 있다. 이런 이유는, 우리가 찾아야 하는 이상한 패턴은 매우 적고 그렇지 않은 데이터는 매우 많기 때문이다.

  SMOTE 기법을 들어본 적 있을 것이다. 지도학습 모델링을 할 때, 타겟 데이터의 비율이 너무 불균형하면 학습이 제대로 되지 않는 경우에 그 균형을 맞춰주기 위한 대표적인 기법이다. 즉, 0과 1 중에 1이 너무 적으면, 모델이 0의 모양만 익숙해서 1의 모양을 잘 모른다는 말이다. 그래서 1을 던져줬을 때, 그게 0인지 1인지 제대로 구분해내지 못하고, 수없이 많은 0들 중 지금 이 데이터와 가장 유사한 0를 본 적 있기 때문에, 1로 판단하지 못하고 0으로 판단해버린다고 이해하면 좋을 것 같다.

  이 사례 등을 이상탐지로 가져오자면, 이상탐지 모델에서는 결국 (가장 성능이 뛰어나다고 유명한) 지도 학습으로는 충분한 성능을 내기가 쉽지 않다는 것이다. 그래서 실제로, 지난 딥러닝 프로젝트에서도 Semi-supervised 학습 방식으로 네트워크 침입 탐지 모델링을 진행했었다. (참고 : Network Intrusion Detection using Deep Learning Techhnique)

  그래서 인지, 이번 데이콘 콘테스트에서도 비지도학습 방식의 이상 탐지 모델링을 Problem으로 가져와 경진을 진행한다. 나로서는 더욱이 좋은 기회이자 경험이 될 수 있을 것 같다.

 

어떤 모델을 써야 하는가.

  지도학습 기반의 기계학습으로 이상탐지 모델링을 진행한다면, 다음과 같은 문제가 발생하기 쉽다.

  1. 이상하다고 규정할 사례가 많지 않다. Test를 진행할 경우에도 마찬가지다. 그래서 결론 성능에 속기 쉽다.
  2. 이상한 것이라고 사람이 지목한 것이 매우 애매하게 다른 정상인 것과 구분되지 않는다. 이게 이상한건지 아닌지 알기 어렵다.
  3. 그냥 학습데이터가 충분하지 않은게 가장 크다. 그리고 새로운 유형은 학습되지 않아서 이상한 데이터라고 판단하기 어렵다.

  이런 문제로, 흔히 지도학습모델 중에서 분류 문제를 해결하기 위해서 사용하는 Decision Tree(결정나무), SVM(서포트벡터머신), Regression(회귀), DNN(Deep Neural Network) 등의 알고리즘들이 이상탐지에 사용하기 어렵다고 알려져 있다. 그리고 어디서 봤는데, 이런 방법은 이미 많은 학자들이 시도해서 쓸모가 없다는 것을 확인했다고 한다.

 

  이상탐지는 판별의 문제이기 때문에, 비지도학습도 쉽지는 않다고 한다. 이상한 것이라고 정의된 어떤 것들을 찾아내야 하는데, 정답을 주고 비슷한 것을 찾는 문제를 해결하는 것이 일반적으로 부적합하다. 이상한 것이 아니라 따로 묶인 군집들을 구분해서 제시해줄 텐데 분리된 군집들 중에 이상한 것만 모여있는 모델을 만드는 것이 매우 어렵기 때문이다.

  최근에 비지도학습에서 랜덤컷포레스트(Random Cut Forest)라는 알고리즘이 알려졌고, 이상탐지에 가장 유력하게 사용할 수 있는 모델 알고리즘이라고 한다. 실제 성능도 다른 알고리즘에 비해 보편적으로 좋은 편이다. 랜덤컷포레스트가 무엇이길래..! (참고 : 랜덤컷포레스트 모델 논문이 잘 정리된 블로그 포스트)

 

  비지도학습에 활용되는 모델로는 크게 아래와 같이 나타나는데, 이번 프로젝트에서는 딥러닝 기반은 제외하고 진행하려고 한다.

1. Isolation Forest (가장 흔하고 쉽고 인기 있는 모델, 트리 기반)
2. Local Outlier Factor Algorithm (근접 기반)
3. One Class SVM
4. AutoEncoder (딥러닝 신경망 기반)
5. Random Cut Forest(Isolation Forest 변형)

  sklearn 등에 비지도학습 관련 모듈이 잘 정리되어 있는 듯하다. 하나씩 차근차근 모델을 적용해봐야겠다. 성능이 작다면, 통계 방식의 Feature Selection도 진행해볼 예정이다. 기대하시랏.

 


 

Photo : Unsplash, "Data Science"

 

이번 프로젝트는, 신용카드 사기 거래와 관련한 이상 탐지 모델을 만드는 것이다.

다양한 ML 모델을 적용해서 유의미한 수치의 성능을 내고 싶은 것이 이번 목표이다.

Anomaly detection project, New Hi! 홀로서기 #8 끝.

 


 

반응형

댓글