[SNN] Spiking Neural Network 기초

Ethan·2023년 3월 14일
0

SNN

목록 보기
1/5

본 블로그의 모든 글은 직접 공부하고 남기는 기록입니다.
잘못된 내용이나 오류가 있다면 언제든지 댓글 남겨주세요.


Spiking Neural Network

Spiking Neural Network, SNN은 생물의 신경망을 모방한 모델입니다. 생물의 뉴런은 일정 수준 이상의 자극이 들어오면 활성화되는데, SNN도 정해진 threshold 이상의 값에만 반응하여 Spike라고 부르는 출력이 생성됩니다. 그래서 다양한 실수값 형태로 정보가 전달되는 DNN과 달리 SNN에서는 이산적인 형태로 정보가 전달됩니다.

이미지 출처

위 그림의 첫 번째 그래프에서 시간의 흐름에 따라 3개의 spike가 발생한 것을 볼 수 있습니다. Spike는 SNN의 가장 기초적인 정보 전달 단위입니다. 나중에 살펴보겠지만, 스파이크가 많이 발생하면 뉴런 간의 연결이 강화되고 스파이크가 적게 발생하면 연결이 약화되는 식으로 작동합니다.

두 번째 그래프에서 파란색으로 표시된 부분은 post neuron의 활동전위(active potential)의 움직임을 표현한 것입니다. 뉴런은 자극(input)에 대해 조금씩 반응하다가 threshold uthu_{th} 값을 넘는 순간 spike가 발생하고, active potential은 0으로 초기화됩니다.

이미지 출처

DNN과 마찬가지로 SNN도 여러 개의 뉴런으로 네트워크를 구성할 수 있습니다. 위 이미지에서 오른쪽 그림을 보면 여러 개의 pre neuron에서 입력을 받아 spike를 생성합니다.

SNN의 장점

(1) 낮은 전력소모

뉴런 자체의 연산이라면 몰라도, SNN 네트워크 내부에서 레이어끼리의 정보 전달은 discrete하게 전달됩니다. 즉, DNN처럼 무지막지한 양의 행렬곱 연산을 할 필요가 없습니다. 정보가 discrete하게 전달된다는 것은 아날로그적으로 구현할 수 있다는 것을 의미합니다. 모스 부호를 생각해보면 이해하기 쉽습니다. 하지만 DNN은 아날로그적으로 구현하기가 어렵죠. 예를 들어 버튼을 0.3582974번 누르라는 명령을 도대체 어떻게 구현해야 할 지 생각해보면 이게 얼마나 어려운 문제인지 바로 이해할 수 있습니다.

전반적인 연산량이 적기 때문에 전력 소모 효율이 높습니다. 사람의 뇌는 20W의 전기로도 작동한다고 하죠? 또한 아날로그적으로 구현할 수 있으므로 회로 레벨에서 신경망을 만들 수 있습니다. 그래서 반도체 분야에서는 미리 연구를 하고 있다고 합니다. 실제로 인텔에서 개발한 반도체도 있습니다.

(2) Bio plausible

모양만 흉내낸 DNN과 달리, SNN은 작동 메커니즘까지 생물의 뉴런과 비슷합니다. 사람을 포함한 동물은 오차역전파식으로 학습하지 않습니다. 애초에 DNN은 컴퓨터공학에서 출발했지만 SNN은 생물학에서 출발했기 때문에 최근 급속도로 발전하고 있는 뇌과학과 상호 시너지를 일으킬 수 있습니다. 또한 생물 친화적(bio-plausible)이기 때문에 현실과 더 가까운 모델링이 가능하다는 장점도 있습니다.

SNN의 단점

(1) 범용적인 학습 방법의 부재

DNN 학습에 있어 핵심적인 요소는 오차역전파와 경사하강법입니다. STDP, ReSuMe, Dopamine-modulated STDP 등 고유한 학습방법론이 존재하지만, 오차역전파와 경사하강법의 조합만큼 효과적이고 범용적으로 적용할 수 있는 학습방법론은 없습니다. 그래서 막대한 학습 비용이 필요함에도 불구하고 여전히 DNN이 훨씬 널리 쓰이고 있습니다.


참고문헌

  1. [SNN Basic Tutorial 1] Spiking Neural Network란
profile
재미있게 살고 싶은 대학원생

0개의 댓글