티스토리 뷰

반응형

Lightweight Convolutional Neural Network Architecture Design for Music Genre Classification using Evolutionary Stochastic Hyperparameter Selection 


  • Music Genre Classification (MGC)은 대용량 음악 콘텐츠의 정확한 indexing, 분류를 위해서 높은 계산 비용이 필요
  • CNN은 MGC에 적합한 network architecture이지만 음악과 architecture에 대한 도메인 지식이 필요
  • MGA-CNN
    • Stochastic Hyperparameter Selection을 통한 Genetic Algorithm 기반 최적 architecture search
    • MGC 작업을 위한 CNN architecture 설계 자동화
  • 논문 (Expert Systems 2023) : Paper Link

1. Introduction

  • 스마트폰과 같은 휴대용 장치에서 대용량 음악 콘텐츠 시스템을 구성하기 어려움
  • MGC 작업을 위한 nerual architecture는 높은 컴퓨팅 자원을 필요로함
    • CNN은 MGC에 효과적인 성능을 보였지만 수작업으로 최적의 architecture를 구현하는 것은 소모적인 작업임
  • Neural Architecture Search를 통한 최적 architecture 자동 설계는 소모적인 비용을 줄일 수 있음
    • Evolutionary Algorithm (EA)은 가장 많이 사용되는 방식 중 하나
      - Genetic Algorithm (GA), Evolutionary Strategy, Genetic Programming을 포함
      - Crossover, mutation, selection을 통해 최적의 솔루션을 생성할 수 있음이 밝혀짐

-> 그래서 MGC를 위한 경량화된 CNN architecture를 생성하기 위해 Genetic Algorithm을 활용하는 MGA-CNN을 제안

 

  • MGA-CNN
    • 제한된 자원에서 MGC를 위한 최적의 경량 CNN architecture를 생성
    • Selective stochastic crossover, Choice-based mutation 활용

< Overall of MGA-CNN >

  • MGC를 위한 경량화된 최적 CNN architecture를 자동 생성하는 시도 
  • 정렬된 hyperparameter dictionary를 통해 EA에서 사용되는 architecture representation 단순화
  • 최적 search space 구성 및 다양화를 위한 Selective stochastic crossover, Choice-based mutation 
  • 짧은 실행시간과 적은 parameter 만으로도 SOTA와 비슷한 성능을 달성

2. Proposed Approach

- Candidate model with hyperparameter settings

  • (목표) Candidate model architecture represenetation에서 CNN을 사용해 MGC에 대한 최적의 모델을 찾는 것
  • Candidate model 구성
    • 4개의 convolution layer
    • 2개의 max-pooling layer
    • 1개의 fully-connected layer
    • 1개의 output layer

Candidate architecture

- Overview

  • CNN 블록, candidate 모집단 크기, GA 반복 횟수, 음악파일에서 추출된 MFCC feature 기반
  • MGA-CNN : MFCC feature를 활용해 최적의 CNN architecture를 찾아내는 GA 기반 접근법   
    • Evolution
      1. 모집단 크기 $S_{p}$로 초기화
      2. Global fitness $G_{bf}$, best global parameter $G_{bp}$에 대한 counter 0으로 초기화
      - Empty ordered dictionary 이용
      3. CNN architecture를 encoding 하는 각 candidate fitness는 evolution 과정에서 사용되는 dataset을 통해 평가
      4. Fitness에 따라서 parents를 선택
      5. Crossover, mutation, 새로운 children 생성 반복
    • Selection
      - 자연선택의 원리를 모방
      1. 현재 모집단은 생성된 offspring과 parent로 구성
      2. 허용되는 최대 generation 수를 넘을 때까지 counter 증가
      3. 가변-길이 encoding 전략 활용
      4. MGA-CNN에 의해 생성된 CNN architecture의 efficiency를 보장하는 방식으로 choice-based mutation 적용

Overview of MGA-CNN
MGA-CNN Algorithm

  • Population initialization
    • Candidate model의 CNN 블록은 convolution, pooling, fully-connected layer로 구성됨
      - CNN의 성능은 filter 수와 convolution layer stack에 크게 의존
    • Candiadate model의 parameter는 가능한 값을 가진 임의의 hyperparameter로 초기화됨
      - 각 layer의 filter 수, activation function, dropout percentage, optimizer 등
      - Hyperparameter setting 표 참고
  • Parent Selection
    • Popoulation initialization 이후 fitness score를 기반으로 각 candidate architecture를 평가
    • Fitness score가 가장 좋은 두 개의 model을 선택하여 offspring generation
    • 반복하면서 더 높은 fitness score를 가진 candidate로 population을 채움
      - Parent model의 architecture feature가 child model로 복제

Parent Selection Algorithm

  • Selective stochastic crossover
    • Candidate model architecture의 offspring generation은 parent architecture의 crossover로 진행
    • Child model architecture는 selective stochastic crossover를 통해 생성
      1. $\{f_{1}, f_{2}, f_{3}, k \}$ : CNN filter 수, neuron 수, filter size, fully-connected layer 수
      -> 두개의 parent 값들 사이에서 stochastic 하게 선택
      2. $\{a_{1}, d_{1} \}$ : 첫 번째 CNN 블록에 대한 activation function, dropout 확률
      -> hyperparameter search space를 줄이기 위해서 offspring architecture의 첫번째 CNN 블록과 pooling layer는 동일하게 유지
      3. $\{a_{2}, d_{2}, op \}$ : 두 번째 CNN 블록에 대한 activation function, dropout 확률, optimizer
      -> 두번째 CNN 블록은 Parent architecture들 간의 교환으로 생성
    • Parent model에서의 selective swapping을 통해 hyperparameter 최적화를 위한 search space 확산을 제어할 수 있음

