스파이킹 신경망

편집 역사 토론
계산물리 시뮬레이션 수치해석 마지막 수정: 2026-08-11 04:22:41

1. 개요[편집]

스파이킹 신경망
Spiking Neural Network (SNN)
통신 단위이산 사건(스파이크) — 시각만 있고 진폭은 없음
뉴런 모형LIF · EIF · AdEx · 이자케비치호지킨-헉슬리 모형
시냅스지수형 · 알파 함수 · 이중지수, 전류형/전도도형
대표 이론균형 흥분-억제 망, Brunel(2000) 상태 분류
적분 방식시간 구동(클록) · 이벤트 구동 · 하이브리드
학습STDP · 대리 경사 · ANN→SNN 변환
하드웨어Loihi · SpiNNaker · TrueNorth
시뮬레이터NEST · Brian2 · GeNN · NEURON

스파이킹 신경망(spiking neural network, SNN)은 뉴런들이 연속적인 실수 활성값이 아니라 시각만 갖는 이산 사건 — 스파이크 — 으로 통신하는 신경망 모형이다. 심층 학습의 인공 신경망이 층마다 실수 벡터를 곱셈-덧셈으로 흘려보내는 것과 달리, SNN에서 뉴런 ii 가 뉴런 jj 에게 보내는 것은 발화 시각의 열 {ti(1),ti(2),}\{t_i^{(1)}, t_i^{(2)}, \dots\} 뿐이다. 정보는 값이 아니라 타이밍과 빈도에 실린다.

이것은 취향의 문제가 아니라 활동전위의 전부-아니면-전무 성질을 그대로 받아들인 결과다. 실제 뉴런은 진폭에 정보를 실을 수 없으니 언제 몇 번 쏘느냐로만 말하고, SNN은 그 제약을 모형 안으로 가져온다. 대가로 얻는 것은 희소성이다. 대부분의 뉴런은 대부분의 시간에 아무것도 보내지 않고, 계산은 스파이크가 실제로 발생한 순간에만 일어난다. 뉴로모픽 하드웨어의 에너지 논거 전체가 이 한 문장 위에 서 있다.

문제는 그 대가로 잃는 것도 크다는 점이다. 스파이크는 Θ(VVth)\Theta(V - V_{\rm th}) 라는 계단 함수이므로 미분이 0 아니면 델타이고, 역전파를 그대로 태울 수가 없다. SNN 연구의 절반은 이 한 가지 사실과 싸운 기록이다.

2. 뉴런 모형 — 비용과 현실성의 축[편집]

망의 단위를 무엇으로 할지가 첫 번째 설계 결정이고, 이 결정이 시뮬레이션 규모를 세 자릿수 단위로 바꾼다. 상세는 적분-발화 모형 문서에 있고, 여기서는 망 관점의 선택 기준만 정리한다.

모형상태변수낼 수 있는 것망 규모의 현실적 상한
호지킨-헉슬리 모형4 (+공간이면 구획 모형)이온 채널·약물·스파이크 파형수천~수만
AdEx / 이자케비치2적응·버스팅·지연 발화수십만~수백만
LIF1스파이크 시각만수백만~수천만
발화율 모형집단당 1평균 활동 (스파이크 없음)사실상 무제한

피질 규모 시뮬레이션에서 LIF가 압도적으로 많이 쓰이는 이유는 단순하다. 스텝당 연산이 곱셈-덧셈 몇 개라 비용의 병목이 뉴런이 아니라 시냅스 전달로 옮겨가기 때문이다. 뉴런 하나가 시냅스 1만 개를 받는 피질 통계를 그대로 쓰면, 뉴런 상태 갱신은 전체 비용의 몇 %에 불과하고 나머지는 전부 스파이크를 목적지에 꽂아 넣는 일이다. HH로 올라가면 4변수 강성 방정식을 뉴런마다 풀어야 해서 이 균형이 뒤집히고, 그때부터는 뉴런 적분기가 병목이 된다.

이자케비치 모형이 “HH의 100분의 1 비용으로 20가지 발화 유형”이라는 광고 문구로 대규모 망에 널리 퍼진 것도 같은 맥락이다.1

