본문 바로가기
머신러닝&딥러닝/논문리뷰

Challenges with Extreme Class-Imbalance and Temporal Coherence: A Study on Solar Flare Data

by Like_Me 2020. 10. 15.

  이번 논문은 Class-Imbalance와 Temporal Cocherence 한 데이터를 다룰 때 어떤 방법들이 있으며 어떤 함정을 피해야 하는지를 소개한 논문이다. Solar Flare Data로 예시를 들며 설명을 하였는데 마침 플레어와 관련한 논문을 작성하기로 해서 본 논문이다. 실제로 플레어는 X-ray flux의 파장에 따라 등급을 나누는데 굉장히 Imbalance 하다. 강한 것부터 나열하면 X, M, C, B, N인데 갈수록 많아지는 구조이다. 또한 태양은 11년이라는 주기를 가지고 있어 각 연도별로 X등급이 나오는 비율도 다르다. 논문에서는 2009~2019까지의 데이터를 사용해 아래와 같은 그래프를 나타냈다.

partition을 5개로 나누었다
블균형한 데이터 분포

X Class의 분포가 나머지에 비해 굉장히 적음을 알 수 있다. 논문 제목에서 Extreme이라는 단어를 사용한 것이 납득된다. 또한 논문 제목에서 눈에 띄는 키워드는 'Temporal Coherence'이다. 이는 '일시적인 연관성' 정도로 해석할 수 있겠는데 시공간적 데이터셋에서 일어나는 event에 대한 분류를 하려고 할 때 temporal coherence가 중요하다고 말한다. 이는 데이터가 공간적, 시간적 근접성 때문에 비슷한 특징을 나타내는 것을 의미한다. 예를 들어 태양 플레어의 경우에는 시간이 별로 지나지 않았을 때 자기장의 운동이 비슷할 것이므로 플레어가 일어나도 그 특성이 유사하다는 것이다. 이에 따라 같은 주기의 플레어는 잘 맞추어도 다른 주기의 test 셋은 잘 맞추지 못할 수 있다. 따라서 temporal coherence를 고려하여 train과 test를 진행해야 하며 이에 대한 실험은 뒤에 나온다.

 

 

  논문에서는 Solar Flare Prediction에는 3가지 문제가 있다고 제시한다. 첫번째로는 위에서 봤듯이 Extreme Class-Imbalance 문제이다. 두 번째로는 Point-in-time vs Time Series Forecasting이라고 제시되어 있는데 플레어는 본질적으로 역동적 현상이고 진화적 경향(pre-flare와 post-flare)이 있기 때문에 single snapshot으로 보면 안 된다는 것이다. 그래서 time series로 진화적 경향을 고려하여야 하며 이것은 point-in-time 보다 다루기 어렵다고 한다. 세 번째로는 Non-representative Datasets다. 태양은 주기를 가지고 변화하는데 하나의 태양 주기를 보고 train 하여 다음 주기를 맞추는 task는 효과적이지 않다. 왜냐하면 자기장의 활동이 지속적으로 변화하기 때문이다. 또한 수집된 좋은 데이터도 많지 않기 때문에 데이터가 대표성을 띄지 못하는 문제가 있다. 

 

  데이터셋은 SWAN-SF를 사용한다. 이를 첫번째 이미지(Fig2)와 같이 5개의 partition으로 나누었다. 그 기준은 X , M Class가 대략적으로 유사하게 포함되도록 한 것이다. 그래서 태양 활동이 활발한 3번째 partition은 매우 짧은 것을 확인할 수 있다. 실험은 단순함을 위해 5개의 클래스가 아니라 XM, CBN 두 개의 클래스로 진행하였다. 모델은 모든 실험에서 SVM을 사용하였다.

 

  위에서 제시한 문제중 데이터 분석을 할 때 가장 많이 겪는 문제는 Imbalance일 것이다. 나도 상당히 많이 겪었는데 여기에는 간단한 두 개의 방법이 있다. Undersampling, Oversampling이다. Undersampling은 많은 데이터가 사용되지 못한다는 단점이 있고 Oversampling은 overfitting 될 수 있다는 단점이 있다. 위에서 제시한 데이터 클래스에 대해 Undersampling, Oversampling 하는 방법은 여러 개가 될 수 있다. binary클래스의 숫자를 맞추면서도 안에 섞인 C, B, N과 X, M 클래스까지 어떻게 맞춰줄 것이냐를 고려해야 하기 때문이다. 그래프로 표현하면 다음과 같다.

