24/06/06 Structured Pruning for Deep Convolutional Neural Networks: A survey - 간단리뷰 (1)

lazyworm·2024년 6월 6일

GeneralAI

목록 보기
1/1

개요


  • CNN 기반의 딥러닝 모델들이 많은 Vision Task들에 대해 준수한 성능을 보여주고 있다.

  • 하지만 이들은 매우 큰 Computational Cost를 요구한다.

  • 이러한 문제를 해결하기 위한 기법인 Model Compression이 활발히 연구되었다.

  • Model Compression은 크게 4가지 방법론으로 구별된다.

    • Pruning
    • Quantization
    • Decomposition
    • Knowledge Distillation
  • 본 글에서는 Pruning에 대한 개요 및 Pruning 연구들의 계보를 살펴본다.

Pruning이란


  • Model Compression의 원리는 대부분 연산 자체를 줄이는 것이고, pruning도 마찬가지다.
  • Pruning의 목표: 모델의 Parameter를 최소화하되, 모델의 성능에 영향을 주지 않으면서 최소화하는 것.
    • 알고리즘 판에서는 이걸 볼 때에는 Maximin 문제라고 볼 수 있겠다.
    • Parameter를 최대한 없애되, 성능에 변화는 최소화 해야 하므로.
  • 주로 CNN에서 많이 쓰이는 Model Compression 기법.
    • 그 중에서도 주로 Image Classification에 많이 적용된다.

Pruning의 종류


  • 우선 Pruning, 말 그래도 가지치기를 하려면, 어떤 가중치가 중요한지 알아야 한다.

  • 가중치의 중요도 평가 Metric이 Pruning 방법론의 Novelty가 되는 경우가 많다.

  • Metric 대상의 범주에 따라 크게 2가지 종류로 나눌 수 있다.
    (그림 출처)
    1. Unstructured Pruning
    - 신경망의 특정 구조나 패턴을 따로 구별하지 않고 가중치들의 Metric을 계산함.
    2. Structured Pruning
    - 신경망의 특정 구조나 패턴을 고려하여 가중치들의 Metric을 계산함.

Unstructured Pruning의 한계


  • 얼핏 보면 structure든 unstructure든 무슨 상관인가라는 생각을 할 수 있다.

  • 그러나 일반적인 HW들을 생각해보자.

    • CPU, GPU 모두 메모리 접근/연산시 일정한 구조(ex. Cache)의 패턴에 최적화되어 있다.
    • 이는 병렬처리도 마찬가지이다. 대부분의 HW 및 라이브러리는 Dense Matrix 연산에 최적화 됨.
  • 하지만 Unstructured Pruning을 생각해보자.

    • 사라져야 할 가중치가 정말 랜덤한 위치에서 결정된다.
    • 따라서 Sparse Matrix 연산을 해야 한다. 이것이 큰 오버헤드를 야기한다.
    • 물론, 이를 해결하고 싶다면 특수 하드웨어나 Sparse Matrix를 지원하는 라이브러리를 사용하면 된다.
      • ex. CUDA: CuSPARSE, Intel MKL: Sparse BLAS
      • 혹은 Tensorflow, Pytorch에서도 Sparse 연산용으로 최적화된 커널과 메모리 관리 기능을 제공한다.
  • 하지만 유념하자. 좋은 Metric만 설정했다면 Unstructured Pruning은 모델에 최소침습만 하여 성능 저하를 매우 크게 줄일 수 있다.

    • 따라서 꼭 Unstructured를 나쁘게 볼 필요는 없다. 미리 없앨 가중치를 정하여 컴파일 할 수 있는 방식이라면 오히려 좋을 수 있다.

정리


  • Model Compression은 끊임없이 연구되는 분야이다.
  • 그 중 Pruning은 Image Classification에서 가장 많이 사용되는 방법론이다.
  • Pruning에는 크게 2가지 카테고리가 있다. (Structured v.s. Unstructured)
  • Unstructured는 구현 상에 필요한 HW나 라이브러리들이 요구된다는 단점이 있다.
    = 다음 글에서는 Structured Pruning에 대해 알아보겠다.

Appendix.


  • Quantization Survey Paper:

    A. Gholami, S. Kim, Z. Dong, Z. Yao, M. W. Mahoney, and
    K. Keutzer, “A survey of quantization methods for efficient
    neural network inference,” arXiv preprint arXiv:2103.13630, 2021.

  • Knowledge Distilation Survey Paper:

    J. Gou, B. Yu, S. J. Maybank, and D. Tao, “Knowledge distillation:
    A survey,” Int. J. Comput. Vis., vol. 129, no. 6, pp. 1789–1819, 2021.

  • Neural Architecture Search Survey Paper:

    T. Elsken, J. H. Metzen, and F. Hutter, “Neural architecture search: A survey,” J. Mach. Learn. Res., vol. 20, no. 1, pp. 1997–2017, 2019.

  • Unstructured Pruning Survey Paper:

    A. Tang, P. Quan, L. Niu, and Y. Shi, “A survey for sparse regularization based compression methods,” Ann. Data Sci., vol. 9,
    no. 4, pp. 695–722, 2022.

  • Overall Model Compression 관련 Survey Paper:

    G. Menghani, “Efficient deep learning: A survey on making deep
    learning models smaller, faster, and better,” ACM Comput. Surv., 2021.

profile
끝까지 간다

0개의 댓글