3. 시냅스 — 스파이크를 전류로 바꾸기[편집]

스파이크는 델타 함수이지만 시냅스 후 세포가 받는 전류는 그렇지 않다. 표준 처리는 델타 열을 선형 필터에 통과시키는 것이다.

지수형(single exponential)이 가장 싸다. 도착 즉시 점프하고 지수 감쇠한다.

τsdsdt=s+kδ(ttkd),Isyn=Js(t)\tau_s \frac{ds}{dt} = -s + \sum_k \delta(t - t_k - d), \qquad I_{\rm syn} = J\,s(t)

알파 함수는 상승과 하강을 모두 갖는다. α(t)=(t/τ)et/τΘ(t)\alpha(t) = (t/\tau)\,e^{-t/\tau}\,\Theta(t) 이고, 이는 시간상수가 같은 지수 필터 두 개를 직렬로 건 것과 정확히 같다. 상승·하강 시간을 따로 주고 싶으면 이중지수 et/τdet/τr\propto e^{-t/\tau_d} - e^{-t/\tau_r} 를 쓴다. 실측 시간상수는 수용체마다 다르며 AMPA는 감쇠 수 ms, GABAA_{\rm A} 는 5~10 ms, NMDA는 100 ms 안팎으로 두 자릿수가 벌어진다. NMDA를 넣는 순간 망의 시간 스케일이 통째로 느려진다.

전류형(Isyn=JsI_{\rm syn} = J s)과 전도도형(Isyn=g(t)(VEsyn)I_{\rm syn} = g(t)(V - E_{\rm syn}))의 차이도 무시할 수 없다. 전도도형은 막전위에 따라 유효 입력이 달라지고 누설 컨덕턴스를 키워 실효 막 시간상수를 줄인다 — 활동이 높은 망에서 뉴런이 실제보다 빠르게 반응하는 이른바 고전도 상태가 여기서 나온다. 전류형은 이 되먹임이 없어 해석하기 쉽고, 그래서 이론 논문은 거의 전류형이다.

여기에 축삭 전달 지연 dd 가 붙는다. 구현상 지연은 공짜가 아니라 링 버퍼를 요구하지만, 뒤에서 볼 병렬화의 핵심 자원이기도 하다.

4. 균형 흥분-억제 망과 발화 상태[편집]

SNN 이론의 중심 문제는 이것이다. 왜 피질 뉴런은 아주 불규칙하게, 그러면서도 그렇게 느리게 발화하는가? 실측 피질 뉴런의 스파이크 간격은 거의 푸아송 과정 수준으로 불규칙하고(CVISI1\mathrm{CV}_{\rm ISI} \approx 1), 평균 발화율은 수 Hz에 불과하다. 그런데 뉴런 하나가 받는 흥분성 시냅스는 수천 개다. 전부 더하면 역치를 한참 넘겨 최대 속도로 규칙 발화해야 정상이다.

답은 균형(balance)이다. 흥분과 억제가 서로 거의 상쇄되어 평균 입력이 역치 아래에 머물고, 남는 것은 상쇄되지 않은 요동뿐이다. 그러면 뉴런은 평균에 밀려서가 아니라 우연히 큰 요동이 왔을 때 발화한다 — 발화 시각이 본질적으로 무작위가 되고, 발화율은 낮아진다. 이 상태를 요동 구동(fluctuation-driven) 발화라 부른다.

브뤼넬(Nicolas Brunel, 2000)은 희소하게 연결된 LIF 흥분-억제 망을 확산 근사로 풀어, 상태가 두 개의 파라미터만으로 분류된다는 것을 보였다. 억제의 상대 세기 g=JI/JEg = |J_I|/J_E 와 외부 입력 세기 νext/νthr\nu_{\rm ext}/\nu_{\rm thr} 다. 뉴런당 흥분 연결 CEC_E, 억제 연결 CI=γCEC_I = \gamma C_E 이면 평균 입력의 부호가 뒤집히는 지점이

gc=1/γg_c = 1/\gamma

이고, 흔히 쓰는 NI=NE/4N_I = N_E/4 구성에서는 gc=4g_c = 4 다. 여기를 넘어야 비로소 억제 우세, 즉 균형이 성립한다.2

