이번에는 NIPS 2020 Poster session에 발표된 논문인 AdaShare: Learning What To Share For Efficient Deep Multi-Task Learning 을 리뷰하려고 합니다. 논문은 링크를 참조해주세요

Background and Introduction

우선 Mutli-task learning이라는 게 어떤 것일까요?
Multi-task learning
 task가 여러 개라는 것인데 큰 dataset $D$ 아래에 다른 dataset $D_{i}$로 구분된 $D=\{D_1, ... , D_i \}$ 를 사용하는 learning method를 말합니다.

 

Multi-task learning의 종류에는 크게 두 가지 기준인 feature method으로 분류합니다.
feature
로 구분하는 경우
- Homogeneous-feature MTL: 
다른 dataset에서 동일 feature space를 갖는 것(동물만 분류)
- Heterogeneous-feature MTL: 
다른 dataset에서 다른 feature space를 갖는 것(동물, 기계 분류)

Method로 구분하는 경우
- Homogeneous MTL: 
다른 dataset이지만 동일 method를 다루는 경우(only classification, only regression)
- Heterogeneous MTL: 
다른 dataset에서 다른 method를 다루는 경우(Depth Prediction Semantic Segmentation을 다루는 경우)

 

보통의 Multi-task learning(MTL)에서는 Homogeneous MTL MTL이라고 부르지만, 이 논문에서는 Heterogeneous MTL을 다루고 있습니다.

 

다른 Learning Method와 비교할 때 MTL과 다른 점은 다음과 같습니다.

[1] A survery on Multi-task learning(IEEE Transaction KDE,2021)

 

Transfer Learning source task를 통해 학습한 후, Knowledge transfer를 통해 target task를 학습시키지만, MTL source task target task가 동일하게 knowledge를 공유하여 성능을 높이는데 그 목적이 있습니다.

Multi-label learning과 같은 경우, 노트북을 관찰할 때, 키보드와 화면이라는 label을 동시에 분류해내는 것을 의미하지만 MTL task에 맞게 노트북만을 혹은 키보드만을 분류해냅니다.

Multi-view learning과 같은 경우는 각각의 특징 앞서 말한 키보드와 화면이라는 관점을 가지고 이를 조합하여 data로 인지하여 노트북으로 분류해내는 것을 말하지만, MTL은 노트북을 보면 각각의 관점을 조합하는 것이 아니라 그냥 단순히 노트북 하나만을 분류해내는 것을 말합니다.

 

Single-task learning과 비교할 때, 장점은 dataset이 늘고 related data를 사용하는 경우, feature extraction이 잘되기 때문에 training time을 줄일 수도 있고, overfitting을 피하기 용이하여 일반화 성능이 높게 나타납니다.

 

하지만, Multi-task learning에서도 아직 해결해야하는 난제가 있는데요. 바로 Negative Transfer 현상입니다. 사람이 보기에는 related data일지라도 neural network입장에서는 아닌 것입니다. 그래서 각 task가 서로의 성능향상에 악영향을 끼치는 경우도 상당수 존재합니다. 이러한 점들을 해결하기 위해서 knowledge sharing을 적재적소에 하는 것이 중요한데, 대부분의 논문들은 다음의 3가지 관점에서 이를 관찰합니다.

-When: 학습 이전,  iteration,  epoch부터 sharing할지
-What: parameter(weight, bias), feature, and instance
-How: 
어떻게 (selection of what to share, related feature analysis)

이 논문에서는 어떤 parameter를 어디서 share할지에 관한 논문입니다.

 

Parameter Sharing Method
 Sharing Method
는 크게 weight를 모두 공유하는 hard-parameter sharing feature weight의 정보를 공유(그대로 복사x)하는 soft-parameter sharing이 존재합니다.
- Hard-parameter sharing: Shared feature network + task-specific network
로 구성이 되며, task가 서로 많이 다를 경우, shared feature network의 깊이가 얕아져서 다른 task-specific하게 동작하게 합니다. Negative Transfer 현상이 빈번히 발생하며, 해당 network는 그 task끼리의 조합에만 유효한 경우가 대부분입니다. (Adhoc network)

