lookbackjh / pytorch_SEFS

Pytorch Reimplementation of SEFS : Self-Supervision Enhanced Feature Selection with Correlated Gates(ICLR 2023)
0 stars 0 forks source link

VIME 정리 #17

Closed glistering96 closed 1 year ago

glistering96 commented 1 year ago

목표: Image/text처럼 tabular data 도메인에도 pretext task (i.e., BERT에서는 이전 단어를 사용하여 다음 단어를 예측하는 task)를 생성하여 self/semi-supervised learning을 좀 더 잘해보고 싶은 상황

방법:

  1. 확률이 p (hyperparmeter)인 Bernouil 분포에서 masking vector, $\hat{m}$을 생성
  2. 생성된 $\hat{m}$ == 1인 feature에 대해서 해당 feature의 sample을 random perturb하여 사용. 이렇게 만들어진 feature vector $\tilde{x}$를 corrupted feature vector라고 함
  3. Auto-encodere 구조로 corrupted feature를 입력으로 하여 원본 feature $x$에 대한 reconstruction loss를 줄여주기
  4. 이와 동시에 latent vector $z$를 가지고 mask를 어디에 했는지를 예측하도록 만들기
  5. 3번 그리고 4번 과정을 통해 encoder는 feature 간 corrleaetion을 잘 예측할 수 있게 됨. $s_m$ (masking predictor)는 feature 간 inconsistency를 파악하여 masked feature를 잘 구분할 수 있고, $s_r$ (reconstructor)는 correlated된 feature를 통해서 더 잘 imputation을 할 수 있음. 이때 $s_m$이 inconsistency를 파악한다는 것은 feature correlation이 있다면 이 정보에 기반하여 masked feature를 좀 더 잘 파악할 수 있다는 의미
    1. 위의 과정을 self-supervised만 적용/semi-supervised로 확장/self-supervised 후 semi-supervised 적용 (VIME) 세 단계의 서로 다른 framework를 제안함

실험 결론: self-supervsied<<semi-supervised<VIME

SEFS와 합칠 때 고려할 것:

  1. semi-supervised로만 feature selection을 하기 위해서는 결국 random mask가 아니라 어떤 방법으로 mask를 유도해야 하는데 이것을 어떻게 할 것인가? -> SEFS에서 Gaussian coupla 사용함 -> 그럼 SEFS는 왜 semi-supervised 방법을 사용하지 않았는가?
  2. SEFS에서는 mask를 유도할 때 MultiBern 가정하고 확률값 $pi=0.5$ 설정하고서 self-supervision 학습함. 이 때 확률이 필요한가? 그냥 direct하게 soft-version mask를 만들면 안되는가? (i.e., $m$ <- Ssoftmax(tanh(x)))

확인해 볼 것:

  1. VIME에서 얻어낸 correlation이 SEFS처럼 경쟁이 되어서 중요한 몇개만 살아 남는가?
  2. VIME에서 semi-supervised<VIME 이 차이, semi-supervised 학습을 좀 더 길게 하면 더 비슷한 결과 나오지 않을까?