SNN (Spiking Neural Networks)
SNN (Spiking Neural Networks)은 뇌과학에서 밝혀진 생물학적인 뇌의 뉴런이 출력을 결정하는 메커니즘을 모방하고 기존 신경망의 차이를 좁히는 것을 목표하고 있다.
SNN은 기존의 신경망과 근본적으로 다른 구조를 가지고 있는데, 모두가 서로 연결되어 있는 구조가 아닌, 듬성듬성 연결된 extraordinary network topology를 이루고 있다. 이는 생물학적으로 뇌와 비슷한 구조를 지니고 있다는 것을 알 수 있다.
SNN은 특정 시점에 발생하는 discrete spike를 통해서 동작한다. spike의 발생 여부는 다양한 생물학적인 프로세스를 나타내는 미분방정식에 의해서 결정된다. 여기서 membrane potential은 neuron이 특정한 potential에 도달하면 spike가 발생하고, 해당 neuron의 potential value가 초기화된다. 이때 사용되는 가장 일반적인 모델은 LIF 모델이다.
기존의 신경망은 연속적인 값을 출력했었지만, SNN은 0 또는 1의 binary value를 출력한다.
현재 SNN이 많이 사용되지 않고 있는 이유는 아직 학습 방법에 대한 자료가 충분하지 않다는 것이다. Hebbian learning과 STDP와 같은 생물학적 비지도학습 방법들이 있기는 하지만, 기존 네트워크보다 높은 성능을 보여주는 지도학습 방법은 아직까지 개발되지 않고 있다. 또한 아직 SNN는 정확한 스파이크의 시간 정보를 잃지 않은 상태로 경사하강법 (gradient descent)을 사용해서 학습시킬 수 없다. 따라서 실제 업무에 SNN을 적절하게 사용하려면 이를 해결할 수 있는 감독 학습 방법을 개발해야 한다. 이런 문제들을 모두 해결한 학습법을 새로 만든다는 것은 정말 어려운 일이지만, 가능해 진다면 사람의 두뇌가 실제로 어떻게 학습하는지를 모방할 수 있으며, 더 사실적인 생물학적 학습이 가능해진다.
SNN의 또 다른 문제점으로는 미분 방정식에 대한 시뮬레이션을 필요로 하기 때문에 많은 계산을 필요로 한다는 것이다. 일반적인 하드웨어로는 감당하기 힘들 만큼의 컴퓨팅 파워가 필요하다. 이에 대해서 IBM에서는 TrueNorth와 같은 신경 구조와 닮은 특수한 하드웨어를 통해 spike의 이산적이며, 해당 node와 연관되어 있는 node만 연결되어 있다는 특성을 잘 활용해서 신경을 시뮬레이션함으로써 이 문제를 해결하는 것을 목표로 하고 있다.
'AI-driven Methodology > ANN' 카테고리의 다른 글
[ANN] 순환 신경망 (Recurrent Neural Network, RNN) (1) (0) | 2021.12.14 |
---|---|
[ANN] Neural Networks (0) | 2021.12.10 |
[ANN] CNN (Convolutional Neural Network) (0) | 2021.12.10 |
[ANN] 퍼셉트론 (Perceptron) (0) | 2021.12.10 |
ANN이란? (0) | 2021.12.10 |