인공지능 대학원 자료 정리/논문 정리

[논문 리뷰] Binary training의 출발점? (BinaryConnect 방식이란)

시나브로잉 2022. 10. 17. 19:54
반응형

이 논문은 딥어닝에서 양자화에 관한 모델들의 기반이 되는 기법들을 소개하며, 잘 알려진 BNN (2016)보다 먼저 나온 논문입니다. 여기서 나오는 **“최신”**이라는 단어는 2015년도 당시의 시점을 기반으로 하며, 따라서 state-of-the-art(최신성능)의 기준 또한 2015 기준으로 되어 있습니다.

논문을 해석하는데 있어, 원활한 이해를 돕기 위해 논문에는 언급되지 않은 정보가 있으니, 참고하여 읽어주세요.

원문: BinaryConnect: Training Deep Neural Networks with binary weights during propagations

 

 

 

 

Abstract

수많은 곱셈 연산자들은 메모리를 많이 차지하고 또 에너지를 많이 소비하기 때문에, 가중치의 양자화 그 중에서도 binary weights는 가중치가 -1과 1로만 표현되며, 이는 딥러닝에 특화된 하드웨어에 이점을 가져옵니다. 여기서 소개된 BinaryConnect라는 기법은 누적된 기울기 값이 저장된 가중치의 비트 해상도(precision)는 유지하면서, DNN을 binary weights로 학습시킵니다.

다른 Dropout 방식처럼, BinaryConnect는 regularizer(L1, 2 같은)과 비슷한 기능을 수행하며, 2015년도 당시 MNIST와 CIFAR-10 그리고 SVHN 데이터셋에서 가장 좋은 성능(state-of-the-art)을 보였다고 합니다.

 

 

 


 

 

Inroduction

실수 연산(ex 곱셈)은 forward 연산이나 backward 연산에서 많은 부분을 차지하고 있습니다. 이 논문에서는 이러한 실수 연산이 필요 없는 BinaryConnect을 소개합니다. BinaryConnect 방식은 가중치들을 이진화합니다(여기서 말하는 이진화는 꼭 0과 1로 만드는 것이 아닌, 두 가지 상태로 만든다는 것을 의미합니다. 즉, -1, 1로 만든다는 것일 수도 있죠). 이진화를 통해 실수 연산을 사용하지 않는다고합니다.

이 논문에서 상용된 사전 지시은 다음과 같습니다.

  1. 높은 비트 해상도는 SGD 등의 optimizer에서 중요합니다. 왜냐하면 gradient를 누적키신 다음 누적된 값의 평균을 이용하여 한 번에 업데이트하기 때문이죠. 그래서 큰 수를 담기 위해 높은 해상도를 가진 변수가 사용됩니다. 어떤 논문에 따르면 적어도 6~8bits 정도가 필요하다고 합니다.
  2. SGD의 대표적인 특징인 noise는 모델을 정규화하는데 도움이 됩니다. Dropout이나 DropConnect와 같은 기법들도 학습 시 noise를 첨가하는 기법이라고 볼 수 있죠. 우리는 Dropout이나 SGD의 특성에서 알 수 있는 것처럼 noise는 나름의 장점을 가지고 있다고 할 수 있습니다.

BinaryConnect는 forward, backward 동안 가중치만을 이진화(-1, 1) 하는 방식이며, Dropout, L1, L2와 같이 모델 일반화에 도움이 되는 regularizer의 한 종류이기도 합니다.

 

 


 

 

BinaryConnect

딥러닝에서 사용되는 뉴럴 네트워크의 구조는 뉴런과 뉴런 사이의 수많은 가중치들로 이뤄져 있습니다. 이전 층의 결과 값인 activation(activation function이 적용된 값)에 여러 가중치들을 곱하고, 이를 더한 값이 다음 층의 어떤 뉴런의 입력으로 들어가죠. 한 마디로 말하자면 뉴럴 네트워크는 multiply-accumulators라고 할 수 있겠죠. 값을 곱하고 그 값들을 누적(더하기)하니까요.

BinaryConnect는 가중치 값을 1 또는 -1의 값으로 제한합니다. 즉, 1 또는 -1의 값만 가중치로 사용한다는 것이죠. 이렇게 하는 이유는 수많은 multiply-accumulate(곱하고-더하고) 연산들이 단순히 덧셈이나 곱셈으로 바뀔 수 있기 때문입니다(일단 그렇다고 받아들입시다).

