목표
CNN의 불필요한 채널을 제거하여 모델 크기와 연산량을 줄이고, 정확도 하락을 최소화하는 프루닝 전략을 설계합니다.
본 프로젝트는 CNN 모델의 채널 선택 문제를 조합 최적화 문제로 바라보고, QUBO(Quadratic Unconstrained Binary Optimization) 형태로 구성한 뒤 Simulated Annealing 기반 탐색을 통해 효율적인 채널 프루닝 방법을 연구합니다.
딥러닝 모델은 높은 성능을 보이지만, 많은 채널과 파라미터로 인해 연산량과 추론 시간이 증가합니다. 본 프로젝트는 정확도를 최대한 유지하면서 모델을 경량화하는 채널 프루닝 방법을 제안합니다.
CNN의 불필요한 채널을 제거하여 모델 크기와 연산량을 줄이고, 정확도 하락을 최소화하는 프루닝 전략을 설계합니다.
채널을 단순히 하나씩 제거하는 것이 아니라, 여러 채널의 조합을 고려하는 QUBO 최적화 문제로 변환합니다.
정확도, latency, 모델 크기, 연산량을 함께 비교하여 실제 적용 가능성을 고려한 경량화 결과를 분석합니다.
프루닝 대상 채널마다 binary variable을 부여하고, 채널 중요도와 채널 간 중복성을 함께 고려하여 QUBO 목적함수를 구성합니다.
각 채널을 선택할지 제거할지를 이진 변수로 표현합니다. 예를 들어 xᵢ = 1이면 i번째 채널을 유지하고, xᵢ = 0이면 제거합니다.
기준 모델을 먼저 학습하거나 pretrained model을 사용하여 baseline 성능을 측정합니다.
Validation 데이터를 모델에 입력하여 각 convolution layer의 feature map을 수집합니다.
weight magnitude 기반 중요도와 feature map cosine similarity 기반 상관관계를 계산합니다.
Simulated Annealing을 사용하여 유지할 채널 조합을 탐색합니다.
선택된 채널만 남긴 모델을 재구성하고 fine-tuning을 통해 성능을 회복합니다.
제안 방법의 효과를 확인하기 위해 baseline CNN, 일반적인 pruning 방식, QUBO 기반 pruning 방식을 비교합니다.
| 구분 | 설명 | 비교 목적 |
|---|---|---|
| Baseline CNN | 프루닝을 적용하지 않은 원본 CNN 모델 | 정확도와 latency의 기준 성능 측정 |
| Classical Pruning | weight magnitude 등 기존 기준에 따라 채널을 제거하는 방식 | 기존 경량화 방식과의 성능 차이 분석 |
| QUBO-based Pruning | 채널 중요도와 상관관계를 QUBO 행렬로 구성하여 채널 조합을 선택 | 조합 최적화 기반 접근의 장점 검증 |
| Fine-tuned Model | 프루닝 이후 재학습을 통해 성능을 회복한 모델 | 실제 사용 가능한 최종 모델 성능 확인 |
본 프로젝트는 단순히 모델을 작게 만드는 것이 아니라, 정확도와 효율성 사이의 균형을 정량적으로 분석하는 것을 목표로 합니다.
일반적인 pruning은 채널을 개별적으로 평가하는 경우가 많습니다. 하지만 실제 CNN에서는 채널들이 서로 독립적이지 않고, 어떤 채널 조합을 남기느냐에 따라 성능이 달라질 수 있습니다. QUBO는 이러한 채널 간 관계를 행렬 형태로 표현할 수 있기 때문에, 채널 선택 문제를 조합 최적화 관점에서 다룰 수 있습니다.