анал로그 비휘발성 메모리 크로스바이에서의 DNN IoT 애플리케이션 훈련을 위한 준비

읽는 시간: 8 분
...

📝 원문 정보

- Title: Training DNN IoT Applications for Deployment On Analog NVM Crossbars
- ArXiv ID: 1910.13850
- 발행일: 2020-10-19
- 저자: Fernando Garc ia-Redondo, Shidhartha Das, Glen Rosendale

📝 초록

에너지 효율성, 보안 및 프라이버시에 대한 추세로 인해 최근 딥러닝 네트워크(DNNs)를 마이크로컨트롤러에 배포하는 것에 대한 관심이 높아지고 있다. 그러나 계산과 메모리 자원의 제한으로 이러한 시스템에서 배치 가능한 ML 모델의 크기와 복잡도가 제약받고 있다. 저항성 비휘발성 메모리(NVM) 기술을 기반으로 하는 컴퓨테이션-인-메모리(CIM) 아키텍처는 현대 DNN에서 요구되는 고성능과 저전력에 대한 계산 및 메모리 요구를 충족할 가능성을 보여주고 있다. 그러나 이러한 기술들은 아직 미숙하고, 본질적인 아날로그 도메인 노이즈 문제와 NVM 구조에서 음의 가중치 표현 불가능성으로 인해 크로스바 크기가 커지고, 이에 따라 ADC 및 DAC에도 영향을 준다. 본 논문에서는 이러한 과제를 해결하기 위한 훈련 프레임워크를 제공하고, 이를 통해 얻어진 회로 수준의 효율성 개선을 정량적으로 평가한다. 두 가지 기여를 제시한다: 첫째, 각 DNN 계층별 조정이 필요하지 않은 훈련 알고리즘으로 계층 가중치 및 활성화에 대한 일관성을 보장한다. 이는 아날로그 블록을 재사용하고 주변 하드웨어를 크게 줄일 수 있다. 둘째, NAS 방법을 사용하여 단극 가중치(모두 양수 또는 모두 음수) 행렬/부행렬을 제안한다. 가중치의 단극성은 크로스바 면적을 두 배로 늘리는 필요성을 없애고 아날로그 주변 하드웨어를 간소화한다. CIFAR10과 HAR 애플리케이션에 대한 방법론 검증을 위해 4비트 및 2비트 장치를 사용하여 크로스바에 매핑하였다. 우리는 HAR의 경우 2비트 양수 가중치만을 사용해 최대 92:91% 정확도(95% 부동소수점)를 달성하였으며, 제안된 기법들의 조합으로 80% 면적 개선과 최대 45% 에너지 감소를 이루었다.

💡 논문 해설

**핵심 요약**: 이 논문은 딥러닝 네트워크(DNN)을 비휘발성 메모리(NVM) 기반의 아날로그 크로스바에 배포하는 과정에서 발생하는 문제를 해결하기 위한 훈련 프레임워크를 제시한다. 이를 통해 계산 및 메모리 자원이 제한적인 마이크로컨트롤러에서도 고성능 DNN을 실행할 수 있도록 한다.

문제 제기: 현대 딥러닝은 높은 에너지 효율과 보안성을 요구하지만, 이를 충족하기 위해서는 많은 계산 자원과 메모리가 필요하다. 그러나 마이크로컨트롤러와 같은 작은 시스템에서는 이러한 자원을 제공할 수 없기 때문에, DNN의 성능 및 복잡도를 제한해야 한다.

해결 방안 (핵심 기술): 저자들은 NVM 기반의 컴퓨테이션-인-메모리(CIM) 아키텍처를 사용하여 이러한 문제를 해결한다. CIM은 계산을 메모리 내부에서 수행함으로써, 높은 성능과 낮은 에너지 소비를 동시에 달성할 수 있다. 그러나 NVM은 본질적으로 아날로그 도메인 노이즈와 음의 가중치 표현 불가능성을 가지고 있어 크로스바 면적이 커지고, ADC 및 DAC에 부담을 준다. 이를 해결하기 위해 저자들은 DNN 계층별 조정 없이 일관된 가중치와 활성화를 보장하는 훈련 알고리즘과 단극 가중치 행렬 사용을 제안한다.

주요 성과: 이 논문에서는 CIFAR10 및 HAR 애플리케이션에 대한 실험에서 2비트 양수 가중치만으로 최대 92:91%의 정확도를 달성했다. 또한 제안된 기법들을 조합하여 크로스바 면적을 80%, 에너지를 45% 줄일 수 있었다.