[2] An Overview of Multi-Task Learning in Deep Neural Networks(arXiv,2017)


- Soft-parameter sharing: 
주로 feature sharing을 하며, task 별로 network를 각각 가지기 때문에 메모리를 많이 먹고, 적절한 network를 구성하였을 때, task별로 capacity가 달라 overfitting이 특정 task에만 일어나는 단점이 존재하기도 한다. 다음 사진은 CVPR 2016년에 게재된 Cross Stitch Network activation map task-specific network에서 공유하여 학습을 진행하는 방식이다.

[3] Cross-stitch Networks for Multi-task Learning(CVPR 2016)

 

이를 넘어서 parameter sharing하는 node를 선택하여 학습을 진행하는 논문이 2019 ICCV에 게재된 Deep Elastic Network입니다. Deep Elastic Network에서는 별도의 task-specific한 노드를 고르는 selector network RL로서 가장 좋은 성능을 내는 node를 골라 동작할 수 있도록 하였습니다. Model distribution에서 network를 골라 행동하게 하는 것을 의미합니다. Pipeline은 다음 사진과 같습니다.

[4] Deep Elastic Network with Model Selection for Multi-task Learning (ICCV 2019)

 

, 이런 Network search하는 과정을 Neural Architecture Search(NAS)라고 부릅니다. 이는 AutoML 즉 자동으로 적합하게 학습하는 방법론중의 하나입니다. NAS를 하는 방법에는 두 가지가 존재하는데 첫번째는 Reinforcement Learning을 통해서 구조를 search하는 방식입니다. Action으로 적합한 architecture를 생성하고, network performance reward로 부여하여 finetuning을 진행합니다. 두번째로는 Evolutionary Computation을 활용합니다. Genetic Algorithm을 통해서 network들의 집합을 골라 거기서 진화하는 방식(layer생성이나 hyperparameter tuning)을 택하고, skip connection등을 생성하는 것이 있습니다. 이 논문에서는 Gradient-based optimization을 통해 최적의 architecture를 찾을 수 있다고 말을 하고 있습니다. (Genetic Algorithm에서도 optimization을 사용하지만, 이 논문에서는 해당 사항에 대해 언급하고 있지는 않습니다)

 

기존까지는 Task-specific Knowledge sharing하는 part manually하게 구성해야 했고, 그랬기에 항상 task 종류에 맞는 network를 주로 제작하여 다른 task 조합에서는 해당 network가 제대로 동작하지 못하는 현상이 있었습니다. 그래서 이 논문에서는 다음과 같이 말하고 있습니다.

Multi-task learning을 위해서 task share할지 task-specific layer를 결정할지 자동으로 선택하고 싶고, 이를 통해서 Negative Transfer할 때는 해당 layer skip하고, Positive Transfer일 때는 layer share하여 성능을 높일 수 있지 않을까라고 제시하고 있습니다.

[5] AdaShare Method

 

Proposed Method

논문에서는 Residual Network(ResNet, ResNeXt, DenseNet)등의 shortcut connection의 성공에 주목하여, feature extraction할 때, 특정 task skip하여 negative transfer를 막을 수 있지않을까 라는 idea를 주목하였습니다. Shortcut connection여부를 residual block마다 결정하면 task-specific block knowledge share block을 나눌 수 있다고 생각하였습니다.

해당 block $l$ task $k$에서 select-or-skip random variable  $u_{l,k}=[0,1]$라고 하고, policy를 ${U}$라고 할 때, ${n(U)}$가 $2^{N\times K}$로 기하급수적으로 늘어납니다. 그렇기 때문에 Reinforcement Learning으로는 해결하기 어려울 것이라 여겨졌고, 또한 discrete하기에 non-differentiable하여 gradient-based optimization하기 어렵다고 여겨졌습니다. 하지만 binary r.v.$u_{l,k}$ distribution vector $\pi_{l,k}$ Gumbel Softmax Sampling을 통해서 differentiable하게 만들었습니다.

 

