[ Neural Feature Extraction of signal data ]Permalink

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

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

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

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


1. SincNetPermalink

(1) 구성Permalink

  • 첫 번째 layer : sinc function ( sin(x)/x )
  • 그 이후 layer : 일반적인 NN과 유사

  • Task : 화자가 누구인지 맞추는 task

.


(2) Time 도메인에서의 ConvolutionPermalink

y[n]=x[n]h[n]=L1l=0x[l]h[n1]y[n]=x[n]h[n]=L1l=0x[l]h[n1]
  • x[n] : Time 도메인에서 n번째 raw wave sample
  • h[n] : Convolution Filter의 n 번째 값
  • y[n] : output의 n번째 값


직관적인 이해

  • yx와 필터 h의 연관성이 높을수록 커짐
  • 필터 = 주파수 Input을 증폭/감쇄하는 역할
  • **Time 도메인에서의 Convolution = Frequency도메인에서의 Multiplication **


(3) Bandpass Filter ( Sinc Function )Permalink

목표 : 발화자 인식!

발화자 인식에 있어서 중요한 주파수 영역(band)만을 남기길 원함 ( via Bandpass Filter )

Frequency 도메인에서, 이러한 역할을 하는 함수는 아래 그림과 같은 Rectangular function

  • rect(t)=Π(t)={0, if |t|>1212, if |t|=121, if |t|<12.

.


Time 도메인에서는,이에 적합한 함수가 **Sinc Function **

  • f(x)=sin(x)/x
  • WHY?

    Frequency 도메인에서의 Rectangular function으로 곱셈 연산

    = Time 도메인에서 Sinc Function으로의 컨볼루션 연산

  • Sinc function을 Fourier Transform하면 Rectangular function

    (+ 그 역도 성립)

    • sinc(t)ei2πftdt=rect(f).
    • rect(t)ei2πftdt=sin(πf)πf=sinc(πf).


(4) Window ( Hamming Window )Permalink

Lobe & Side Lobe Effect

  • Lobe = 봉우리 ( 아래 그림 참조 )
    • Main Lobe : 가장 높은 봉우리
    • Side Lobe : 그 외의 봉우리들
  • Side Lobe Effect : Filter에 Side Lobe들이 많으면, main으로 잡아내고자 하는 것 외의 다른 주파수 영역대 정보도 잡아냄 (noise로 작용)
  • Filter의 길이(=L)가 길수록, Side Lobe Effect

.

Sinc Function 자르기

  • sinc function이 fourier transform을 거쳐서 rectangular function이 되기 위해선, L이 무한해야함 ( sinc(t)ei2πftdt=rect(f) )

  • 하지만, 실제로 그럴 순 없기 때문에, 적당한 길이로 sinc function을 잘라야함

  • 아래 그림 참조 )

    .

  • (이상적) 맨 위 그림 ( L, rectangular function )

    (현실) L< … main 부분의 일부를 캐치 X, noise도 일부 껴있음

  • 이를 해결하기 위해 고안된 것이 Window

    ( sinc function을 자르지 않고, window를 사용해서 smoothing )


Hamming Window

  • w[n]=0.540.46cos(2πnL).

    .


요약 : 이상적인 Filter는 L, 하지만 현실적으로 그럴 수 없다. 따라서 불필요한 정보는 일부 포함될수밖에 없고, 중요한 정보도 일부 손실될 수 밖에 없다. 이를 보완하고자 제안된 것이 (Hamming) Window를 사용한 smoothing이다.


(5) SincNetPermalink

y[n]=x[n]g[n,θ]
  • x[n] : Time 도메인에서의 n번째 샘플 입력
  • g : Convolution Filter
    • 이상적) Rectangular Function 형태 in Frequency 도메인


이상적인 BandPass Filter

  • (Frequency 도메인) G[f,f1,f2]=rect(f2f2)rect(f2f1)

  • (Time 도메인) g[n,f1,f2]=2f2sinc(2πf2n)2f1sinc(2πf1n).

    여기에 window를 적용하면…

    gw[n,f1,f2]=gw[n,f1,f2]w[n] ,

    where w[n]=0.540.46cos(2πnL).


ReferencePermalink