用于隨機尖峰貝葉斯網絡的基于事件的推斷和學習的制作方法
【專利摘要】一種執行基于事件的貝葉斯推斷和學習的方法包括在每個節點處接收輸入事件。該方法還包括將偏置權重和/或連接權重應用于輸入事件以獲得中間值。該方法進一步包括基于中間值來確定節點狀態。此外,該方法包括基于節點狀態來計算表示后驗概率的輸出事件率以根據隨機點過程來生成輸出事件。
【專利說明】用于隨機尖峰貝葉斯網絡的基于事件的推斷和學習
[0001] 相關申請的交叉引用
[0002] 本申請要求于2014年2月21日提交的美國臨時專利申請No. 61/943,147和于2014 年3月6日提交的美國臨時專利申請No.61/949,154的權益,以上公開通過全文引用明確納 入于此。
【背景技術】 [0003] 領域
[0004] 本公開的某些方面一般涉及神經系統工程,尤其涉及用于隨機尖峰貝葉斯網絡的 基于事件的推斷和學習的系統和方法。
[0005] 背景
[0006] 可包括一群互連的人工神經元(即神經元模型)的人工神經網絡是一種計算設備 或者表示將由計算設備執行的方法。人工神經網絡可具有生物學神經網絡中的對應的結構 和/或功能。然而,人工神經網絡可為其中傳統計算技術是麻煩的、不切實際的、或不勝任的 某些應用提供創新且有用的計算技術。由于人工神經網絡能從觀察中推斷出功能,因此這 樣的網絡在因任務或數據的復雜度使得通過常規技術來設計該功能較為麻煩的應用中是 特別有用的。
[0007] 概述
[0008] 在本公開的一方面,一種方法執行基于事件的貝葉斯推斷和學習。該方法包括在 一群節點中的每個節點處接收輸入事件。該方法還包括將偏置權重和/或連接權重應用于 輸入事件以獲得中間值。另外,該方法包括基于中間值來確定節點狀態。該方法進一步包括 基于節點狀態來計算表示后驗概率的輸出事件率以根據隨機點過程來生成輸出事件。
[0009] 在本公開的另一方面,一種裝置執行基于事件的貝葉斯推斷和學習。該裝置包括 存儲器以及一個或多個處理器。該(些)處理器耦合至存儲器。該(些)處理器被配置成在一 組節點中的每個節點處接收輸入事件。該(些)處理器還被配置成將偏置權重和/或連接權 重應用于輸入事件以獲得中間值。另外,該(些)處理器被配置成基于中間值來確定節點狀 態。該(些)處理器被進一步配置成基于節點狀態來計算表示后驗概率的輸出事件率以根據 隨機點過程來生成輸出事件。
[0010] 在又一方面,公開了一種用于執行基于事件的貝葉斯推斷和學習的設備。該設備 具有用于在一組節點中的每個節點處接收輸入事件的裝置。該設備還具有用于將偏置權重 和/或連接權重應用于輸入事件以獲得中間值的裝置。另外,該設備具有用于基于中間值來 確定節點狀態的裝置。此外,該設備具有用于基于節點狀態來計算表示后驗概率的輸出事 件率以根據隨機點過程來生成輸出事件的裝置。
[0011] 在本公開的再另一方面,公開了一種用于執行基于事件的貝葉斯推斷和學習的計 算機程序產品。該計算機程序產品包括其上編碼有程序代碼的非瞬態計算機可讀介質。該 程序代碼包括用于在一組節點中的每個節點處接收輸入事件的程序代碼。該程序代碼還包 括用于將偏置權重和/或連接權重應用于輸入事件以獲得中間值的程序代碼。另外,該程序 代碼包括用于基于中間值來確定節點狀態的程序代碼。該程序代碼進一步包括用于基于節 點狀態來計算表示后驗概率的輸出事件率以根據隨機點過程來生成輸出事件的程序代碼。
[0012] 這已較寬泛地勾勒出本公開的特征和技術優勢以便下面的詳細描述可以被更好 地理解。本公開的其他特征和優點將在下文描述。本領域技術人員應該領會,本公開可容易 地被用作修改或設計用于實施與本公開相同的目的的其他結構的基礎。本領域技術人員還 應認識到,這樣的等效構造并不脫離所附權利要求中所闡述的本公開的教導。被認為是本 公開的特性的新穎特征在其組織和操作方法兩方面連同進一步的目的和優點在結合附圖 來考慮以下描述時將被更好地理解。然而,要清楚理解的是,提供每一幅附圖均僅用于解說 和描述目的,且無意作為對本公開的限定的定義。
[0013] 附圖簡述
[0014] 在結合附圖理解下面闡述的詳細描述時,本公開的特征、本質和優點將變得更加 明顯,在附圖中,相同附圖標記始終作相應標識。
[0015] 圖1解說根據本公開的某些方面的示例神經元網絡。
[0016] 圖2解說根據本公開的某些方面的計算網絡(神經系統或神經網絡)的處理單元 (神經元)的示例。
[0017] 圖3解說根據本公開的某些方面的尖峰定時依賴可塑性(STDP)曲線的示例。
[0018] 圖4解說根據本公開的某些方面的用于定義神經元模型的行為的正態相和負態相 的示例。
[0019] 圖5解說根據本公開的某些方面的使用通用處理器來設計神經網絡的示例實現。
[0020] 圖6解說根據本公開的某些方面的設計其中存儲器可以與個體的分布式處理單元 對接的神經網絡的示例實現。
[0021] 圖7解說根據本公開的某些方面的基于分布式存儲器和分布式處理單元來設計神 經網絡的示例實現。
[0022] 圖8解說根據本公開的某些方面的神經網絡的示例實現。
[0023]圖9是解說根據本公開的各方面的貝葉斯網絡的框圖。
[0024] 圖10是解說根據本公開的各方面的用于執行基于事件的貝葉斯推斷和學習的示 例性架構的框圖。
[0025] 圖11是解說根據本公開的各方面的用于執行基于事件的貝葉斯推斷和學習的示 例性模塊的框圖。
[0026] 圖12是解說根據本公開的各方面的使用用于執行基于事件的貝葉斯推斷和學習 的模塊的地址事件表示(AER)傳感器的示例性架構的框圖。
[0027]圖13A-C解說根據本公開的各方面的AER感測架構的示例性應用。
[0028]圖14A是解說隱馬爾科夫模型(HMM)的示圖。
[0029]圖14B是解說根據本公開的各方面的用于HMM的基于事件的推斷和學習的示例性 架構的高級框圖。
[0030]圖15是解說根據本公開的各方面的用于HMM的基于事件的推斷和學習的示例性架 構的框圖。
[0031]圖16是解說根據本公開的各方面的用于執行基于事件的貝葉斯推斷和學習的方 法。
[0032] 詳細描述
[0033] 以下結合附圖闡述的詳細描述旨在作為各種配置的描述,而無意表示可實踐本文 中所描述的概念的僅有的配置。本詳細描述包括具體細節以便提供對各種概念的透徹理 解。然而,對于本領域技術人員將顯而易見的是,沒有這些具體細節也可實踐這些概念。在 一些實例中,以框圖形式示出眾所周知的結構和組件以避免湮沒此類概念。
[0034] 基于本教導,本領域技術人員應領會,本公開的范圍旨在覆蓋本公開的任何方面, 不論其是與本公開的任何其他方面相獨立地還是組合地實現的。例如,可以使用所闡述的 任何數目的方面來實現裝置或實踐方法。另外,本公開的范圍旨在覆蓋使用作為所闡述的 本公開的各個方面的補充或者與之不同的其他結構、功能性、或者結構及功能性來實踐的 此類裝置或方法。應當理解,所披露的本公開的任何方面可由權利要求的一個或多個元素 來實施。
[0035]措辭"示例性"在本文中用于表示"用作示例、實例或解說"。本文中描述為"示例 性"的任何方面不必被解釋為優于或勝過其他方面。
[0036]盡管本文描述了特定方面,但這些方面的眾多變體和置換落在本公開的范圍之 內。雖然提到了優選方面的一些益處和優點,但本公開的范圍并非旨在被限定于特定益處、 用途或目標。相反,本公開的各方面旨在能寬泛地應用于不同的技術、系統配置、網絡和協 議,其中一些作為示例在附圖以及以下對優選方面的描述中解說。詳細描述和附圖僅僅解 說本公開而非限定本公開,本公開的范圍由所附權利要求及其等效技術方案來定義。
[0037]示例神經系統、訓練及操作
[0038] 圖1解說根據本公開的某些方面的具有多級神經元的示例人工神經系統100。神經 系統100可具有神經元級102,該神經元級102通過突觸連接網絡104(即,前饋連接)來連接 到另一神經元級106。為簡單起見,圖1中僅解說了兩級神經元,盡管神經系統中可存在更少 或更多級神經元。應注意,一些神經元可通過側向連接來連接至同層中的其他神經元。此 外,一些神經元可通過反饋連接來后向連接至先前層中的神經元。
[0039] 如圖1所解說的,級102中的每一個神經元可以接收可由前級的神經元(未在圖1中 示出)生成的輸入信號108。信號108可表示級102的神經元的輸入電流。該電流可在神經元 膜上累積以對膜電位進行充電。當膜電位達到其閾值時,該神經元可激發并生成輸出尖峰, 該輸出尖峰將被傳遞到下一級神經元(例如,級106)。在某些建模辦法中,神經元可以連續 地向下一級神經元傳遞信號。該信號通常是膜電位的函數。此類行為可在硬件和/或軟件 (包括模擬和數字實現,諸如以下所述那些實現)中進行仿真或模擬。
[0040] 在生物學神經元中,在神經元激發時生成的輸出尖峰被稱為動作電位。該電信號 是相對迅速、瞬態的神經沖激,其具有約為100mV的振幅和約為lms的歷時。在具有一系列連 通的神經元(例如,尖峰從圖1中的一級神經元傳遞至另一級神經元)的神經系統的特定實 施例中,每個動作電位都具有基本上相同的振幅和歷時,并且因此該信號中的信息可僅由 尖峰的頻率和數目、或尖峰的時間來表示,而不由振幅來表示。動作電位所攜帶的信息可由 尖峰、發放了尖峰的神經元、以及該尖峰相對于一個或數個其他尖峰的時間來確定。尖峰的 重要性可由向各神經元之間的連接所應用的權重來確定,如以下所解釋的。
[0041] 尖峰從一級神經元向另一級神經元的傳遞可通過突觸連接(或簡稱"突觸")網絡 104來達成,如圖1中所解說的。相對于突觸104,級102的神經元可被視為突觸前神經元,而 級106的神經元可被視為突觸后神經元。突觸104可接收來自級102的神經元的輸出信號 (即,尖峰),并根據可調節突觸權重wpW wf來按比例縮放那些信號,其中P是 級102的神經元與級106的神經元之間的突觸連接的總數,并且i是神經元級的指示符。在圖 1的示例中,i表示神經元級102并且i+Ι表示神經元級106。此外,經按比例縮放的信號可被 組合以作為級106中每個神經元的輸入信號。級106中的每個神經元可基于對應的組合輸入 信號來生成輸出尖峰110。可使用另一突觸連接網絡(圖1中未示出)將這些輸出尖峰110傳 遞到另一級神經元。
[0042]生物學突觸可以仲裁突觸后神經元中的興奮性或抑制性(超級化)動作,并且還可 用于放大神經元信號。興奮性信號使膜電位去極化(即,相對于靜息電位增大膜電位)。如果 在某個時間段內接收到足夠的興奮性信號以使膜電位去極化到高于閾值,則在突觸后神經 元中發生動作電位。相反,抑制性信號一般使膜電位超極化(即,降低膜電位)。抑制性信號 如果足夠強則可抵消掉興奮性信號之和并阻止膜電位到達閾值。除了抵消掉突觸興奮以 外,突觸抑制還可對自發活躍神經元施加強力的控制。自發活躍神經元是指在沒有進一步 輸入的情況下(例如,由于其動態或反饋而)發放尖峰的神經元。通過壓制這些神經元中的 動作電位的自發生成,突觸抑制可對神經元中的激發模式進行定形,這一般被稱為雕刻。取 決于期望的行為,各種突觸104可充當興奮性或抑制性突觸的任何組合。
[0043] 神經系統100可由通用處理器、數字信號處理器(DSP)、專用集成電路(ASIC)、現場 可編程門陣列(FPGA)或其他可編程邏輯器件(PLD)、分立的門或晶體管邏輯、分立的硬件組 件、由處理器執行的軟件模塊、或其任何組合來仿真。神經系統100可用在大范圍的應用中, 諸如圖像和模式識別、機器學習、電機控制、及類似應用等。神經系統100中的每一神經元可 被實現為神經元電路。被充電至發起輸出尖峰的閾值的神經元膜可被實現為例如對流經其 的電流進行積分的電容器。
[0044] 在一方面,電容器作為神經元電路的電流積分器件可被除去,并且可使用較小的 憶阻器元件來替代它。這種辦法可應用于神經元電路中,以及其中大容量電容器被用作電 流積分器的各種其他應用中。另外,每個突觸104可基于憶阻器元件來實現,其中突觸權重 改變可與憶阻器電阻的變化有關。使用納米特征尺寸的憶阻器,可顯著地減小神經元電路 和突觸的面積,這可使得實現大規模神經系統硬件實現更為切實可行。
[0045] 對神經系統100進行仿真的神經處理器的功能性可取決于突觸連接的權重,這些 權重可控制神經元之間的連接的強度。突觸權重可存儲在非易失性存儲器中以在掉電之后 保留該處理器的功能性。在一方面,突觸權重存儲器可實現在與主神經處理器芯片分開的 外部芯片上。突觸權重存儲器可與神經處理器芯片分開地封裝成可更換的存儲卡。這可向 神經處理器提供多種多樣的功能性,其中特定功能性可基于當前附連至神經處理器的存儲 卡中所存儲的突觸權重。
[0046] 圖2解說根據本公開的某些方面的計算網絡(例如,神經系統或神經網絡)的處理 單元(例如,神經元或神經元電路)202的示例性示圖200。例如,神經元202可對應于來自圖1 的級102和106的任何神經元。神經元202可接收多個輸入信號20^-20%,這些輸入信號可以 是該神經系統外部的信號、或是由同一神經系統的其他神經元所生成的信號、或這兩者。輸 入信號可以是電流、電導、電壓、實數值的和/或復數值的。輸入信號可包括具有定點或浮點 表示的數值。可通過突觸連接將這些輸入信號遞送到神經元202,突觸連接根據可調節突觸 權重206^206^1^??)對這些信號進行按比例縮放,其中N可以是神經元202的輸入連接總 數。
[0047]神經元202可組合這些經按比例縮放的輸入信號,并且使用組合的經按比例縮放 的輸入來生成輸出信號208(即,信號Y)。輸出信號208可以是電流、電導、電壓、實數值的和/ 或復數值的。輸出信號可以是具有定點或浮點表示的數值。隨后該輸出信號208可作為輸入 信號傳遞至同一神經系統的其他神經元、或作為輸入信號傳遞至同一神經元202、或作為該 神經系統的輸出來傳遞。
[0048]處理單元(神經元)202可由電路來仿真,并且其輸入和輸出連接可由具有突觸電 路的電連接來仿真。處理單元202及其輸入和輸出連接也可由軟件代碼來仿真。處理單元 202還可由電路來仿真,而其輸入和輸出連接可由軟件代碼來仿真。在一方面,計算網絡中 的處理單元202可以是模擬電路。在另一方面,處理單元202可以是數字電路。在又一方面, 處理單元202可以是具有模擬和數字組件兩者的混合信號電路。計算網絡可包括任何前述 形式的處理單元。使用這樣的處理單元的計算網絡(神經系統或神經網絡)可用在大范圍的 應用中,諸如圖像和模式識別、機器學習、電機控制、及類似應用等。
[0049] 在神經網絡的訓練過程期間,突觸權重(例如,來自圖1的權重 和/或來自圖2的權重206^206〃)可用隨機值來初始化并根據學習規則而被增大或減小。本 領域技術人員將領會,學習規則的示例包括但不限于尖峰定時依賴可塑性(STDP)學習規 貝丨J、Hebb規則、0 ja規則、Bienenstock-Copper-Munro(BCM)規則等。在某些方面,這些權重可 穩定或收斂至兩個值(即,權重的雙峰分布)之一。該效應可被用于減少每個突觸權重的位 數、提高從/向存儲突觸權重的存儲器讀取和寫入的速度、以及降低突觸存儲器的功率和/ 或處理器消耗。
[0050] 突觸類型
[0051 ]在神經網絡的硬件和軟件模型中,突觸相關功能的處理可基于突觸類型。突觸類 型可以是非可塑突觸(權重和延遲沒有改變)、可塑突觸(權重可改變)、結構化延遲可塑突 觸(權重和延遲可改變)、全可塑突觸(權重、延遲和連通性可改變)、以及基于此的變型(例 如,延遲可改變,但在權重或連通性方面沒有改變)。多種類型的優點在于處理可以被細分。 例如,非可塑突觸不會使用待執行的可塑性功能(或等待此類功能完成)。類似地,延遲和權 重可塑性可被細分成可一起或分開地、順序地或并行地運作的操作。不同類型的突觸對于 適用的每一種不同的可塑性類型可具有不同的查找表或公式以及參數。因此,這些方法將 針對該突觸的類型來訪問相關的表、公式或參數。
[0052]還進一步牽涉到以下事實:尖峰定時依賴型結構化可塑性可獨立于突觸可塑性地 來執行。結構化可塑性即使在權重幅值沒有改變的情況下(例如,如果權重已達最小或最大 值、或者其由于某種其他原因而不被改變)也可被執行,因為結構化可塑性(即,延遲改變的 量)可以是前-后尖峰時間差的直接函數。替換地,結構化可塑性可被設為權重改變量的函 數或者可基于與權重或權重改變的界限有關的條件來設置。例如,突觸延遲可僅在權重改 變發生時或者在權重到達〇的情況下才改變,但在這些權重為最大值時則不改變。然而,具 有獨立函數以使得這些過程能被并行化從而減少存儲器訪問的次數和交疊可能是有利的。
[0053]突觸可塑性的確定
[0054]神經元可塑性(或簡稱"可塑性")是大腦中的神經元和神經網絡響應于新的信息、 感官刺激、發展、損壞、或機能障礙而改變其突觸連接和行為的能力。可塑性對于生物學中 的學習和記憶、以及對于計算神經元科學和神經網絡是重要的。已經研究了各種形式的可 塑性,諸如突觸可塑性(例如,根據Hebbian理論)、尖峰定時依賴可塑性(STDP)、非突觸可塑 性、活躍性依賴可塑性、結構化可塑性和自穩態可塑性。
[0055] STDP是調節神經元之間的突觸連接的強度的學習過程。連接強度是基于特定神經 元的輸出與收到輸入尖峰(即,動作電位)的相對定時來調節的。在STDP過程下,如果至某個 神經元的輸入尖峰平均而言傾向于緊挨在該神經元的輸出尖峰之前發生,則可發生長期增 強(LTP)。于是使得該特定輸入在一定程度上更強。另一方面,如果輸入尖峰平均而言傾向 于緊接在輸出尖峰之后發生,則可發生長期抑壓(LTD)。于是使得該特定輸入在一定程度上 更弱,并由此得名"尖峰定時依賴可塑性"。因此,使得可能是突觸后神經元興奮原因的輸入 甚至在將來作出貢獻的可能性更大,而使得不是突觸后尖峰的原因的輸入在將來作出貢獻 的可能性更小。該過程繼續,直至初始連接集合的子集保留,而所有其他連接的影響減小至 無關緊要的水平。
[0056] 由于神經元一般在其許多輸入都在一短時段內發生(即,累積性足以引起輸出)時 產生輸出尖峰,因此通常保留下來的輸入子集包括傾向于在時間上相關的那些輸入。另外, 由于在輸出尖峰之前發生的輸入被加強,因此提供對相關性的最早充分累積性指示的那些 輸入將最終變成至該神經元的最后輸入。
[0057] STDP學習規則可作為突觸前神經元的尖峰時間tpre與突觸后神經元的尖峰時間 tpost之間的時間差(即,t = tpcist-tpre)的函數來有效地適配將該突觸前神經元連接到該突觸 后神經元的突觸的突觸權重。STDP的典型公式化是若該時間差為正(突觸前神經元在突觸 后神經元之前激發)則增大突觸權重(即,增強該突觸),以及若該時間差為負(突觸后神經 元在突觸前神經元之前激發)則減小突觸權重(即,抑壓該突觸)。
[0058]在STDP過程中,突觸權重隨時間推移的改變可通常使用指數式衰退來達成,如由 下式給出的:
[0060] 其中k+和k-Tsign(At)分別是針對正和負時間差的時間常數,a+和a-是對應的比例縮 放幅值,并且μ是可應用于正時間差和/或負時間差的偏移。
[0061] 圖3解說了根據STDP,突觸權重作為突觸前(pre)和突觸后(post)尖峰的相對定時 的函數而改變的示例性示圖300。如果突觸前神經元在突觸后神經元之前激發,則對應的突 觸權重可被增大,如曲線圖300的部分302中所解說的。該權重增大可被稱為該突觸的LTP。 從曲線圖部分302可觀察到,LTP的量可作為突觸前和突觸后尖峰時間之差的函數而大致呈 指數式地下降。相反的激發次序可減小突觸權重,如曲線圖300的部分304中所解說的,從而 導致該突觸的LTD。
[0062] 如圖3中的曲線圖300中所解說的,可向STDP曲線圖的LTP(因果性)部分302應用負 偏移lx軸的交越點306(y = 0)可被配置成與最大時間滯后重合以考慮到來自層i-Ι的各因 果性輸入的相關性。在基于幀的輸入(即,呈特定歷時的包括尖峰或脈沖的幀的形式的輸 入)的情形中,可計算偏移值μ以反映幀邊界。該幀中的第一輸入尖峰(脈沖)可被視為要么 如直接由突觸后電位所建模地隨時間衰退,要么在對神經狀態的影響的意義上隨時間衰 退。如果該幀中的第二輸入尖峰(脈沖)被視為與特定時間幀相關或有關,則該幀之前和之 后的有關時間可通過使stdp曲線的一個或多個部分偏移以使得這些有關時間中的值可以 不同(例如,對于大于一個幀為負,而對于小于一個幀為正)來在該時間幀邊界處被分開并 在可塑性意義上被不同地對待。例如,負偏移μ可被設為偏移LTP以使得曲線實際上在大于 幀時間的pre-post時間處變得低于零并且它由此為LTD而非LTP的一部分。
[0063]神經元模型及操作
[0064]存在一些用于設計有用的尖峰發放神經元模型的一般原理。良好的神經元模型在 以下兩個計算態相(regime)方面可具有豐富的潛在行為:重合性檢測和功能性計算。此外, 良好的神經元模型應當具有允許時間編碼的兩個要素:輸入的抵達時間影響輸出時間,以 及重合性檢測能具有窄時間窗。最后,為了在計算上是有吸引力的,良好的神經元模型在連 續時間上可具有閉合形式解,并且具有穩定的行為,包括在靠近吸引子和鞍點之處。換言 之,有用的神經元模型是可實踐且可被用于建模豐富的、現實的且生物學一致的行為并且 可被用于對神經電路進行工程設計和反向工程設計兩者的神經元模型。
[0065] 神經元模型可取決于事件,諸如輸入抵達、輸出尖峰或其他事件,無論這些事件是 內部的還是外部的。為了達成豐富的行為庫,能展現復雜行為的狀態機可能是期望的。如果 事件本身的發生在撇開輸入貢獻(若有)的情況下能影響狀態機并約束該事件之后的動態, 則該系統的將來狀態并非僅是狀態和輸入的函數,而是狀態、事件和輸入的函數。
[0066] 在一方面,神經元η可被建模為尖峰帶泄漏積分激發神經元,其膜電壓vn(t)由以 下動態來支配:
[0068] 其中α和β是參數,Wm,n是將突觸前神經元m連接至突觸后神經元 n的突觸的突觸權 重,以及ym(t)是神經元m的尖峰發放輸出,其可根據AU,n被延遲達樹突或軸突延遲才抵達 神經元η的胞體。
[0069] 應注意,從建立了對突觸后神經元的充分輸入的時間直至該突觸后神經元實際上 激發的時間存在延遲。在動態尖峰神經元模型(諸如Izhikevich簡單模型)中,如果在去極 化閾值v t與峰值尖峰電Svpeak之間有差量,則可引發時間延遲。例如,在該簡單模型中,神經 元胞體動態可由關于電壓和恢復的微分方程對來支配,即:
[0072] 其中v是膜電位,u是膜恢復變量,k是描述膜電位v的時間尺度的參數,a是描述恢 復變量u的時間尺度的參數,b是描述恢復變量u對膜電位v的閾下波動的敏感度的參數,Vi· 是膜靜息電位,I是突觸電流,以及C是膜的電容。根據該模型,神經元被定義為在v>v peak時 發放尖峰。
[0073] Hunzinger Cold模型
[0074] Hunzinger Cold神經元模型是能再現豐富多樣的各種神經行為的最小雙態相尖 峰發放線性動態模型。該模型的一維或二維線性動態可具有兩個態相,其中時間常數(以及 耦合)可取決于態相。在閾下態相中,時間常數(按照慣例為負)表示泄漏通道動態,其一般 作用于以生物學一致的線性方式使細胞返回到靜息。閾上態相中的時間常數(按照慣例為 正)反映抗泄漏通道動態,其一般驅動細胞發放尖峰,而同時在尖峰生成中引發等待時間。
[0075] 如圖4中所解說的,該模型400的動態可被劃分成兩個(或更多個)態相。這些態相 可被稱為負態相402(也可互換地稱為帶漏泄積分激發(LIF)態相,勿與LIF神經元模型混 淆)以及正態相404(也可互換地稱為抗漏泄積分激發(ALIF)態相,勿與ALIF神經元模型混 淆)。在負態相402中,狀態在將來事件的時間趨向于靜息(V-)。在該負態相中,該模型一般 展現出時間輸入檢測性質及其他閾下行為。在正態相404中,狀態趨向于尖峰發放事件 ( Vs)。在該正態相中,該模型展現出計算性質,諸如取決于后續輸入事件而引發發放尖峰的 等待時間。在事件方面對動態進行公式化以及將動態分成這兩個態相是該模型的基礎特 性。
[0076] 線性雙態相二維動態(對于狀態v和u)可按照慣例定義為:
[0079] 其中qP和r是用于耦合的線性變換變量。
[0080] 符號p在本文中用于標示動態態相,在討論或表達具體態相的關系時,按照慣例對 于負態相和正態相分別用符號或"+"來替換符號P。
[0081] 模型狀態通過膜電位(電壓)v和恢復電流u來定義。在基本形式中,態相在本質上 是由模型狀態來決定的。該精確和通用的定義存在一些細微卻重要的方面,但目前考慮該 模型在電壓v高于閾值(v+)的情況下處于正態相404中,否則處于負態相402中。
[0082]態相依賴型時間常數包括負態相時間常數τ-和正態相時間常數τ+。恢復電流時間 常數tu通常是與態相無關的。出于方便起見,負態相時間常數τ-通常被指定為反映衰退的負 量,從而用于電壓演變的相同表達式可用于正態相,在正態相中指數和τ+將一般為正,正如 tu那樣。
[0083] 這兩個狀態元素的動態可在發生事件之際通過使狀態偏離其零傾線(nul Ιο 1 ine) 的變換來耦合 ,其中 變換變量為:
[0084] qP = -Tp0u-Vp (7)
[0085] Γ = δ(ν+ε) (8)
[0086] 其中δ、ε、β和V-、V+是參數。Vp的兩個值是這兩個態相的參考電壓的基數。參數ν-是 負態相的基電壓,并且膜電位在負態相中一般將朝向V-衰退。參數v+是正態相的基電壓,并 且膜電位在正態相中一般將趨向于背離v+。
[0087] v和u的零傾線分別由變換變量qP和r的負數給出。參數δ是控制u零傾線的斜率的 縮放因子。參數ε通常被設為等于-V-。參數β是控制這兩個態相中的ν零傾線的斜率的電阻 值。τ Ρ時間常數參數不僅控制指數式衰退,還單獨地控制每個態相中的零傾線斜率。
[0088] 該模型可被定義為在電壓ν達到值vs時發放尖峰。隨后,狀態可在發生復位事件 (其可以與尖峰事件完全相同)之際被復位:
[0089] 'V = Vl (9)
[0090] u = u+Au (10)
[0091] 其中免和Au是參數。復位電壓it通常被設為v-。
[0092] 依照瞬時耦合的原理,閉合形式解不僅對于狀態是可能的(且具有單個指數項), 而且對于到達特定狀態的時間也是可能的。閉合形式狀態解為:
[0095]因此,模型狀態可僅在發生事件之際被更新,諸如在輸入(突觸前尖峰)或輸出(突 觸后尖峰)之際被更新。還可在任何特定時間(無論是否有輸入或輸出)執行操作。
[0096]而且,依照瞬時耦合原理,突觸后尖峰的時間可被預計,因此到達特定狀態的時間 可提前被確定而無需迭代技術或數值方法(例如,歐拉數值方法)。給定了先前電壓狀態vo, 直至到達電壓狀態Vf之前的時間延遲由下式給出:
[0098]如果尖峰被定義為發生在電壓狀態v到達vs的時間,則從電壓處于給定狀態v的時 間起測量的直至發生尖峰前的時間量或即相對延遲的閉合形式解為:
[0100] 其中九通常被設為參數v+,但其他變型可以是可能的。
[0101] 模型動態的以上定義取決于該模型是在正態相還是負態相中。如所提及的,耦合 和態相Ρ可基于事件來計算。出于狀態傳播的目的,態相和耦合(變換)變量可基于在上一 (先前)事件的時間的狀態來定義。出于隨后預計尖峰輸出時間的目的,態相和耦合變量可 基于在下一(當前)事件的時間的狀態來定義。
[0102] 存在對該Cold模型、以及在時間上執行模擬、仿真、或建模的若干可能實現。這包 括例如事件-更新、步點-事件更新、以及步點-更新模式。事件更新是其中基于事件或"事件 更新"(在特定時刻)來更新狀態的更新。步點更新是以間隔(例如,lms)來更新模型的更新。 這不一定利用迭代方法或數值方法。通過僅在事件發生于步點處或步點間的情況下才更新 模型或即通過"步點-事件"更新,基于事件的實現以有限的時間分辨率在基于步點的模擬 器中實現也是可能的。
[0103] 用于隨機尖峰神經網絡的基于事件的推斷和學習
[0104] 本公開的各方面涉及執行基于事件的貝葉斯推斷和學習。
[0105] 在一些方面,尖峰神經網絡可以遵循一般的尖峰響應神經元模型(SRM)并且可以 將基于事件的尖峰定時依賴可塑性規則用于學習。這些可以在神經元形態硬件設計中實 現。因為所提議的過程可以是完全基于事件的,所以對于例如基于地址-事件表示來處理來 自傳感器的事件流可以是有用的。
[0106] 圖5解說了根據本公開的某些方面的使用通用處理器502的前述基于事件的貝葉 斯推斷和學習的示例實現500。與計算網絡(神經網絡)相關聯的變量(神經信號)、突觸權 重、系統參數,延遲,頻率槽信息,節點狀態信息,偏置權重信息,連接權重信息,和/或激發 率信息可被存儲在存儲器塊504中,而在通用處理器502處執行的指令可從程序存儲器506 加載。在本公開的一方面,加載到通用處理器502中的指令可以包括用于以下操作的代碼: 在節點處接收輸入事件、將偏置權重和連接權重應用于輸入事件以獲得中間值、基于中間 值來確定節點狀態、以及基于節點狀態來計算表示后驗概率的輸出事件率以根據隨機點過 程來生成輸出事件。
[0107] 圖6解說了根據本公開的某些方面的前述基于事件的貝葉斯推斷和學習的示例實 現600,其中存儲器602可經由互連網絡604與計算網絡(神經網絡)的個體(分布式)處理單 元(神經處理器)606對接。與計算網絡(神經網絡)相關聯的變量(神經信號)、突觸權重、系 統參數,延遲,頻率槽信息,節點狀態信息,偏置權重信息,連接權重信息,和/或激發率信息 可被存儲在存儲器602中,并且可從存儲器602經由互連網絡604的(諸)連接被加載到每個 處理單元(神經處理器)606中。在本公開的一方面,處理單元606可被配置成在節點處接收 輸入事件、將偏置權重和連接權重應用于輸入事件以獲得中間值、基于中間值來確定節點 狀態、以及基于節點狀態來計算表示后驗概率的輸出事件率以根據隨機點過程來生成輸出 事件。
[0108] 圖7解說前述基于事件的貝葉斯推斷和學習的示例實現700。如圖7中所解說的,一 個存儲器組702可與計算網絡(神經網絡)的一個處理單元704直接對接。每一個存儲器組 702可存儲與對應的處理單元(神經處理器)704相關聯的變量(神經信號)、突觸權重、和/或 系統參數,延遲,頻率槽信息,節點狀態信息,偏置權重信息,連接權重信息,和/或激發率信 息。在本公開的一方面,處理單元704可被配置成在節點處接收輸入事件、將偏置權重和連 接權重應用于輸入事件以獲得中間值、基于中間值來確定節點狀態、以及基于節點狀態來 計算表示后驗概率的輸出事件率以根據隨機點過程來生成輸出事件。
[0109] 圖8解說根據本公開的某些方面的神經網絡800的示例實現。如圖8中所解說的,神 經網絡800可具有多個局部處理單元802,它們可執行本文所描述的方法的各種操作。每個 局部處理單元802可包括存儲該神經網絡的參數的局部狀態存儲器804和局部參數存儲器 806。另外,局部處理單元802可具有用于存儲局部模型程序的局部(神經元)模型程序(LMP) 存儲器808、用于存儲局部學習程序的局部學習程序(LLP)存儲器810、以及局部連接存儲器 812。此外,如圖8中所解說的,每個局部處理單元802可與用于為該局部處理單元的各局部 存儲器提供配置的配置處理器單元814對接,并且與提供各局部處理單元802之間的路由的 路由單元816對接。
[0110] 在一種配置中,神經元模型被配置成用于在節點處接收輸入事件、將偏置權重和 連接權重應用于輸入事件以獲得中間值、至少部分地基于中間值來確定節點狀態、以及基 于節點狀態來計算表示后驗概率的輸出事件率以根據隨機點過程來生成輸出事件。神經元 模型包括接收裝置、應用裝置、確定裝置、和計算裝置。在一個方面,接收裝置、應用裝置、確 定裝置、和/或計算裝置可以是被配置成執行所敘述的功能的通用處理器502、程序存儲器 506、存儲器塊504、存儲器602、互連網絡604、處理單元606、處理單元704、局部處理單元 802、和/或路由連接處理元件816。在另一配置中,前述裝置可以是被配置成執行由前述裝 置所敘述的功能的任何模塊或任何設備。
[0111]根據本公開的某些方面,每一個局部處理單元802可被配置成基于神經網絡的期 望的一個或多個功能性特征來確定神經網絡的參數,以及隨著所確定的參數被進一步適 配、調諧和更新來使這一個或多個功能性特征朝著期望的功能性特征發展。
[0112]圖9是解說根據本公開的各方面的貝葉斯網絡的框圖900。貝葉斯網絡可以在推理 中提供對隨機變量的相依性的自然表示。參照圖9,示出了節點X和Y。節點X(902)和Y(904) 可以包括隨機變量,并且可以處于有限狀態集中具有X和Υ的某種相依性的離散狀態中。這 些節點及它們之間的相依性可以在一些方面經由尖峰神經網絡來表示。例如,尖峰神經網 絡可以接收Ν個可觀察的隨機變量Ye {1,···Ν}。根據本公開的各方面,可以確定所觀察到的 變量Υ的根本原因 Χ£{1,···Κ}。
[0113] 圖10是解說根據本公開的各方面的用于執行基于事件的貝葉斯推斷和學習的示 例性架構1000的框圖。參照圖10,輸入事件流1002可被接收并且用于生成輸入蹤跡(例如, 1006a-1006N)。輸入事件流1002可以經由一條或多條(例如,N條)輸入線來供應。在一些方 面,輸入流可被配置為輸入陣列。例如,該陣列中的每個輸入(并且相應地每條輸入線)可以 對應于顯示器的像素。
[0114] 輸入事件流1002可以包括尖峰或尖峰事件。輸入事件流內的每個尖峰或尖峰事件 可以對應于所觀察到的變量Y的樣本。在一些方面,例如,可以經由濾波器1004a-1004N來對 輸入事件流1 〇〇2進行濾波以提供時間持續性。濾波器1004a- 1004N可以例如是矩形脈沖濾 波器、興奮性突觸后電位(EPSP)濾波器、或任何其他濾波器。在一個示例性方面,這些濾波 器(例如,1004a-1004N)可被表達為:
[0116] 其中e是輸入核函數并且te是輸入核函數的時間支持。
[0117] 輸入尖峰事件可以如下與濾波器1004a_1004N(例如,EPSP)卷積并且積分以形成 輸入蹤跡1006a-1006N:
[0118] Un(t)=/e (τ)ρη(?-τ)(1τ (16)
[0119] 其中ρη是y(n)的尖峰響應函數,在該y(n)中作出Ν次觀察。
[0120] 偏置權重(1008的最上面一行)和/或連接權重(1008的其余行)可被應用于輸入蹤 跡1006以形成經加權輸入。偏置項可被指定并且應用于每個偏置權重。在圖10的示例性架 構中,偏置項為1(參見圖15,元素1506)。然而,這僅是示例性的,并且可以根據設計偏好用 另一偏置項來替代。
[0121 ]在一些方面,可以將偏置權重和/或連接權重(1008)中的每一者應用于相應行中 的輸入蹤跡(例如,1006a- 1006Ν)。例如,連接權重<、wf和《#可被應用于輸入蹤跡m。 [0122]每一列中的經加權輸入可以進而被加總以確定節點狀態1010(例如, V\Vk、和νκ)。 在一些方面,節點狀態1010可以包括膜電位。節點狀態1010可如下來表達:
[0124]其中k是區間,并且是用于區間k的偏置權重。
[0125]在一些方面,節點狀態可以使用歸一化諸如以贏者全得(WTA)或軟WTA方式來確 定。在一個示例性方面,節點狀態1010可以通過以下歸一化子來歸一化:
[0127] 其中λχ是與平均總激發率相對應的常數。
[0128] 節點狀態1010可以經受隨機過程(例如,泊松過程)以經由輸出節點(例如,1012a、 1012k、1012K)產生輸出事件流1016。在一些方面,隨機或點過程可以包括與輸出事件率相 對應的強度函數。輸出事件率可以表示基于節點狀態1010的后驗概率。在一些方面,輸出事 件率可以在時間基礎上計算。替換地,在一些方面,輸出事件率可以在事件基礎上計算。
[0129] 在一些方面,可以經由濾波器1014a_1014N對經由輸出節點1012a_1012K的輸出進 行濾波。在一個示例性方面,濾波器l〇14a-1014N可以包括數字濾波器以提供數字輸出。
[0130] 在一些方面,這些節點可以是神經元。由此,輸出事件流1016可以是具有表示后驗 概率的輸出激發率的尖峰事件。即,神經元可以激發尖峰,這些尖峰具有作為神經元狀態 (例如,膜電位)的函數的激發概率。例如,輸出節點(例如,1 〇 12a_l012K)的激發率(并且進 而輸出事件流)可以通過下式給出:
[0132]在一些方面,可以如下從輸出激發率計算輸出尖峰事件時間:
[0134] 其中ξ~Exp(l)是從具有速率參數1的指數分布得到的隨機數。
[0135] 在一些方面,尖峰定時依賴可塑性(STDP)規則可以被應用于實現學習。例如,可以 基于輸出事件流1016(例如,來自后驗分布的輸出樣本)來更新偏置權重和/或連接權重 (1008)中的每一者。例如,可以如下應用STDP規則:
[0138] 其中τ=ι·_1 Δ t和:? 控制學習速率r,并且c〇是常數〇
[0139] 當然,這僅是示例性的,并且其他學習規則和/或學習模型可以實現學習。使用 STDP學習規則,可以在事件基礎上更新偏置和/或連接權重。例如,在一些方面,可以在尖峰 事件發生時更新偏置和/或連接權重1008。
[0140] 在一個示例性方面,該架構可被操作以檢測事件。在輸入事件的情形中,可以基于 所接收到的可被視為輸入電流的一個或多個輸入事件來確定輸入蹤跡(例如,輸入蹤跡 1006a-1006N)。在一些方面,例如,可以基于輸入事件偏移來遞增或遞減輸入電流,該輸入 事件偏移可以基于所接收到的輸入事件的定時來確定。
[0141] 偏置權重和/或連接權重1008可被應用于輸入電流。輸入電流可以進而被加總以 計算(或更新)神經元狀態1010。經更新的神經元狀態1010可以隨后被用于計算輸出神經元 1012a-1012K的激發率。所計算出的激發率還可以調整或更新預計的輸出事件定時。即,對 于要經由輸出神經元1012a-1012K輸出的每個事件或尖峰,可以基于經更新的激發率來計 算和更新該事件或尖峰的預計定時。如果輸入事件在預計的輸出事件tith之前在切#人處發生 (這會將神經元的瞬時尖峰速率(例如,λ"從λ舊改變成λ新),則例如可以如下更新預計的輸 出事件時間:
[0143] 在輸出事件或尖峰的情形中,可以例如使用以上描述的STDP規則來更新偏置權重 和/或連接權重(1008)。隨后,可以估計下一輸出事件(例如,尖峰)。
[0144] 以此方式,參照圖9,通過采樣Υ(904),可以推斷Χ(902)的先前狀態。此外,可以給 出在給定某個X的情況下得到Υ的似然性(例如,該似然性可以由輸出神經元來表示)。
[0145] 相應地,可以使用示例性架構1000來實現眾多應用。此類應用可以包括但不限于 模式識別、對空間模式的時間序列的學習。
[0146] 在一些方面,圖10的架構可被模塊化。圖11是解說根據本公開的各方面的用于執 行基于事件的貝葉斯推斷和學習的示例性推斷引擎模塊1100的框圖。在一些方面,推斷引 擎模塊1100的配置可以對應于圖10的架構1000的配置。
[0147] 參照圖11,推斷引擎模塊1100包括輸入塊1102、輸入蹤跡塊1006、偏置和連接權重 塊1008、連接、以及輸出塊1110。輸出塊可被配置成包括如以上參照圖10描述的節點1010和 1012a-1012Κ。推斷引擎模塊1100可被用于構造較大且較復雜的系統。
[0148] 圖12是解說根據本公開的各方面的使用用于執行基于事件的貝葉斯推斷和學習 的模塊11 〇〇的地址事件表示(AER)傳感器的示例性架構1200的框圖。如圖12中所示,AER傳 感器1202a和1202b(統稱為AER傳感器1202)可以捕捉事件。盡管示出了兩個AER傳感器,但 這僅是示例性的并且可以采用一個或多個輸入。
[0149] 所捕捉到的事件可被供應給特征模塊1204。特征模塊1204可以具有與圖11的推斷 引擎模塊1100的配置和功能相似的配置和功能。特征模塊1204可以從AER傳感器1202a-1202b接收輸入事件流,并且進而產生與AER傳感器1202a-1202b的環境的未觀察到的特征 相對應的輸出事件流。其他推斷引擎模塊(例如,1206a、1206b和1206c,它們可被統稱為推 斷引擎模塊1206)可被納入以確定與未觀察到的特征有關的附加信息。
[0150] 在一個示例中,AER傳感器1202a-1202b可以包括相機。相機可以例如被配置成捕 捉給定空間中的對象的存在。在一個示例中,相機可以提供關于給定空間中的對象的位置 的2D事件信息。特征模塊的輸出可以被供應給推斷引擎模塊1206a、1206b、1206c,這些推斷 引擎模塊1206a、1206b、1206c可以進而推斷給定空間內的對象的3D坐標的一部分。
[0151] 推斷引擎模塊1206a-1206c可以經由監督器1208訓練以改進模塊1206a-1206c的 推斷。在該示例中,推斷引擎模塊1206a-1206c所推斷出的坐標(X,Y,Z)可以與給定空間中 的該對象的實際或真實位置作比較。在一些方面,可以基于真實位置信息來更新偏置和/或 連接權重以改進來自模塊1206a-1206c中的每一者的推斷的準確性。
[0152] 圖13A示出包括位于空間中的某些位置處的各種對象的空間1300。相機(CAM1和 CAM2)可以檢測給定3D空間中的對象1302的存在。即,在一些方面,當相機在給定空間中檢 測到對象時,相機可以生成事件(例如,尖峰事件)。在圖13B和13C中,分別示出由相機(例 如,CAM1和CAM2)檢測到的對象1302。每一個相機可以產生與檢測到的對象1302相對應的事 件流。如圖13B和13C中所示,在事件流中表示3D對象1302的2D(例如,僅X和y坐標)表示 (1310和1320)。相應地,為了準確地表示給定空間中的每一個對象,確定第三坐標(例如,z 坐標)將是有益的。
[0153] 參照圖12,AER傳感器1202a和1202b可以包括相機,諸如圖13的CAM1和CAM2。由此, 經由相機捕捉到的事件可以被輸入到如以上所討論的用于執行基于事件的貝葉斯推斷和 學習的模塊中。使用用于貝葉斯推斷和學習的模塊(例如,推斷引擎模塊1100),可以從經由 相機(例如,CAM 1和CAM 2)提供的輸入流確定圖13 A中所示的給定空間中的對象的位置(例 如,x、y和z坐標)。
[0154] 例如,CAM1和CAM2可以各自向特征模塊1204提供64x64個輸入(例如,圖13B和13C 中所示的1302的表示),該特征模塊1204可以例如包括尖峰神經網絡的隱藏層。這些輸入可 以基于相機(例如,CAM1和CAM2)例如在被劃分成4x4x4網格的空間中所感測到的東西。特征 模塊1204可以隨后通過如上所述的推斷和學習來將這兩個64x64輸入轉換成被推斷引擎模 塊1206a-1206c接收的64個3D空間輸出。推斷引擎模塊1206a-1206c可以隨后通過如上所述 的推斷和學習來將這些輸出量化成數個坐標,例如,每個維度四個坐標。以此方式,可以僅 使用2D AER相機(例如,圖13的CAM1和CAM2)來實現3D視覺。盡管描述了64x64個輸入、64個 特征以及針對每個坐標的4個輸出,但是本公開不限于此類數字。在該3D視覺示例中,在每 個模塊中不使用偏置權重塊。
[0155] 在一些方面,可以使用可經由監督器1208(例如,Sx、SY和Sz)提供的實際對象位置 來訓練這些模塊以訓練對象的真實位置(例如,x、y和z坐標)。一旦訓練了推斷引擎模塊 1206a-1206c,就可以禁用監督器并且可以在沒有監督器輸入1208的情況下操作推斷引擎 模塊 1206a-1206c。
[0156] 在一些方面,用于基于事件的推斷和學習的架構可以被配置成用于隱馬爾科夫模 型的學習。馬爾科夫模型是對其中狀態以非確定的方式取決于先前狀態的過程進行建模的 隨機模型。在隱馬爾科夫模型(HMM)中,狀態是僅可部分觀察的。
[0157]圖14A是解說隱馬爾科夫模型的示圖1400。參照圖14A,隨機變量Xt e {1,…,K}是 隱藏的,并且隨機變量Yte{l,···,《是可見的。{Xt}和{Yt}具有如下的依存性:
[0158] Xt-Yt基于發射概率矩陣P (Yt = η | Xt = k);
[0159] -xt基于轉移概率矩陣P(xt = k| =k')。
[0160] 發射概率管控在給定隱藏變量(Xt)在特定時間處的狀態的情況下所觀察到的變 量(Yt)在該時間處的分布。另一方面,轉移概率控制在給定了時間t-Ι處的隱藏狀態的情況 下可以選取在時間t處的隱藏狀態的方式。
[0161] 圖14B是解說根據本公開的各方面的用于隱馬爾科夫模型的基于事件的推斷和學 習的示例性架構的高級框圖。如圖14B中所示,該架構可以包括推斷引擎模塊1452,為了易 于理解和解釋,該推斷引擎模塊1452將Y示為模塊輸入并且將f示為模塊輸出(f是X的估 計)1454。在一些方面,從Y到的輸入可以是瞬時的。f輸出還可以經由反饋路徑或者回流 連接1458被輸入該模塊。反饋路徑1458可能經受延遲。如圖14B中所示,該延遲可以是一時 間段。當然,這僅是示例性的并且不是限定性的。注意,從Y到f的連接是后向連接,而來自 麗的反饋連接1458是前向連接。
[0162] 圖15是解說根據本公開的各方面的用于隱馬爾科夫模型的基于事件的推斷和學 習的示例性架構1500的框圖。參照圖15,示例性架構1500包括與以上參照圖10描述的那些 組件相似的組件。
[0163] 輸入事件流1502可被輸入(參見圖15的左上側)并且用于產生輸入蹤跡{un}(例 如,1506a、1506η、1506N)。偏置權重和/或連接權重1508可被應用于輸入蹤跡并且被加總以 確定節點1510的節點狀態。進而,該節點狀態可被用于計算輸出節點1512a-1512Κ的激發率 并且生成輸出事件流1516。類似于圖14B,輸出事件流1516可以經由反饋路徑1518被供應作 為輸入。
[0164] 在一些方面,輸入濾波器η(τ)可被應用于輸出事件流1516。輸入蹤跡(例如, 1506a、1506η、1506Ν)可以對應于來自如圖14Α中所示的Υ的輸入。在一些方面,連接權重 l?f]可以共同地充當發射概率矩陣。在一些方面,連接權重hfj可以包括可以通過下式給 出的對數發射概率:
[0166] 其中C是常數。
[0167] 可以對應于X(參見圖14A)的輸出可以經由反饋路徑1518來供應并且用于產生輸 入蹤跡{uk}(例如,1506z、1506k、和1506K)。在一些方面,輸入濾波器η(τ)(例如,1504z、 1504k和1504Κ)可被應用于輸出事件流1516。輸入濾波器η(τ)(例如,1504z、1504k和1504Κ) 可被配置為e (τ)的時延版本,以使得η( τ-l) = e (τ)。相應地,輸入蹤跡{uk}(例如,1506z、 1506k和1506K)可以與輸入蹤跡{u n}(例如,1506a、1506η和1506N)相比被延遲一個時間步 長。
[0168] 在一些方面,連接權重{W& } (1508的最下面三行)可以共同地充當轉移概率矩陣。 在一些方面,連接權重{wkk3可以包括可以通過下式給出的對數轉移概率:
[0169] wkk = l〇g p(xt = k | Xt-i = k')+C (25)
[0170] 其中C是常數。
[0171] 以此方式,用于基于事件的推斷和學習的架構可被配置成確定隱藏變量的狀態并 且由此可被操作以求解隱馬爾科夫模型。
[0172] 圖16解說根據本公開的各方面的用于執行基于事件的貝葉斯推斷和學習的方法 1600。在框1602,該過程在一節點處接收輸入事件。該節點可以是軟件對象、神經元、硬件模 塊、在處理器上操作的軟件、尖峰神經網絡、或類似物。
[0173] 在一些方面,輸入事件可以對應于來自輸入分布的樣本。此外,在一些方面,輸入 事件可被濾波以將這些輸入事件轉換成脈沖。例如,可以使用矩形脈沖濾波器來對輸入事 件進行濾波。
[0174] 在框1604,該過程將偏置權重和連接權重應用于輸入事件以獲得中間值。在框 1606,該過程基于中間值來確定節點狀態。在一些方面,節點狀態可以通過對中間值進行加 總來確定。
[0175] 在框1608,該過程基于節點狀態來計算表示后驗概率的輸出事件率以根據隨機點 過程來生成輸出事件。
[0176] 此外,在框1610,該過程應用STDP規則以更新表示對數似然性的偏置和/或連接權 重。在一些方面,偏置權重可以對應于先驗概率,并且連接權重可以表示對數似然性。
[0177] 在一些方面,該過程可以進一步求解隱馬爾科夫模型。例如,該過程可以進一步包 括供應輸出事件作為反饋以提供附加的輸入事件。該過程還可以包括將第二組連接權重應 用于附加的輸入事件以獲得第二組中間值。該過程可以進一步包括基于節點狀態和第二組 中間值來計算隱藏節點狀態。在一些方面,可以對附加的輸入事件進行濾波,以使得附加的 輸入事件是經時延的。
[0178] 以上所描述的方法的各種操作可由能夠執行相應功能的任何合適的裝置來執行。 這些裝置可包括各種硬件和/或軟件組件和/或模塊,包括但不限于電路、專用集成電路 (ASIC)、或處理器。一般而言,在附圖中有解說的操作的場合,那些操作可具有帶相似編號 的相應配對裝置加功能組件。
[0179] 如本文所使用的,術語"確定"涵蓋各種各樣的動作。例如,"確定"可包括演算、計 算、處理、推導、研究、查找(例如,在表、數據庫或其他數據結構中查找)、探知及諸如此類。 另外,"確定"可包括接收(例如接收信息)、訪問(例如訪問存儲器中的數據)、及類似動作。 而且,"確定"可包括解析、選擇、選取、確立及類似動作。
[0180] 如本文中所使用的,引述一列項目中的"至少一個"的短語是指這些項目的任何組 合,包括單個成員。作為示例,"a、b或c中的至少一個"旨在涵蓋:a、b、c、a-b、a_c、b_c、和a-b-c〇
[0181] 結合本公開所描述的各種解說性邏輯框、模塊、以及電路可用設計成執行本文所 描述功能的通用處理器、數字信號處理器(DSP)、專用集成電路(ASIC)、現場可編程門陣列 信號(FPGA)或其他可編程邏輯器件(PLD)、分立的門或晶體管邏輯、分立的硬件組件或其任 何組合來實現或執行。通用處理器可以是微處理器,但在替換方案中,該處理器可以是任何 市售的處理器、控制器、微控制器、或狀態機。處理器還可以被實現為計算設備的組合,例如 DSP與微處理器的組合、多個微處理器、與DSP核心協同的一個或多個微處理器、或任何其它 此類配置。
[0182] 結合本公開所描述的方法或算法的步驟可直接在硬件中、在由處理器執行的軟件 模塊中、或在這兩者的組合中體現。軟件模塊可駐留在本領域所知的任何形式的存儲介質 中。可使用的存儲介質的一些示例包括隨機存取存儲器(RAM)、只讀存儲器(R0M)、閃存、可 擦除可編程只讀存儲器(EPROM)、電可擦除可編程只讀存儲器(EEPR0M)、寄存器、硬盤、可移 動盤、CD-ROM,等等。軟件模塊可包括單條指令、或許多條指令,且可分布在若干不同的代碼 段上,分布在不同的程序間以及跨多個存儲介質分布。存儲介質可被耦合到處理器以使得 該處理器能從/向該存儲介質讀寫信息。替換地,存儲介質可以被整合到處理器。
[0183] 本文所公開的方法包括用于實現所描述的方法的一個或多個步驟或動作。這些方 法步驟和/或動作可以彼此互換而不會脫離權利要求的范圍。換言之,除非指定了步驟或動 作的特定次序,否則具體步驟和/或動作的次序和/或使用可以改動而不會脫離權利要求的 范圍。
[0184] 本文中所描述的功能可以在硬件、軟件、固件、或其任何組合中實現。如果以硬件 實現,則示例硬件配置可包括設備中的處理系統。處理系統可以用總線架構來實現。取決于 處理系統的具體應用和整體設計約束,總線可包括任何數目的互連總線和橋接器。總線可 將包括處理器、機器可讀介質、以及總線接口的各種電路鏈接在一起。總線接口可用于尤其 將網絡適配器等經由總線連接至處理系統。網絡適配器可用于實現信號處理功能。對于某 些方面,用戶接口(例如,按鍵板、顯示器、鼠標、操縱桿等)也可被連接至總線。總線還可鏈 接各種其他電路(諸如定時源、外圍設備、穩壓器、電源管理電路等),這些電路在本領域中 是眾所周知的,因此將不再贅述。
[0185] 處理器可負責管理總線和一般處理,包括執行存儲在機器可讀介質上的軟件。處 理器可用一個或多個通用和/或專用處理器來實現。示例包括微處理器、微控制器、DSP處理 器、以及其他能執行軟件的電路系統。軟件應當被寬泛地解釋成意指指令、數據、或其任何 組合,無論是被稱作軟件、固件、中間件、微代碼、硬件描述語言、或其他。作為示例,機器可 讀介質可包括隨機存取存儲器(RAM)、閃存、只讀存儲器(R0M)、可編程只讀存儲器(PR0M)、 可擦式可編程只讀存儲器(EPROM)、電可擦式可編程只讀存儲器(EEPR0M)、寄存器、磁盤、光 盤、硬驅動器、或者任何其他合適的存儲介質、或其任何組合。機器可讀介質可被實施在計 算機程序產品中。該計算機程序產品可以包括包裝材料。
[0186] 在硬件實現中,機器可讀介質可以是處理系統中與處理器分開的一部分。然而,如 本領域技術人員將容易領會的,機器可讀介質、或其任何部分可在處理系統外部。作為示 例,機器可讀介質可包括傳輸線、由數據調制的載波、和/或與設備分開的計算機產品,所有 這些都可由處理器通過總線接口來訪問。替換地或補充地,機器可讀介質、或其任何部分可 被集成到處理器中,諸如高速緩存和/或通用寄存器文件可能就是這種情形。雖然所討論的 各種組件可被描述為具有特定位置,諸如局部組件,但它們也可按各種方式來配置,諸如某 些組件被配置成分布式計算系統的一部分。
[0187] 處理系統可以被配置為通用處理系統,該通用處理系統具有一個或多個提供處理 器功能性的微處理器、和提供機器可讀介質中的至少一部分的外部存儲器,它們都通過外 部總線架構與其他支持電路系統鏈接在一起。替換地,該處理系統可以包括一個或多個神 經元形態處理器以用于實現本文所述的神經元模型和神經系統模型。作為另一替代方案, 處理系統可以用帶有集成在單塊芯片中的處理器、總線接口、用戶接口、支持電路系統、和 至少一部分機器可讀介質的專用集成電路(ASIC)來實現,或者用一個或多個現場可編程門 陣列(FPGA)、可編程邏輯器件(PLD)、控制器、狀態機、門控邏輯、分立硬件組件、或者任何其 他合適的電路系統、或者能執行本公開通篇所描述的各種功能性的電路的任何組合來實 現。取決于具體應用和加諸于整體系統上的總設計約束,本領域技術人員將認識到如何最 佳地實現關于處理系統所描述的功能性。
[0188]機器可讀介質可包括數個軟件模塊。這些軟件模塊包括當由處理器執行時使處理 系統執行各種功能的指令。這些軟件模塊可包括傳輸模塊和接收模塊。每個軟件模塊可以 駐留在單個存儲設備中或者跨多個存儲設備分布。作為示例,當觸發事件發生時,可以從硬 驅動器中將軟件模塊加載到RAM中。在軟件模塊執行期間,處理器可以將一些指令加載到高 速緩存中以提高訪問速度。隨后可將一個或多個高速緩存行加載到通用寄存器文件中以供 由處理器執行。在以下談及軟件模塊的功能性時,將理解此類功能性是在處理器執行來自 該軟件模塊的指令時由該處理器來實現的。
[0189]如果以軟件實現,則各功能可作為一條或多條指令或代碼存儲在計算機可讀介質 上或藉其進行傳送。計算機可讀介質包括計算機存儲介質和通信介質兩者,這些介質包括 促成計算機程序從一地向另一地轉移的任何介質。存儲介質可以是能被計算機訪問的任何 可用介質。作為示例而非限定,這樣的計算機可讀介質可包括RAM、ROM、EEPROM、CD-ROM或其 它光盤存儲、磁盤存儲或其它磁存儲設備、或能被用來攜帶或存儲指令或數據結構形式的 期望程序代碼且能被計算機訪問的任何其它介質。任何連接也被正當地稱為計算機可讀介 質。例如,如果軟件是使用同軸電纜、光纖電纜、雙絞線、數字訂戶線(DSL)、或無線技術(諸 如紅外(IR)、無線電、以及微波)從web網站、服務器、或其他遠程源傳送而來,則該同軸電 纜、光纖電纜、雙絞線、DSL或無線技術(諸如紅外、無線電、以及微波)就被包括在介質的定 義之中。如本文中所使用的盤(disk)和碟(disc)包括壓縮碟(CD)、激光碟、光碟、數字多用 碟(DVD)、軟盤、和藍光⑧碟,其中盤(disk)常常磁性地再現數據,而碟(disc)用激光來光學 地再現數據。因此,在一些方面,計算機可讀介質可包括非瞬態計算機可讀介質(例如,有形 介質)。另外,對于其他方面,計算機可讀介質可包括瞬態計算機可讀介質(例如,信號)。上 述的組合應當也被包括在計算機可讀介質的范圍內。
[0190]因此,某些方面可包括用于執行本文中給出的操作的計算機程序產品。例如,此類 計算機程序產品可包括其上存儲(和/或編碼)有指令的計算機可讀介質,這些指令能由一 個或多個處理器執行以執行本文中所描述的操作。對于某些方面,計算機程序產品可包括 包裝材料。
[0191]此外,應當領會,用于執行本文中所描述的方法和技術的模塊和/或其它恰適裝置 能由用戶終端和/或基站在適用的場合下載和/或以其他方式獲得。例如,此類設備能被耦 合至服務器以促成用于執行本文中所描述的方法的裝置的轉移。替換地,本文所述的各種 方法能經由存儲裝置(例如,RAM、R0M、諸如壓縮碟(CD)或軟盤等物理存儲介質等)來提供, 以使得一旦將該存儲裝置耦合至或提供給用戶終端和/或基站,該設備就能獲得各種方法。 此外,可利用適于向設備提供本文中所描述的方法和技術的任何其他合適的技術。
[0192]將理解,權利要求并不被限定于以上所解說的精確配置和組件。可在以上所描述 的方法和設備的布局、操作和細節上作出各種改動、更換和變形而不會脫離權利要求的范 圍。
【主權項】
1. 一種執行基于事件的貝葉斯推斷和學習的方法,包括: 在多個節點中的每個節點處接收輸入事件; 將偏置權重和/或連接權重應用于所述輸入事件以獲得中間值; 至少部分地基于所述中間值來確定節點狀態;以及 至少部分地基于所述節點狀態來計算表示后驗概率的輸出事件率以根據隨機點過程 來生成輸出事件。2. 如權利要求1所述的方法,其特征在于,進一步包括對所述輸入事件進行濾波以將所 述輸入事件轉換成脈沖。3. 如權利要求1所述的方法,其特征在于,所述輸入事件對應于來自輸入分布的樣本。4. 如權利要求1所述的方法,其特征在于,所述偏置權重對應于先驗概率,并且所述連 接權重表示對數似然性。5. 如權利要求1所述的方法,其特征在于,所述節點狀態是歸一化的。6. 如權利要求1所述的方法,其特征在于,所述節點包括神經元。7. 如權利要求1所述的方法,其特征在于,所述輸入事件包括尖峰序列,并且所述輸出 事件率包括激發率。8. 如權利要求1所述的方法,其特征在于,所述點過程包括對應于所述輸出事件率的強 度函數。9. 如權利要求1所述的方法,其特征在于,所述計算是在時間基礎上執行的。10. 如權利要求1所述的方法,其特征在于,所述計算是在事件基礎上執行的。11. 如權利要求1所述的方法,其特征在于,所述確定包括對所述中間值進行加總以形 成所述節點狀態。12. 如權利要求1所述的方法,其特征在于,所述輸入事件包括所定義的空間中的三維 (3D)對象的二維(2D)表示,并且所述輸出事件包括所述所定義的空間中的所述3D對象的第 三坐標。13. 如權利要求12所述的方法,其特征在于,所述輸入事件是從至少一個傳感器供應 的。14. 如權利要求13所述的方法,其特征在于,所述至少一個傳感器是地址事件表示相 機。15. 如權利要求1所述的方法,其特征在于,進一步包括: 供應所述輸出事件作為反饋以提供附加的輸入事件; 將第二組連接權重應用于所述附加的輸入事件以獲得第二組中間值;以及 至少部分地基于所述節點狀態和所述第二組中間值來計算至少一個隱藏節點狀態。16. 如權利要求15所述的方法,其特征在于,進一步包括對所述附加的輸入事件進行濾 波,以使得所述附加的輸入事件是經時延的。17. 如權利要求15所述的方法,其特征在于,所述連接權重包括發射概率矩陣,并且所 述第二組連接權重包括轉移概率矩陣。18. -種用于執行基于事件的貝葉斯推斷和學習的裝置,包括: 存儲器;以及 耦合到所述存儲器的至少一個處理器,所述至少一個處理器配置成: 在多個節點中的每個節點處接收輸入事件; 將偏置權重和/或連接權重應用于所述輸入事件以獲得中間值; 至少部分地基于所述中間值來確定節點狀態;以及 至少部分地基于所述節點狀態來計算表示后驗概率的輸出事件率以根據隨機點過程 來生成輸出事件。19. 如權利要求18所述的裝置,其特征在于,所述至少一個處理器被進一步配置成對所 述輸入事件進行濾波以將所述輸入事件轉換成脈沖。20. 如權利要求18所述的裝置,其特征在于,所述輸入事件包括尖峰序列,并且所述輸 出事件率包括激發率。21. 如權利要求18所述的裝置,其特征在于,所述至少一個處理器被進一步配置成在時 間基礎上計算所述輸出事件率。22. 如權利要求18所述的裝置,其特征在于,所述至少一個處理器被進一步配置成在事 件基礎上計算所述輸出事件率。23. 如權利要求18所述的裝置,其特征在于,所述至少一個處理器被進一步配置成通過 對所述中間值進行加總以形成所述節點狀態的方式來確定所述節點狀態。24. 如權利要求18所述的裝置,其特征在于,所述輸入事件包括所定義的空間中的三維 (3D)對象的二維(2D)表示,并且所述輸出事件包括所述所定義的空間中的所述3D對象的第 三坐標。25. 如權利要求24所述的裝置,其特征在于,進一步包括用于供應所述輸入事件的至少 一個傳感器。26. 如權利要求18所述的裝置,其特征在于,所述至少一個處理器被進一步配置成: 供應所述輸出事件作為反饋以提供附加的輸入事件; 將第二組連接權重應用于所述附加的輸入事件以獲得第二組中間值;以及 至少部分地基于所述節點狀態和所述第二組中間值來計算至少一個隱藏節點狀態。27. 如權利要求26所述的裝置,其特征在于,所述至少一個處理器被進一步配置成對所 述附加的輸入事件進行濾波,以使得所述附加的輸入事件是經時延的。28. 如權利要求27所述的裝置,其特征在于,所述連接權重包括發射概率矩陣,并且所 述第二組連接權重包括轉移概率矩陣。29. -種用于執行基于事件的貝葉斯推斷和學習的設備,包括: 用于在多個節點中的每個節點處接收輸入事件的裝置; 用于將偏置權重和/或連接權重應用于所述輸入事件以獲得中間值的裝置; 用于至少部分地基于所述中間值來確定節點狀態的裝置;以及 用于至少部分地基于所述節點狀態來計算表示后驗概率的輸出事件率以根據隨機點 過程來生成輸出事件的裝置。30. -種用于執行基于事件的貝葉斯推斷和學習的計算機程序產品,包括: 其上編碼有程序代碼的非瞬態計算機可讀介質,所述程序代碼包括: 用于在多個節點中的每個節點處接收輸入事件的程序代碼; 用于將偏置權重和/或連接權重應用于所述輸入事件以獲得中間值的程序代碼; 用于至少部分地基于所述中間值來確定節點狀態的程序代碼;以及
【文檔編號】G06N7/00GK106030620SQ201580009313
【公開日】2016年10月12日
【申請日】2015年2月19日
【發明人】X·王, B·F·貝哈巴迪, A·霍斯勞沙希
【申請人】高通股份有限公司