카테고리 없음

Ternary weight networks

SciomageLAB 2024. 10. 20. 16:32
반응형

이 논문은 2016년에 공개된 논문으로, 1비트 바이너리로 네트워크를 표현한 BNN을 이어 삼항으로 가중치를 표현하는 방법에 대한 논문이다. 컨셉 자체는 간단하기 때문에.. 2장에 나와있는 '어떻게 학습을 잘 시켰는지'에 대해서 집중해서 보면 좋을 것 같다. PDF 링크

1. Introduction

심층 신경망(DNN)은 물체 인식 및 물체 감지와 같은 많은 컴퓨터 비전 작업에서 상당한 개선을 이루었다. 이는 최신 DNN 모델을 스마트폰 또는 임베디드 장치와 같은 실제 애플리케이션에 배치하는 데 관심을 유발한다. 그러나 이러한 모델에는 종종 상당한 저장 및 계산 전력이 필요하며 소형 임베디드 장치의 제한된 저장, 배터리 전력 및 컴퓨터 기능에 부담을 줄 수 있다. 그 결과, 구축이 여전히 어려운 과제이다.

1.1 Binary weight networks and model compression

저장 및 계산 문제를 해결하기 위해 DNN 모델에서 가중치 또는 활성화를 이진화 하려는 방법이 제안 되었다. BinaryConnect는 단일 부호 함수를 사용하여 가중치를 이진화합니다. Binary Weight Networks는 동일한 이항 함수를 채택하지만 추가 스케일링 계수를 추가한다. 이전 방법의 확장은 가중치와 활성화가 모두 이진수 값인 BinaryNet과 XNOR-Net이다. 이러한 모델은 순전파 및 역전파에서 대부분의 곱셈을 제거하므로 많은 곱셈 누적 연산을 단순 축적으로 대체함으로써 전문화된 딥러닝(DL) 하드웨어로 상당한 이점을 얻을 수 있는 잠재력을 가지고 있다. 또한, 이진 가중치 네트워크는 최대 32배 또는 64배 모델 압축률을 달성한다.

Binary 기법에도 불구하고, 일부 다른 압축 방법은 매개 변수가 거의 없는 모델을 식별하는 데 초점을 맞추고 기존 최첨단 DNN 모델을 손실된 방식으로 압축하여 정확도를 보존한다. SquezeNet은 AlexNet보다 매개 변수가 50배 적지만 ImageNet에서 AlexNet 수준의 정확도를 유지하는 모델입니다. Deep Compression(심층 압축)은 신경망 압축에 가지치기, 훈련된 양자화 및 허프만 코딩을 사용하는 가장 최근에 제안된 또 다른 방법이다. AlexNet 및 VGG-16의 스토리지 요구량을 정확도 저하 없이 각각 35배, 49배 줄였다.

2. Ternary weight networks

가중치를 +1, 0, -1으로 제한하는 삼항 가중치 네트워크(TWN, ternary weight networks)를 도입하여 제한된 스토리지 및 제한된 계산 리소스 문제를 해결한다. TWN은 FPWN(full precision weight networks, 완전 정밀 중량 네트워크)와 BPWN(binary precision weight networks, 이진 정밀 중량 네트워크) 간의 균형을 이루려고 한다.

표현력 VGG, GoogleLeNet, residual networks와 같은 최신 네트워크 아키텍처에서 가장 일반적으로 사용되는 컨볼루션 필터는 3×3 크기이다. 이진 정밀도로는 23×3 = 512 템플릿만 있습니다. 그러나 크기가 동일한 3차 필터는 33×3 = 19683 템플릿을 소유하며, 이진 필터보다 표현 능력이 38배 더 강하다.

모델 압축 TWN의 경우 무게 단위에 2비트 저장 공간이 필요하다. 따라서, TWNs는 FP32 또는 Double64 정밀도와 비교하여 최대 16배 또는 32배 모델 압축률을 달성한다. VGG-19를 예로 들면, 모델의 Float 버전에는 약 500M의 스토리지 요구 사항이 필요한데, 3항 정밀도로 32M까지 줄일 수 있습니다. 따라서, TWNs의 압축률은 BPWN보다 2배 낮지만, 기존 최첨단 DNN 모델의 대부분을 압축하는 것은 충분히 공정하다.

