본문 바로가기

Deep Learning Tools

Neuron single compartment model single variable V를 이용해 membrane potential을 표현하는 모델을 single-compartment model이라고 한다. 앞에서 살폈던 수식이 single compartment model의 membrane potential을 표현하는데 기본이 된다.다시 말하자면 은 total capacitance를 뜻한다.즉, membrane potential이 시간의 변화에 따라 변하는 것와 뉴런의 total capacitance의 곱을 말한다.이를 통해 total current를 알아낼 수 있었다. membrane current는 주로 neuron의 단위면적당 current에 의해 특징되어 진다. 그것이 이다.여기서 이라고 새로운 정의를 한다.또한 의 표현은 단위 면적당 total cur..
Equilibrium and reversal potential equilibrium potential 은 전기력에 의해 확산이 되지 않는 membrane potential 이다. 이러한 평형 전위는 Nernst equation을 이용해 구할 수 있다.만약 이온이 전기적 전하를 가지고 있다면, 이를 zq로 표현할 것이다.q는 한 양성자가 가지는 전하(아보가드로 상수와 동일)이다.이것은 반드시 최소한 membrane을 건너갈 수 있는 최소한의 -zqV thermal energy를 가지고 있기다.z는 0보다 큰 값을 가지고, V는 0보다 작은 값을 가진다.또한 ion은 -zqV보다 크거나 같은 열 에너지를 가진다.이는 T의 온도일 때, 의 에너지로 표현할 수 있다.는 볼츠만 상수이다. 우리는 다음과 같은 규칙을 알고 있다.F는 페러데이 상수이고, q는 아보가드로 상수이다..
Neuron의 membrane current 구하기 이전 포스팅에선 membrane을 RC circuit으로 모델링하였다.따라서 사용된 것이 Resistance와 Capacitance였다. 이번 포스팅에선 membrane current에 대해서 정리한다 membrane을 거쳐 이온채널을 통해 출입하는 total current를 membrane current라고 한다.membrane current는 neuron에서 positive ion이 떠날 때, positive라고 정의하고,반대로 neuron으로 들어오면 negative라고 정의한다. membrane current는 모든 전류를 더함으로써 계산한다.이는 으로 표현하는데, per unit area의 membrane current를 말한다.따라서 에다가 A(total surface of area of th..
RC circuit으로 구현하는 neuron model Neuron은 RC circuit으로 표현할 수 있는데, RC circuit 수학식을 이용해 neuron model을 만들 수 있다. Neuron membrane은 약 3~4nm 두께의 lipid bilayer로 구성되어 있다.Lipid bilayer는 charged molecules의 출입을 제한한다.이러한 형태는 마치 cell membrane이 capacitor처럼 동작하도록 한다.또한 lipid bilayer에는 다양한 ion-conducting 채널들이 embedded되어 있다.이 채널을 통해서 특정한 이온들이 출입을 허가받는다. 이를 바탕으로 cell을 하나의 conductor로 표현하는데, 대표적으로 RC circuit이 있다. RC circuit의 R은 resistance를, C는 capac..
많은 neuron으로 sine wave 표현하기 123456789101112131415161718192021222324252627282930313233import numpy as npimport matplotlib.pyplot as plt%matplotlib inline import nengofrom nengo.dists import Uniform model = nengo.Network(label='Many Neurons') with model: A = nengo.Ensemble(100, dimensions=1) sin = nengo.Node(lambda t: np.sin(8 * t)) nengo.Connection(sin, A, synapse=0.01) sin_probe = nengo.Probe(sin) A_probe = nengo.Probe(A, ..
Tensorflow로 10분만에 만드는 auto-encoder (http://curiousily.com/data-science/2017/02/02/what-to-do-when-data-is-missing-part-2.html) Autoencoder는 데이터의 입력 값만 주어진 상태로 학습하는 unsupervised learning의 일종이다. 그 구성은 input data에 대한 encoder, 그리고 decoder로 구성되어 있다.최종적으로 신경망은 output data가 input data와 유사하도록 학습을 수행한다. 구조 만큼이나 tensorflow로 만드는 것도 아주 간단하다. 1) 필요한 library import 학습 데이터로는 역시 만만한 MNIST로 하자 1234567891011from __future__ import division, print_f..
Nengo로 구현하는 MNIST CNN spiking neural network 예제 Nengo tutorial을 보면 MINIST 데이타 셋을 학습하고 테스트하는 예제가 있다. 1) MIST 데이터 셋 다운로드 가장 먼저 데이터를 준비해야 하는데, 고맙게도 MNIST 데이타는 Pickle로 다운로드가 가능하다.Pickle은 python 프로그램 실행 중에 특정 객체를 파일로 저장하는 기능이다.저장해둔 pickle 파일을 로드하면, 실행 당시의 객체를 즉시 복원할 수 있다.MINIST 데이터 셋도 이 pickle 파일을 load해서 사용한다. 다운을 위해서는 반드시 인터넷에 연결되어 있어야 한다.처음 한 번 다운로드를 한 이후에는 local directory에 저장되어, 언제든 빠르게 데이터를 load할 수 있다. 1234567891011121314151617181920%matplotli..
Nengo tutorial - neuron 만들기 예제 Nengo를 이용해 spiking neuron을 만들어보자! 1) 필요한 library import 12345import numpy as npimport matplotlib.pyplot as plt%matplotlib inline import nengocs 2) network 설계 Nengo에서는 Networt() 객체 안에 필요한 모든 network를 설계한다.tensorflow에서 graph와 비슷하다고 해야하나..network의 선언은 다음과 같이 한다. 12model = nengo.Network()with model:cs 그리고 그 아래 영역에 network에 포함되는 object들을 하나씩 넣게 된다.Network는 ensemble (layer로 구성되는 neuron 집단), node (neng..