음악 분류 딥러닝을 만들자(10) - 최종 모델과 사전준비

응큼한포도·2024년 7월 31일
0

최종 모델 선정

최종 모델은 mobileNetV4가 선정되었다.

선정 이유는 다음과 같다.

  1. 2024.04에 발표된 최신 모델

  2. 기존 mobileNet v1, v2, v3에서 v4까지 지속적으로 경량화 모델로써 발전해옴

  3. mobileNet 모델의 특징때문에

우선 모델을 만들 때 내 노트북(m2 air 깡통)에 학습을 진행하기 때문에 경량화가 필수적이다. 애초에 음성, 음악 딥러닝 분야의 데이터가 다른 분야보다 크기가 월등히 크기때문에 경량화를 하지 않는다면 노트북에선 진행할 수 없는정도다.

그런 이유로 경량화 모델을 선정하는 중 mobileNetV4를 선정했다.
우선 mobileNet의 특징은 기존에 발표된 경량화 모델을 모두 흡수해서 자기 모델에 녹여낸다. 최신 논문 중에서 어느 정도 검증이 된 기법은 모두 가져다가 때려박았기 때문에 경량화를 학습하기 좋고 성능 또한 뛰어나다.

mobileNet의 흐름

크게 mobileNet v1 - v2 - v3 - v4로 볼 수 있다.
mobileNet의 특징답게 버전이 발전될 때 이전 모델의 아키텍처에 새로운 걸 추가하는 식으로 발전한다.

그래서 v4에는 v1, v2, v3의 내용이 모두 들어있다. 뿐만 아니라 버전이 발전된 기간동안 발표된 모든 최신 경량화 기법도 들어있다.

사전준비

나의 경우 밑바닥부터 시작하는 딥러닝 등을 통해 기초적인 CNN모델만 알고 있었고 경량화에 대한 건 아무것도 몰랐다. 그래서 mobileNetV4에 도달하기 위해 논문을 30-40편을 읽었다. 그 중에서 mobileNetV4에 필요한 논문을 순서대로 소개하겠다.

mobileNet v1

경량화 논문의 시작이다. 기존 CNN의 구조의 고정관렴을 박살내주는 논문 연산량을 줄여주는 기법을 도입

https://arxiv.org/abs/1704.04861

pruning, quantization

기본적인 경량화 테크닉인 pruning과 quantization을 알고 넘어가는 게 좋다. 기본이라 경량화 논문엔 다 녹여져있음

pruning: https://arxiv.org/abs/1506.02626

quantization: https://arxiv.org/abs/1712.05877

batch norm

모르면 섭섭한 batch norm 그냥 알고 있으면 좋음

https://arxiv.org/abs/1502.03167

Distillation

mobileNetV4의 선행 논문이다.

직접적으로 경량화를 하진 않지만 개념상으로 큰 모델의 학습내용을 작은 모델에 전달하니까 경량화라고 할 수 있고 애초에 그냥 기본 개념이라 알아야 함.

https://arxiv.org/abs/1503.02531

resNet

경량화 초기 모델중 중요한 모델인듯. mobileNetv2의 사전 논문임

https://arxiv.org/abs/1512.03385

mobileNetV2

기존 v1에 resNet의 아키텍처를 변형해서 만든 논문

pruning 같은 기법도 추가됨

https://arxiv.org/abs/1801.04381

SqueezeNet, ShuffleNet, MnasNet, EfficientNet

mobileNetV2와 V3 사이에 발표된 중요한 경량화 모델들이다. 알아야 됨? ㅇㅇ
이 놈들은 중요한 논문들이라 후기 논문에 기초가 되는 놈들이다.

SqueezeNet: https://arxiv.org/abs/1602.07360

ShuffleNet: https://arxiv.org/abs/1707.01083

MnasNet: https://arxiv.org/abs/1807.11626

EfficientNet: https://arxiv.org/abs/1905.11946

아키텍처의 중요한 특징과 흐름들에 대해서만 알고 넘어가자

NAS

모델이 최적의 아키텍처 구조를 알아서 학습해서 정한다는 개념이다. mobileNetV3의 선행 논문

https://arxiv.org/abs/1611.01578
https://arxiv.org/abs/1802.03268
https://arxiv.org/abs/1802.03491

mobileNetV3

v2에 NAS기법을 추가하고 큰 모델과 작은 모델를 나눠서 만들어 줬다.

https://arxiv.org/abs/1905.02244

attension

다른 최신 경량화 모델들에 CNN 구조와 트랜스포머를 합친 구조들이 대세다. transformer 입문하기 좋은 논문

https://arxiv.org/abs/1706.03762

layerNorm

트랜스포머에서 중요한 기법이다. 이해하는 게 좋지 선택 사항이다.
https://arxiv.org/abs/2002.04745
https://arxiv.org/abs/2202.07703
https://arxiv.org/abs/2210.08879

vit

비전(vision) 영역에 트랜스포머를 도입한 논문, 비전 트랜스 포머의 기초내용이다

https://arxiv.org/abs/2010.11929

pit

vit와 pit 사이에 다양한 논문이 있겠지만 pit 정도만 알고 넘어가자. vit에 pooling을 추가해서 컨볼루션을 없앤걸로 기억한다. 네이버에서 발표한 거 유명한 논문이다.

https://arxiv.org/abs/2102.12122

EfficientFormer

발전된 내용
https://arxiv.org/abs/2206.01084

mobileVit

CNN구조에 vit를 합친 구조를 보여준다. 내 생각엔 그 후 경량화에 아주 많은 영향을 끼친 논문인 듯

중요하다

https://arxiv.org/abs/2110.02178

FastViT

cnn + vit의 유명한 논문 중 하나 알면 좋음

https://arxiv.org/abs/2305.06036

EfficientViT

여기부터 최신 논문이라고 해도 될 듯? vit 경량화의 발전 내용

https://arxiv.org/abs/2305.05922

mobileVitV2

최신 논문이니까 알면 좋지

https://arxiv.org/abs/2305.05178

mobileNetV4

2024.04에 나온 최신 논문

위 추천논문들을 집약한 논문이다. 이해할려면 위에서 추천한거 다 읽어보는 게 좋다

https://arxiv.org/abs/2404.10518

주의 사항

일단 읽어본 논문들을 추천해봤다. mobileNetV4까지 도달하기 위해선 위 논문들만 아니라 다른 논문들도 추가해서 읽어야한다. 그게 한 30-40개 정도이고 위 논문들을 중심으로 relate work들을 읽으면서 보충하길 바란다.

profile
미친 취준생

0개의 댓글