계산 요구사항 BPWN과 비교하여 TWNs는 상태를 추가로 소유하지만, 여러 작업에 대해 0 항을 누적 할 필요는 없다. 따라서 TWNs의 곱셈 누적 연산은 이진 정밀도 연산과 비교하여 변경되지 않는다. 그 결과, 특수 DL 하드웨어로 대규모 네트워크를 훈련시키는 데에도 하드웨어 친화적이다.

다음 파트에서는 삼항 중량 네트워크 문제와 근사하지만 효율적인 솔루션에 대한 자세한 설명을 제공한다. 그 후, 오류 역전파가 있는 간단한 훈련 알고리듬이 도입되고 마지막으로 런타임 사용이 설명된다.

2.1 Problem formulation

TWNs(삼항 가중치 네트워크)가 잘 작동하도록 하기 위해, 우리는 음이 아닌 스케일링 인자 α와 함께 full precision weights(완전 정밀 가중치) W와 ternary-valued weights(삼항 값 가중치) Wt 사이의 유클리디안 거리를 최소화하려고 한다. 최적화 문제는 다음과 같이 공식화된다.

또 수식이 나왔다. 위 설명을 다시 보면.....
스케일링 인자 α는 0보다 같거나 크고, 가중치는 -1, 0, 1중에 하나인 것에 대해서,
(Full precision weights(완전 정밀 가중치) W)와
(스케일링 인자 α와 TWNs의 가중치 Wt의 곱)의 유클리디안 거리를 최소화 하는 문제이다.

여기서 n은 필터의 크기이다. 근사값 W ≈ αWt를 사용하면 삼항 가중치 네트워크에서 순방향 전파의 기본 블록은 다음과 같습니다.

여기서 X는 블록의 입력이고, ∗는 컨볼루션 연산 또는 내부곱이다. g는 비선형 활성화 함수이다. 동그라미 안에 있는+모양 연산자는 곱셈이 없는 내적 또는 컨볼루션 연산을 나타냅니다. Xnext는 블록의 출력이며 다음 블록의 입력 역할을 할 수 있습니다.

Z는 입력값 X와 가중치 W의 컨볼루션이다.
이것은 입력값 X와 (스케일링 인자 α와 TWNs의 가중치 Wt의 곱)의 컨볼루션과 유사하다.
이것은 (스케일링 인자 α와 입력값 X의 곱)과 TWNs의 가중치 Wt의 컨볼루션이다.
블록의 출력 Xnext는 비선형 활성함수 g(Z) 값이다. (하나씩 보면 알거 같기도...)

2.2. Approximated solution with threshold-based ternary function

최적화 문제(1)을 해결하는 한 가지 방법은 비용 함수 J (α, Wt)를 확장하고 각각 α 및 Wit s에 대한 미분을 취하는 것입니다. 그러나 이것은 상호 의존적인 α∗ 및 Wit* 를 얻습니다. 따라서, 이러한 방법에는 결정론적 해결책이 없습니다. 이를 극복하기 위해 임계값 기반 삼항 함수를 사용하여 근사된 최적 솔루션을 찾으려고 합니다.

(1)의 cost function을 해결하기 위한 방법은 α 및 Wit s에 대해 미분 하는 것이다.
??? 아무튼 임계값 기반 삼항함수를 이용해서 근사된 값을 찾으려고 한다...

여기서 ∆는 양의 임계값 매개 변수입니다. (3)을 사용하면 원래 문제를 다음과 같이 변환 할 수 있습니다.

Wi가 ∆보다 크면 +1,
Wi절대값이 ∆보다 크거나 같으면 0,
Wi가 -∆보다 작으면 -1

여기서 ∆는 임계값 매개변수로 양수이다. 아래 그린 그림같이 임계값 기준으로 나누는 것이다.
그리고 그 밑에 있는 복잡한 수식은 (잘 이해할 수 없지만) 아마 적절한 최적의 ∆값을 구하는 방법에 대한 식인 것 같다.

여기서 I∆ = {i| |Wi| > ∆} 및 |I∆|는 I∆ 요소 수를 나타냅니다.

따라서 주어진 ∆에 대해 최적 α는 다음과 같이 계산 될 수 있습니다.

