논문을 보기 앞서 spectogram에 대한 개념을 알기 위한 모두연 페이스북 카드 자료입니다.

ABSTRACT

이미지의 경우 데이터의 양을 늘리기 위해 다양한 data augmentation 방법들을 사용합니다. 본 논문에서는음성인식을 위한 간단한 data augmentation를 제안하고 이를 SpecAugment라고 명명합니다. SpecAugment는 log mel spectogram을 input으로 Time warping, Frequency masking, Time masking 3가지 방법으로 data augmentation을 합니다. 음성인식 네트워크로 Listen, Attend and Spell을 사용하고, LibriSpeech와 SwitchBoard 데이터 셋을 대상으로 성능 개선을 이루었습니다.

Augmentation Policy

출처 - https://arxiv.org/abs/1904.08779

출처 - https://arxiv.org/abs/1904.08779

위 그림은 첫번째 원본데이터를 시작으로 각 Time warping, Frequency masking, Time masking 순으로 data augment한 그림입니다. Time warping의 경우 왼쪽 부분은 줄어들고 오른쪽 부분은 늘어난걸 볼 수 있습니다. Frequency maksing과 Time masking의 경우 데이터에 초록색 줄이 나타는 것을 볼 수 있습니다.

Time warping 부터 살펴보겠습니다. 기본적으로 tensorflow에 있는 sparse image warp 함수를 사용합니다. sparse image warp 함수는 하나의 point를 다른 point로 옮기는 함수입니다. 아래 그림에서 사각형의 왼쪽 중심을 오른쪽으로 조금 움직인 예시입니다.

출처 - 이재원님

출처 - 이재원님

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/cd843632-1e45-4028-a4c0-001eaf8188fd/image_(1).png

Time warping에서는 하이퍼 파라미터 W가 주어 집니다. 전체 이미지에서 양쪽으로 W만큼 줄인 후 가로 중앙선(파란선)에서 랜덤하게 하나의 점(파란점)을 고릅니다. 파란점이 출발 point가 됩니다. 이후 파란점을 기준으로 2W 범위 내에서 랜덤하게 하나의 점(빨간점)을 고릅니다. 빨간점이 도착 point가 됩니다. 이를 sparse image warp 함수에 파라미터로 사용합니다.

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/5830d45a-0a8e-4d1c-afe5-578ff227b8f1/Untitled.png

masking의 경우 Frequency, Time 모두 방법은 동일합니다. Frequency로 예를 들면, 먼저 하이퍼 파라미터 F가 주어집니다. 이후 [0,F] 범위에서 랜덤하게 f 값을 뽑습니다. 이 값이 masking할 양이 됩니다. 이후 [0, v-f)에서 랜덤하게 f0 값을 뽑고, [f0, f0+f) 만큼 0으로 masking 합니다. Time masking의 경우도 Frequency와 동일합니다.

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/57ceb281-99a5-4bc3-83a7-dd1ac0bbdfbc/Untitled.png

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/e0855a3b-834a-4373-a12b-1ecd8238fcd2/Untitled.png