Gumbel Softmax Sampling VAE(Variational AutoEncoder)에서 generative model output $x$를 생성할 때의 sampling 또한 미분이 불가능하여 sampling대신에 sampling function을 구현하여 back propagation을 하게한 Reparameterization Trick중 한 방법입니다.
Reparameterization Trick
 Stochastic  Node Stochastic input Deterministic input으로 구별하여 이 조합을 function화 하여 deterministic node로 흐르게 하여 back propagation을 가능하게 하는 것을 말합니다.

 

Gumbel-Softmax Sampling Gumbel-Max Sampling에서 argmax를 통해 sampling하는 것을 softmax로 바꾸어 differentiable하게 만든 것을 의미하며, Gumbel-Max Sampling에서 Gumbel distribution$\pi_{l,k}$ term에 더해서 Sampling하게되면 gradient가 흐를 수 있게됩니다. 이를 통해서 를 결정하는 logit $a_{l,k}$ update할 수 있게되는 것입니다.

 

이러한 update를 위해 사용하는 Loss term은 다음과 같습니다.

$l_k$는 각 task가 갖는 고유의 loss term입니다. (classification의 경우, cross entropy)

Sparsity Regularization term$L_{sparsity}$ logit $a_{l,k}$ minimize하여 model compact하게 해주는 효과를 일으킵니다.

Sharing loss term$a_{l,k}$에서 같은 $l$간의 격차를 줄여 모두 task-specific block만 남지 않게함이고, 맨 뒤 block부터 가중치를 낮게 부여하여 앞으로 갈수록 높게 부여하는 형식으로 앞 block은 최대한 sharing을 하고,  block에서 task-specific하게 구성되도록 하였습니다.

 

이러한 Model의 전체적인 pipeline은 다음과 같습니다.

 

1.     맨처음부터 distribution parameter($\pi_{l,k}$)를 학습시키면 학습이 잘 되지 않으므로 curriculum learning을 도입하여 hard-parameter sharing을 통해서 network를 먼저 학습 시킵니다.

2.     이후 매 $l$ epoch에서 끝에서부터 $l$ block까지의 distribution parameter를 학습시킵니다. (Curriculum Learning)

3.     모든 policy distribution parameter train되면, select-or-skip decision을 하여 finetuning합니다.

Experiments

기존까지의 state-of-art method basline과 비교한 실험입니다. Single-task는 동일 network에 한개의 task learning을 각각 진행하여 표에 기재하였고, multi-task의 경우 마지막 fully-connected layer만 분리시켜서 사용하였습니다. ResNet18을 사용하여 NYU를 학습한 결과이며, Segmentation Surface Normal Prediction의 두 가지 task에서 사용한 결과입니다.

현재 sota MTAN method와 비교할 때 엎치락 뒤치락하는 성능을 보여줍니다.

ResNet18 Policy Visualization

위 사진은 Task logit $a_{l,k}$ graph를 통해서 sampling하였을 때 실제 select-of-skip connection들입니다. 대체로 logit이 동일 image를 사용하기에 낮지는 않지만, surface normal prediction segmentation은 물체 구분과 표면각을 구분하는 다른 task여서 비교적 낮게 나오는 것을 뒤에 나올 실험을 통해 확인할 수 있습니다.

다른 dataset Tiny-Taskomony에서 ResNet34를 사용하여 실험한 내용입니다. 다음은 dataset ground truth의 예시입니다.  task의 서로 다른 feature 추출을 통해서 대략적인 task related가 되어있는지 여부를 추측해볼 수 있습니다.

Tiny-Taskomony Dataset tasks

5가지 task Segmentation, Surface Normal Prediction, Depth Prediction, Key-point Detection, Edge Detection에 대해서 비교 실험을 하였고 결과는 다음과 같습니다.

아래의 policy visualization을 통해서 depth prediction이 다른 task와 달리 상대적으로 unrelated되어있음을 추측해볼 수 있고, 위의 사진결과를 봐도 depth prediction 성능이 다른 task와 비교할 때, 상대적으로 낮게 나오는 것을 확인할 수 있습니다.

