학위논문 (석사)-- 서울대학교 대학원 : 공과대학 전기·정보공학부, 2019. 2. 최기영.심층신경망(Deep Neural NetworkDNN)은 데이터 인식, 수집, 합성 등의 분야에서 높은 정확도를 보이며 널리 사용되고 있다. 일반적으로, 심층신경망 학습에서 사용되는 연산은 수 표현의 정확성과 넓은 표현범위를 필요로 하기때문에 32비트 단일정밀도, 또는 64비트 배정밀도의 부동 소수점 수가 사용된다. 따라서 부동 소수점 수 사용으로 인한 전력 소모와 칩 크기, 메모리 대역폭을 줄이기 위해 심층 신경망 학습 연산에서의 비트 길이를 줄이기 위한 많은 연구가 있었다.
그 중, 동적 고정 소수점(Dynamic Fixed-PointDFP)은 부동 소수점과 고정 소수점의 결합적인 형태로써, 심층신경망 학습에 성공적인 결과를 보였던 수 표현 체계 중 하나이다. 동적 고정소수점을 사용한 신경망 학습에 대해 16비트 연산으로 가능하다는 연구들이 있었지만, 이는 가중치 업데이트를 제외했을 경우로 제한된 것이었다. 가중치 업데이트는 작은 값들을 충분히 축적하여 기존의 가중치에 더해짐으로써 업데이트 된 가중치 값을 신경망 학습에 다시 사용한다. 따라서 일반적인 신경망들의 가중치 업데이트에는 더 높은 정밀도가 필요하기 때문에 32비트 부동 소수점수를 사용했다. 그러나 다른 연산들과 비트 길이를 달리 사용하면 하드웨어 설계가 어려워질 수 있다는 문제점은 여전히 남아있었다.
본 논문은 가중치 업데이트까지 포함하여 전체적인 신경망 학습의 연산을 16비트 동적 고정 소수점을 사용할 수 있는 방법들을 제안한다. 첫 번째 방법은 '가중치 클리핑(Weight Clipping)'으로써, 가중치 값들의 범위를 제한하여 해당 범위를 초과하는 절댓값이 큰 가중치를 제한하고 조금 더 많은 가중치들이 신경망 학습에 유의미한 값을 유지하도록 하도록 하는 방법이다. '점진적 배치 크기 증가법'은 작은 업데이트 값의 세부 정보를 보존하여 16비트 가중치 업데이트의 에러 발산을 해결할 수 있다. 또한, 본 논문에서는 이 두 가지 방법을 결합함으로써 더 나은 성능의 학습 가능성을 확인하였다. 실험에는 LeNet-5와 VGG-16 네트워크 상에서 CIFAR10, CIFAR100 데이터셋을 사용하였으며, 가중치 업데이트 연산을 포함한 전체적인 학습 연산에 16 비트 동적 고정소수점수를 적용하였다. 그 결과, 이미지 분류 정확도 뿐만 아니라 학습 손실률도 부동 소수점에 근접한 결과를 얻음으로써 저전력 칩으로 동작 할 수 있는 심층 신경망의 학습을 성공하였다.Deep Neural Networks (DNNs) are widely used in the areas of RMS (Recognition, Mining, and Synthesis) applications due to their high accuracies. In general, the operations in the DNN training simultaneously need wide dynamic range and high precision, thus the 32-bit single or 64-bit double precision floating-point operations are usually used. However, the hardware using floating-point requires many drawbacks. There have been many attempts to reduce the bit-widths of the DNN training operations, to reduce the power consumption, chip area, and memory bandwidth. One of the most successful attempts is the dynamic fixed-point (DFP), which is the combination of the floating-point and fixed-point formats. It has been reported that DFP can reduce the bit-widths of the training operations to 16 bits, except for parameter update operationsparameter updates for general networks need higher precision and are usually done with 32-bit floating point operations.
In this paper, we propose two methods of using 16-bit DFP for all the training operations including parameter updates. One is weight clipping method, which clips big weight values that exceed a certain upper bound to preserve enough precision for DNNs to be trained. Another one is gradual batch size increase method, which addresses the error divergence issue of the 16-bit parameter updates by preserving the details of the small update values. Lastly, we combine the two methods to further explore their potentials. We successfully apply 16-bit DFP operations on the entire training process including parameter updates, and achieve the same accuracies with LeNet-5 and VGG-16 networks using CIFAR-10 and CIFAR-100 datasets.Abstract i
Contents iii
List of Tables v
List of Figures vi
1 INTRODUCTION 1
2 Training DNN with Dynamic Fixed-Point 6
2.1 Numerical Representation Format . . . . . . . . . . . . . . . . . . . 6
2.1.1 Floating Point and Fixed Point . . . . . . . . . . . . . . . . . 6
2.1.2 Dynamic Fixed-Point . . . . . . . . . . . . . . . . . . . . . . 8
2.2 Training Result and Analysis of DNN using DFP . . . . . . . . . . . 10
3 Weight Clipping 15
3.1 Implementation of Weight Clipping . . . . . . . . . . . . . . . . . . 15
3.2 Experiment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.2.1 Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.2.2 Error and Loss Result . . . . . . . . . . . . . . . . . . . . . . 18
4 Gradual Batchsize Increase 23
4.1 Implementation of Gradual Batchsize Increase . . . . . . . . . . . . . 23
4.2 Experiment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
4.2.1 Error and Loss Result . . . . . . . . . . . . . . . . . . . . . . 25
5 Combined Version of Two Method 29
6 Summary 33
Abstract (In Korean) 39Maste