임베디드 시스템 분야에서 크기가 작으면서 정확한 모델을 개발하는 방법은 매우 중요해졌다.
이전 연구에서 몇 가지 괜찮은 결과가 나왔지만, 대부분 pre-trained 모델을 크게 압축시키지 못하거나 compression된 모델의 성능을 다시 끌어올리기 위해 re-training과정을 거쳐야 한다.
본 논문에서는 layer별 loss function의 2차 미분(Hessian)을 기반으로 독립적으로 pruning을 수행하는 방법을 제안한다.
본 방법론에서는 pruning 후 최종 발생한 loss가 layer별 loss의 선형 조합에 의해 제한되어 가벼운 재학습만으로도 기존의 정확도를 회복할 수 있음을 입증한다.
DNN의 크기가 엄청나게 커지면서 많은 수의 파라미터는 메모리와 계산 비용을 많이 들게한다.
연구자들은 DNN 내 redundancy를 파헤치도록 유도하고 있다.
이는, 신경 과학에 따르면 인간의 뇌에는 상당한 중복 뉴런이 존재하며, 기억은 특정 시냅스의 소멸과 관련이 있을 수 있다고 지적하는 것에서 시작된다.
따라서, 실험을 통해 신중하게 설계된 기준에 따라 파라미터를 잘 잘라내면 예측의 손실이 거의 없이 compress할 수 있다.
하지만, 최적의 pruning 방법을 찾는 것은 파라미터의 크기 측면에서 봤을 때, pruning을 위한 search space가 기하급수적으로 늘어나기 때문에 NP-hard문제이다.
최근 연구는 최적에 가까운 pruning을 위한 효율적인 알고리즘을 개발하는 데 중점을 두고 있다.
대부분의 기존 방식은 loss, magnitude와 같은 pruning을 위한 파라미터를 선택하는 것이 일반적이다.
Heuristic하게 설계되어, pruning 후에도 성능이 유지된다는 보장이 없다.
Heuristic하다 : 이론적으로 최적임/항상 맞음이 증명된 규칙이 아니라, 경험적 직관·관찰·실험을 바탕으로 “그럴듯하게 잘 되도록” 만든 규칙(기준)
- Magnitude 기반 pruning은 가중치가 작으면 덜 중요할 것이라는 intuition에서 온 방법이다. 하지만, 작은 가중치도 중요한 역할을 한다는 반례가 있기 때문에 heuristic한 방법이다.
본 논문에서는 세 가지 목표를 달성하기 위한 새로운 layer-wise pruning을 제안
각 layer에 대해 pruning 후 파라미터를 매우 compress 할 수 있으며, loss가 작다.
Taylor 급수를 통해 loss function의 변화를 근사화하고, 2차 도함수를 기반으로 중요하지 않은 가중치를 식별
모든 파라미터에 대한 hessian 행렬의 역수인 2차 도함수를 계산하는 건 높은 계산 비용 발생하기 때문에, 특정 layer의 파라미터에 대해서만 계산하도록 제한
각 layer별 loss 측면에서(layer마다 기존 모델의 출력과 비슷하게 만들도록 하여), pruning된 모델의 성능을 이론적으로 보장
2차 도함수를 사용하는 layer별 pruning 프레임워크 사용시, pruning 전후로 성능이 약간만 떨어짐을 실증적으로 입증 가능
모델이 pruning된 후, 원래 성능을 회복하기 위한 가벼운 re-training만 필요.
2번에서 성능이 약간만 떨어짐을 입증하였기 때문에, 약간의 re-training만 필요함도 입증
N개의 인스턴스로 구성된 training dataset 과
L개의 layer로 구성된 신경망이 주어졌을 때, 는 가중치 의 벡터화를 나타낸다.
신경망의 input :
신경망의 output :
Forward시 :