[ 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