본문으로 건너뛰기

Surrogate Gradient를 이해하기 위한 논문 지도

· 약 10분
p4r4d0xb0x
Rustacean, AI, OSS Enthusiast

Surrogate Gradient는 스파이킹 신경망, 즉 SNN을 현대 딥러닝의 학습 도구와 연결하는 우회로다. 순전파에서는 실제 스파이크를 쓰고, 역전파에서는 미분 가능한 가짜 기울기를 쓴다. 한 문장으로는 간단하지만, 이 아이디어를 제대로 이해하려면 세 가지 배경이 필요하다.

첫째, 스파이크 뉴런은 왜 불연속 동역학인가. 둘째, 역전파는 왜 미분 가능성을 요구하는가. 셋째, SNN은 Surrogate Gradient 이전에 어떤 방식으로 학습됐고 무엇이 막혔는가.

Dark glass terminal roadmap from spiking neuron models to backpropagation and surrogate gradients

먼저 읽을 목표 논문

목표 논문은 Neftci, Mostafa, Zenke의 Surrogate Gradient Learning in Spiking Neural Networks다. 이 글은 “새로운 단일 알고리즘 제안”이라기보다 SNN 학습이 마주치는 문제를 단계적으로 풀어 설명하는 리뷰에 가깝다. arXiv 초록도 같은 점을 강조한다. SNN은 binary하고 dynamical하기 때문에 학습이 어렵고, Surrogate Gradient는 이 문제를 유연하고 효율적으로 우회하는 방법이라는 것이다.

이 논문을 읽을 때 막히는 지점은 대체로 세 곳이다.

  1. spike function이 왜 역전파에서 죽은 gradient를 만드는가.
  2. BPTT가 시간축 신경망에서 무엇을 전파하는가.
  3. “진짜 미분”이 아닌 surrogate derivative를 써도 왜 학습이 되는가.

그래서 아래 로드맵은 논문을 연도순이 아니라 의존성 순서로 배치한다.

용어 해설: Surrogate Gradient

미분할 수 없는 스파이크 함수 대신, 역전파 때만 미분 가능한 대리 함수를 끼워 넣어 가중치를 업데이트하는 방법이다.

예: 실제 신호등은 빨강에서 초록으로 갑자기 바뀌지만, 운전 연습용 시뮬레이터에서는 그 경계 근처를 부드럽게 처리해 “조금 더 빨리 멈췄어야 한다”는 피드백을 줄 수 있게 만드는 것과 비슷하다.

1단계: 스파이크 뉴런은 함수가 아니라 동역학이다

Gerstner & Kistler, Spiking Neuron Models

SNN 입문서로 가장 먼저 잡기 좋은 축이다. Leaky Integrate-and-Fire, spike response model, refractory period, synaptic current 같은 기본 단어가 여기서 정리된다. Surrogate Gradient 논문에서 막전위 u(t)u(t), threshold, reset을 자연스럽게 읽으려면 이 계층이 필요하다.

핵심은 SNN 뉴런이 단순히 y=f(x)y = f(x)를 계산하는 노드가 아니라는 점이다. 뉴런은 시간에 따라 입력 전류를 누적하고, 막전위가 임계값을 넘으면 spike를 내보낸 뒤 상태를 reset한다. 이때 출력 spike는 대략 Heaviside step function처럼 행동한다.

Izhikevich, Simple Model of Spiking Neurons

Izhikevich 모델은 Hodgkin-Huxley류의 생물학적 세부성과 LIF류의 계산 효율 사이에서 좋은 균형점을 보여준다. 이 논문을 읽으면 “스파이크 모델은 하나가 아니라 목적에 따라 추상화 수준이 다르다”는 감각을 얻는다.

Surrogate Gradient 관점에서는 이 차이가 중요하다. 어떤 뉴런 모델을 쓰든 학습 문제의 병목은 비슷하다. spike가 발생하는 순간은 불연속이고, 그 순간을 포함한 계산 그래프는 일반적인 ANN처럼 매끈하지 않다.

2단계: 역전파는 연쇄 법칙을 계산 그래프로 밀어 넣는 기술이다

Rumelhart, Hinton, Williams, Learning representations by back-propagating errors

역전파의 고전이다. 이 논문을 읽어야 하는 이유는 “딥러닝이 왜 gradient를 필요로 하는가”를 가장 압축적으로 보여주기 때문이다. 각 층의 local derivative를 곱해서 loss가 weight에 미치는 영향을 계산한다. 즉, 미분 가능한 구성요소들이 chain rule로 연결되어야 한다.

