- SNN은 이벤트 기반 처리와 낮은 전력 소모의 장점이 있다. - 그러나 뉴런의 복잡한 동작과 spike 연산의 비미분 가능성 때문에 학습이 어렵다. - 또한, 현재까지 SNN의 응용은 이미지 분류와 같은 단순 작업에 제한되었다.
- 본 연구에서는 SNN이 Object Detection이라는 더 어려운 regression 문제에서 성능이 저하되는 이유를 분석 - 이를 해결하기 위해 2가지 새로운 방법을 제안 1. Channel-wise-normalization(채널 단위 정규화) 2. Signed Neuron with imbalanced Thresold(불균형 임계값 서명 뉴런) => 이를 통해 깊은 SNN에서 빠르고 정확한 정보 전달을 가능하게 한다. Spiking-YOLO라 불리는 최초의 spike 기반 물체 탐지 모델을 제시
SNN을 이용한 물체 기반 탐지 모델 Spiking-YOLO 제시
1. Intirduction
DNN(Deep Neural Network)
- DNN의 성공의 주요 이유는 고성능 컴퓨팅 시스템의 발전과 대규모 데이터의 학습 모델 사용 가능성과 관련 있다. - 하지만, 현실 세계의 더 발전된 문제를 해결하려면 더 정교한 모델과 학습 데이터가 필요
- 이는 계산 부담과 전력 소비가 발생 - 이를 극복하기 위해 Pruning, Compression, Quantization와 같은 기법을 사용하여 계산 및 에너지 효율을 챙긴다. - 이 중 일부는 유망한 결과를 보였지만, 보다 깊고 복잡한 신경망이 더 높은 정확도를 달성함에 따라 계산 및 전력 자원 수요는 계속 증가할 것
DNN Architecture
SNN(Spiking Neural Network)
- Spiking Neron을 계산 단위로 사용 - 기존 신경망(DNN)이 연속적인 실수 값(Continuous)을 사용하는 대신 SNN은 일련의 spike(Discrete)를 사용하여 정보를 전달 - Spiking Neuron은 spike를 수신할 때 입력을 막전위에 통합한 후, 막전위가 특정 임계값(Thresold)에 도달하면 Spike를 생성(발화) - 이러한 특성으로, SNN은 이벤트 기반 계산이 가능하며, 전력 효율성이 뛰어나다.
- 하지만, SNN은 상대적으로 단순한 작업(이미지 분류)과 작은 데이터 셋에 제한되었다. - 주요 이유는 spiking neuron의 복잡한 동적 특성과 비미분적인 연산(non-differentiable operations)으로 인해 확장 가능한 학습 알고리즘이 부족하다. - 이에 대안적인 접근법으로 DNN-to-SNN conversion방법이 연구되었다.
Spike Neuron 생성 과정SNN Architecture
DNN-to-SNN conversion
- DNN에서 미리 학습된 parameters(weight, bias)를 SNN으로 가져오는 아이디어를 기반으로 한다. - 본 연구에서는 DNN-to-SNN 변환 방식을 사용하여 물체 탐지(object detection)를 조사 - 물체 탐지는 겹쳐진 다수의 물체를 인식하고 바운딩 박스의 정확한 좌표를 계산해야 하기 때문에 훨씬 더 도전적인 과제로 여겨진다. - 따라서, 이는 신경망 출력 값을 예측하기 위한 높은 수치적 정밀도(즉, 회귀 문제)가 필요하며, 이는 이미지 분류에서 수행하는 최고 확률 클래스 선택(예: argmax 함수)과 다르다.
- 우리의 심층 분석에 따르면, SNN에서 물체 탐지를 적용할 때 다음과 같은 여러 문제가 발생합니다: 1. 기존 정규화 방법의 비효율성(inefficiency of conventional normalization methods) 2. SNN도메인에서 leaky-ReLU를 효율적으로 구현하는 방법의 부재(absence of an efficient implementation method of leaky-ReLU in an SNN domain)
- 이 문제를 해결하기 위해 2가지 새로운 방법을 제안 1. Channel-wise-normalization(채널 단위 정규화) 2. Signed Neuron with imbalanced Thresold(불균형 임계값 서명 뉴런) - SNN에서 Object Detection을 위한 첫 단계로, Tiny-YOLO를 기반으로 Spiking-YOLO를 구현
<Distribution> 1. First object detection model in deep SNNs 에너지 효율적인 물체 탐지가 가능한 Spiking-YOLO를 처음으로 제시 2. Channel-wise normalization deep SNN을 위한 세밀한 정규화 방법을 개발 3. Signed neuron featuring imbalanced threshold SNN domain에서 leaky-ReLU를 정확하고 효율적으로 구현하는 방법을 제안
SNN 기반으로 Object Detection을 수행하는 모델 Spiking-YOLO를 제시 1. Channel-wise-normalization(채널 단위 정규화) 2. Signed Neuron with imbalanced Thresold(불균형 임계값 서명 뉴런) 를 통해 기존 문제 해결
2. Related work
DNN-to-SNN Conversion
- DNN과 달리 SNN은 뉴런 간 정보를 전달하기 위해 spike열로 구성된 이벤트 기반 방식을 사용 - integrate-and-fire neuron(통합 및 발화 뉴런)은 입력 z를 막전위 Vmem으로 통합한다.
- SNN의 학습 방법은 스파이크-시간-의존적 가소성(spike-timing-dependent plasticity, STDP)을 사용한 비지도 학습과, 경사 하강법 및 오차 역전파(error back-propagation)를 사용한 지도 학습으로 구성 - 비록 STDP는 생물학적으로 더 타당해 보이지만, 학습 성능은 지도 학습에 비해 현저히 낮다. - 최근 연구에서는 SNN의 비미분 가능 부분(integrate-and-fire)을 근사화하는 함수를 사용하여 학습 성능을 개선하려는 지도 학습 알고리즘을 제안 - 이러한 노력에도 불구하고 대부분의 이전 연구는 얕은 SNN에서 이미지 분류 작업과 MNIST 데이터셋으로 제한
- 대안적 접근법으로, 최근 DNN을 SNN으로 변환하는 방법이 제안 - 이들은 편향(bias)과 최대 풀링(max-pooling)을 배제한 DNN-to-SNN 변환 방법을 제안 - 이후 연구에서는 심층 SNN의 성능을 개선하기 위해 데이터 기반 정규화를 제안 - 배치 정규화(batch normalization)와 스파이크 최대 풀링(spike max-pooling)의 구현 방법을 제시 - VGG와 잔차 구조(residual architectures)로 변환 방법을 확장 - 그럼에도 불구하고 대부분의 이전 연구는 이미지 분류 작업으로 제한
Object Detection
- 물체 탐지(object detection)는 이미지나 비디오에서 하나 이상의 물체를 찾아 바운딩 박스를 그린 후, 그들의 클래스를 식별하는 작업 - 따라서 물체 탐지 모델은 물체를 분류하는 분류기(classifier)뿐만 아니라 바운딩 박스의 정확한 좌표(x- 및 y-축)와 크기(너비와 높이)를 예측하는 회귀기(regressor)로 구성 - 바운딩 박스의 정확한 좌표를 예측하는 것이 중요하기 때문에, 물체 탐지는 이미지 분류에서 단순히 argmax 함수를 사용해 가장 높은 확률의 클래스를 선택하는 작업보다 훨씬 더 도전적인 과제로 간주
- Region-based CNN (R-CNN)은 탐지 성능과 속도를 개선하기 위해, 다양한 확장 버전이 제안 - 예를 들어, Fast R-CNN, Faster R-CNN, Mask R-CNN이 있습니다. - 하지만 R-CNN 기반 네트워크는 다단계 탐지 구조로 인해 느린 추론 속도를 가지며, 실시간 물체 탐지에는 적합하지 않다.
- 대안적 접근법으로, 단일 단계 탐지(one-stage detection) 방식이 제안 - 이 방식에서는 바운딩 박스 정보가 추출되고 물체가 통합된 네트워크에서 분류 - 단일 단계 탐지 모델 중에서 Single-shot multi-box detector (SSD)와 You only look once (YOLO)가 있다. - 이 중 YOLO는 뛰어난 성능을 보여주었으며, 특히 정확도를 크게 손상시키지 않고도 우수한 추론 속도(FPS)를 제공 - 따라서, 본 연구에서는 Tiny YOLO를 물체 탐지 모델로 선택
다양한 시도가 있었지만 해당 논문에서는 One-stage detection 방식의 YOLO 그 중, Tiny YOLO를 Object Detection 모델로 선택
3. Methods
Channel-wisedata-based normalization(채널 단위 데이터 기반 정규화)
Conventional normalization methods(기존 정규화 방법)
- 일반적인 SNN에서는 뉴런이 입력의 크기에 따라 spike 열을 생성하고 이를 정보 손실 없이 전달하도록 보장하는 것이 중요 - 그러나 고정된 시간 단계에서 뉴런이 under-activation되거나 over-activation되면 정보 손실이 발생
- 예를 들어 임계값 전압 Vth가 매우 크거나 입력값이 작으면, Vmem이 Vth에 도달하는데 오랜 시간이 걸린다. - 이는 낮은 발화율(즉, under-activation)을 초래 - 반대로, Vth가 매우 작거나 입력값이 크면 Vmem이 Vth를 초과하여 입력값에 상관없이 뉴런이 spike를 생성 - 이는 높은 발화율(즉, over-activation)을 초래
- 발화율(firing rate)은 아래와 같이 정의 N: 주어진 시간 단계 T동안 생성된 총 spike 수
- 최대 발화율(maximum firing rate)은 spike가 매 시간 단계마다 생성될 수 있기 때문에 100%
- 뉴런의 under, over-activation을 방지하려면, 가중치(weights)와 임계값 전압(Thresold voltage)을 신중하게 선택 - 이를 위해 다양한 데이터 기반 정규화 방법이 제안
# Layer-wise normalization(계층 단위 정규화)
- 특정 계층의 최대 활성화값을 사용하여 해당 계층의 가중치를 정규화하는 가장 잘 알려진 정규화 방법 - 이는 DNN에서 학습 데이터셋을 실행하여 계산된 최대 활성화를 기반으로 한다. - 학습 및 테스트 데이터셋의 분포가 유사하다는 가정에 기반한다. - 가중치를 최대 활성화로 정규화하면 출력 활성화를 정규화하는 것과 동일한 효과를 가진다. - 계층 정규화는 다음과 같이 계산됩니다:
# Extended version of layer-norm(확장된 계층 정규화)
- 최대 활성화값의 99.9번째 백분위를 사용하여 활성화를 정규화하는 방법을 제안 - 이는 이상치에 대한 강건성을 높이고, 뉴런의 충분한 발화를 보장
- 그러나, 실험 결과에 따르면, 기존 정규화 방법을 deep SNN의 Object Detection에 적용하면 모델의 성능이 저하
Analysis of layer-norm limitation(계층 정규화의 한계 분석)
- Figure 1은 계층 정규화를 통해 얻은 각 채널에서의 정규화된 최대 활성화 값을 나타낸다. - Tiny YOLO는 8개의 convolution layers으로 구성되며, x축은 channel index를, y축은 정규화된 최대 활성화 값(normalized maximum activation values)을 나타낸다. - 파란색 선과 빨간색 선은 각각 정규화된 활성화의 평균값과 최소값
- Figure 1에서 강조된 것처럼, 특정 합성곱 계층의 경우, 각 채널에서 정규화된 활성화의 편차가 상대적으로 크다. - 예를 들어, Conv1 계층에서 정규화된 최대 활성화 값은 특정 채널(e.g., 채널 6, 7, 14)에서는 1에 가깝지만, 다른 채널(e.g., 채널 1, 2, 3, 13, 16)에서는 0에 가깝다. - 이러한 현상은 다른 합성곱 계층에서도 동일하게 나타난다. - 명백히, 계층 정규화는 상대적으로 작은 활성화 값을 가진 많은 채널에서 예외적으로 작은 정규화된 활성화(즉, under-activation)를 초래
- 이처럼 극히 작은 정규화된 활성화 값은 이미지 분류에서는 감지되지 않지만, deep SNN에서의 회귀 문제를 해결하는 데 매우 문제가 될 수 있다. - 예를 들어, 0.7을 전송하려면 7개의 스파이크와 10개의 시간 단계가 필요하다. - 동일한 논리를 적용하면, 0.007을 전송하려면 1000개의 시간 단계가 필요하며, 정보 손실 없이 전송하기 위해 0.9007와 0.9000과 같은 매우 작은 값을 구분하려면 많은 시간 단계가 요구된다. - 시간 단계의 수는 정보 전송의 해상도로 간주 - 따라서 시간 단계가 요구되는 수보다 적을 경우, 극히 작은 정규화된 활성화 값은 낮은 발화율을 초래하며 이는 정보 손실로 이어진다.
Proposed normalization method(제안된 정규화 방법)
- depp SNN에서 빠르고 효율적인 정보 전달을 가능하게 하기 위해 채널 단위 정규화(channel-wise normalization)라고 불리는 정규화 방법을 제안(channel-norm) - 기존 계층 단위 방식(layer-wise)의 대신 채널 단위로 최대 활성화(99.9번째 백분위)를 사용하여 가중치를 정규화 - 제안된 채널 단위 정규화는 다음과 같이 표현
- 자세한 방법은 Algorithm 1 및 Figure 2 참고
- 채널 단위 방식으로 활성화를 정규화하면, 이전에 작은 활성화 값을 가졌던 많은 채널에서 과소 활성화(under-activation)를 제거할 수 있다. - 즉, 뉴런이 더 높은 수준이면서도 적절한 발화율을 유지하도록 정규화되어, 짧은 시간 내에 정확한 정보 전달이 가능
- Figure 3에서 x축과 y축은 각각 발화율(Firing rate)과 특정 발화율을 생성하는 뉴런의 개수(number of neuron that produce a specific firing rate)를 로그 스케일로 나타낸다. - 채널 정규화를 사용할 경우, 많은 뉴런이 최대 80%의 발화율을 생성 - 반면, 계층 정규화를 사용할 경우 대부분의 뉴런은 0%에서 3.5% 사이의 발화율을 생성
=> 이는 채널 정규화가 매우 작은 활성화 값을 제거하고 더 높은 수준의 적절한 발화율을 생성함을 명확히 보여줌
channel-norm(채널 정규화)은 매우 작은 활성화 값을 적절히 정규화하여 낮은 발화율을 방지하며, 뉴런이 짧은 시간 내에 정보를 정확히 전달할 수 있도록 한다.
Signed neuron featuring imbalanced threshold(불균형 임계값을 갖는 Signed Neuron)
Limitation of leaky-ReLU implementation in SNNs(SNN에서 leaky-ReLU 구현의 한계)
# ReLU
- 양수 입력값만 유지하고 모든 음수 값은 버린다.
# Leaky ReLU
- 음수 값을 처리하기 위해 α를 포함
- 기존의 DNN-to-SNN 변환 방법은 통합-발화 뉴런을 ReLU로 변환하는 데 초점을 맞추었으며, 활성화 함수의 음수 영역에 대한 누설 계수(α)를 완전히 무시했다. - 하지만 음수 활성화는 Tiny YOLO에서 51% 이상을 차지한다. - SNN에서 음수 영역으로 제한된 활성화 함수를 확장하기 위해, 두 번째 Vth 항목(-1)을 추가
- 현재 다양한 DNN에서 leaky-ReLU가 활성화 함수로 사용 - SNN domain에서 이를 정확하고 효율적으로 구현하는 방법은 제안되지 않았다. - SNN에서 leaky-ReLU는 단순히 음수 활성화에 α를 곱하고 두 번째 Vth 항목(-1)을 추가하여 구현 - 그러나 이는 생물학적으로 타당하지 않다. (spike는 Discrete Signal)
The notion of imbalanced threshold(불균형 임계값 개념)
- 불균형 임계값(Imbalanced Threshold, IBT)을 갖는 signed 뉴런을 도입 - 이 뉴런은 양수 및 음수 활성화를 모두 해석할 수 있으며, leaky-ReLU의 음수 영역에서의 누설 계수(α)를 정확하고 효율적으로 보정 - 제안된 방법은 음수 영역에 대해 상이한 임계값 전압 Vth,neg 을 도입하여 spike의 Discrete한 특성을 유지
- signed neuron with IBT(불균형 임계값을 갖는 signed 뉴런의 기본 동작)는 아래와 같이 표현된다.
- 만약 α=0.1이라면, 양수 활성화에 대한 임계값 전압 Vth,pos는 1V - 음수 활성화에 대한 임계값 전압 Vth,neg는 -10V - 따라서, 음수 활성화에 대한 스파이크를 생성하려면 Vmem이 10배 더 통합(integrated)되어야 한다.
signed neuron은 흥분성(excitatory) 및 억제성(inhibitory) 뉴런의 구현을 가능하게 하며, 이는 생물학적으로 더 타당하다. 제안된 signed neuron은 leaky-ReLU를 정확히 구현 또한, 제안된 방법은 다양한 DNN 모델을 SNN으로 변환하여 응용 프로그램에서 사용할 수 있는 기회를 제공