업무

FDS(Fraud Detection System) 리서치 2

postbirds 2026. 1. 11. 23:20
  1. FDS(Fraud Detection System) 리서치 1
  2. [현재 게시글] FDS(Fraud Detection System) 리서치 2 
  3. FDS(Fraud Detection System) 리서치 3 

지난 포스팅에서 FDS의 전반적인 아키텍처라는 '큰 그림'을 그려보았다면, 이번에는 그 내부를 채우는 AI 알고리즘에 대해 깊이 있게 들여다보고자 합니다.

 

다시 말씀드리지만, AI 모델의 세부 로직은 제게 낯선 영역입니다. 저번과 마찬가지로 막막한 마음으로 자료를 찾던 중, 저와 같은 초심자에게도 한 줄기 빛과 같은 논문을 발견했습니다. 그 내용을 바탕으로 공부한 내용을 정리해보고자 합니다.

 

인용 논문 및 저작권 안내

학습의길잡이가 되어준 소중한연구 자료이기에, 먼저 출처를 명확히 밝힙니다. 

[저작권 준수 사항] 본 포스팅은 원저작물의 CC BY-NC-ND(저작자표시-비영리-변경금지)의 라이센스를 준수합니다. 원저작자를 명확히 밝히며, 영리적 목적이 없음을 알립니다. 또한, 논문의 내용을 임의로 개작하지 않고 개인적인 학습 및 리뷰의 목적으로만 활용하였습니다.

 

논문 내용 정리

AI model을 학습시키기 위해서는 AI 모델을 선택하는 것만큼 '데이터'가 중요합니다. 데이터의 양도 중요하고 데이터의 질도 중요합니다. 학부 시절 "Garbage In, Garbage Out"이라는 말을 체감했던 기억이 나는데, AI에선 이 문제가 두드러지더군요.

 

우선 논문 내용을 적어보만 다음과 같습니다.

FDS에서 사용하는 데이터는 정상 거래 수가 이상 거래 수보다 많아서 데이터 불균형이 발생합니다. 이를 해결하기 위한 방법으로 언더 샘플링, 오버 샘플링, SMOTE 등의 방법이 존재합니다. 이 데이터 불균형을 해소한 후, XGBoost 알고리즘을 통해 생성된 데이터가 실제 데이터와 얼마나 유사한지 평가합니다.

 

( 이 평가를 위해선 데이터 품질(유사도)를 특정 기준을 세워서 정량적으로 검증하고, 탐지 모델학습에 적합한 최적 데이터셋을 선별하는 것 같습니다. 이렇게 평가하는 이유를 생각해보면, 가짜 데이터가 너무 가짜면 모델 학습에 방해가 되도, 너무 유사하면 오버피팅이 발생하기 때문입니다.) 

 

이후, 데이터 환경에 따라서 학습 전략을 선택합니다. 지도학습/비지도학습/준지도학습이 있습니다. 이 학습 전략에 따라서 알고리즘을 선택합니다. 논문에서 언급된 알고리즘 'Decision Tree, XGBoost, AdaBoost, MLP '은 모두 지도 학습에 해당합니다.

 

이제 부터는 이 내용을 풀어서 다시 적어보겠습니다. 

 

데이터 불균형 해소

AI를 학습시키려면 데이터를 조사해야 합니다. 기본적으로 정상 거래 데이터의 수가 이상 거래 데이터의 수보다 많습니다.

즉, 정상 거래 수 > 이상 거래 수 (사기 데이터) 입니다.

 

이 상태로 AI 모델을 학습시키면 "전부 정상이라고 하는 것이 정확도가 제일 높다"는 결론에 도달할 수 있습니다. 따라서 데이터의 균형감을 맞춰주어야 합니다.

 

이를 해결하기 위한 샘플링 기법이 논문에서 소개됩니다.

  • 언더 샘플링: 많은 쪽(정상) 데이터 일부를 삭제 → 유용한 정보 손실 
  • 오버 샘플링: 적은 쪽(이상) 데이터를 복제 → overfitting 위험
  • SMOTE(Synthetic Minority Over-sampling Technique): 데이터 사이 공간을 줄이며 증식

