Rethinking Model Scaling for Convolutional Neural Networks
모델 성능을 높이기 위해 필요한 조합을 효율적으로 만들 수 있도록 하는 compound scaling 방법을 제안하며 이를 통해 더 작은 크기의 모델로도 SOTA를 달성한 논문
모델 성능을 높이기 위해서는?
- network의 depth를 깊게 만드는 것
- channel width(filter 개수)를 늘리는 것(width가 넓을수록 미세한 정보가 많이 담아짐)
- input image의 해상도를 올리는 것
모델 성능을 높이기 위해 KeyPoint
Depth
- 네트워크의 깊이가 증가할수록 모델의 capacity가 커지고 더 복잡한 feature를 잡아낼 수 있지만 vanishing geadient의 문제로 학습 시키기가 더 어려움
- 해결하기 위해 Batch Norm, Residual Connection 여러 기법이 등장함
Width
- 각 레이어의 width를 키우면 정확도가 높아지지만 계산량이 제곱에 비례하여 증가함
Resolution
- 입력 이미지의 해상도를 키우면 더 세부적인 feature를 학습할 수 있어 정확도가 높아지지만 마찬가지로 계산량이 제곱에 비례해 증가함
복합 모델 스케일링(compound scaling method) 사용하여 CNN을 확장하는 방법
- 네트워크 스케일링의 영향을 이해하기 위해 모델의 다른 차원 스케일링의 영향을 체계적으로 연구
- 개별 차원의 크기를 조정하면 모델 성능이 향상 되지만 가용 리소스에 대한 네트워크의 모든 차원(폭, 깊이 및 이미지 해상도)의 균형을 조정하면 전체 성능이 가장 향상됨
복합 모델 스케일링(compound scaling method) 방법은?
- 그리드 검색을 수행하여 고정된 리소스 제약 조건에서 기준 네트워크의 다양한 스케일링 dimensions 사이의 관계를 찾는 것
- 각 차원에 대한 적절한 스케일링 coefficients를 결정함
- 적용 시 기준 네트워크를 원하는 대상 모델 크기 또는 계산 예산으로 확장함
- 단일 차원을 임의의 크기로 조정하는 기존의 스케일링 방법 b,d 달리 복합 스케일링 방법은 원칙적으로 모든 차원을 균일하게 확장함
참조
https://jetsonaicar.tistory.com/65
https://leather-pedestrian-89b.notion.site/EifficientNet-7807deaf5201483f97b01caf24fe6ab3