ResNet34 Policy Visualization

 

다른 실험은 논문에서 제시한 policy strategy가 있을 때와 없을 때 사이의 성능 차를 비교한 실험입니다.
1. Stochastic Depth(ECCV,2016) 
방식과의 비교 (선택적 layer drop방식이므로 이와 비교)
2. Random Policy (AdaShare
논문에서 제시한 Sampling이 합리적인지 비교)
3. 
각각의 sparsity sharing loss term의 중요성 검증 실험
4. NAS
기반 MTL sota논문인 Deep Elastic Network(ICCV,2019)방식을 도입하여 policy를 결정하는 것과의 비교와 RL(REINFORCE algorithm)을 사용하여 search했을 때와의 비교

 

Conclusion

MTL보다는 Neural Architecture Search(NAS) 논문이지만, negative transfer 현상을 회피하고 positive transfer를 보강하여 MTL에 있어서 network parameter 수를 유지하면서 성능을 끌어올리고자 노력한 논문입니다. RL을 적용할 경우, search space가 커지는 현상을 Gumbel Softmax Sampling을 통해서 optimization problem으로 변환하였고, 이를 통해 computational resource를 절약할 수 있는 방법을 제시한 연구라고 할 수 있겠습니다.

 

자세한 내용은 full paper를 참고하거나 댓글로 남겨주세요.

감사합니다.

 

Minsoo Kang

 

이번 글에서는 CVPR 2021에 oral로 선정된 “Knowledge Evolution in Neural Networks”란 논문을 소개합니다. 본 논문은 적은 수의 데이터 셋에서 모델을 효과적으로 학습시킬 수 있는 Knowledge evolution이라는 학습 방법론을 제안합니다. 

 

History

 본 논문은 “The lottery ticket hypothesis: Finding sparse, trainable neural networks” 논문을 이론 배경으로 가집니다. The Lottery ticket hypothesis는 dense network에 적은 iteration 수에서 자신보다 높은 성능을 가지지만 파라미터 수는 더 적은 subnetwork가 존재한다 라는 것입니다. 

 

이러한 가설에 맞는 subnetwork(winning ticket)를 찾기 위해 다음과 같은 과정을 거칩니다.

  1.  Dense network를 random weight($\theta_0$)로 초기화
  2.  j iteration만큼 weight ($\theta_j$)를 학습.
  3.  $\theta_j$에 pruning을 진행하고 mask를 생성.
  4.  3에서 생성한 Mask를 사용하여 생성한 sparse network를 $\theta_0$으로 초기화하여 winning ticket 생성.

이렇게 찾은 winning ticket을 학습시켜 기존의 dense network보다 적은 iteration에서 적은 parameter 수로 높은 성능을 가진 network를 얻게 됩니다. 

 

Proposed Procedure

 

1. Knowledge Evolution Training Approach

Knowledge evolution은 다음과 같은 방식으로 진행됩니다.

 

  1.  먼저 개념적으로 deep network($N$)를 2개의 배타적인 hypothesis(sub-network): fit-hypothesis($H^\triangle$), reset-hypothesis($H^\triangledown$)로 나누는 마스크($M$)를 생성합니다. ($H^\triangle = MN$, $H^\triangledown=(1-M)N$)
  2.  $N$을 $e$ epochs 동안 학습하여 $N_1$을 생성합니다. (첫 번째 generation 과정)
  3.  다음 generation에서의 더 나은 네트워크 학습을 위해, $N$을 $H^\triangle _1$로 re-initialize 하고 $H^\triangledown$부분은 random initialize 합니다. (re-initialize 과정)
  4.  3 과정에서 reinitialize 된 $N$을 $e$ epochs동안 다시 학습하여 $N_2$를 생성합니다. (re-train 과정)
  5.  3 과정(re-initialize)과 4 과정(re-train)을 $g$ generation만큼 반복하여 $N_g$를 생성합니다.

 

