-
논문 리뷰 : Generate model based on SMOTEPaper 2023. 2. 8. 16:06
Dablain, D., Krawczyk , B., & Chawla, N. V. (2022). DeepSMOTE : Fusing deep learning and SMOTE
for imbalanced data. IEEE Transactions on Neural Networks and Learning Systems.
1. Data Imbalance를 Generator로 해결해볼까?
2. AutoEncoder와 SMOTE의 결합
학부 때 처음 접한 SMOTE 기법에 대해서, 최근에 SMOTE를 응용하는 연구가 있을까? 하며 찾아보다가 DeepSMOTE를 발견하였다. 비교적 간단한 아이디어로 고차원 데이터의 불균형 문제를 연구한 논문인 것 같아, 자세한 수식이나 디테일한 부분을 제외하고 아이디어 위주로 소개해보려고 한다.
우선, SMOTE는 기본적으로 소수 클래스의 데이터를 다수 클래스의 데이터의 크기와 동일해지도록 증대시키는 OverSampling 기법 중 하나이다. 자세한 설명은 이미 너무 많은 곳에서 잘 되어있어서, 간단하게 요약만 해보면 소수 클래스의 어떤 한 점과 그 이웃 소수 클래스 점 사이에 보간점을 새로 생성하는 것이다.
주로 Tabular 데이터에서 많이 사용하는 SMOTE가, 이미지 등의 고차원 자료에서도 사용될 수 있을까? 를 고민해보기 위해서, 나는 두 가지 문제를 우선 생각해보아야 한다고 봤다.
첫 번째로, "이웃"이라는 개념이 일반적으로 Distance 개념, 그 중에서도 맨하탄 혹은 유클리디안 거리를 사용하기 때문에, 높은 차원의 Sparse한 데이터로 우리가 관심을 가질수록, 거리 개념은 점점 무의미해지게 된다.
Cornell lecture note 위의 그림에 주목하면, 고차원으로 갈수록 데이터 간 거리가 거기서 거기라고 볼 수 있다. 거리를 비교해서 최단거리에 있는 데이터를 찾아야 SMOTE를 할텐데, 이 거리가 의미가 없다면 고차원 자료에서는 SMOTE를 활용할 수가 없지 않을까?
두 번째로는, 위의 그림과 같이 A처럼 표현되는 부분은 문제가 없지만, B처럼 표현되는 부분에서 문제가 생길 수 있다. 보간점을 통해 데이터를 늘리는 방식인 SMOTE가, B 영역에서 구현이 된다면 빨간색 점들 사이에 끼어있는 초록색 점만 많아지게 된다. 변수를 더 수집하지 않고서는 B 영역에 어떤 점을 분류하라고 했을 때, 모두 빨간색이다 라고 분류하는 것 외에는 방법이 딱히 떠오르지 않는다. B 영역에 초록색 점을 OverSampling 하는 것은 의미가 없다는 것이다.
더 깊게 들어가면 Data Uncertainty 문제로 넘어가겠지만, 우선 이러한 한계점을 극복하는 SMOTE는 다양하게 개발되어있다. 그리고, 이미지와 같은 고차원 데이터에서는 데이터 자체가 희박하기 때문에, 두 번째 문제보단 첫 번째 문제가 더 중요하지 않을까 생각이 든다.
암튼 이에 대해, 본 연구에서는 (1) 차원을 축소한 다음 (2) 축소된 잠재공간에서 SMOTE를 진행하고 (3) SMOTE를 통해 새롭게 생겨난 잠재공간 상 점을 (4) 원래 차원에 다시 표현시키는 작업을 통해 마치 새로운 데이터를 Generate하는 듯한 과정을 제안하였다.
1. Data Imbalance를 Generator로 해결해볼까?
본 연구의 저자는 기존의 생성 모형으로 데이터 불균형을 해결하는 것이 어떤 문제가 있는가를 설명하였다.
우선 불균형을 해결하는 접근법을 크게 두 가지로 나누었는데, 첫 번째는 Loss 또는 Weight의 조정으로 소수 클래스에 대한 패널티를 늘리는 방법이다. 두 번째는 생성 모형을 비롯한 알고리즘으로 Resampling을 해서 균형을 맞춰주는 것이다.
Loss를 수정하는 첫 번째 방법은, 데이터의 특성을 반영한다기보단 단순 모델 학습 차원에서의 접근법이라고 생각하였다. 따라서, 본 저자는 생성모형 기반의 Resampling에 관심을 가졌는데, 일반적인 GAN을 사용하기엔 파라미터의 튜닝이나 Discriminatior의 학습에 안 그래도 적은 minor class를 이용해야 하니, 이 과정이 별로 좋지 못하다고 생각한 듯 하다.
비교할 만한 실제 데이터가 몇 개 없으니, 진짜인지 가짜인지 판단하는 모델을 학습 및 튜닝시키는 것 부터가 어려울 수 있겠다. 그렇다면, 현재의 데이터의 갯수와 상관 없이 효과적인 Oversampling을 구현할 수 있을까?
2. AutoEncoder와 SMOTE의 결합
서론부에 말했듯, 이 논문에서는 SMOTE를 활용한 이미지 데이터의 OverSampling 과정으로 차원 축소 후 SMOTE를 적용하는 방향을 제안하였다.
그림의 윗줄은 차원 축소를 위한 오토인코더를 학습하는 과정이고, 아랫줄은 오토인코더의 축소된 잠재공간 상에 SMOTE를 적용시킴으로써 새로운 데이터를 생성시키는 과정이다.
우리는 새로운 데이터 생성에 관심이 있으나, 오토인코더는 기본적으로 "복원"을 Loss로 하는 모형이다. 복원 목적의 기존 학습은 빨간색 박스로 표시된 부분이다. 이후 파란색 박스로 표시된 부분은, 잠재공간을 SMOTE 했을 때 잘 표현할 수 있도록 추가로 학습시켜주는 부분이다. 잠재공간을 permutation 해 주는 과정인데, 좀 더 자세히 살펴보면 아래와 같다.
"개구리" 클래스가 소수 클래스라고 하면, 이러한 소수 클래스에 해당하는 데이터의 Latant가 저런 식으로 학습되었다고 하자. 이 때, 일반적인 오토인코더 처럼 학습시키지 말고, Latant의 변수 하나를 같은 클래스 내에서 무작위로 섞어버린다음 학습을 하자는 것이다. 이때 목표로 하는 복원 형태는 기존의 이미지와 동일하다.
그림의 예시처럼, 첫번째 개구리 사진의 잠재공간 상 표현이 [3,0]이라고 할 때, 그 것이 permutation으로 [1,0]이 되어도 똑같은 첫번째 개구리 사진으로 복원되길 원한다는 것이다(물론, Latent의 차원 수는 2보다는 조금 더 커야 한다. 안 섞이고 남아 있는 변수도 어느정도 있어야 하니,,,). 저자는 이 부분을 오토인코더가 "개구리"라는 클래스의 분포를 학습하도록 한다고 설명하였다.
오토인코더의 잠재공간을 뒤섞는 Step 하나를 이렇게 추가함으로써, 이후 잠재공간에 SMOTE를 적용하여도 학습에 도움이 되는 그럴듯한 이미지를 생성할 수 있다고 설명하고 있다.
위 사진은 이 방법으로 (1)첫번째 소수 클래스 이미지 + (2)두번째 소수 클래스 이미지 = (3)생성한 이미지의 순서로 본인들의 모형이 만들어낸 데이터에 대해 설명하고 있다. 기본적으로, 결과물로 판단해 보기엔 생성모형보다는 MixUP등의 방법과 유사하게 전처리 단계에 해당하는 Augmentation의 목적에 더 적합한 것 같기도 하다.
'Paper' 카테고리의 다른 글
논문 리뷰 : MC dropout을 통한 Pseudo labeling의 개선 (0) 2022.12.27 논문 리뷰 : CNN을 이용한 운동 데이터 분류 (0) 2021.02.04 논문 리뷰 : 나이브 베이즈 분류기가 텍스트 분류에 좋은 분류기일까? (0) 2021.01.11 논문 리뷰 : 코시 나이브 베이즈 분류기를 통해 표정의 감정 분석하기 (0) 2021.01.03