논문에서는 GAN(Generative Adversarial Networks)를 활용한 오버샘플링을 제안합니다. GAN을 활용한 오버샘플링은 기존 데이터를 단순 복제하는 것이 아니라, 실제와 유사한 가짜 데이터를 생성하는 것입니다.

SMOTE는 소수 데이터(이상 거래)들 중 가까운 이웃을 골라 그 사이 직선상에 가상 데이터를 찍는 방식입니다. 기존에 존재하는 데이터의 테두리 안에서만 데이터를 만드는 한계가 존재하므로 새로운 사기 패턴을 만들지는 않습니다. GAN은 generator와 discriminator가 적대적으로 학습을 하는 방식입니다. 학습이 진행될 수록 generator는 실제 사기 거래의 다양한 패턴으로 변환하게 되고, discriminator는 생성자가 만든 것이 사기인지 아닌지를 판단합니다. 이 과정에서 generator는discriminator를 속이기 위해 기존엔 없었지만 실제와 유사한 데이터 특징을 스스로 학습해서 새로운 데이터를 만들어 냅니다. 

 

논문에서 제안하는 GAN 활용 오버샘플링 방법의 GAN은 3가지 종류가 있습니다.

  • GAN(Vanilla GAN): 가장 기본적인 모델
  • cGAN(Conditional GAN): 특정 조건을 부여해 데이터 생성
  • WGAN(Wasserstein GAN): 학습 안정성을 높여 더 정교한 가짜 데이터 생성

위 같은 방식으로 생성된 새로운 데이터가 실제와 얼마나 유산한 지를 XGBoost 알고리즘을 이용해 평가합니다.

유사도 평가를 위해서 XGBoost 알고리즘을 사용하는 이유는 XGBoost가 표 형태 데이터 분석에 강하기 때문입니다. FDS 데이터는 표 형태를 띄우고 있습니다. 유사도 평가를 할 때 핵심 지표는 AUC(Area Under the Curve) 또는 Accuracy 입니다. 그런데, 현재 데이터 유사도 평가에서 AUC가 높은 값일 때는 가짜 데이터가 티가 많이 나는 상황이므로 AUC가 낮을 때(진짜와 가짜가 구분이 안 갈 때)가 좋은 데이터입니다.

 

학습 방식에 따른 분류

논문에서는 상황에 맞는 다양한 학습 방법론을 설명합니다. (이 부분은 AI 관련 기본 지식으로 알고 있던 내용이라 다행이였습니다.)

지도 학습(supervised) labled data 학습 Linear Regression, Logistic Regression, Decision Trees, Random Forests, Support Vector Machine(SVM), K-Nearest Neighbors, Gradient Boosting, Naive Bayes Algorithm
비지도 학습(unsupervised) unlabled data 학습.
outlier가 아주 적은 데이터에서 outlier(튀는 값)을 찾을 때 유용.
Clustering, PCA, Autoencoder 등
준지도 학습(semi-supervised) labled data가 적은 상황에서 사용하는 절충안 Label Propagation, Self-Trainig 등

 

논문에서는 FDS에서 지도학습 방법으로 분류를 하는 방식을 선택합니다. 왜 그럴까를 추측해보면,  돈을 다루는 일이다 보니 사기인지 아닌지를 명확히 판단해야 하는 것이 중요해서 인 것 같습니다. 그런데 라벨링 된 데이터를 활용하는 지도학습이 오탐(정상을 사기로 판단)을 줄일 가능성이 높기 때문입니다.

 

분류 알고리즘 선택

지도학습 중 분류를 담당할 머신러닝 모델이 필요합니다.  논문에서는 이를 위해 아래 분류 알고리즘을 제시했습니다.

  • Decision Tree: 스무고개처럼 질문을 던져 분류하는 모델. 
  • AdaBoost / XGBoost: 약한 분류기들을 결합해 강력한 성능을 내는 모델
  • MLP (Multi-Layer Perceptron): 딥러닝의 기초가 되는 인공신경망 구조.