2. Split-Networks

 KE에선 $N$을 $H^\triangle$와 $H^\triangledown$을 나누는 과정이 필요합니다. 이때 저자는 대부분의 네트워크에 KE를 적용할 수 있는 $weight-level$ splitting(WELS)나 CNN에 특화되어 KE를 통해 추론 비용 또한 낮출 수 있는 $kernel-local$  $convolutional-aware$ splitting(KELS)를 사용합니다.

  1.  WELS
    • 각각의 layer($l$)의 가중치($W_l$)를 주어진 split-rate($s_r$, $0 < s_r < 1$) 에 따라 마스크($M_l$)를 랜덤 하게 생성합니다.
    • $sum(M_l) = s_r × |W_l|$
  2.  KELS
    • convolution filter ($F_l$, $F_l ∈ R^{C_o×K×K×C_i}$)를 앞에서부터 $s_r$만큼 $C_o$와 $C_i$을 포함하도록 마스크를 생성합니다.
    • The first $\left \lceil s_r×C_i  \right \rceil$ kernel inside the first $\left \lceil s_r×C_o \right \rceil$ filters.

Toy residual network에서의 KELS를 통한 fit/reset-hypothesis 표현

 

 

3. Knowledge Evolution Intuitions

 KE의 이해를 위해 2가지 직관을 보여줍니다. 이때 KELS는 필수적이지 않으며 아래의 figure들에서는 시각적 표현을 위해 KELS를 사용하여 보여주었습니다.

 

3.1 Dropout Intuition

Dropout에서는 뉴런들을 랜덤 하게 껐다 키는 과정을 통해 각 뉴런들이 독립적인 representation을 생성해내게 합니다. KE는 각 generation이 시작될 때 reset-hypothesis를 랜덤 하게 initialize 하는 과정을 통하여 fit-hypothesis와 reset-hypothesis를 각각 독립적인 representation을 학습하게 합니다. 

 

3.2 Residual Network Intuition

ResNet에서는 identity shortcut과 residual subnetwork로 네트워크를 나누고 residual subnetwork의 activation을 zero-mapping시킴으로 regularization의 효과를 얻을 수 있습니다. 첫 generation 이후 수렴에 가까운 fit-hypothesis로 인해 이후의 generation이 진행될 때 reset-hypothesys 또한 zero-mapping이 됩니다.

 

 

 

 아래의 실험 결과를 보면 generation이 진행될수록 fit-hypothesis는 전체 network와 유사한 성능으로 수렴하고 reset-hypothesis는 zero-mapping이 되는 것을 확인할 수 있습니다.

 

Conclusion

 본 논문은 상대적으로 적은 데이터로 딥 뉴럴넷을 학습할 때 효과적인 방법인  knowledge evolution을 제안하였습니다. KE는 랜덤한 subnetwork(fit-hypothesis)를 선정하고 generation이 진행됨에 따라 이 부분의 knowledge를 진화시켜나갑니다. 또한 kernel-level convolution-aware splitting(KELS) 기술과 KE를 함께 적용하였을 때 추론 비용을 감소시키는 slim한 네트워크를 학습시킬 수 있고, weight-level splitting(WELS) 기술과 KE를 함께 적용한다면 다양한 네트워크 아키텍처에 적용 가능합니다. 

 

이상으로 논문 리뷰를 마치겠습니다.

자세한 내용 paper를 참고해주세요.

 

감사합니다.

Dongjin Kim

이번 글에서는 NeurIPS에 Spotlight로 선정된 “Temporal Spike Sequence Learning via Backpropagation for Deep Spiking Neural Networks” 논문을 소개해드리려고 합니다.

해당 논문의 자세한 내용은 링크와 github를 참고해주세요

Introduction

- Spiking Neural Network(SNN)은 뇌의 행동을 모방하여 동작할 수 있는 모델로 기존 DNN(Deep Neural Network)와 달리 Time data 또한 영향을 끼치는 모델입니다. 최근 DNN의 많은 에너지 사용 대신 효율적으로 사용하는 뇌를 모방하여 전성비를 올리기 위한 목적으로 Neuronmorphic chip과 더불어 SNN이 개발되고 있습니다.

