[논문 리뷰] Embedded Binarized Neural Networks
eBNN은 BNN 추론의 재배치를 통해 이진 임시값을 사용하여 중간 메모리 사용을 약 32배 감소시키고 수십 KB의 RAM을 가진 장치에서 온-디바이스 DNN 추론을 가능하게 하며; MNIST 및 CIFAR10-Easy에서 Curie/Intel Curie 하드웨어로 시연되었고 자동 생성 서비스를 제공합니다.
We study embedded Binarized Neural Networks (eBNNs) with the aim of allowing current binarized neural networks (BNNs) in the literature to perform feedforward inference efficiently on small embedded devices. We focus on minimizing the required memory footprint, given that these devices often have memory as small as tens of kilobytes (KB). Beyond minimizing the memory required to store weights, as in a BNN, we show that it is essential to minimize the memory used for temporaries which hold intermediate results between layers in feedforward inference. To accomplish this, eBNN reorders the computation of inference while preserving the original BNN structure, and uses just a single floating-point temporary for the entire neural network. All intermediate results from a layer are stored as binary values, as opposed to floating-points used in current BNN implementations, leading to a 32x reduction in required temporary space. We provide empirical evidence that our proposed eBNN approach allows efficient inference (10s of ms) on devices with severely limited memory (10s of KB). For example, eBNN achieves 95\% accuracy on the MNIST dataset running on an Intel Curie with only 15 KB of usable memory with an inference runtime of under 50 ms per sample. To ease the development of applications in embedded contexts, we make our source code available that allows users to train and discover eBNN models for a learning task at hand, which fit within the memory constraint of the target device.
연구 동기 및 목표
- 메모리가 심하게 제약된 임베디드 디바이스에서 심층 신경망 실행을 촉진한다.
- 추론 재배치를 통해 임시값을 이진 값으로 저장하여 메모리 풋프레이트를 줄인다.
- 원래의 BNN 정확도를 유지하면서 임시 메모리 사용량을 최소화한다.
- 15 KB SRAM 디바이스에서 실용적인 성능(밀리초 범위 런타임)을 시연한다.
- 도구 및 클라우드 기반 서비스를 제공하여 모델을 학습하고 eBNN 구현을 생성한다.
제안 방법
- BNN 내에서 추론을 융합된 이진 블록으로 재배치하여 중간 부동소수점 임시값을 최소화한다.
- 융합 블록당 단일 부동소수점 누적값과 블록 간 이진 출력을 사용한다.
- 합성(convolution) 및 풀링을 Binary Convolution-Pool 또는 Binary FC 블록으로 융합한다.
- 중간값을 이진 값으로 양자화하여 임시값의 메모리 약 32x 감소를 달성한다.
- 연결 구조와 정확도를 유지하면서 계산 순서만 변경한다.
- Python에서 모델을 학습하고 배치를 위한 임베디드 C 코드 생성을 자동 파이프라인으로 제공한다.
실험 결과
연구 질문
- RQ1eBNN이 초제한 임베디드 디바이스에 맞춰 임시 메모리의 풋프립트를 충분히 줄여 표준 BNN을 수용할 수 있는가?
- RQ2추론 재배치가 실용적인 온-디바이스 런타임을 가능하게 하면서 정확도를 보존하는가?
- RQ3다양한 MNIST 및 CIFAR10-Easy 아키텍처에 대해 메모리, 런타임, 정확도 간의 트레이드오프는 무엇인가?
- RQ4네트워크 깊이와 블록 융합 전략에 따라 eBNN의 성능은 어떻게 확장되는가?
- RQ5타겟 디바이스에서 eBNN 모델을 자동으로 학습하고 배포하는 접근 가능한 도구/서비스 모델이 있는가?
주요 결과
| 모델 | 정확도 | 시간(밀리초) | 메모리(KB) | 에너지(mWs) | |
|---|---|---|---|---|---|
| MNIST | MLP-1 | 91.54 | 17.35 | 14.73 | 5.37 |
| MNIST | MLP-2 | 84.65 | 9.17 | 13.53 | 4.95 |
| MNIST | Conv-1 | 94.56 | 53.72 | 11.48 | 19.96 |
| MNIST | Conv-2 | 96.49 | 193.02 | 13.77 | 63.02 |
| MNIST | ConvPool-1 | 97.44 | 739.34 | 12.79 | 213.63 |
| MNIST | ConvPool-2 | 97.86 | 886.53 | 13.07 | 243.98 |
| MNIST | Conv-1-LE-I | 91.95 | 23.91 | 5.99 | 6.02 |
| MNIST | Conv-1-LE-II | 90.74 | 16.47 | 4.63 | 4.15 |
| CIFAR10-Easy | MLP-1 | 52.30 | 21.29 | 13.84 | 4.37 |
| CIFAR10-Easy | MLP-2 | 41.80 | 19.65 | 14.00 | 2.31 |
| CIFAR10-Easy | Conv-1 | 74.20 | 79.21 | 12.72 | 13.54 |
| CIFAR10-Easy | Conv-2 | 79.80 | 250.08 | 14.30 | 48.64 |
| CIFAR10-Easy | ConvPool-1 | 84.30 | 847.72 | 12.84 | 186.31 |
| CIFAR10-Easy | ConvPool-2 | 77.20 | 968.18 | 13.47 | 223.41 |
| CIFAR10-Easy | Conv-1-LE-I | ? | ? | ? | ? |
| CIFAR10-Easy | Conv-1-LE-II | ? | ? | ? | ? |
- BNN에서 임시값이 메모리의 지배적인 부분이며, eBNN은 중간 결과를 이진 형태로 저장해 메모리를 크게 줄여 15 KB 사용 가능 SRAM 같은 아주 작은 장치에서도 추론이 가능하게 한다.
- MNIST 및 CIFAR10-Easy에서 eBNN 모델은 같은 메모리 제약 하에서 해당 BNN과 유사한 정확도를 달성한다(표 1 결과).
- 평가된 네트워크 전반에서 임시값은 전체 추론 메모리의 최대 3%를 차지하며 파라미터가 나머지를 차지한다.
- 테스트된 장치에서 샘플당 추론 런타임은 수십 밀리초에서 1초 미만으로 나타나 더 작은 구성을 위해 수십 밀리초의 속도를 달성한다.
- 제한된 하드웨어에서 신속한 프로토타이핑이 가능하도록 eBNN을 학습하고 임베디드 C 코드로 배포하기 위한 자동화된 클라우드 기반 서비스를 제공한다.
더 나은 연구,지금 바로 시작하세요
연구 설계부터 논문 작성까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.