SNN에서 문제는 바로 여기에 생긴다. spike 출력 s=H(uϑ)s = H(u - \vartheta)를 생각하면, threshold 밖에서는 derivative가 거의 0이고 threshold 지점에서는 정의되지 않는다. 대부분의 시간에는 gradient가 흐르지 않고, 중요한 순간에는 수학적으로 깨진다.

Werbos, Backpropagation through time

SNN은 시간축을 가진 recurrent dynamical system이다. 그래서 단순 backpropagation만으로는 부족하고, 시간으로 펼친 계산 그래프에 대해 BPTT를 이해해야 한다. Werbos의 BPTT 논문은 recurrent state가 시간에 따라 어떻게 credit assignment를 받는지 설명하는 배경이다.

Surrogate Gradient 논문에서 “temporal credit assignment”가 반복해서 등장하는 이유도 여기에 있다. spike 하나가 현재 loss에만 영향을 주는 것이 아니라, 이후 막전위와 미래 spike에도 영향을 준다.

Bengio et al., Estimating or Propagating Gradients Through Stochastic Neurons

이 논문은 SNN 논문은 아니지만 Surrogate Gradient를 이해하는 데 매우 중요하다. hard non-linearity나 stochastic binary neuron을 학습할 때 gradient를 어떻게 추정할 것인가를 다룬다. 여기서 straight-through estimator가 등장한다.

SNN의 Surrogate Gradient는 넓게 보면 이 계열의 아이디어다. forward에서는 hard decision을 유지하고, backward에서는 유용한 gradient 신호를 흘려보낸다. “정확한 미분”보다 “학습에 쓸 수 있는 신호”가 중요하다는 관점이 여기서 열린다.

용어 해설: Straight-through estimator

순전파에서는 딱딱한 이산 결정을 그대로 쓰고, 역전파에서는 그 결정이 마치 identity나 smooth function이었던 것처럼 gradient를 통과시키는 근사 기법이다.

예: 시험 점수는 합격과 불합격으로만 발표하지만, 공부 피드백은 “몇 점 부족했는지”까지 알려주는 방식과 비슷하다.

3단계: Surrogate Gradient 이전의 SNN 학습법을 알아야 한다

Bi & Poo, Spike-Timing-Dependent Plasticity

STDP는 SNN의 생물학적 학습 원리로 자주 등장한다. presynaptic spike와 postsynaptic spike의 시간 차이에 따라 synapse가 강화되거나 약화된다. 이 논문은 SNN이 왜 “local learning rule”과 함께 발전했는지를 보여준다.

하지만 deep supervised learning 관점에서는 한계도 분명하다. STDP는 지역적인 spike timing에는 자연스럽지만, 여러 층 뒤의 loss가 앞쪽 synapse에 어떤 책임을 물어야 하는지, 즉 global credit assignment를 직접 해결하지 않는다.

Bohte, Kok, La Poutré, SpikeProp

SpikeProp은 spike timing을 대상으로 error backpropagation을 시도한 초기 supervised SNN 논문이다. 이 논문은 Surrogate Gradient 이전에도 “스파이크 시간을 미분 가능한 대상으로 만들어 학습하자”는 시도가 있었다는 점을 보여준다.

다만 SpikeProp 계열은 spike timing 표현과 특정 조건에 강하게 의존한다. 현대적인 deep SNN에서 원하는 것은 더 일반적인 layer, convolution, recurrent 구조, event stream을 다루는 학습 규칙이다.

Diehl et al., Fast-classifying, high-accuracy spiking deep networks

ANN-to-SNN conversion 흐름을 대표하는 논문이다. 먼저 일반 ANN을 학습한 뒤, activation을 firing rate로 해석해 SNN으로 변환한다. 이 접근은 실용적이었다. 직접 SNN을 학습시키는 난제를 피하고, 이미 잘 학습되는 ANN의 이점을 가져올 수 있었기 때문이다.

그러나 conversion은 latency와 temporal coding의 장점을 제한할 수 있다. spike timing을 적극적으로 쓰기보다 rate approximation에 기대기 쉽고, 낮은 timestep에서 성능을 유지하기 어렵다. Surrogate Gradient가 중요한 이유는 SNN을 SNN답게 직접 학습시키는 길을 넓혔기 때문이다.

4단계: Surrogate Gradient 계열의 핵심 논문들

Zenke & Ganguli, SuperSpike

SuperSpike는 반드시 읽어야 한다. 이 논문은 deterministic integrate-and-fire neuron을 다층 네트워크에서 supervised learning으로 훈련하기 위해 surrogate gradient를 사용한다. arXiv 초록은 surrogate gradient approach로 voltage-based three-factor learning rule을 유도한다고 설명한다.