Selective Stochastic Crossover Algorithm
Selective Stochastic Crossover

  • Choice-based mutation
    • 모집단의 다양성을 유지하고 중복성을 줄이기 위해서는 생성된 offspring candidate를 mutation 하는 것이 필요
      1. 가능한 $\{f_{1}, f_{2}, d_{1}, d_{2}, op \}$ hyperparameter 중에서 choice-based stochastic assignment를 통해 offspring architecture를 mutate
      2. Hyperparameter $\{f_{1}, f_{2}, f_{3} \}$는 parent architecture와의 편차를 제한하기 위해 mutation 과정에서 선택되지 않음
      3. Choice-based hyperparameter를 조정한 다음, child model의 fitness score를 계산

      4. Mutate 된 child architecture의 fitness가 parent보다 크면 mutate 된 architecture를 모집단에 추가

      - Choice-based mutation 확률은 10%로 설정
      5. Choice-based mutation 외에 모집단의 다양성을 높이기 위해 4 generation 마다 selective mutation을 적용
      - Selective mutation은 100%로 설정

Choice-based Mutation Algorithm
Choice-based Mutation

  • Fitness evaluation
    • classification Accuracy (CA) 사용 : 정확하게 분류된 샘플과 총 샘플 수의 비율
    • $CA = \frac{TP+TN}{TP+TN+FP+FN}$
      - $TP$ : True-positive / $TN$ : True-Negative / $FP$ : False-Positive / $FN$ : False-Negative
    • 각 model 별로:
      1. Model은 주어진 epoch 수만큼 dataset의 training split으로 학습됨
      2. Dataset의 test split에 의해 CA가 계산되고 해당 값을 candidate CNN architecture에 대한 fitness score로 활용

3. Experiments

- Settings

  • Datasets : Free Musci Archive (FMA), Indian regional music dataset (regional), Indian music genre dataset (Kaggle)
  • Comparisons : GPSO-CNN, PSO-CNN, CNN-GA

- Comparison with existing approaches

  • 제안된 MGA-CNN이 ResNet50에 비해 Kaggle, regional dataset에서 4.91%, 6.3%의 성능 개선을 보임
    • FMA dataset에서는 ResNet50이 더 좋은 성능을 달성했지만, parameter 측면에서는 MGA-CNN은 95%나 적은 parameter를 사용함
    • EfficientNet, MobileNet과 비교에서도 MGA-CNN은 83.1%, 69.64% 더 적은 parameter를 사용함

Accuracy 비교

  • MGA-CNN은 PSO-CNN보다 81% 더 적은 parameter를 사용하면서 모든 dataset에 대해 더 좋은 성능을 보임
  • MGA-CNN이 더 적은 parameter를 사용하면서도 MGC에서 충분히 좋은 정확도를 달성할 수 있음

Parameter 비교

  • GPU time 측면에서 MGA-CNN은 CNN-GA 보다 을 85.3% 더 적게 사용함
  • PSO-CNN은 MGA-CNN 보다 학습 속도는 빠르게 측정되었지만 FMA dataset에서 좋은 성능을 보이지 못함

학습 속도 비교
각 비교 algorithm별 average ranking

- Evolution trajectory of MGA-CNN

  • 최고 Accuracy와 평균 CA 모두 generation이 진행됨에 따라 증가하는 경향을 보임
  • 초기 generation에서 가장 성능이 좋지 않은 model이 등장하는 이유는 random initialization 때문
  • 50 generation 이후부터는 성능이 크게 개선되지 않았기 때문에 algorithm이 수렴한 것으로 판단할 수 있음

Evolution trajection

- Error analysis

  • Kaggle datasetdptj CNN-GA는 높은 epoch에서 약간의 overfitting을 보임
  • PSO-CNN은 FMA trainset에서 높은 accuracy를 보였지만 validation set에서는 overfitting으로 인해 낮은 성능을 보임
  • 제안한 MGA-CNN은 train/validation 모두에서 overfitting 없이 우수한 성능을 보임

Accuracy curves

  • MGA-CNN의 confusion matrix를 봤을 때, 대부분의 장르에 대해 올바른 label 분류를 수행했음
    - Semi-classic과 Sufi 장르에서 약간의 오분류를 보였는데, 이는 사람이 분류해도 비슷하게 분류하는 장르임

Confusion matrix

- Theoretical implications

  • MGA-CNN의 time complexity 비교
    1. Population initialization : $O(P_{s})$
      - $P_{s}$ : 모집단 크기
    2. Parent selection : $P_{s}$에 선형적으로 종속되어 있어 최악의 경우 $O(P_{s})$
    3. Selective stochastic crossover : 상수 시간 $O(k)$
    4. Choice-based mutation : $O(k)$
  • MGA-CNN의 전체 time complexity : $O(G_{max} \cdot P_{s} \cdot T_{max})$
    - $G_{max}$ : 최대 반복 횟수
    - $P_{s}$ : 모집단 크기
    - $T_{max}$ : 가장 큰 architecture에 대한 최악 실행 시간
    -> MGA-CNN에서 가장 큰 overhead 요소는 $G$이기 때문에 다른 접근 방식에 비해서 time complexity가 낮음 (lightweight!)
반응형
댓글
최근에 올라온 글
최근에 달린 댓글
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Total
Today
Yesterday