oversampling과 undersampling

 

  sampling 기법말고도 Misclassification weight라는 방법을 제안한다. 우리는 minority class(여기서는 XM Class)를 잘 탐지해내는 것에 관심이 있으므로 minority class를 틀리는 것에 더 penalty를 주는 것이다. 이 논문에서는 weight를 조정하는 데 사용하는 식이 $w_{j}=\frac {n} {k*n_{j}}$이다. n은 total population, $n_{j}$는 j class에서의 populatioin, k는 class의 숫자이다. 

 

  Cross ValidationData Normalization, Hyper-parameter tuning에 대한 내용과 실험결과도 있다. Cross Validation은 핵심 내용이 데이터의 시공간적 특성을 고려하지 않은 random sampling을 하면 안 좋다는 것이다. 그 이유는 temporal (or spatial) coherence 때문이다. 그러한 경우에서는 overfitting을 일으킨다고 한다. 이를 피하기 위해서는 데이터셋의 다른 partitions로 train과 test를 해야 한다. 이에 대해서는 뒤의 실험 결과에 잘 나와있다.

Data Normalization은 여기에서는 zero-one normalization을 진행하였다고 한다. 이때 (min,max를 구하는 것을) 각 partition별로 한 것과 전체 데이터셋으로 구한 것에 대한 차이를 확인하였다.

 

  실험에 대한 지표로는 TSS(True Skill Statistic)을 사용하였다. $TSS = TPR + TNR -1 (TPR = \frac {TP} {TP+FN} , TNR = \frac {TN} {TN+FP})$ 로 표현된다. 이는 양성, 음성인 것을 각각 얼마나 잘 골라냈는지를 나타낸다.

 

  실험에서 Undersampling은 위의 fig2에서 제시한 US2 방법을 사용하였고 이는 binary class의 숫자뿐 아니라 그 안의 각 클래스별 숫자까지 모두 맞춰준 것이다. Oversampling은 OS3방법을 사용하였고 이는 X, M class를 1:1로 만들면서 C 클래스는 그대로 유지하고 B와 N은 undersampling 하였다. 참고로 sampling 방법은 train시에만 진행하고 test시에는 데이터를 그대로 사용한다. Mis-Classification Weights는 partition3을 예로 들었는데 minority-majority의 ratio 가 1:20 이어서 $w_{XM}=20, w_{CBN}=1$로 했다고 한다. 실험 결과를 보면 다른 sampling 기법들보다 좋은 결과를 내어 robust 한 forecast model을 만드는데 적합한 것으로 보인다. 실험 결과는 아래와 같다.

실험결과

  다음으로는 Cross Validation을 할 때 Train 셋과 Test 셋을 같은 partition으로 뽑았을 때(Unifold)와 다른 partition에서 뽑았을 때(Multifold)에 대한 실험 결과이다.

cross validation

Unifold가 더 TSS가 높게 나오는데 이는 언뜻 보기에 더 좋다고 판단할 수 있으나 사실은 temporally coherent 데이터를 사용하였기 때문에 overfitting이 일어나서 그렇게 보이는 것이다. 그러므로 robust 한 모델을 만들기 위해서는 Multifold로 Cross Validation을 수행해야 한다.

 

  아래 그림은 Normalization을 Local영역에서 할 때와 Global 영역에서 할 때 각각의 TSS에 대한 그래프이다.

normalization

Local 영역에서의 그래프는 큰 폭으로 성능이 바뀌게 된다. 이는 11년의 태양주기마다 지속적으로 자기장의 활동이 변하기 때문에 training과 testing partitions의 normalization을 일관성 없게 만들어서 그렇다. 반면 Global 한 Normalization은 변화가 적어 robust 한 양상이다. 하지만 어떤 데이터를 쓰느냐에 따라 Local normalization이 나을 수도 있다.

 

마지막으로 Oversampling을 할 때 sub-class balnace를 맞추느냐 아니냐에 따른 실험 결과를 제시한다. 이는 위의 fig4에서 OS3와 OS1에 해당한다. 

Oversampling with or without sub-class balnace

두 방법은 비슷한 성능을 내지만 OS1이 좀 더 우위를 차지한다. 논문에는 OS1은 OS3보다 M-class instances를 X-class 보다 많이 형성하여 분류를 더 쉽게 만드는 데이터셋을 생성한다 라고 나와있다. 그래서 OS1이 더 나은 성능을 보일 것으로 예상하는 것은 당연하다고 한다. 같은 Oversampling이라도 다른 결과를 낼 수 있기 때문에 유사한 데이터셋으로 여러 model을 평가할 때는 같은 sampling 기법을 사용하는 것이 공정하다. 

 

Class-Imbalance와 Temporal coherence로 생기는 어려움을 해결하는 방법에 관한 논문이었는데 주제도 태양 플레어와 관련하여 도움이 많이 되었다. 방법은 기초적인 것이 많았지만 실험 결과들이 흥미로워 많은 insight를 얻을 수 있었다.

 

참조 : Challenges with Extreme Class-Imbalance and Temporal Coherence: A Study on Solar Flare Data, Azim Ahmadzadeh, 2019

반응형

댓글0