의의 및 활용: 이 연구는 DNN을 마이크로컨트롤러와 같은 리소스가 제한적인 시스템에 배포하는 데 있어 중요한 단계를 제공한다. 특히, IoT 애플리케이션에서 저전력 고성능 딥러닝 모델의 실행을 가능하게 함으로써 다양한 분야에서 활용될 수 있다.

📄 논문 발췌 (ArXiv Source)

## 하드 제약 조건을 갖춘 HW 양자화 훈련

재구성 가능성과 전체 커스텀 주변 회로 설계 사이의 균형을 맞추고 가중치/활성화 정밀도에 대한 의존성을 해결하기 위해, DNN을 NVM 하드웨어로 매핑하는 데 도움이 되는 프레임워크를 개발했습니다. 이를 위한 주요 아이디어는 양방향 전파 및 역전파 과정에서 하드 제약 조건을 사용하는 것입니다. 이러한 제약 조건은 HW 능력과 관련되어 각 계층의 정밀도를 사용한 양자화를 강제하고, 각 계층이 가질 수 있는 가중치, 편향 및 활성화 값들이 신경망 전체에서 공유되도록 보장합니다. 이 방법론을 통해 훈련이 완료된 후에는 각 은닉 계층 $`L_i`$를 다음과 같은 동일한 HW 블록으로 매핑할 수 있습니다:

  • 단일 DAC/ADC 설계를 수행하는 $`\mathcal{V}()`$ / $`act()`$
  • 단일 가중치에서 전도도로의 맵핑 함수 $`f()`$
  • 전역 활성화 값 세트 $`Y_g = [y_0, y_1]`$
  • 입력값의 전역 세트 $`X_g = [x_0, x_1]`$
  • 가중치 값의 전역 세트 $`W_g = [w_0, w_1]`$
  • 편향 값의 전역 세트 $`B_g = [b_0, b_1]`$.

크로스바 동작은 다음과 같이 정의됩니다:

MATH
\begin{align}
    i_{ij} &= \sum v_{ik} g_{ikj} + b_{ij} \\
    % v_{ik} &= to\_v(x_{ik}) \\
    v_{ik} &= \mathcal{V}(x_{ik}) \\ % (x_{ik}) \\
    g_{ikj} &= f(w_{ikj}) \\
    y_{ij} &= act(i_{ij}),
\end{align}
클릭하여 더 보기

이러한 시스템 변수는 세트 $`Y_g, X_g, W_g`$ 및 $`B_g`$ 내에 있으며, 모든 DAC/ADC가 $`\mathcal{V}()`$와 $`act()`$를 수행하고 설계를 공유하여 재사용할 수 있습니다. 원하는 동작을 달성하기 위해 각 은닉 계층 $`L_i`$가 신경망에 존재하는 경우 다음과 같은 방정식이 만족되어야 합니다:

MATH
\begin{align}
 Y_i &= \{y_{ij}\}, y_{ij} \in [y_0, y_1] \\
 X_i &= \{x_{ik}\}, x_{ik} \in [x_0, x_1] \\
 W_i &= \{w_{ikj}\}, w_{ikj} \in [w_0, w_1] \\
 B_i &= \{b_{ij}\}, b_{ij} \in [b_0, b_1].
\end{align}
클릭하여 더 보기

일반적으로 출력 계층 활성화 (시그모이드, 소프트맥스)는 은닉 계층의 활성화와 일치하지 않을 수 있습니다. 따라서 DNN이 학습하기 위해서는 출력 계층은 독립적인 값 세트 $`Y_o, X_o, W_o, B_o`$를 사용하여 양자화되어야 하며, 이는 $`Y_g, X_g, W_g, B_g`$와 일치할 수 있거나 그렇지 않을 수 있습니다. 따라서 출력 계층은 매핑된 크로스바에서만 완전 커스텀 주변 회로가 필요합니다.

HW 인식 그래프 정의

[[IMG_PROTECT_N]]
제안된 양자화 그래프의 간소화된 버전은 크로스바에 대한 훈련을 인식하며, 양자화 과정에서 관여하는 전역 변수를 자동으로 처리하여 계층 간 균일한 스케일링을 달성합니다.

