[논문 리뷰] PP-LCNet: A Lightweight CPU Convolutional Neural Network
PP-LCNet은 MKLDNN 가속으로 CPU 최적화된 경량 CNN을 도입하여 분류 및 다운스트림 비전 작업 전반에서 지연이 거의 일정하게 유지되면서 정확도가 더 높아졌습니다. Intel CPU에서 다수의 최신 경량 모델을 능가하고 탐지 및 분할에서도 강력한 결과를 보여줍니다.
We propose a lightweight CPU network based on the MKLDNN acceleration strategy, named PP-LCNet, which improves the performance of lightweight models on multiple tasks. This paper lists technologies which can improve network accuracy while the latency is almost constant. With these improvements, the accuracy of PP-LCNet can greatly surpass the previous network structure with the same inference time for classification. As shown in Figure 1, it outperforms the most state-of-the-art models. And for downstream tasks of computer vision, it also performs very well, such as object detection, semantic segmentation, etc. All our experiments are implemented based on PaddlePaddle. Code and pretrained models are available at PaddleClas.
연구 동기 및 목표
- CPU 추론 지연을 증가시키지 않으면서 정확도를 최대화하는 경량 CNN 설계 방법.
- Intel MKLDNN 지원 CPU에서 성능을 높이는 CPU 전용 설계 선택 및 모듈 식별.
- 경량 모델용 CPU 중심 CNN 설계 및 NAS를 안내하는 실용 규칙과 구성 요소를 제안한다.
- ImageNet 분류 및 다운스트림 작업(탐지, 분할)에서 PP-LCNet의 성능을 입증한다.
- 빠른 CPU 배치를 위한 탐색 공간 제약에 대해 NAS 연구자에게 통찰을 제공한다.
제안 방법
- Intel CPU의 오버헤드를 최소화하기 위해 MobileNetV1에서 영감을 받은 DepthSepConv 블록을 기본 아키텍처로 사용한다.
- 지연 영향이 거의 없는 상태에서 정확도를 높이기 위해 ReLU를 H-Swish 활성화로 교체한다.
- 정확도와 속도 사이의 균형을 위해 SE 모듈(Squeeze-and-Excitation)을 네트워크의 끝부분 근처에 배치한다.
- 네트워크의 끝부분에서 주로 더 큰 5x5 커널을 채택하여 광범위한 지연 비용 없이 성능을 향상시킨다.
- 전역 평균 풀링 후에 1280 차원의 1x1 컨브를 추가하여 지연 영향은 거의 없이 적합성을 향상시킨다.
- 다양한 모델 규모를 평가하고 적용 가능한 경우 SSLD 증류를 사용하여 정확도를 추가로 높인다.
실험 결과
연구 질문
- RQ1MKLDNN이 적용된 Intel CPUs에 맞춰 지연을 늘리지 않으면서 정확도를 최대화하도록 경량 CNN을 구체적으로 어떻게 최적화할 수 있을까?
- RQ2CPU에서 최적의 정확도/지연 트레이드오프를 제공하는 활성화 함수, SE 배치, 커널 크기, post-GAP 계층 등 어떤 아키텍처 선택이 필요한가?
- RQ3CPU 추론 속도로 제약될 때 컴팩트한 네트워크 설계가 분류 및 다운스트림 작업에서 기존의 경량 모델을 능가할 수 있는가?
- RQ4CPU 친화적 CNN 설계 및 경량 배치를 위한 NAS 안내에 대해 어떤 실용적 규칙이 도출되는가?
주요 결과
| 모델 | 매개변수(M) | FLOPs(M) | Top-1 정확도(%) | Top-5 정확도(%) | 지연(ms) |
|---|---|---|---|---|---|
| PP-LCNet 0.25x | 1.5 | 1.5 | 18 | 51.86 | 1.74 |
| PP-LCNet 0.35x | 1.6 | 29 | 58.09 | 80.83 | 1.92 |
| PP-LCNet 0.5x | 1.9 | 47 | 63.14 | 84.66 | 2.05 |
| PP-LCNet 0.75x | 2.4 | 99 | 68.18 | 88.30 | 2.29 |
| PP-LCNet 1x | 3.0 | 161 | 71.32 | 90.03 | 2.46 |
| PP-LCNet 1.5x | 4.5 | 342 | 73.71 | 91.53 | 3.19 |
| PP-LCNet 2x | 6.5 | 590 | 75.18 | 92.27 | 4.27 |
| PP-LCNet 2.5x | 9.0 | 906 | 76.60 | 93.00 | 5.39 |
| PP-LCNet 0.5x* | 1.9 | 47 | 66.10 | 86.46 | 2.05 |
| PP-LCNet 1x* | 3.0 | 161 | 74.39 | 92.09 | 2.46 |
| PP-LCNet 2.5x* | 9.0 | 906 | 80.82 | 95.33 | 5.39 |
- PP-LCNet 변형은 Intel CPU에서 낮은 지연으로 여러 스케일에서 경쟁력 있는 Top-1/Top-5 정확도를 달성한다.
- ReLU를 H-Swish로 교체하면 지연 영향이 거의 없으면서 정확도가 크게 향상된다.
- SE 모듈을 네트워크 끝부분으로 위치시키는 것이 밀집하게 분포시키는 것보다 정확도-속도 균형이 더 좋다.
- 주로 끝부분에서 더 큰 5x5 커널을 사용하면 광범위한 지연 페널티 없이 정확도가 향상된다.
- GAP 이후 1280 차원의 1x1 컨브를 추가하면 지연의 영향은 미미하게 유지되면서 정확도가 크게 향상된다.
- 더 큰 PP-LCNet 변형에 대해 SSL Distillation(SSLD)이 정확도를 추가로 향상시킨다.
더 나은 연구,지금 바로 시작하세요
연구 설계부터 논문 작성까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.