兩個自適應系統,同一個迴路
一個閉迴路 BCI 含有兩個時鐘不同的學習者。使用者透過神經可塑性學習:隨著練習,運動與前運動皮質重塑其活動,好讓解碼器更容易做事,就像你學會任何新工具一樣。歷經數日,這會成為真正的BMI 技能學習,形成鞏固而可重現的神經模式。解碼器則透過自適應解碼學習:它從進來的資料重新估計參數。共適應 BCI 的技藝,就在於協調這兩者,使其相助而非相爭。
\min_{\theta_u}\ \mathbb{E}\big\lVert v^{\star}_k - \hat v_k\big\rVert^2 \quad\text{and}\quad \min_{\phi}\ \mathbb{E}\big\lVert v^{\star}_k - \hat v_k\big\rVert^2, \qquad \hat v_k = D_\phi\big(g_{\theta_u}(x_k)\big)兩個共用同一誤差的耦合目標。使用者掌控編碼器 g_{\theta_u};解碼器掌控 D_\phi。穩定的 BCI 是兩者的聯合不動點——而非任一方單獨的最佳解。
有兩位玩家在最小化同一個誤差:使用者(調整自己的神經編碼器)與解碼器(調整自己的參數)。好的 BCI 是兩者同時滿意之處——一個聯合不動點——而非任一方單獨達到完美之處。
- v^{\star}_k
- 使用者真正想要的速度。
- \hat v_k
- 系統實際解碼出的速度。
- \theta_u
- 使用者的編碼器參數——大腦所調適的東西。
- \phi
- 解碼器的參數——演算法所調適的東西。
若兩者同時追逐誤差,可能會互相拉扯,因此穩定需要它們協調到同一個共享解。
共適應何時幫忙、何時互相干擾
共適應威力強大,卻很容易失穩。若兩個學習者同時快速適應,各自就是在對著一個移動的目標最佳化:解碼器去擬合一組使用者正同時拋棄的神經編碼,反之亦然。經典解方是時間尺度分離——讓一方適應、另一方近似固定,再交替進行——或刻意讓解碼器的適應速度遠慢於使用者學習,使得使用者始終面對一個「夠穩定、可供學習」的受控體。
大腦學到了什麼:流形觀點
使用者具體能學到什麼?一系列引人注目的研究說:並非什麼都能學,也並非學得一樣快。神經群體活動棲居於一個由迴路連結所決定的低維神經流形附近。當解碼器在該流形之內被擾動時,使用者能在單一場次內重新學會控制;但當擾動落在流形之外——要求迴路本來不會自然產生的活動模式——學習就慢得多,甚至失敗。這個流形內對流形外的區分是一個實務約束:只沿著使用者真能跟上的方向去調整解碼器。
n_k \approx \bar n + L\,z_k, \qquad z_k \in \mathbb{R}^{d},\ \ d \ll \dim(n_k)群體活動 n_k 位於由 L 的行向量所張成的 d 維流形附近。流形內的解碼器更動只是重新加權潛在變數 z_k;流形外的更動則要求迴路所抗拒的新活動方向。
儘管有數千個神經元在放電,它們的活動其實聚在一片低維的「薄片」附近——即神經流形。停留在這片薄片上的解碼器更動只是重新加權少數潛在因子,很容易學會;離開它的更動則要求全新的放電模式,而迴路會抗拒這些方向。
- n_k
- 完整的群體活動——一次許多神經元。
- \bar n
- 波動所圍繞的平均活動。
- L
- 其行向量張成低維流形的矩陣。
- z_k
- 真正在變動的少數潛在因子——實際的控制旋鈕。
- d \ll \dim(n_k)
- 流形維度遠小於神經元數目。
數百個神經元可能只沿約十個共享的潛在方向一起變動。
功勞分派:這個錯是誰的?
每一個控制誤差都拋出一個功勞分派的問題:游標偏離目標,是使用者的編碼錯誤,還是解碼器的映射錯誤?光靠行為無法回答——兩者在同一條觀察到的軌跡裡混淆在一起。正是這種曖昧使得天真的監督式自適應很危險:若你在「每一次偏離都是解碼器的錯」這個假設下重新訓練,你就會把解碼器「修正」成朝著使用者的錯誤靠攏。要化解它,需要一個關於意圖的外部假設——而這正是下一篇的意圖估計所提供的。
實務上的共適應排程
在實務上,這些想法會落實成一套校正排程,隨時間把適應的重擔從解碼器逐步交棒給使用者。
- 開迴路種子:在使用者觀察或想像目標動作時記錄神經活動,擬合一個初始解碼器——並不完美,但足以讓效應器動起來。
- 帶意圖修正更新的閉迴路:把控制權交給使用者,並以意圖估計出的標籤(ReFIT 式)重新擬合解碼器,並緩慢地混入更動。
- 穩定並凍結:一旦表現進入高原,就停止調整解碼器,讓使用者能在固定受控體上鞏固一個穩定的運動技能。
- 週期性再校正:以偶爾的輕度更新或非監督式自我再校正來追蹤緩慢的非平穩性,而非持續的快速適應。