graph_conductance_states — CONNGRAPH circuit op

• 데이터 종류: conn_graph × matrix → matrix

• 호출: import fullseye as fs; fs.ledger.graph_conductance_states(W: 'Any', drive: 'Any', dt_s: 'float' = 0.001, tau_s: 'float' = 0.02, e_rest: 'float' = 0.0, e_exc: 'float' = 1.0, e_inh: 'float' = -1.0, release: 'str' = 'relu', v_half: 'float' = 0.5, slope: 'float' = 4.0, gain: 'float' = 1.0, v0: 'Any' = None) -> 'np.ndarray'(구현을 직접 호출하려면 import conngraph; conngraph.graph_conductance_states(W: 'Any', drive: 'Any', dt_s: 'float' = 0.001, tau_s: 'float' = 0.02, e_rest: 'float' = 0.0, e_exc: 'float' = 1.0, e_inh: 'float' = -1.0, release: 'str' = 'relu', v_half: 'float' = 0.5, slope: 'float' = 4.0, gain: 'float' = 1.0, v0: 'Any' = None) -> 'np.ndarray', 원장에서 가져오려면 opsconngraph.get("graph_conductance_states"))

사용법

배선 W를 그대로 회로로 돌린 막전위의 시계열 (T, n)(matrix, 학습 없음).

초파리 시엽에서 "곱셈"으로 보였던 비선형의 정체는 수상돌기의 컨덕턴스 비였다(Groschner 등 2022: 정상 상태에서는 Vm = Σgᵢ Eᵢ / Σgᵢ). 같은 형태의 식이, 커넥톰을배선으로 고정한 전뇌 모델의 표준형이기도 하다(Lappalainen 등 2024:

τᵢ V̇ᵢ = −Vᵢ + Σ sᵢⱼ + V_rest). 이 op 는 그 동적인 판을, conn_graph 1 장과 외부 입력 1 장만으로 돌린다:

τ dVᵢ/dt = −(Vᵢ − e_rest) + g⁺ᵢ (e_exc − Vᵢ) + g⁻ᵢ (e_inh − Vᵢ)

g⁺ 는 W 의 양의 가중치, g⁻ 는 음의 가중치의 절댓값을, 시냅스 전 쪽의방출 f(V) 로 가중하여 더한 것(drive 의 양음도 같은 방향으로 더한다). 가중치는주어진 그대로 쓴다 —— 학습도 피팅도 일절 하지 않는다. 시정수가 입력으로 줄어들므로(실효 τ = τ/(1+g⁺+g⁻)), 이것은 liquid time-constant 형의 역학 그 자체이지만, 파라미터는 배선과 상수뿐이며, 기울기로 정한 수는 1 개도 없다.

W: (n, n) 의 가중 인접 행렬(W[pre, post], 양 = 흥분성, 음 = 억제성).

drive: (T, n) 의 외부 입력. 양은 그 노드를 e_exc 로, 음은 e_inh 로 끄는

컨덕턴스로서 들어간다(전류가 아니다 —— 전류라면 아래의 유계성이 깨진다).

dt_s / tau_s: 스텝과 막 시정수[초]. e_rest / e_exc / e_inh: 정지 전위와 2 개의 역전 전위.

release: 시냅스 전 방출 f(V). "relu" 는 gain·max(V, 0), "sigmoid" 는

gain/(1+exp(−slope(V−v_half))). 둘 다 음이 아니며, 음의 컨덕턴스

(물리적으로 존재하지 않는다)를 만들지 않는다 —— 그것이 아래 유계성의 전제.

v_half / slope: 시그모이드의 반값과 기울기. gain: 방출의 이득(음이 아님).

v0: 초기 상태 (n,). 기본값은 전 노드 e_rest.

각 단은 컨덕턴스를 고정한 엄밀해로 진행한다(V ← V∞ + (V − V∞)e^{−dt·g_tot/τ}) 그래서 스텝을 거칠게 해도 발산하지 않는다.

닫힌 식으로 검사할 수 있는 것:

• 유계성: 방출이 음이 아닌 한, V∞ 는 3 개의 역전 전위의 볼록 결합이므로 [min(e_rest, e_exc, e_inh), max(...)] 안에 있다. 각 단은 V 를 그 V∞ 로 지수적으로 끌어당길 뿐이므로, 상자 안에서 시작하면 반드시 상자 안에 머물고, 상자 밖에서 시작해도 밖으로는 가지 않고 상자로 향한다. 어떤 배선·어떤 입력에서도발산하지 않는다는 것이 구조로 보장된다(v0 의 기본값은 e_rest = 상자 안).

• 감쇠: 입력도 결합도 없으면 V(t) = e_rest + (V₀ − e_rest)e^{−t/τ} 정확히.

• 정상: 일정한 입력 d > 0 을 1 노드에 넣으면 V∞ = (e_rest + d·e_exc)/(1 + d), 그곳으로 향하는 실효 시정수는 정확히 τ/(1 + d)("입력으로 시정수가 줄어든다"의 수치).

ValueError: 정방이 아닌 / 비유한인 W, (T, n) 이 아닌 drive, 양이 아닌 dt_s / tau_s, 음의 gain, 미지의 release, 길이가 맞지 않는 v0.

자세한 사용 가이드

• conngraph 패밀리 가이드

참고(샘플 데이터·문헌)

• 샘플 데이터 카탈로그(DL URL / 라이선스) —— 2-D 는 skimage.data(BSD/public)+ 합성, 3-D 는 실데이터 소스(Stanford/PDS 등)의 DL URL.

• 연산자의 내력·참고문헌 —— 이 연산자 족의 바탕이 된 연구/기법의 출처.

• 알고리즘의 정전(저자·연도)과 용도는 위의 패밀리 사용 가이드에 적혀 있습니다.

실행 가능한 예제(이 연산자를 실제로 호출하는 검증된 샘플)

• poc_fly_optomotor_steering — py -3.11 examples/poc_fly_optomotor_steering.py

타입이 이어지는 다음 연산자(matrix 를 입력으로 받는 것)

reservoir_states · reservoir_encode · ridge_readout · ridge_predict · graph_activation_latency · graph_activity_spread · points_activity_video · graph_layer_propagate

같은 카테고리(circuit)

—


*Provenance: conngraph.py — CONNGRAPH 연산자 레지스트리. 이 op 노트는 tools/opdocs.py md 가 자동 생성합니다(직접 편집하지 마세요).*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.