BinaryConnect와 관계 없이, 어떤 수를 Binarization하는 방법은 두 가지가 있습니다. 첫 번째 방법은 Deterministic binarization 즉, 확정된 이진화이고, 두 번째는 stochastic binarization 즉, 확률적 이진화입니다.

Deterministic binarization: 0 보다 가중치가 크거나 같으면 1, 작으면 -1로 이진화를 합니다.

Stocastic binarization: 확률적으로 1 또는 -1을 결정합니다. 여기서 말하는 확률은 고등학교 때나 대학교 때 배우는 확률분포를 의미하며, 어떠한 확률분포도 될 수 있지만, 논문에서는 미리 지정한 함수를 확률분포처럼 사용하는 것 같습니다.

여기서 시그마 함수는 hard sigmoid 함수를 의미합니다. (즉, 아래 수식과 동일)

Hard sigmoid 함수를 사용하는 이유는 연산을 쉽고 빠르게 할 수 있기 때문입니다. 그리고 이걸 사용한 모델의 성능도 나쁘지는 않다고 합니다. 또한 값을 한정시킬 수 있다는 특징도 있습니다.

논문에서는 학습 과정을 크게 3가지로 구분하고 있습니다(기존의 알고 있던 것과 동일합니다).

  1. forward propagation: 첫 번째 층에 입력을 넣어서 마지막 층의 결과를 계산하기까지의 과정
  2. backward propagation: 모든 층의 가중치들의 기울기 값을 계산합니다.
  3. parameter update: 2.과정에서 계산한 기울기 값과 optimizer(SGD, Adam etc)을 이용하여 가중치 값을 갱신합니다.

BinaryConnect의 중요한 점은 가중치를 1번과 2번과정에서만 이진화를한다는 것이지, 3번에서 이진화를 하는 것은 아닙니다. 즉, 논문에서는 단순히 연산 속도만 올리기 위해 이진화를 진행했음을 알 수 있습니다. (즉, 메모리 측면에서 이득은 없다는 뜻이고, 이것이 후대 BNN이나 DoReFaNet 또는 XNOR, FxpNet 등과의 차이라고 할 수 있겠네요.)

3번에서 이진화를 안 한다는 것은, SGD 같은 방식을 사용할 때, 실수(float32) 데이터를 사용하고 이를 가중합(또는 multiply-accumulation)한다는 의미입니다. 즉, 기울기 값은 여전히 float32이라는 뜻입니다. (초기 모델이니까요.)

지금까지는 학습에 대해 알아봤다면, 지금부터는 추론에 관해 짧게 알아보겠습니다. BinaryConnect와 관련된 성능 지표는 다음과 같습니다. 여기서 적용된 모델은 단순히 fully connected layers로 이뤄진 DNN 모델이라고 합니다. (즉, CNN을 사용하지 않았습니다.) 아래 나와있는 MNIST, CIFAR-10 그리고 SVHN은 데이터셋이며, 그 아래 퍼센트들을 오차율입니다.

방식 MNIST CIFAR-10 SVHN

일반 DNN 1.30% 10.64% 2.44%
BinaryConnect (deterministic binarization) 1.29% 9.90% 2.30%
BinaryConnect (stochastic binarization) 1.18% 8.27% 2.15%
50% Dropout만 사용 1.01% 데이터 없음 데이터 없음

 

 


 

 

Benchmark results

여기서는 단순히 데이터셋에 따른 비교 결과를 확인하는 파트이기 때문에 직접 논문을 보시기 바랍니다.

 

 

 

 

 

 


 단순히 forward 연산과 backpropagation에서 weight만 -1과 1로 이진화를 했다는 것을 알 수 있었습니다. 이는 속도 면에서는 빠를 수 있지만, weight update 과정, activation, gradient 등의 값들이 여전히 float32이라는 점 그리고 weight가 저장될 때도 여전히 float32이라는 점에서 메모리적인 이득은 없습니다.

 하지만 다른 양자화 모델보다 먼저 나온 만큼, 그 흐름을 이해하는데 있어서 도움이 된다고 생각합니다.

 

 

 

관련된 글:

https://pkr7098.tistory.com/m/242

 

[논문 리뷰] 이진화와 삼진화 (NEURAL NETWORKS WITH FEW MULTIPLICATIONS)

이 글은 여러분들의 이해를 돕기 위한 글쓴이의 개인적인 해석이 들어가 있기 때문에, 논문의 내용에는 없는 부가적인 설명이 대거 들어있음을 알려드립니다. 또한 논문이 나온 시점이 2015인 만

pkr7098.tistory.com

 

반응형