상태개별 뉴런집단 활동대략적 위치
SR (동기·규칙)거의 시계처럼 규칙망 전체가 한 덩어리로 진동흥분 우세(g<gcg < g_c)
SI 빠름 (동기·불규칙)불규칙, 저율개별 발화율보다 훨씬 빠른 전역 진동억제 우세 + 강한 외부 입력
SI 느림불규칙하나 뭉침느린 진동균형 경계 근처
AI (비동기·불규칙)불규칙, CV ≈ 1, 수 Hz시간에 대해 거의 정상억제 우세 + 중간 외부 입력

AI 상태가 실측 피질과 가장 닮았다. 그리고 이 상태는 넓은 영역이 아니라 파라미터 공간의 특정 구역이다 — “적당히 만들면 저절로 나오는” 것이 아니라 억제를 충분히 세게 걸어야 나온다는 뜻이고, SNN을 처음 돌린 사람이 십중팔구 “전부 동시에 터지거나 전부 죽거나” 둘 중 하나를 보는 이유다.

흥분 1600 · 억제 400개 LIF 뉴런을 뉴런당 250개의 무작위 시냅스(지연 1.5 ms)로 이어 dt = 0.1 ms 로 적분하고 발화 시각을 그대로 래스터에 찍는다. 상대 억제 강도 g 를 3 에서 8 로 올리면 ISI 의 CV 가 0.05 → 1.46 으로 오르고 인구 발화율의 동기지수 S(=√Fano, 포아송이면 1)가 18.0 → 3.7 로 떨어진다. 외부 입력은 확산 근사 대신 스텝마다 포아송 스파이크 수를 직접 뽑는다.

이 그림의 해석적 뼈대는 적분-발화 모형 문서에 정리된 확산 근사다. 무작위 입력을 받는 LIF 집단은 확률미분방정식으로 기술되고, 그 밀도는 포커-플랑크 방정식을 따르며, 정상해에서 망 전체의 자기무모순 발화율이 나온다. 스파이크를 버리지 않고 평균장을 얻을 수 있는 거의 유일한 지점이라, 균형 망 이론이 전부 이 위에 서 있다. 다만 확산 근사는 시냅스 하나의 효과가 역치에 비해 작다는 가정을 쓰므로, 시냅스가 굵은 망에서는 그대로 믿으면 안 된다.

5. 시뮬레이션 전략 — 시간 구동과 이벤트 구동[편집]

시간 구동(clock-driven)은 고정 스텝 Δt\Delta t 로 모든 뉴런을 갱신하고 매 스텝 역치를 검사한다. 구현이 단순하고 벡터화·GPU 친화적이며, 어떤 뉴런 모형이든 받아 준다. 대가는 발화 시각이 격자에 반올림되는 O(Δt)O(\Delta t) 오차이고, 이 오차는 내부 ODE 적분기의 차수와 무관하다. 룽게-쿠타법 4차를 넣어도 망 정확도는 1차로 주저앉는다.

이벤트 구동(event-driven)은 격자를 버리고 우선순위 큐에서 다음 스파이크를 꺼내 그 시각으로 점프한다. 비용이 Δt\Delta t 가 아니라 스파이크 개수에만 비례하고 발화 시각이 기계 정밀도까지 정확해진다. 대신 역치 아래 흐름이 해석적으로 풀리고 다음 교차 시각을 계산할 수 있어야 하므로 LIF + 지수 시냅스 정도까지가 한계다. 일반적인 이벤트 구동 시뮬레이션 프레임워크가 그대로 쓰인다.

실무 시뮬레이터는 대개 하이브리드다. 뉴런 상태는 고정 스텝으로 밀되 선형 부분은 지수 전파자로 정확히 적분하고(지수 적분기의 신경판이다), 필요하면 역치 교차 시각을 보간해 격자 밖(off-grid) 스파이크 시각을 기록한다.