- DNN의 학습 방식은 gradient descent 기반의 back propagation이 대세이지만, SNN에서는 local 정보를 기반으로 하는 STDP와 SRDP방식과 DNN의 backpropagation방식을 모방한 방식으로 나뉘어 있습니다.

- SRDP(Spike-Rate Dependency Plasticity)의 경우, presynaptic neuron과 postsynaptic neuron사이의 activation 빈도가 높을 때, 서로의 connection을 강화하는 방향으로 학습하며, STDP의(Spike-Time Dependency Plasticity)는 presynaptic neuron과 postsynaptic neuron 순으로 activation time의 사이 간격이 좁을수록 connection을 강화하고 postsynaptic neuron의 activation이후 presynaptic neuron의 activation이 일어나면 connection을 약화하는 방식으로 진행됩니다.

- 이 논문은 STDP의 connection 강화 측면과 DNN의 Back Propagation(BP) method를 활용하여 학습을 효율적으로 진행할 수 있는 방법론을 제시하였습니다.

Background

- SNN을 적용하기 위한 Hardware(Neuromorphic Chip)의 발전은 빨랐지만, 기존 DNN과 비교할 때 성능이 낮았고, 5개 layer를 넘어가면 저조한 성능을 보이는 등 그를 적용하기 위한 모델의 발전은 더뎌왔습니다.

- 기존의 연구들은 DNN을 학습시킨 후, SNN을 변환하는 시도가 있어왔고, Spike를 통해 다음 neuron에 정보를 전달하는 하는 SNN의 Discrete property를 back propagation에 사용하기 위해 continuous하게 smoothing하여 approximate하는 모습을 보여왔습니다.

- 하지만 이러한 시도들은 All-or-None characteristic을 가진 neuron의 특징 상, smoothing은 target과 precision간의 loss 연산에 있어서 낮은 accuracy를 보였습니다. 또한, approximation한 후의 정확한 spike timing을 알기 위해서 precision에서 많은 time을 요구하여 latency가 발생하는 단점이 있었습니다.

Proposed Model

- Discrete LIF(Leaky Integrated-and-Fire) Model 기반의 모델을 사용하여 Discontinuity하여 non-differentiable을 해결하고자 하였습니다. 기존의 LIF Model이 갖는 모델의 공식은 다음과 같습니다. Spike s에 대한 공식이며, firing하는 시간 t에 대해서 delta함수를 가져 discrete하게 나타남을 알 수 있습니다.

- 또한, postsynaptic current(PSC) a_j(t)에 대해서 incoming spike s_j(t) 는 다음과 같은 1차 미분 관계식을 갖습니다. (Spike response: ϵ , Reset kernel: v )

- 즉, presynaptic neuron j에서 postsynaptic neuron i로 PSC가 전달되어 weight에 의해 가중합이 된 것이 postsynaptic neuron의 membrane voltage u_i 가 변화함을 알 수 있습니다. 이렇게 변화한 voltage는 threshold Vth를 넘으면 spike s_i 가 발생하며 뇌에서 일어나는 탈분극, 재분극, 분극 상태처럼 동작하게 됩니다.

- 위 식을 discrete domain으로 옮기면 LIF model은 다음 식처럼 나타낼 수 있습니다.

TSSL-BP의 Pipeline

- 이렇게 제안된 model을 바탕으로 back propagation을 spatiotemporal domain 기반으로 discontinuity를 갖는 spike를 계산할 수 있습니다. 각 layer의 weight는 Loss기반으로 연산 가능하므로 DNN에서의 back propagation과 유사하게 chain rule을 적용하여 풀이할 수 있습니다.

- 이 식을 hidden layer에서 풀면, 식에 대해서 Loss값의 미분은 아래와 같은 layer l 에 대한 식으로 연결됩니다.

- 하지만, 모든 시간에 대해서 계산한다면 deep SNN에서 time step수만큼의 모든 neural network를 계산해야 하므로 기존 DNN보다 복잡도가 time step수 배만큼 늘어나게 됩니다. 이러한 상황을 억제하기 위해서 논문에서는 2가지의 dependency로 나누어 back propagation method를 제시합니다.

