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 只用 1 張 conn_graph 和 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:sigmoid 的半值點與斜率。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/τ}。

• 穩態:對 1 個節點施加恆定輸入 d > 0 時 V∞ = (e_rest + d·e_exc)/(1 + d), 趨向它的有效時間常數恰好為 τ/(1 + d)(「輸入使時間常數縮短」的數值)。

ValueError:非方陣 / 非有限的 W、不是 (T, n) 的 drive、非正的 dt_s / tau_s、負的 gain、未知的 release、長度不符的 v0。

詳細使用指南

• conngraph 族使用指南

參考(範例資料、文獻)

• 範例資料目錄(下載 URL / 授權) —— 2-D 用 skimage.data(BSD/公有領域)加合成圖,3-D 給出真實資料源(Stanford/PDS 等)的下載 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 運算子登記表。本條目由 tools/opdocs.py md 自動產生(請勿手動編輯)。*

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