α*∆를 (4)에 대입하면 다음과 같이 단순화 할 수 있는 ∆ 종속 방정식을 얻을 수 있습니다.

)문제(6)에는 간단한 해결 방법이 없습니다. 문제를 해결하기 위해 이산 최적화를 수행 할 수 있지만 (Wi 상태가 유한하기 때문에) 시간이 많이 걸릴 수 있습니다. 대신, 우리는 Wi가 균일하거나 정규 분포로부터 생성된다고 가정한다. Wis가 [−a, a]에 균일하게 분포하고 ∆가 (0, a]에있는 경우 근사값 ∆ 는 (1/3)a이며 이는(2/3)E(|W|)와 같습니다. 정규 분포 N (0, σ2)에서 Wi가 생성 될 때 근사값 ∆ *는 0.6σ로 0.75 · E (|W|)와 같습니다. 따라서 우리는 빠르고 쉬운 계산을 위해. ∆∗ ≈ 0.7 · E (|W|) ≈ (0.7/n) Σni = 1 | Wi | 라는 규칙을 사용할 수 있다

2.3. Training with stochastic gradient descent method

우리는 확률적 경사 하강(SGD) 방법을 사용하여 TWN을 훈련시킨다. 삼항 값 가중치는 순전파 및 역전파 중에는 사용되지만 매개 변수 업데이트 중에는 사용되지 않는다. 또한, 배치 정규화(BN)와 학습 속도 스케일링이라는 두 가지 유용한 기술이 채택된다. 가속을 위한 모멘텀도 사용한다.

2.4. Model compression and run time usag

순전파에서 스케일링 인자 α는 (2)에 따라 입력으로 변환될 수 있다. 따라서, 우리는 삼항 값 가중치와 배치에 대한 스케일링 요인만 유지하면 된다. 이렇게 하면 각 플로트 또는 Double 정밀도와 비교하여 런타임 사용에 대한 최대 16배 또는 32배의 모델 압축률을 얻을 수 있습니다.

3. Experiment

이 섹션에서는 MNIST, CIFAR-10 및 ImageNet(2012) 데이터 세트에서 BPWN 및 FPWN을 사용하여 TWN을 벤치마킹한다. 공정한 비교를 위해, 우리는 다음의 조건을 동일하게 설정한다. 네트워크 아키텍처, 정규화 방법(L2 가중치 감소), 학습 속도 스케일링 절차(다단계) 및 최적화 방법(모멘텀 포함 SGD). BPWN은 부호 함수를 사용하여 가중치를 이항화하고 FPWN은 부동 값 가중치를 사용한다. 자세한 구성은 표 1을 참조하십시오.

여기서 사용한 LeNet-5 아키텍처는 32-C5 + MP2 + 64-C5 + MP2 + 512 FC + SVM이다. 5×5 크기의 32개의 필터를 소유한 컨볼루션 블록으로 시작한다. 최대 풀링 레이어는 stride는 2로 이어진다. FC는 512개의 노드가 있는 완전 연결 블록입니다. 최상위 계층은 레이블이 10개인 SVM 분류기입니다. 마지막으로, 힌지 손실은 SGD로 최소화된다.

(CIFAR, ImageNet 설명 생략)

테이블 2에는 종합적 벤치마킹 결과 요약되어 있다. 대규모 ImageNet 데이터 세트에서 BPWN과 TWN은 모두 FPWN보다 성능이 떨어진다. 그러나 TWN과 FPWN 사이의 정확도 격차는 BPWN과 TWN 사이의 간격보다 작습니다. 따라서, TWNs는 BPWNs를 다시 이겼다. 또한 모델 크기가 커짐에 따라 TWN(또는 BPWN)과 FPWN 간의 성능 차이가 줄어들었다. 이 낮은 정밀 통신망이 자릿수보다 더 큰 모델들에서 더 많은 장점을 얻는지 여부를 나타냅니다.

그림 1은 이러한 데이터 세트의 검증 정확도 곡선을 보여준다. 그림과 같이, BPWN은 TWN과 FPWN보다 더 천천히 수렴하고 더 심각하게 진동한다. 그러나 TWN은 FPWN만큼 빠르고 안정적으로 수렴된다.

반응형