Inter-neuron dependency 와 Intra-neuron dependency 설명

  1. Inter-Neuron Dependency

A. Postsynaptic Current의 증가는 Presynaptic neuron의 발화로부터 오기 때문에, 발화시점의 전압 변화량은 PSC의 변화에 영향을 준다는 의미이며, Postsynaptic Current를 조정하는 weight는 발화 시점 이후만 연산하면 된다는 의미입니다. 아래 식처럼 발화 시점 t_m 을 기점으로 시간의 변화가 t_k시점의 current변화에 영향을 미치기 때문에 이외의 시간을 중심으로 미분하여 구할 필요가 없다는 의미이기도 합니다.

  1. Intra-Neuron Dependency

A. Intra-Neuron은 자신의 발화에 관한 것으로 자기 자신이 fire(발화)를 했을 때, 이후 몇 step동안엔 fire를 reset kernel에 의해 못하게 된다. 이러한 시간 동안에는 연산의 필요성이 없으므로 이를 배제하고 연산하면 된다는 것이다. 예를 들어 t__m 시간에 fire를 하고, reset 시간 도중에 fire가 불가능하므로 그동안은 연산에서 제외하여 불필요한 연산을 줄일 수 있습니다. η_i(t) 가 이러한 membrane potential의 reset에 관여하며 다음과 같은 식에서 전압의 변화에 영향력을 행사합니다.

모델을 기준으로 식을 풀어쓰면 Intra-Neuron Dependency는 다음과 같습니다.

     3. Dependency Combination

- 이러한 Dependency를 결합하여 chain rule에 사용되는 term을 구하여 쓸모없는 구간에서 기억하고 연산하는 것을 막으므로 시간을 절약할 수 있다고 저자는 말하고 있습니다. 아래의 식처럼 Firing 여부에 따라 해당 term이 연산되며, back propagation이 chain rule에 의해서 진행되는지 되지 않는지 확인할 수 있게 됩니다.

Experiment

- 실험의 결과는 다음과 같이 타 SNN의 BP와 비교할 때, 앞서 논문에서 언급한 것처럼 이전 논문들의 긴 time step을 극복하고 짧은 time step 내로 높은 accuracy를 달성하여 precision delay를 줄일 수 있는 결과를 확인할 수 있었습니다. 이를 통해 학습 시간도 단축하여 SNN의 등장 목적을 달성할 수 있을 것이라고 말하고 있습니다.

- SNN의 특징인 일부만 Firing을 실행하여 energy efficiency를 달성하는 데에 있어서 얼마나 잘 달성했는지 CIFAR10과 N-MNIST에 대해 비교하였으며, 이를 현재 DNN에서의 pruning을 연구하는 사람들의 관점에서 바라봤을 때, 많은 node를 pruning하여 sparsity를 달성하여 mobile환경에서도 사용시에 어떤 관점으로 바라봐야 할지에 대한 다음의 실험 결과도 확인할 수 있었습니다.

Conclusion

- 본 논문에서 제안된 방법은 SNN에서 DNN의 Back Propagation Method를 어떻게 끌고 와서 학습시킬지에 대한 내용으로 실제 SNN의 동작방식과 달라 SNN에서 학습시키기 어려운 단점이 있습니다. 하지만, 학습 후, 적절하게 SNN으로 옮겼을 때, 기존의 연구들과 달리 dependency를 두개로 나누어 back propagation시에 적은 time step내로 학습시키는 방법과 feed forward에서 prediction하는 방법에 대해서 제시하고 있습니다. Dependency를 통해 실제 뇌에서 일어나는 탈분극과 재분극의 과정에서 Non-activate되는 시점을 잘라냄으로써 time step의 수를 줄여낸 연구라고 할 수 있습니다.

 

자세한 내용은 full paper를 참고하거나 댓글로 남겨주세요.

 

감사합니다.

 

Minsoo Kang