상세 컨텐츠

본문 제목

[Paper review] FEW-SHOT ACOUSTIC EVENT DETECTION VIA META LEARNING

Paper review

by 최끝장1234 2023. 1. 5. 17:21

본문

이번에 리뷰할 논문은 AED(Acoustic Event Detection)few-shot만을 이용하여 어떤식으로 접근할지에 대해, 메타러닝을 비롯한 종합적인 방법론을 다루고 있다. 먼저 AED에 대해서 알아볼 필요가 있다. AED는 Audio-clip이 주어지면, 이 Audio-clip안에 특정 event(기타소리, 종소리..etc)가 일어나는지 detection하는 task이다. AED는 보통 data가 굉장히 부족한 경우가 많고, 좋은 성능을 위해서는 많은 양의 데이터가 필요하다고 알려져 있다. 하지만 실제로 detection하고자하는 event에 대한 data를 많이 얻기는 힘들기에, 최근에는 Semi-Supervised learning이 시도되고 있지만 이마저도 특정 event에 대해서 매우 적은 sample(<10)만이 가능할때는 low performance를 보인다. 논문에서는 이를 위해 few-shot AED 셋팅에서 어떻게 효과적인 학습이 가능할 지에 대해서 메타러닝을 비롯한 여러 방법론을 제시하고 있다. 

 

구체적으로 방법론을 제시함에 앞서 AED가 어떤 문제인지 조금 더 살펴보자. 논문에서는 AED를 'multi label classification problem'이라고 정의한다. multi label classification problem은 특정 input에 대한 label(정답)이 여러 class로 이루어져있는 task라고 할 수 있다. AED 역시 특정 audio가 주어지면, 이 audio안에는 하나의 event만이 존재하는 것이 아니라 여러 event가 동시에 존재할 수 있다. 이러한 맥락에 AED는 multi label classification problem으로 충분히 생각할 수 있다. 

