ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Dynamic network model] #1 Leaky Integrate and Fire Model
    카테고리 없음 2025. 1. 26. 21:29

    Leaky Integrate and Fire Model

    생물학적 뉴런을 모델링한 Leaky Integrate and Fire Model(LIF model)에 대해 설명하고자 한다.

     

    1) 개념

     

    1-1. 뉴런의 전기적 특성과 전기회로의 유사성

     

    1. Pre synaptic neuron에서 오는 input을 dendrites에서 입력 받고, soma 부분에서 integrated된다. 그리고 axon을 통해 output을 출력한다. 시냅스로부터 입력받은 전류는 외부 입력 전류(I(t))로 표현할 수 있다.

    2. 뉴런 막(membrane)는 전하의 이동을 조절하고, 전하를 축적하는 역할을 한다. 이는 커페시터 역할(C)을 한다.

    3. 뉴런 막의 이온 채널들은 막 전위가 평형 상태가 되도록 유도한다. 열려있는 이온 채널들을 통해 전류가 흐르게 된다. 이러한 이온 채널은 전류를 누출시키는 역할을 한다.(Leaky)

     

     

    1-2. 회로로 표현

    저항 - membrane에서 이온이 빠져나가면서 전류가 누출되는 것

    C - membrane에서 이온을 축적하면서 막전위가 올라가는 것

    I - 외부전력은 pre synaptic에서 온 전류

     

    1-3. RC 개념

     

    1. 커패시터

    Q = C × V

    Q: 전하 C: 막 용량 V: 전

    C가 커질 수록, 많은 전하를 저장할 수 있다는 의미이다. 저장할 수 있는 용량을 의미한다.

     

    2. 키르히호프의 법칙(Kirchhoff's Law)

    한 노드로 들어가는 전류와 나가는 전류의 양은 같다.

    폐쇄형 회로에서 모든 전압의 합은 0이다.

     

    3. 전류

    전류란 단위시간동안 통과하는 전하의 양이다.

    카페시터의 전류는 다음과 같이 정리할 수 있다. 

     

    2) LIF 유도

     

    2-1. 누출 전도도

    *gL : 누출 전도도

    gL = 1 / Rm 으로 표현한다.

    이 공식은 옴의 법칙으로 이해하면 된다. V = IR 를 참고하면 된다.

    gL는 어느정도의 강도로 누출되고 있는지 라고 생각하면 된다.

    *EL : Resting potential of the neuron

    평형 전위라고 생각하면 된다. 

    여기서 V-EL 인 이유는 전위 차의 개념으로 이해하면 된다. 전위 차가 전압이기 때문이다.

    즉 V > EL 일 경우에는 depolarized, 반대의 경우에는 hyperpolarized이다.

     

    2-2. KCL

    카페시터에 저장되는 전류 I는  저항에 누출되는 전류(IL) + 외부에 주입되는 전류(Ix)이다.

    위의 두 가지 식을 합치면

    이를 시간 상수에 대한 식으로 정리하면

    여기서 시간 상수는 

    이다.

    시간 상수의 의미는 외부 입력에 따라 막전위가 변화하는 정도이다.

    시간 상수가 크면, 느리게 변한다.

     

    타우가 클 수록, -> 1/타우

    dV/dt =  타우가 작아야지 빠르게 막전위는 빠르게 변화하게 됩니다. 속도의 계산으로 변화할 수 있음

    뉴런의 외부 입력에 따라 얼마나 빠르게 변화하는지를 의미

    이는 이 미분 방정식의 해를 구한 것이다.

     

    3) 해석

     

    3.1 수식을 전압에 대한 식으로 변환하였을 때

    다음과 같은 식을 얻을 수 있다.

    여기서 t가 무한대로 갈 때 전압은 subthreshold 상태에서 일정한 막전위 값을 갖는다는 것을 확인할 수 있다.

     

    3.2 spike 표현

    불응기 및 spike를 표현하기 위해서 다음과 같이 나타낸다.

     

    4) 구현

    def run_LIF(pars, Iinj, stop=False):
    
      # Set parameters
      V_th, V_reset = pars['V_th'], pars['V_reset']
      tau_m, g_L = pars['tau_m'], pars['g_L']
      V_init, E_L = pars['V_init'], pars['E_L']
      dt, range_t = pars['dt'], pars['range_t']
      Lt = range_t.size  # Lt는  총 time step 수
      tref = pars['tref']
    
      # Initalize
      v = np.zeros(Lt) # 막전위를 저장할 배열
      v[0] = V_init  #막전위 초기값은 V_init
      Iinj = Iinj * np.ones(Lt)  # 입력 전류의 값이 일정하게 만들어준다.
    
      # If current pulse, set beginning and end to 0, Pulse 모양을 만들기 위해서.
      if stop:
        Iinj[:int(len(Iinj) / 2) - 1000] = 0 #앞과 끝부분을 입력 전류를 0으로 초기화 한다.
        Iinj[int(len(Iinj) / 2) + 1000:] = 0
    
      # Loop over time
      rec_spikes = []  # record spike times 스파이크 발생 시점 기록
      tr = 0.  # the count for refractory duration 불응기 계산.
    
      for it in range(Lt - 1):
    
        if tr > 0:  # check if in refractory period, 0보다 크면 불응기 기간
          v[it] = V_reset  # set voltage to reset, 그 시점에는 reset된 막전위
          tr = tr - 1 # reduce running counter of refractory period, 불응기 한 time step만큼 감소 
    
        elif v[it] >= V_th:  # if voltage over threshold 
          rec_spikes.append(it)  # record spike event 스파이크 튄 시점 기록
          v[it] = V_reset  # reset voltage 
          tr = tref / dt  # set refractory time, 불응기 시간인 tr 계산 
    
        # Calculate the increment of the membrane potential
        dv = (-(v[it] - E_L) + Iinj[it] / g_L) * (dt / tau_m)
        #시간 상수로 이루어진 식으로 dv 계산
    
        # Update the membrane potential
        v[it + 1] = v[it] + dv
    
      # Get spike times in ms
      rec_spikes = np.array(rec_spikes) * dt #time step 번호에 시간 간격을 곱해 실제 spike가 일어난 시간을 알아냄.
    
      return v, rec_spikes
    
    # Simulate LIF model
    v, sp = run_LIF(pars, Iinj=250, stop=True)

     

    https://colab.research.google.com/drive/1IkmEFUaP2s8HT6nQG0GcalwQWUG8MEqi#scrollTo=m_vEr8-pKsGo

     

    LIF model

    Colab notebook

    colab.research.google.com

     

     

Designed by Tistory.