[ Neural Feature Extraction of signal data ]

기존의 (NN을 사용하지 않은) Feature Extraction 방법은 주로 “지식/공식”에 기반한 deterministic한 형태의 추출 방법이었다면, 이번에 다룰 Neural Featrue Extraction은 “특정 목적을 수행하기 위해 적절한” feature를 뽑아내기 위한 방법이다. (즉, task에 따라 같은 data에서도 feature가 다르게 뽑힐 수 있는 non-deterministic한 방법이다 )

Neural Feature Extraction의 대표적인 2가지 방법은 아래와 같다.

  • 1) Wav2Vec
  • 2) SincNet ( + PASE )

이번 포스트에서는 Wav2Vec에 대해서 다룰 것이다.


1. Wav2Vec

(1) 구성

( 둘 다 CNN )

  • 1) encoder network \(f\)
    • \(X \rightarrow Z\).
  • 2) context network \(g\)
    • \(Z \rightarrow C\).
    • 여기서 변환된 \(C\)를 feature로써 사용!


.


(2) 학습 과정

  • **binary classification **

    ( 입력으로 들어오는 sample 쌍이 positive인지 negative인지 )

  • positive ) \(C_i\) & \(Z_{i+1}\)

    negative ) \(C_i\) & \(Z_{i+1}\) 외의 다른 random sample

  • 학습 과정에서,

    • positive sample은 서로 가까워지도록
    • negative sample은 서로 멀어지도록

    학습이 이루어진다.


2. VQ-Wav2Vec

Wav2Vec + Vector Quantization

(1) 구성

( 둘 다 CNN )

  • 1) encoder network \(f\) ( Wav2Vec과 동일 )
  • 2) Vector Quantization 모듈
    • 자세한 내용은 뒤에서
  • 3) context network \(g\) ( Wav2Vec과 동일 )

,.


Vector Quantization 모듈

  • continuous \(Z\) \(\rightarrow\) discrete \(\hat{Z}\)
  • 대표적 방법 : Gumbel Softmax & K-means Clustering


a) Gumbel Softmax

  • Gumbel Softmax에 관한 구체적인 내용은이전에 올렸던 포스트 참조!

    ( https://seunghan96.github.io/ml/stat/Gumbel_Softmax_Trick/ )

  • Step 간단 요약

    • 1) logit으로 변환 ( + Linear Transformation )
    • 2) Gumbel Softmax
    • 3) argmax
    • 4) Embedding matrix와 내적

.


b) K-means Clustering

  • \(Z\)와 embedding matrix의 벡터와의 거리 (euclidean distance) 계산
  • 가장 가까운 embedding matrix의 벡터 선택

.


Reference

https://ratsgo.github.io/speechbook/docs/neuralfe/wav2vec