multi-class와 multi-label의 차이점. multi-label은 output이 여러 class로 이루질 수 있다.(출처- https://www.analyticsvidhya.com/blog/2021/07/demystifying-the-difference-between-multi-class-and-multi-label-classification-problem-statements-in-deep-learning/)

 

이제 더 나아가서 few-shot AED 문제를 어떤식으로 setting할 수 있는지 살펴보자. few-shot은 detection하고자하는 새로운 event에 대해서 few example만 주어진 상황을 말한다. 이를 위해 데이터는 (meta) train data, (meta) test data로 나누어지고, 이 둘은 event(=class)가 overlapping되지 않게 분리된다. 이는 train data로 학습 시 test data의 domain에 대해서 직접적인 학습이 불가능하도록 하기 위함이다.  추가로 train data와 test data의 안에서도 support set과 query  set으로 분할한다. support set는 모델에게 주어진 few-shot이라고 생각하면 되고, query set은 모델이 support set을 토대로 classification해야하는 data 라고 생각하면 된다. 아래의 그림을 보면 더욱 와 닿을 것이다. (아래 그림에서 meta-train data도 support set, query set으로 분리된다.)

혹여나 이 부분이 잘 이해가 되지 않는다면 다음 블로그의 few-shot learning에 대한 definiton을 참조하길 바란다. (아주 잘 설명되어 있다.)

https://velog.io/@sjinu/Few-Shot-Learning

 

Introduction to Few-Shot Learning & Meta Learning

Introduction to Few-Shot Learning & Meta Learning

velog.io

 

본격적으로 논문에서 제시한 few-shot AED 방법론에 대해서 살펴보자. 앞서 데이터 분할을 설명할 때 눈치를 챘겠지만, 우리는 test data와  직접적으로 관련되어 있지 않은 train data를 가지고 학습을 진행한다. 그리고 test data 예측(엄밀히는 test data의 query set)에 직접적으로 관련된 data는 few-shot(test data의 support set) 밖에 존재하지 않는다. 

이러한 상황에서 논문에서는 크게 두가지 Supervised Baseline과 Meta-learning 방법론 제시한다. 

 

먼저 Supervised Baseline에서는 첫번째로 Transfer learning을 제시한다. 흔히 우리가 아는 pretrained model을 fine-tuning하는 것이다. few-shot AED에서는 training data로 model을 학습하고 test data의 support set(=few shot)을 fine tuning한 이후, query set에 대해서 예측을 진행한다고 생각할 수 있다. 논문에서는 Transfer learning을 두가지의 방법으로 세분화했는데, 한가지는 FT-ALL 즉 finetuing시 모델의 모든 weight를 update하는 것이고, 다른 한가지는 FT-layer 즉 모델의 classifier 층만 update하고 feature-extractor는 freeze하는 것을 말한다.  두번째로 NN baseline을 제시한다. 아이디어는 간단하다. query sample이 주어지면  support set의 sample과의 feature space(training data로 pretrained model의 feature extractor 부분)상의 distance를 기준으로 query sample이 해당 event에 속하는지 판단하는 것이다. 가령 query set에서 특정 audio에 기타소리가 포함되어 있는지 궁금하다면 support set에서 기타소리가 포함된 sample들과 포함되지 않은 sample들과의 feature space상의 평균 거리를  구해서 이를 토대로 판단하는 것이다. 자세한 수식은 아래를 참고하면 된다. 

support set의 sample과 평균 거리를 구하는 방법
평균 거리를 토대로 해당 audio에 event가 존재하는지(=y가 1) 확률로 표현

다음으로 Meta-learning Approach에 대해서도 few-shot AED에 적용가능한 몇가지 방법론을 제시한다. meta-learning은 이전 글인 MAML리뷰에서 자세하게 설명했기에 간단하게만 설명하면, training data에 대한 경험을 잘 이용하면 domain이 직접적으로 같지 않고, 적은 수의 data만 존재하는 새로운 data에 대해서도 좋은 성능을 낼 수 있다는 방법이라고 생각하면 된다. 참고로 이 논문에서는 Supervised Baseline과  Meta-learning을 구별지어서 설명하지만, 앞서 설명한 방법론들 역시 어떻게 보면 training data의 경험을 토대로 test data에 대해서 적용하는 관점에서 meta learning의 범주안에 들어온다고 생각할 수 있다.

논문에서 제시하는 적용가능한 첫번째 meta-learning 방법론은 Prototypical Networks이다. 이 방법론은 앞서 살펴본 NN baseline을  end-to-end framework에 집어 넣은 것 뿐이다. 구체적으로는, NN baseline은 feature space를 전체 training data를 학습시킨 모델의 feature extractor를 떼어서 활용했지만, Prototypical Networks는 Training data를 support set과 query set로 분리하여 feature extractor자체를 학습한다. 이때 학습 시 사용한 loss는 아래와 같이 앞서 NN baseline의 확률 식을 그대로 가져와 cross-entropy 형태로 변형한 버전이다.  

논문참조

두번째 적용가능한 meta-learning 방법론은 MetaOptNet이다. 이 방법론을 AED에 적용하면 Audio input을 feature space로 embedding하고,  feature space 상에서 event가 있고, 없음을 구분하는 linear boundary를 SVM을 통해 학습하는 식으로 진행된다. 논문에서는 특히 SVM이 일반적으로 binary classification setting에서 잘 작동하기에, 이러한 방법론이 AED에서 잘 작동할 수 있다고 판단했다.  

마지막으로 MAML이다. MAML은 저번 포스팅에서 자세히 설명했기에, 간단하게만 설명하면 Training data에서 모든 task에 잘 작동할 수 있는 general한 initial model parameter를 계산하고, 이를 새로운 few-shot task에 fine-tuning하는 방법이라고 생각할 수 있다. 

이게 논문에서 제시한 방법론의 다이다. 사실상 새로운 방법론을 제시하였다기 보다는 이미 널리쓰이는 방법들을 어떻게 AED에 활용할까에 대한 논문이라는 것을 느꼈다. 정리하면 논문에서 제시한 방법은 총 6가지이다. 3가지는 Supervised baseline으로 FT-ALL, FT-LINEAR, NN baseline이고 나머지 3가지는 meta-learning baseline으로 Protypical Networks, MetaOptNet, MAML이다. 이 6가지의 방법론의 성능을 비교한 결과는 다음과 같다.

논문 참조. 값이 높을 수록 더 좋은 성능을 보인다고 할 수 있다.

실제로 3가지 Supervised baseline보다 meta learning 방법론이 더 좋은 성능(1-shot, 5-shot 모두)을 보인다고 할 수 있다. 이는 few-shot AED에서 meta-learning을 사용하는 것이 충분히 merit가 있다는 것을 보여준다. 

논문에서는 이외에도 몇가지 추가 실험을 진행했다. 

먼저 domain-mismatching에 대한 실험이다. event들은 서로 class는 다르게 분류되어도 같거나 비슷한 domain에 속할 수있다. 가령 악기가 서로 다른 종류면 다른 event로 분류되지만, 실상은 음악이라는 domain안에 들어온다. 따라서 논문에서는 training data와 test data를 완전히 다른 domain(ex. household-animal)의 event들로 만들어서 위 6가지의 방법론을 추가실험했다. 결과는 다음과 같다. 

논문 참조

 확실히 in-domain에 비해서 성능이 떨어진다는 것을 확인할 수 있다. 특히 MAML은 Supervised learning에서의 결과보다 더 좋지않은 성능을 보이기도 한다. 이는 결국 meta-learning 역시 training data의  domain에 overfitting될 수 있다는 가능성을 암시한다. 

다음으로 pretrain에 대한 실험이다. 실험은 3가지 meta-learning 방법론에 대해서 model의 last layer을 제외한 초기 parameter를 전체 training data를 통해 pretrain 시킨 것과 하지 않은 것과 비교함으로써 진행됐다. 

논문 참조. 괋호안에 있는 값이 pretrain을 진행한 결과이다.

실험결과 pretrain을 통한 parameter 초기화가 유의미한 모델 성능향상에는 도움이 되지 않는다는 것을 확인했다. 또한 사용한 모델이 size가 적기에 overfitting이 잘 일어나지 않다는 점도 가능성으로 제시했다. 

 

이번 논문을 리뷰하면서 AED라는 task가 구체적으로 무엇이고, few-shot setting에서 meta-learning이 좋은 성능을 낼 수 있다는 점을 알게되면서 meta-learning이 다양한 few-shot task에 널리 활용될 수 있음을 다시 한번 느꼈다. 

 

관련글 더보기

댓글 영역