(논문 모델 분석) 3-D Convolutional Recurrent Neural Networks With Attention Model for Speech Emotion Recognition


감정인식 관련 논문인 [1]을 읽었다. 이 논문의 제목만 읽고 이 논문의 핵심은 3-D CRNN과 Attention 을 사용해서 감정인식을 한것으로 생각할 수 있다. 3-D CRNN과 Attention 이 중요한 역할을 한것은 맞지만 그것들 못지않게 중요한것이 있다. 이번글에서는 논문 [1]의 모델을 쭉 살펴보며 무엇이 중요한 요소인지 살펴보려고 한다.

(모델분석)3-D Convolutional Recurrent Neural Networks With Attention Model for Speech Emotion Recognition

[1]모델의 구조
[1]모델의 구조

[1]논문의 모델 구조는 위와 같다.

Log Mel-spectrogram: 입력에서는 Log-Mel-Spectrogram을 사용했다는 점이 주목할만 한다. log mel-spectrogram을 이용해 3차원 데이터를 입력한다. 자세한 얘기는 밑에나와있다.

Convolutional Recurrent Networks: 그이후엔 convolution layer를 통과시키고 linear layer를 씌운다. 그 이후에 BLSTM layer에 통과시킨다. 그리고 attention layer에 통과시킨다. BLSTM과 attention layer에서 무엇을 하는지는 아래 글에서 확인해보자.

Results: Emotion Probability Distributions: attention layer를 통과시킨후 FC layer와 softmax layer에 넣어서 분류를 한다.

입력 mel, mel delta, mel delta delta

입력에는 각각의 축이 frame, frequency filter bank인 log mel, log mel delta, log mel delta delta 등을 입력한다. 수식적으로는 이 글(음성(speech)신호의 log-mel과 log-mel delta, log-mel delta delta) 을 참고하면 log mel, delta 등이 무엇인지 알수 있을것이다. 이 논문에서 주장하기로 speech에는 감정과 관련없는 부분이 있고 항시 존재하는데, log-mel delta와 log-mel delta delta를 통해 감정과 관련없는 부분이 지워진다고 주장한다. 감정이 지워진 log mel delta, log mel delta delta 과 본래 신호에서 추출된 log-mel을 이용해 입력에 넣어준다.

BLSTM 을 역할

BLSTM에 들어오기전에 입력이 convolution layer를 통하고 linear layer를 통해 vector가 된다. 이 벡터를 쪼개서 BLSTM에 넣어준다. 벡터는 시간에 따라 쪼갤수 있게 설계 된것 같다. 이 벡터의 길이가 n이라면~ 1부터 3까지는 첫번재 프레임, 4부터 6까지는 두번째 프레임에 대한 정보가 담기도록 계산을 한것 같은데 코드를 확인해야 될것 같다. BLSTM에 대한 자세한 설명은 여기 있다.(BLSTM(Bidirectional LSTM)에 대한 이해, 양방향 LSTM) 내가 생각한것이 맞다면 speech 를 시간의 정방향(forward)과 역방향(backward)으로 분석하기 위해 BLSTM을 사용한것 같다.

Attention Layer 의 역할

Attention Layer는 BLSTM 이후에 나온다. Attention layer의 역할은 아래의 그림을 보면서 생각해보자.

BLSTM과 attention layer
BLSTM과 attention layer

세단계로 나누는데 맨밑에는 BLSTM 이다.  중간은 attention 이고 마지막은 attention 이후인 분류단계이다. 맨 아래인 BLSTM에서 hidden state가 출력된다. 내 소설이 맞다면 hidden state $h_t$에서 $t$는 시간의 의미를 뜻한다. 감정인식을 할 때 $1,2,..,T$중에 어떤 시간 $t$에 집중할지를 attention layer가 학습한다. 자세한 얘기(딥러닝-Attention-메커니즘이란-어디에-집중할까-감정분석)는 여기를 보면 알 수 있다.

정리

[1]에서는 감정인식을 위해 log mel, log mel delta, log mel delta delta를 사용해 감정과 관련없는 부분을 feature로 사용하였다. 이 입력은 이미지 세장을 겹쳐논것이고 세로축은 시간이다. CRNN을 이용해 세로축의 시간정보를 보존한채로 BLSTM에 집어넣는다. attention layer를 이용해 감정인식에 있어서 중요한 시간대에 집중할 수 있도록 해준다. attention 으로 부터 정보를 받아, 감정을 분류한다.

궁금

1. log mel delta 계산 시 사라진 것은 과연 감정요소가 맞나?

2. BLSTM에 들어갈 때 벡터를 sequence로 보고 쪼개서 BLSTM cell들에 집어넣는다. BLSTM cell에 집어넣는 방식이 시간대를 쪼개서 넣은것이라 해석할 수 있을까?

Reference

[1] M. Chen, X. He, J. Yang and H. Zhang, “3-D Convolutional Recurrent Neural Networks With Attention Model for Speech Emotion Recognition,” in IEEE Signal Processing Letters, vol. 25, no. 10, pp. 1440-1444, Oct. 2018

Leave a Comment