NN 그래프는 Tensorflow Keras 라이브러리로 생성됩니다. HW 인식 훈련을 수행하기 위해, 양자화를 제어하고 누적 클리핑과 추가 손실을 처리하는 요소들이 그래프에 추가됩니다. [[IMG_PROTECT_N]] 그림은 이러한 추가 요소들을 나타내며, 이를 전역 변수라고 합니다. 이 목적으로, 전역 변수 제어 블록들은 전역 변수의 정의, 업데이트 및 나중에 전파를 관리합니다. 전역 변수는 $`Y_g, X_g, W_g, B_g`$ 또는 그 외 다른 것들로 구성된 전역 값 세트 $`V_g`$를 계산하는 데 사용되는 변수입니다. 또한 커스텀 정규화자 블록을 추가하여 추가 목표가 있는 경우 훈련 수렴을 돕도록 할 수도 있습니다.

HW 인식 NN 훈련

미분 가능한 아키텍처와 훈련 중 변수 업데이트

전역 변수는 훈련 중에 업데이트되지 않을 수 있으며, 이 경우 $`V_g`$에서 해당 전역 세트 값이 고정됩니다. 반면, 우리는 *미분 가능한 아키텍처 (DA)*를 사용하여 전역 변수의 최적 값을 자동으로 찾도록 제안합니다. 이를 위해 DA를 사용하여 NN 디자인 공간을 탐색합니다. 전역 변수들은 각 계층 특성에 대한 함수로 정의됩니다 – 평균, 최대값, 최소값, 편차 등. 만약 DA 요구 사항을 충족하면, 전역 제어 요소는 역전파 단계에서 계산된 기울기를 통해 관련 변수를 자동으로 업데이트합니다. 그러나 특정 변수가 경사하강법으로 직접 계산할 수 없는 경우, 후속 단계에서 업데이트되어야 합니다.

전역 변수 세트 $`V_g = \{X_g, Y_g, W_g, B_g\}`$ 초기화 $`V_g`$ 가중치 $`W`$ 업데이트 불가능한 전역 변수 계산 $`V_g`$ 레이어 양자화 매개변수 업데이트

우리는 또한 극히 낮은 정밀도 계층 (예: 2비트 가중치 및 활성화에서 2-4비트)을 대상으로 하는 추론 네트워크의 정의에 DA를 사용하여 디자인 공간 탐색과 가장 적합한 활성화 함수를 찾는 데 제안합니다. 여기서 전신 계층에 (전반적으로 모든 은닉 계층에서) 전통적인 리류와 커스텀 탄하 $`tanh(x - th_g)`$를 사용하여 실험을 진행했습니다. 우리의 NN 훈련은 가장 적절한 활성화 함수를 선택할 뿐만 아니라 최적의 매개변수 $`th_g`$도 찾습니다. 이 매개변수 $`th_g`$는 경사하강법을 통해 자동으로 계산됩니다. 그러나 어떤 종류의 활성화를 사용할지 결정하기 위해, 우리는 연속적인 활성화 디자인 공간을 다음과 같이 정의합니다:

MATH
\begin{equation}
act(x) = a_0 relu(x) + a_1 tanh(x - th_g),
\end{equation}
클릭하여 더 보기

여기서 $`\{a_i\} = \{a_0, a_1\} = A_g`$. 선택된 활성화 $`a_s`$는 $`A_g`$에 대한 소프트맥스 함수를 적용한 후 얻어집니다:

MATH
\begin{equation}
a_s = softmax( A_g ),
\end{equation}
클릭하여 더 보기

이것은 훈련 수렴 시 $`a_0`$ 또는 $`a_1`$을 0 값으로 강제합니다.

손실 정의

앞서 언급했듯이, 최종 HW 특성과 관련된 추가 목표/제약 조건은 수렴 문제를 초래할 수 있습니다. 유효한 솔루션으로 수렴을 돕기 위해 훈련 단계에 따라 종속적인 $`\mathcal{L}_C`$ 항목을 손실 계산에 추가합니다. 최종 손실 $`\mathcal{L}_F`$는 다음과 같이 정의됩니다:

MATH
\begin{equation}
\mathcal{L}_F = \mathcal{L} + \mathcal{L}_{L2} + \mathcal{L}_{L1} + \mathcal{L}_{C},
\end{equation}
클릭하여 더 보기

여기서 $`\mathcal{L}`$은 표준 훈련 손실을 의미하고, $`\{\mathcal{L}_{L1}, \mathcal{L}_{L2}\}`$는 표준 $`L1`$ 및 $`L2`$ 정규화 손실을 나타내며, $`\mathcal{L}_C`$는 사용자 정의 패널리제이션입니다. 이러한 특정 정규화 항목 중 하나는 훈련 단계 $`N`$ 이후 가중치 값이 임계값 $`W_T`$를 초과하는 경우에 대한 패널리제이션을 의미할 수 있습니다. 이 손실 항은 다음과 같이 작성될 수 있습니다:

