[UROP #10] Dynamic Model Pruning with FeedBack

윤하은·2023년 11월 21일
1

UROP

목록 보기
10/14

Paper : https://arxiv.org/abs/2006.07253

💡 로 표시된 부분은 제가 이해한 내용을 적은 부분입니다. 오류가 있다면 댓글로 남겨주세요 🙏🏻




1. Introduction


매우 과대 매개변수화된 딥 뉴럴 네트워크는 기계 학습 작업에서 인상적인 결과를 보여주고 있다.

그러나 모델 크기의 증가와 함께 추론 단계에서의 메모리 및 컴퓨터 성능에 대한 수요도 증가하고 있다. 이는 낮은 성능의 기기에서는 거의 사용이 불가능하다.

이러한 제약은 가중치의 상당 부분을 제거하면서 dense 모델이 달성한 테스트 정확도를 유지하는 pruning 기술을 통해 극복되었다.

경우에 따라 압축된 네트워크의 일반화가 전체 모델보다 더 좋을 수 있음이 발견되었다.


overparameterized model

: 사용 가능한 데이터로부터 효과적으로 추정될 수 있는 매개변수보다 더 많은 매개변수를 갖는 모델

통계 모델링의 맥락에서 모델 해석과 일반화 측면에서 문제를 일으킬 수 있다.

출처 : https://www.oxfordreference.com/display/10.1093/oi/authority.20110803100258143#:~:text=A%20model%20having%20more%20parameters%20than%20can%20be%20estimated%20from%20the%20data.



희소 모델을 찾는 방법

희소성은 모든 가중치가 동일하게 0인 수를 나타내며, 이는 가중치에 sparsity mask를 적용함으로써 얻을 수 있다.


one-shot pruning

  • 사전 훈련된 신경망의 가중치를 조사하여 적절한 희소 마스크를 찾는다.

  • 정확도 저하가 거의 없이 네트워크의 상당한 크기 감소를 달성한다.

  • 계산 비용이 많이 든다 (dense 모델에서의 교육 및 정제).

  • 하나의 마스크 대신 다양한 희소 마스크를 탐색하는 알고리즘에 의해 성능이 능가되고 있다.


dynamic pruning

  • 교육 중에 다양한 기준에 따라 희소 마스크가 조정된다.

  • 많은 하이퍼파라미터의 미세 조정을 필요로 한다.



본 논문에서는 state-of-the-art의 테스트 정확도를 갖는 희소 신경망을 얻기 위한 새로운 pruning 접근 방식을 제안한다. 이 압축 방법은 훈련 중에 네트워크의 중요한 가중치를 식별하기 위한 새로운 중요도 기준을 사용하여 후보 마스크를 제안한다.

핵심적인 특징으로, 해당 알고리즘은 pruning된 희소 모델뿐만 아니라 학습 중에 pruning 오류를 교정하는 데 사용되는 dense 모델을 동시에 발전시킨다. 방법의 단순성으로 인해 이론적인 관점에서 연구하고 더 나은 통찰력과 해석을 제공할 수 있기 때문에 다양한 작업에서 더 나은 일반화 속성을 얻을 수 있다.

추가적인 하이퍼파라미터의 조정이 필요하지 않으며, 희소 모델의 재훈련이 필요하지 않다 (물론 성능을 더욱 향상시킬 수 있음).



Contributions

  • 자연스럽게 오류 피드백을 통합한 새로운 동적 pruning 방법으로 한 번의 학습 패스에서 훈련된 희소 모델을 찾는다.

  • 정확도 및 희소성에서 state-of-the-art 성능을 보였다. 이전에 제안된 pruning 방법들을 모두 능가한다.

  • 추가적인 통찰을 제공하는 ablation study 및 convex 및 non-convex 목적지에 대한 수렴 분석을 통해 결과를 보완한다.

ablation study

제안한 요소가 모델에 어떠한 영향을 미치는지 확인하고 싶을 때, 이 요소를 포함한 모델과 포함하지 않은 모델을 비교하는 것을 말한다.

이는 딥러닝 연구에서 매우 중요한 의미를 지니는데, 시스템의 인과관계(causality)를 간단히 알아볼 수 있기 때문이다.

출처 : https://fintecuriosity-11.tistory.com/73

convex

optimal한 값이 하나 밖에 존재하지 않는 것을 의미한다.




2. Related Work


Pruning after training

희소 네트워크를 얻기 위한 훈련 접근 방식은 일반적으로 dense 모델의 훈련, one-shot pruning, 그리고 fine-tuning 세 단계로 이루어진다.

이는 적은 품질 손실과 함께 중간 정도의 희소성을 보여주어 네트워크 pruning의 표준 방법으로 여겨져 여러 변형이 제안되었다.



Pruning during training

  1. 크기 기반 pruning과 모델을 처음부터 훈련하는 동안 점진적으로 희소 비율을 증가시키는 방법이 제안되었다.

  2. 각 epoch의 끝에서 모델의 전체 필터를 pruning하지만 pruning된 필터를 모델 훈련 중에 업데이트되도록 허용하는 방식이 제안되었다.

다른 접근 방법들도 있지만, 이러한 방법은 대규모 네트워크 및 데이터셋에 적용하기에 계산 비용이 많이 들고 어렵다.

본 논문의 방법 또한 동적 범주에 속하지만, hand crafted 재분배-재성장 주기 대신 오류 보상 메커니즘을 사용한다.



Pruning before training

최근에는 복권 티켓 가설 에 영감을 받아 처음부터 훈련할 수 있는 희소 마스크를 찾는 방법들이 더 큰 관심을 받았다.

  • 연결 감도를 검사하고 주어진 작업에 대해 네트워크의 구조적으로 중요한 연결을 식별하여 pruning 마스크를 찾는 방법이 제안되었다. pruning 초기화 단계에서 적용되며, 훈련 중에 희소 마스크는 고정된다.

  • 마스크를 찾기 위한 효율적인 pruning 체계를 제안하지 않고, 여러 번의 완전한 훈련 과정에 대해 반복 pruning에 의존하는 방법이 제안되었다.



Further Approaches

  • 0 규제를 통해 게이팅 변수를 학습하여 0이 아닌 가중치의 수를 최소화한다.

  • 최근의 병렬 작업에서는 사전 훈련된 모델을 위한 필터 pruning을 연구하는 등 다양한 방법들이 있다.

  • 드롭아웃 확률을 학습하여 드롭아웃을 사용하여 네트워크를 pruning하고 희소화하기 위해 베이지안 관점에서 pruning을 수행한다.

  • 대규모 학습 작업에서 최근의 비구조적 pruning 방법들을 연구한 결과, 복잡한 기술들이 일관되지 않은 결과를 나타낸다는 결론을 내렸다.

  • 간단한 크기 기반 pruning 방법이 비슷하거나 더 나은 결과를 달성한다.




3. Method


non-convex 손실 함수 f: R^d → R의 학습으로 가정해, 확률적 경사 하강법 (SGD)을 사용하여 업데이트를 수행한다 :

g(w) : 미니 배치 그래디언트
γt : 학습률

  • g(w) ∈ R^d
  • E[g(w)] = ∇f(w)



희소 모델을 얻기 위한 일반적인 접근 방법은 wt의 일부 가중치를 pruning하여 이를 0으로 설정하는 것이다. 가중치에 마스크 m ∈ {0, 1}^d를 적용하여 희소 모델 m ⊙ wt가 생성된다.


마스크는 잠재적으로 가중치 wt에 의존할 수 있다.

  • 가중치 값이 작은 것을 기준으로 선택적으로 일부 가중치를 제거

또는 t에 의존할 수 있다.

  • 시간이 지남에 따라 희소성이 증가

본 논문에서 제안하는 동적 pruning 체계를 소개하기 전에, 기존의 세 가지 주요 pruning 방법론을 형식화한 그림이다. 이러한 접근 방법들은 마스크가 계산되는 방법과 적용되는 시점에서 차이가 있다.



Pruning before training

마스크 m0가 적용되고 (SGD)를 사용하여 결과적인 부분 네트워크 f(m0 ⊙ w)에서 훈련이 수행된다.

장점

  • pruning된 가중치만 저장하고 업데이트하면 된다.
  • SGD로 훈련함으로써 부분 네트워크의 지역 최솟값에 도달할 수 있다.

그러나 좋은 마스크를 효율적으로 결정하는 것이 어려우며, 처음에 잘못 선택된 마스크는 성능에 강력한 영향을 미친다.



Pruning after training (one-shot pruning)

dense 모델이 훈련되고 pruning이 훈련된 모델에 적용된다. pruning된 모델 mT ⊙ wT는 f의 지역 최적점이 아니기 때문에 성능을 향상시키려면 파인튜닝(고정된 마스크로 재훈련)이 필요하다.



Pruning during training (incremental and dynamic pruning)

동적 방식은 학습 중에 (몇 번의) 반복마다 관찰을 기반으로 마스크 mt를 변경한다(즉, 가중치와 확률적 그래디언트를 관찰함). incremental 방식은 희소 패턴을 단조롭게 증가시키며, 완전 동적 방식은 이전에 pruning된 가중치를 다시 활성화할 수도 있다.

이전 동적 방식이 마스크 를 조정하기 위해 휴리스틱한 방법에 의존했다면, 본 논문은 더 간단한 접근 방식을 제안한다.



Dynamic pruning with feedback (DPF, Algorithm 1)


pruning된 모델 mt ⊙ wt 에서 확률적 그래디언트를 계산하고 이를 동시에 dense 모델 wt에 적용한다:


전체 모델에 그래디언트를 적용하는 것은 오류에서 복구할 수 있게 해준다. 즉, 중요한 가중치를 일찍 마스킹 아웃하는 경우, 이후 단계에서 누적된 그래디언트 업데이트가 특정 가중치를 극적으로 변경할 때 해당 가중치가 다시 활성화될 수 있다.

  • 순차적인 pruning 방법은 부적절한 결정을 고수해야 함
    
    

DPF는 다음과 같이 표현도 가능하다 :


et는 다음과 같이 압축에 의해 발생한 오류를 의미한다.

이는 DPF의 행동에 대한 다른 직관을 제공하며, 이를 error-feedback의 개념과 연결시켰다.



Algorithm



Gradual Pruning Scheme

incremental 기준에 따라 자동으로 조절되는 점진적 pruning 방법을 사용했다. st는 다음과 같이 조절된다:

  • performance timing : second learning rate decay
  • training epoch : t0 = 0
  • pruning frequency epoch : ∆t = 1

pruning sparsity ratio (si)
: epoch(n) 동안 0에서 시작해서 원하는 타깃 비율인 sf로 조절된다.

(1-x)^3
: t가 0에서 training iteration까지 증가하는 동안 비율의 변화 속도는 다음 그래프와 같이 조절된다.

실험에서는 One-shot P+FT, SNIP 및 (DSR, SM)과 같이 자체적으로 pruning 방법을 가진 방법을 제외하고 이 점진적 pruning 방법을 사용했다.




Hyper-parameters tuning procedure

최적의 학습률을 그리드 서치를 통해 찾았으며 {0.05, 0.10, 0.15, 0.20} 범위에서 시작해, 선형 간격의 학습률 그리드를 평가했다. 만약 최고의 성능이 그리드의 양 끝 중 하나에 있었다면 중간 값이 최적의 성능을 포함하도록 새로운 그리드 포인트를 시도했다.

대부분의 방법은 미니 배치 SGD와 Nesterov 모멘텀을 사용하여 훈련했다. 세밀한 튜닝 절차를 포함하는 기준의 경우, 옵티마이저(미니 배치 SGD와 Nesterov 모멘텀 또는 Adam) 및 학습률을 조절하여 최적의 결과를 그리드 서치했다.


Nesterov Momentum

Plain momentum : 현재 상황에서의 gradient로 velocity가 잘못된 방향으로 갔을 경우를 대비해 미리 예방
Nesterov momentum : velocity로 잘못된 방향으로 간 후에 그 상황에서 그것을 gradient로 대처

출처 : https://hyunw.kim/blog/2017/11/01/Optimization.html





The optimal hyper-parameters for DPF

1. 미니배치 크기 :

  • CIFAR-10: 128
  • ImageNet: 1024

2. CIFAR-10 훈련:

  • 모델: ResNet-a, VGG, WideResNet-a-b
  • epoch:
    • ResNet-a, VGG: 300 epoch
    • WideResNet-a-b: 200 epoch
  • 학습률 감소:
    • ResNet-a, VGG: 전체 훈련 샘플의 50% 및 75%에서 10씩 감소
    • WideResNet-a-b: 전체 훈련 샘플의 30%, 60%, 80%에서 각각 5씩 감소
  • 최적 학습률:
    • ResNet-a: 0.2
    • WideResNet-a-b: 0.1
    • VGG: 0.2
  • 가중치 감소 결과:
    • ResNet-a: 1e-4
    • WideResNet-a-b: 5e-4
    • VGG: 1e-4

3. ImageNet 훈련:

  • epoch: 90
  • 학습률 웜업: 0.1에서 0.4까지 점진적으로 증가
  • 학습률 감소: 30%, 60%, 80%에서 각각 10씩 감소
  • 가중치 감소 결과: 1e-4




4. Converge Analysis


smooth한 훈련 목적 함수 가정:

이론적 보장을 유도하기 위해, 훈련 목적 함수 f가 smooth하다고 가정한다.

Lipschitz 상수 (Lipschitz constant)

모든 w, v ∈ R^d가 해당 범위에서 미분 가능하며,그래디언트 차이가 Lipschitz 상수 L을 넘지 않는다고 가정한다.

💡 Lipschitz 상수를 제한함으로써, 함수의 그래디언트가 급격하게 변하지 않도록 제어할 수 있다. 이는 안정적인 최적화를 가능하게 하므로 f가 smooth하다고 할 수 있다.



제한된 확률적 그래디언트 가정:

확률적 그래디언트가 상한값 G에 대해 제한된다고 가정한다. 즉, 모든 pruning된 모델에 대해 다음이 성립한다:



pruning 품질 정의:

pruning 품질을 나타내는 매개변수를 도입한다. 이 값은 다음과 같이 정의된다:

💡 δt는 dense 모델의 가중치와 pruning된 모델의 가중치 사이의 크기 차이를 나타낸다. 이는 가중치의 일부가 pruning으로 인해 얼마나 크게 변경되었는지를 표현할 수 있다.

δt = 0

  • 새로운 모델 wet이 이전의 모델 wt와 동일하다면, pruning이 정보 손실 없이 진행된 것을 의미한다.

δt ≤ 1

  • 일반적으로 가중치의 변화가 있을 경우 (pruning으로 인해 wt와 wet이 다르게 될 경우), δt는 1보다 작거나 같다.




수렴 및 강한 볼록성 가정:

함수 f가 추가적으로 µ-strongly convex하다고 가정한다.

신경망에는 해당 가정이 적용되지 않지만, 해당 함수는 고유한 전역 최솟값을 갖는 특성이 있어 수학적 표현을 단순화시키는 데 도움이 된다.




Theorem 4.1.

f가 강하게 볼록이고 학습률이 rt = 4/μ(t+2)로 주어진 경우, DPF의 반복 중에서 임의로 선택한 pruning된 모델에 대해 다음의 기대값이 성립한다.


구체적으로 모델이 pt = 2(t+1)/(T+1)(T+2)의 확률로 선택될 때, 해당하는 기대값은 위와 같다.

DPF의 반복(iterate) 중 하나의 모델에서의 기대 손실 함수 값과 최적 해에서의 손실 함수 값의 차이를 나타낸다.

위 차이가 주어진 형태의 함수로 제한된다는 것을 의미한다.

G : 그래디언트의 크기에 관련된 상한
u : strongly convex function의 매개 변수
T : 반복 횟수
L : Lipschitz 상수
δ : pruning 품질을 나타내는 매개 변수
∥wt∥^2 : 가중치 벡터의 L2 norm의 제곱

LE[δt∥wt∥^2] : pruning의 평균 품질을 측정

위의 경우 오차항이 완전히 사라지게 되는데, 이는 해당 방법이 최적 해의 근처로만 수렴한다는 것을 의미한다.

이것은 pruning된 모델 뿐만 아니라 dense 모델에도 해당된다. 이러한 현상은 전역 최적 모델 w* 이 밀집되어 있을 수 있으며 희소 모델로는 잘 근사할 수 없기 때문에 발생할 수 있다.

😥 뒷부분은 다음 기회에 이해해 보는 걸로....










0개의 댓글