여기서 중요한 포인트는 “스파이크 함수를 부드럽게 바꿔서 forward도 바꾸자”가 아니라는 점이다. forward의 spike는 그대로 둔다. 대신 backward에서 threshold 근처에만 의미 있는 pseudo-derivative를 둔다. 이렇게 하면 spike timing pattern을 대상으로 하는 비선형 과제도 학습할 수 있다.

Shrestha & Orchard, SLAYER

SLAYER는 spike layer error reassignment라는 이름 그대로, layer와 time을 따라 error를 재배치하는 학습 프레임워크다. arXiv 초록에서 강조하듯 spike generation function의 non-differentiability와 temporal credit assignment를 함께 다룬다. 또한 GPU 구현과 convolutional SNN 실험을 제시해 Surrogate Gradient류 방법이 실제 deep SNN 훈련 도구로 확장될 수 있음을 보여준다.

Wu et al., Spatio-Temporal Backpropagation

STBP는 spatial domain과 temporal domain을 함께 전파한다는 관점이 뚜렷하다. Frontiers 초록은 spike activity의 non-differentiable 문제를 approximate derivative로 해결하고, layer-by-layer spatial domain과 timing-dependent temporal domain을 결합한다고 설명한다.

SNN을 단순히 “ANN에 spike를 붙인 것”이 아니라 시간축 신호처리 모델로 읽으려면 이 논문이 좋다.

Bellec et al., Long short-term memory and learning-to-learn in networks of spiking neurons

LSNN 논문은 recurrent SNN이 BPTT와 adaptation을 만나면 LSTM에 가까운 능력을 낼 수 있음을 보여준다. 초록은 RSNN의 성능이 ANN보다 약했던 이유 중 하나로 최적화 부재를 들고, BPTT 같은 강력한 최적화가 기능적 기여를 근사할 수 있다고 설명한다.

Surrogate Gradient를 “classification trick”으로만 보면 시야가 좁다. 이 논문을 읽으면 SNN 학습이 memory, adaptation, learning-to-learn으로 확장되는 길이 보인다.

5단계: 목표 리뷰로 돌아오기

이제 Neftci, Mostafa, Zenke의 리뷰로 돌아오면 구조가 훨씬 선명해진다.

  • spike는 binary하고 dynamical하므로 일반 ANN보다 학습이 어렵다.
  • local plasticity는 생물학적으로 자연스럽지만 deep supervised objective에는 부족하다.
  • conversion은 실용적이지만 spike timing과 low latency의 장점을 제한할 수 있다.
  • surrogate derivative는 forward의 event-driven spike를 보존하면서 backward의 gradient bottleneck을 뚫는다.

따라서 Surrogate Gradient의 핵심은 “뇌를 완전히 모사한다”가 아니다. 더 정확히는 event-driven SNN이라는 계산 모델을 gradient-based optimization 생태계로 끌어오는 인터페이스다.

읽는 순서 요약

순서논문읽는 이유
1Gerstner & Kistler, Spiking Neuron ModelsLIF, threshold, reset, spike train 언어 익히기
2Izhikevich, Simple Model of Spiking Neurons뉴런 모델의 추상화 수준 이해
3Rumelhart et al., Back-propagating errorsgradient learning의 원형 이해
4Werbos, Backpropagation through time시간축 credit assignment 이해
5Bengio et al., Stochastic neurons and hard non-linearitiesstraight-through estimator와 hard decision 학습 이해
6Bi & Poo, STDPlocal plasticity의 장점과 한계 이해
7Bohte et al., SpikeProp초기 supervised spike learning 시도 확인
8Diehl et al., ANN-to-SNN conversiondirect training 이전의 실용 경로 이해
9Zenke & Ganguli, SuperSpikesurrogate derivative의 핵심 구현 이해
10SLAYER, STBP, LSNNdeep, temporal, recurrent SNN 확장 이해
11Neftci et al., Surrogate Gradient Learning in SNNs전체 흐름을 리뷰로 통합

읽을 때 붙잡아야 할 질문

  1. 이 논문은 spike를 rate로 보는가, timing으로 보는가.
  2. 학습 신호는 local인가, global loss에서 오는가.
  3. 시간축 credit assignment를 명시적으로 처리하는가.
  4. forward의 spike는 그대로 두고 backward만 근사하는가.
  5. neuromorphic hardware의 event-driven 장점과 얼마나 잘 맞는가.

이 다섯 질문을 들고 읽으면 Surrogate Gradient는 단순한 “미분 꼼수”가 아니라, SNN을 실용 AI 모델로 훈련시키기 위한 설계 선택지로 보인다.

Sources