Search

'2021/05/24'에 해당되는 글 1건

  1. 2021.05.24 Knowledge Evolution in Neural Networks 논문 리뷰

이번 글에서는 CVPR 2021에 oral로 선정된 “Knowledge Evolution in Neural Networks”란 논문을 소개합니다. 본 논문은 적은 수의 데이터 셋에서 모델을 효과적으로 학습시킬 수 있는 Knowledge evolution이라는 학습 방법론을 제안합니다. 

 

History

 본 논문은 “The lottery ticket hypothesis: Finding sparse, trainable neural networks” 논문을 이론 배경으로 가집니다. The Lottery ticket hypothesis는 dense network에 적은 iteration 수에서 자신보다 높은 성능을 가지지만 파라미터 수는 더 적은 subnetwork가 존재한다 라는 것입니다. 

 

이러한 가설에 맞는 subnetwork(winning ticket)를 찾기 위해 다음과 같은 과정을 거칩니다.

  1.  Dense network를 random weight($\theta_0$)로 초기화
  2.  j iteration만큼 weight ($\theta_j$)를 학습.
  3.  $\theta_j$에 pruning을 진행하고 mask를 생성.
  4.  3에서 생성한 Mask를 사용하여 생성한 sparse network를 $\theta_0$으로 초기화하여 winning ticket 생성.

이렇게 찾은 winning ticket을 학습시켜 기존의 dense network보다 적은 iteration에서 적은 parameter 수로 높은 성능을 가진 network를 얻게 됩니다. 

 

Proposed Procedure

 

1. Knowledge Evolution Training Approach

Knowledge evolution은 다음과 같은 방식으로 진행됩니다.

 

  1.  먼저 개념적으로 deep network($N$)를 2개의 배타적인 hypothesis(sub-network): fit-hypothesis($H^\triangle$), reset-hypothesis($H^\triangledown$)로 나누는 마스크($M$)를 생성합니다. ($H^\triangle = MN$, $H^\triangledown=(1-M)N$)
  2.  $N$을 $e$ epochs 동안 학습하여 $N_1$을 생성합니다. (첫 번째 generation 과정)
  3.  다음 generation에서의 더 나은 네트워크 학습을 위해, $N$을 $H^\triangle _1$로 re-initialize 하고 $H^\triangledown$부분은 random initialize 합니다. (re-initialize 과정)
  4.  3 과정에서 reinitialize 된 $N$을 $e$ epochs동안 다시 학습하여 $N_2$를 생성합니다. (re-train 과정)
  5.  3 과정(re-initialize)과 4 과정(re-train)을 $g$ generation만큼 반복하여 $N_g$를 생성합니다.

 

2. Split-Networks

 KE에선 $N$을 $H^\triangle$와 $H^\triangledown$을 나누는 과정이 필요합니다. 이때 저자는 대부분의 네트워크에 KE를 적용할 수 있는 $weight-level$ splitting(WELS)나 CNN에 특화되어 KE를 통해 추론 비용 또한 낮출 수 있는 $kernel-local$  $convolutional-aware$ splitting(KELS)를 사용합니다.

  1.  WELS
    • 각각의 layer($l$)의 가중치($W_l$)를 주어진 split-rate($s_r$, $0 < s_r < 1$) 에 따라 마스크($M_l$)를 랜덤 하게 생성합니다.
    • $sum(M_l) = s_r × |W_l|$
  2.  KELS
    • convolution filter ($F_l$, $F_l ∈ R^{C_o×K×K×C_i}$)를 앞에서부터 $s_r$만큼 $C_o$와 $C_i$을 포함하도록 마스크를 생성합니다.
    • The first $\left \lceil s_r×C_i  \right \rceil$ kernel inside the first $\left \lceil s_r×C_o \right \rceil$ filters.

Toy residual network에서의 KELS를 통한 fit/reset-hypothesis 표현

 

 

3. Knowledge Evolution Intuitions

 KE의 이해를 위해 2가지 직관을 보여줍니다. 이때 KELS는 필수적이지 않으며 아래의 figure들에서는 시각적 표현을 위해 KELS를 사용하여 보여주었습니다.

 

3.1 Dropout Intuition

Dropout에서는 뉴런들을 랜덤 하게 껐다 키는 과정을 통해 각 뉴런들이 독립적인 representation을 생성해내게 합니다. KE는 각 generation이 시작될 때 reset-hypothesis를 랜덤 하게 initialize 하는 과정을 통하여 fit-hypothesis와 reset-hypothesis를 각각 독립적인 representation을 학습하게 합니다. 

 

3.2 Residual Network Intuition

ResNet에서는 identity shortcut과 residual subnetwork로 네트워크를 나누고 residual subnetwork의 activation을 zero-mapping시킴으로 regularization의 효과를 얻을 수 있습니다. 첫 generation 이후 수렴에 가까운 fit-hypothesis로 인해 이후의 generation이 진행될 때 reset-hypothesys 또한 zero-mapping이 됩니다.

 

 

 

 아래의 실험 결과를 보면 generation이 진행될수록 fit-hypothesis는 전체 network와 유사한 성능으로 수렴하고 reset-hypothesis는 zero-mapping이 되는 것을 확인할 수 있습니다.

 

Conclusion

 본 논문은 상대적으로 적은 데이터로 딥 뉴럴넷을 학습할 때 효과적인 방법인  knowledge evolution을 제안하였습니다. KE는 랜덤한 subnetwork(fit-hypothesis)를 선정하고 generation이 진행됨에 따라 이 부분의 knowledge를 진화시켜나갑니다. 또한 kernel-level convolution-aware splitting(KELS) 기술과 KE를 함께 적용하였을 때 추론 비용을 감소시키는 slim한 네트워크를 학습시킬 수 있고, weight-level splitting(WELS) 기술과 KE를 함께 적용한다면 다양한 네트워크 아키텍처에 적용 가능합니다. 

 

이상으로 논문 리뷰를 마치겠습니다.

자세한 내용 paper를 참고해주세요.

 

감사합니다.

Dongjin Kim