인공지능의 한 분야로 머신러닝(ML)이 존재하고, 머신러닝의 하위 분야에 딥러닝(DL)이 존재합니다. 머신러닝은 feature 추출을 사람이 직접하고, 딥러닝은 모델이 스스로 feature를 추출합니다. DL의 경우는 ML보다 많은 데이터가 필요하고, Rule로는 설명하기 힘든비선형적인 패턴을 잡는데 유리합니다.  위 세 가지 방식에서 MLP만 DL이고 나머지는 ML입니다.

 

평가 방법

metric을 보는 방법은 논문에서 나와있진 않습니다. 하지만 AI 모델을 평가하기 위해서 기본적으로 알고 있어야 합니다. 

 

confusion matrix

앞으로 나올 모든 평가 지표는 confusion matrix에서 나옵니다.

예측 \ 실제 실제로 정답(Positive) 실제로 오답(Negative)
정답이라 예측 TP(Positive라고 예측했는데 그게 True임) FP(Postive라고 예측했는데 예측이 False임)
오답이라 예측 FN(Negative라고 예측했는데 그게 False임) TN( Negative라고 예측했는데 그게 True임)

 

정확도(Accuracy)

전체 중 정답을 맞힌 것의 비율

정밀도(Precision)

정답이라 한 것 중 진짜 정답인 것의 비율 (모델의 신뢰도)

 

재현율(Recall)

실제 정답 중에서 AI가 잡은 정답의 비율 (검거율)

 

F1-Score

정밀도와 재현율의 조화 평균이다. 둘 중 하나만 높고 하나가 낮으면 점수가 확 내려간다. 둘이 조화로울 때 점수가 높다.

 

 

FDS에서 사용한다면 Postive는 Fraud(사기)로 둘 수 있습니다. 이 경우 정확도(Accuracy)는 전체 거래 중 맞힌 비율입니다. 가짜 데이터가 낮은 상황에서 전부 정상이라고 하면 높은 accuracy가 나오기 때문에 현재 상황에서 가장 필요 없는 지표입니다. precision의 경우 fraud 중 모델이 fraud를 맞힌 비율입니다. 높으면 정상 거래를 한 고객을 사기라고 탐지할 가능성인 오탐 가능성이 줄어듦으로 높을 수록 좋습니다. Recall은 실제 사기 거래 중에서 사기라고 맞춘 것입니다. 높으면 높을 수록 사기를 잡을 수 있으므로 좋습니다. 그런데 Precision과 Recall은 반비례 관계에 있습니다.

 

이를 고려할 때, Precision과 Recall을 먼저 보고 둘이 적절하게 높은 상황에서 F1-Score로 최종 모델을 선택해야 한다는 결론에 도달할 수 있습니다. 

 

후기

생소한 AI 분야를 논문이라는 지도를 따라 탐험하니, '데이터에 대한 깊은 이해'와 '목적에 맞는 평가 기준'이 중요하다는 것을 깨달았습니다. 

 

오늘 학습한 내용은 당장 완벽한 모델을 만드는 비법은 아닐지라도, 향후 동료들과 시스템 탐지 로직을 논의할 때 더 정교하고 논리적인 근거를 제시할 수 있는 자양분이 될 것 같습니다. 기술의 본질은 결국 문제를 얼마나 정확하게 정의하고, 그에 맞는 도구를 선택하느냐에 달려 있다는 점을 다시금 새겨봅니다. 

'업무' 카테고리의 다른 글

Visual Studio Code 단축키  (0) 2026.06.21
Newbi 개발자 Git 관련 내용 정리  (0) 2026.02.08
FDS(Fraud Detection System) 리서치 3  (0) 2026.01.24
FDS(Fraud Detection System) 리서치 1  (0) 2026.01.07