병렬화의 열쇠는 의외의 곳에 있다. 최소 시냅스 지연 dmind_{\min} 이다. 어떤 스파이크도 발생 후 dmind_{\min} 이 지나기 전에는 목적지에 영향을 못 주므로, 프로세스들은 dmind_{\min} 구간 동안 통신 없이 독립적으로 전진한 뒤 한 번만 스파이크를 교환하면 된다. 통신 횟수가 스텝 수가 아니라 T/dminT/d_{\min} 으로 줄고, 이것이 NEST 계열이 병렬 컴퓨팅 환경에서 수십억 시냅스를 돌릴 수 있는 이유다. 뒤집어 말하면 지연 0인 시냅스를 하나라도 넣으면 이 스킴이 통째로 무너진다.3

6. 학습 — 미분 불가능한 스파이크[편집]

스파이크 생성은 계단 함수라 도함수가 거의 모든 곳에서 0이고 역치에서만 델타다. 자동 미분에 그대로 태우면 경사가 전부 0으로 죽는다. 대응은 세 갈래다.

대리 경사(surrogate gradient). 순전파는 진짜 계단 함수를 쓰되 역전파에서만 도함수를 완만한 종 모양 함수로 바꿔치기한다. 예컨대 Θ(u)(1+βuVth)2\Theta'(u) \to \big(1 + \beta|u - V_{\rm th}|\big)^{-2} 같은 것. 시간축으로 펼친 망을 시간 역전파(BPTT)로 학습하므로 사실상 순환 신경망 학습이며, 경사 소실·폭발 문제도 그대로 물려받는다. 현재 SNN을 지도학습으로 훈련하는 가장 표준적인 방법이고, 대리 함수의 구체적 모양에는 결과가 놀랄 만큼 둔감하다는 것이 알려져 있다.

STDP(spike-timing-dependent plasticity). 시냅스 전후 스파이크의 시간차 Δt=tposttpre\Delta t = t_{\rm post} - t_{\rm pre} 에 따라 가중치를 바꾼다. 대략 Δt>0\Delta t > 0 이면 강화, Δt<0\Delta t < 0 이면 약화, 창의 폭은 수십 ms 규모의 지수. 완전히 국소적이라 전역 오차 신호가 필요 없고 하드웨어 구현이 쉽다. 문제는 목적함수가 없다는 것 — 무엇을 최적화하는지가 불분명해서 성능을 끌어올리려면 항상성 조절, 경쟁 항, 보상 변조 같은 장치를 덧붙여야 한다.

ANN→SNN 변환. 잘 학습된 ReLU 망을 가져와 활성값을 발화율로 해석하고 가중치·역치를 재조정한다. 정확도는 원본에 근접하지만, 발화율을 읽어내려면 추론에 수십~수백 스텝이 필요해서 지연 시간과 스파이크 수가 늘어난다. SNN을 쓰는 이유가 에너지였는데 스파이크를 많이 쏘면 그 이유가 사라진다는, 다소 웃픈 자기모순이 여기 있다. 최근 흐름은 첫 스파이크 시각으로 부호화하는 시간 부호화 쪽으로 변환 대상을 옮기는 것이다.

7. 뉴로모픽 하드웨어와 에너지 논거[편집]

논거는 명료하다. 폰 노이만 기계에서 심층 신경망 추론의 에너지는 곱셈이 아니라 메모리와 연산기 사이를 오가는 데이터 이동이 대부분 먹는다. 뉴로모픽 칩은 (1) 메모리를 연산 근처에 두어 이동을 줄이고, (2) 스파이크가 발생한 시냅스만 갱신하는 사건 구동이라 유휴 시 전력이 거의 0이며, (3) 곱셈-누산 대신 누산만 한다(스파이크에 진폭이 없으므로).

  • IBM TrueNorth(2014) — 100만 뉴런·2.56억 시냅스급, 전형 부하에서 수십 mW대. 온칩 학습은 없다.
  • Intel Loihi(2018) / Loihi 2(2021) — 칩당 13만 뉴런 규모에 온칩 가소성 엔진을 넣어 학습 규칙을 프로그램할 수 있게 한 것이 차별점.
  • SpiNNaker(맨체스터) — 전용 아날로그 회로 대신 다수의 ARM 코어 + 스파이크 패킷 라우터로 간다. 뉴런 모형을 소프트웨어로 자유롭게 바꿀 수 있는 대신 에너지 이득은 전용 칩보다 작다.