MATH
\begin{equation}
\mathcal{L}_C = \alpha_C \sum_{w} max(W-W_T, 0) HV(step - N)
\label{eq:loss_c}
\end{equation}
클릭하여 더 보기

여기서 $`\alpha_C`$는 설정된 상수이며 $`HV`$는 히비사이드 함수입니다. 훈련이 여전히 $`W_T`$를 초과하는 가중치 값을 제공한다면, $`HV`$ 함수는 클리핑되지 않은 함수 $`relu(step-N)`$으로 대체될 수 있습니다.

구현된 양자화 계획

구현된 양자화 단계는 임의 텐서 $`T = \{t_t\}, t_t \in \mathbb{R}`$를 입력으로 받아 양자화 공간 $`Q = \{q_{q+}, q_{q-}\}`$로 투영합니다. 여기서 $`q_{q+} = \alpha_Q 2^{q}`, `q_{q-} = -\alpha_Q 2^{q}`, 그리고 $\alpha \in \mathbb{R}$. 따라서 이 투영은 $q(T) = T_q$로 표시되며, 여기서 $T_q = \{t_q\}, t_q \in Q$. 구현을 위해 우리는 *fake_quant* 연산을 사용하여 *스트레이트 스루 추정자*를 양자화 계획으로 채택하며, 이를 통해 균일하게 분포된 $Q$ 세트와 항상 0이 포함된 값을 제공합니다. 그러나 [[IMG_PROTECT_N]] 그림에서 보듯이 양자화 노드는 비균일한 양자화 계획을 사용할 수 있습니다. 양자화 공간 $Q$의 정의는 전역 변수 $V_g$에 의해 주어진 최소 및 최대 값으로 결정됩니다.

알고리즘은 $`max/min`$ 함수 또는 확률적 양자화 계획을 고려할 수 있습니다. 마찬가지로, 양자화 단계는 전역 변수 $`do_Q \in {0, 1}`$를 사용하여 동적으로 활성화되거나 비활성화될 수 있으며, 이는 쉽게 증분 접근법을 지원하도록 변경될 수 있습니다. 특히 [[IMG_PROTECT_N]] 섹션에서 알 수 있듯이, 가중치 정밀도가 매우 제한적인 경우 알파 블렌딩 계획은 유용하게 사용됩니다.

단극 가중치 행렬 양자화 훈련

양수/음수 가중치를 동일 크로스바에 매핑하면 크로스바 리소스가 두 배 증가하고 추가 주변 회로도 필요합니다. 제안된 훈련 계획을 사용하여 DNN 그래프의 특성을 더 제한할 수 있으며, 이는 단극 가중치 행렬을 얻기 위해 일부 전역 변수를 다음과 같이 재정의합니다:

MATH
\begin{equation}
W_g  \in [0, w_1]
\end{equation}
클릭하여 더 보기

또한, $`\mathcal{L}_C`$ 함수를 정의된 [[IMG_PROTECT_N]] 방정식에 따라 도입합니다.

더 나아가, 특정 활성화 (리류, 탄하 등)에서 최대 및/또는 최소 값이 이미 알려져 있으므로 $`V_g`$ 내의 매개변수 세트는 더욱 제한될 수 있습니다. 이러한 최대 및 최소값은 활성화 함수 회로가 크로스바와 인터페이싱하는 특정 매개변수로 쉽게 매핑할 수 있습니다. 마지막으로, 가중치 정밀도가 매우 제한적인 경우 (예: 2비트), 추가 손실 항목 $`\mathcal{L}_C`$는 가중치 분포를 양극 공간에서 단극 양수 공간으로 서서히 이동시켜 훈련 수렴을 돕습니다.

요약하면, [[IMG_PROTECT_N]] 섹션에 설명된 메커니즘들을 적용함으로써 단극 가중치만을 포함하는 NN 그래프를 얻는 가능성을 열어놓았습니다.


📊 논문 시각자료 (Figures)

Figure 1



Figure 2



Figure 3



Figure 4



Figure 5



Figure 6



Figure 7



Figure 8



Figure 9



Figure 10



Figure 11



Figure 12



Figure 13



감사의 말씀

이 글의 저작권은 연구하신 과학자분들께 있으며, 인류 문명 발전에 공헌해주신 노고에 감사를 드립니다.

검색 시작

검색어를 입력하세요

↑↓
ESC
⌘K 단축키