주의할 점은 벤치마크의 해석이다. 뉴로모픽이 크게 이기는 것은 입력이 희소하고 사건성이며 지연이 중요한 부하(이벤트 카메라, 상시 대기 센싱, 키워드 검출, 그래프 탐색 일부)다. 조밀한 큰 행렬 곱을 밀어붙이는 부하에서는 GPU가 여전히 유리하다. “SNN이 ANN보다 몇 배 에너지 효율적”이라는 문장은 부하·정밀도·스텝 수를 명시하지 않으면 사실상 아무 정보가 없다.4

8. 시뮬레이터 생태계[편집]

  • NEST — 점뉴런 대규모 망 전문. dmind_{\min} 기반 MPI 병렬화, 지수 전파자, off-grid 스파이크 옵션. 피질 회로 모형의 사실상 표준.
  • Brian2 — 뉴런·시냅스 방정식을 문자열로 쓰면 C++/Cython 코드를 생성한다. 모형을 자주 바꾸는 연구에 압도적으로 편하다.
  • GeNN — 같은 발상의 CUDA 백엔드. GPU 컴퓨팅 쪽으로 특화.
  • NEURON — 원래 구획 모형 도구지만 망 기능이 붙어, 형태를 갖춘 뉴런들의 망에는 이쪽이 정답이다.
  • snnTorch · Norse · SpikingJelly — PyTorch 위에 얹은 대리 경사 학습 프레임워크. 심층 학습 쪽에서 넘어온 사람들의 입구.

도구가 이렇게 갈라져 있는 것은 SNN이 두 개의 서로 다른 공동체가 쓰는 물건이기 때문이다. 한쪽은 뇌를 설명하려 하고(정확한 스파이크 시각과 생물학적 파라미터가 중요), 다른 한쪽은 저전력 추론기를 만들려 한다(정확도와 스파이크 수가 중요). 같은 방정식을 쓰지만 무엇이 오차인지에 대한 정의가 다르다.5

9. 관련 문서[편집]

10. Footnotes[편집]

  1. 다만 그 “100분의 1”은 스텝당 부동소수점 연산 수 기준이고, 실제 대규모 망에서는 시냅스 전달과 메모리 접근이 지배하므로 체감 이득이 훨씬 작다. 뉴런 모형을 바꿔서 전체 런타임이 반의 반으로 줄었다는 보고를 보면, 대개 그 코드는 애초에 시냅스 쪽이 잘 짜여 있지 않았던 것이다.

  2. gc=4g_c = 4 라는 숫자 자체는 NI=NE/4N_I = N_E/4 라는 관행적 구성에서 나온 것이지 자연법칙이 아니다. 억제 뉴런 비율을 바꾸면 임계값도 같이 움직인다. 논문에서 “g = 5로 두었다”를 보고 5를 마법의 수처럼 옮겨 쓰는 사례가 꾸준히 재생산되는데, 확인해야 할 것은 gγ>1g\gamma > 1 인지다.

  3. 그래서 대부분의 시뮬레이터는 최소 지연을 한 스텝(Δt\Delta t)으로 강제한다. “지연을 0으로 주고 싶은데 왜 안 되나요”의 답은 생물학이 아니라 병렬 스케줄러다. 전기적 시냅스(갭 정션)처럼 진짜로 즉시 결합해야 하는 요소는 별도의 반복 해법으로 따로 처리한다.

  4. 이 바닥의 벤치마크 논쟁은 난류 모델링 논문에서 “우리 모델이 실험과 잘 맞는다”를 주장할 때와 구조가 똑같다. 어느 케이스에서, 어떤 지표로, 무엇과 비교했는지를 빼면 그림은 언제나 이긴다.

  5. 두 공동체가 같은 학회에서 만나면 “생물학적 타당성”이라는 단어의 뜻이 서로 다르다는 것이 30분쯤 뒤에 밝혀진다. 한쪽에겐 실측 시간상수를 쓰는 것이고, 다른 쪽에겐 곱셈기를 안 쓰는 것이다.