原位神經網絡協同處理的制作方法
【專利摘要】一種用于在神經網絡中執行協同處理的方法包括將該神經網絡的一部分交換至第一處理節點達一時間段。該方法還包括用第一處理節點來執行神經網絡的該部分。另外,該方法包括在該時間段之后將神經網絡的該部分返回給第二處理節點。此外,該方法包括用第二處理節點來執行神經網絡的該部分。
【專利說明】原位神經網絡協同處理
[0001] 相關申請的交叉引用
[0002] 本申請要求于2014年2月21日提交且題為"IN SITU NEURAL NETWORK COPROCESSING (原位神經 網絡協 同處理)" 的美國 臨時專利申請 No. 61/943 , 155 的權益 ,其公開 內容通過援引全部明確納入于此。
[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] 圖10A-F是解說根據本公開的各方面的神經網絡中的原位協同處理的示例性框圖。
[0025] 圖11和12是解說根據本公開的各方面的用于在神經網絡中執行協同處理的方法 的框圖。
[0026] 詳細描述
[0027] 以下結合附圖闡述的詳細描述旨在作為各種配置的描述,而無意表示可實踐本文 中所描述的概念的僅有的配置。本詳細描述包括具體細節以便提供對各種概念的透徹理 解。然而,對于本領域技術人員將顯而易見的是,沒有這些具體細節也可實踐這些概念。在 一些實例中,以框圖形式示出眾所周知的結構和組件以避免湮沒此類概念。
[0028] 基于本教導,本領域技術人員應領會,本公開的范圍旨在覆蓋本公開的任何方面, 不論其是與本公開的任何其他方面相獨立地還是組合地實現的。例如,可以使用所闡述的 任何數目的方面來實現裝置或實踐方法。另外,本公開的范圍旨在覆蓋使用作為所闡述的 本公開的各個方面的補充或者與之不同的其他結構、功能性、或者結構及功能性來實踐的 此類裝置或方法。應當理解,所披露的本公開的任何方面可由權利要求的一個或多個元素 來實施。
[0029]措辭"示例性"在本文中用于表示"用作示例、實例或解說"。本文中描述為"示例 性"的任何方面不必被解釋為優于或勝過其他方面。
[0030] 盡管本文描述了特定方面,但這些方面的眾多變體和置換落在本公開的范圍之 內。雖然提到了優選方面的一些益處和優點,但本公開的范圍并非旨在被限定于特定益處、 用途或目標。相反,本公開的各方面旨在能寬泛地應用于不同的技術、系統配置、網絡和協 議,其中一些作為示例在附圖以及以下對優選方面的描述中解說。詳細描述和附圖僅僅解 說本公開而非限定本公開,本公開的范圍由所附權利要求及其等效技術方案來定義。
[0031] 示例神經系統、訓練及操作
[0032] 圖1解說了根據本公開的某些方面的具有多級神經元的示例人工神經系統100。神 經系統100可具有神經元級102,該神經元級102通過突觸連接網絡104(即,前饋連接)來連 接到另一神經元級106。為簡單起見,圖1中僅解說了兩級神經元,盡管神經系統中可存在更 少或更多級神經元。應注意,一些神經元可通過側向連接來連接至同層中的其他神經元。此 外,一些神經元可通過反饋連接來后向連接至先前層中的神經元。
[0033] 如圖1所解說的,級102中的每一個神經元可以接收可由前級的神經元(未在圖1中 示出)生成的輸入信號108。信號108可表示級102的神經元的輸入電流。該電流可在神經元 膜上累積以對膜電位進行充電。當膜電位達到其閾值時,該神經元可激發并生成輸出尖峰, 該輸出尖峰將被傳遞到下一級神經元(例如,級106)。在一些建模辦法中,神經元可以連續 地向下一級神經元傳遞信號。該信號通常是膜電位的函數。此類行為可在硬件和/或軟件 (包括模擬和數字實現,諸如以下所述那些實現)中進行仿真或模擬。
[0034] 在生物學神經元中,在神經元激發時生成的輸出尖峰被稱為動作電位。該電信號 是相對迅速、瞬態的神經脈沖,其具有約為100mV的振幅和約為lms的歷時。在具有一系列連 通的神經元(例如,尖峰從圖1中的一級神經元傳遞至另一級神經元)的神經系統的特定實 施例中,每個動作電位都具有基本上相同的振幅和歷時,并且因此該信號中的信息可僅由 尖峰的頻率和數目、或尖峰的時間來表示,而不由振幅來表示。動作電位所攜帶的信息可由 尖峰、發放了尖峰的神經元、以及該尖峰相對于一個或數個其他尖峰的時間來確定。尖峰的 重要性可由向各神經元之間的連接所應用的權重來確定,如以下所解釋的。
[0035] 尖峰從一級神經元向另一級神經元的傳遞可通過突觸連接(或簡稱"突觸")網絡 104來達成,如圖1中所解說的。相對于突觸104,級102的神經元可被視為突觸前神經元,而 級106的神經元可被視為突觸后神經元。突觸104可接收來自級102的神經元的輸出信號 (即,尖峰),并根據可調節突觸權重vt|V+1) ^|'/+1>來按比例縮放那些信號,其中P是 級102的神經元與級106的神經元之間的突觸連接的總數,并且i是神經元級的指示符。在圖 1的示例中,i表示神經元級102并且i+Ι表示神經元級106。此外,經按比例縮放的信號可被 組合以作為級106中每個神經元的輸入信號。級106中的每個神經元可基于對應的組合輸入 信號來生成輸出尖峰110。可使用另一突觸連接網絡(圖1中未示出)將這些輸出尖峰110傳 遞到另一級神經元。
[0036] 生物學突觸可以仲裁突觸后神經元中的興奮性或抑制性(超極化)動作,并且還可 用于放大神經元信號。興奮性信號使膜電位去極化(即,相對于靜息電位增大膜電位)。如果 在某個時間段內接收到足夠的興奮性信號以使膜電位去極化到高于閾值,則在突觸后神經 元中發生動作電位。相反,抑制性信號一般使膜電位超極化(即,降低膜電位)。抑制性信號 如果足夠強則可抵消掉興奮性信號之和并阻止膜電位到達閾值。除了抵消掉突觸興奮以 外,突觸抑制還可對自發活躍神經元施加強力的控制。自發活躍神經元是指在沒有進一步 輸入的情況下(例如,由于其動態或反饋而)發放尖峰的神經元。通過壓制這些神經元中的 動作電位的自發生成,突觸抑制可對神經元中的激發模式進行定形,這一般被稱為雕刻。取 決于期望的行為,各種突觸104可充當興奮性或抑制性突觸的任何組合。
[0037] 神經系統100可由通用處理器、數字信號處理器(DSP)、專用集成電路(ASIC)、現場 可編程門陣列(FPGA)或其他可編程邏輯器件(PLD)、分立的門或晶體管邏輯、分立的硬件組 件、由處理器執行的軟件模塊、或其任何組合來仿真。神經系統100可用在大范圍的應用中, 諸如圖像和模式識別、機器學習、電機控制、及類似應用等。神經系統100中的每一神經元可 被實現為神經元電路。被充電至發起輸出尖峰的閾值的神經元膜可被實現為例如對流經其 的電流進行積分的電容器。
[0038]在一方面,電容器作為神經元電路的電流積分器件可被除去,并且可使用較小的 憶阻器元件來替代它。這種辦法可應用于神經元電路中,以及其中大容量電容器被用作電 流積分器的各種其他應用中。另外,每個突觸104可基于憶阻器元件來實現,其中突觸權重 變化可與憶阻器電阻的變化有關。使用納米特征尺寸的憶阻器,可顯著地減小神經元電路 和突觸的面積,這可使得實現大規模神經系統硬件實現更為切實可行。
[0039]對神經系統100進行仿真的神經處理器的功能性可取決于突觸連接的權重,這些 權重可控制神經元之間的連接的強度。突觸權重可存儲在非易失性存儲器中以在掉電之后 保留該處理器的功能性。在一方面,突觸權重存儲器可實現在與主神經處理器芯片分開的 外部芯片上。突觸權重存儲器可與神經處理器芯片分開地封裝成可更換的存儲卡。這可向 神經處理器提供多種多樣的功能性,其中特定功能性可基于當前附連至神經處理器的存儲 卡中所存儲的突觸權重。
[0040] 圖2解說了根據本公開的某些方面的計算網絡(例如,神經系統或神經網絡)的處 理單元(例如,神經元或神經元電路)202的示例性示圖200。例如,神經元202可對應于來自 圖1的級102和106的任何神經元。神經元202可接收多個輸入信號20^-20%,這些輸入信號 可以是該神經系統外部的信號、或是由同一神經系統的其他神經元所生成的信號、或這兩 者。輸入信號可以是電流、電導、電壓、實數值的和/或復數值的。輸入信號可包括具有定點 或浮點表示的數值。可通過突觸連接將這些輸入信號遞送到神經元202,突觸連接根據可調 節突觸權重206^206^1^??)對這些信號進行按比例縮放,其中N可以是神經元202的輸入連 接總數。
[0041] 神經元202可組合這些經按比例縮放的輸入信號,并且使用組合的經按比例縮放 的輸入來生成輸出信號208(即,信號Y)。輸出信號208可以是電流、電導、電壓、實數值的和/ 或復數值的。輸出信號可以是具有定點或浮點表示的數值。隨后該輸出信號208可作為輸入 信號傳遞至同一神經系統的其他神經元、或作為輸入信號傳遞至同一神經元202、或作為該 神經系統的輸出來傳遞。
[0042]處理單元(神經元)202可由電路來仿真,并且其輸入和輸出連接可由具有突觸電 路的電連接來仿真。處理單元202及其輸入和輸出連接也可由軟件代碼來仿真。處理單元 202還可由電路來仿真,而其輸入和輸出連接可由軟件代碼來仿真。在一方面,計算網絡中 的處理單元202可以是模擬電路。在另一方面,處理單元202可以是數字電路。在又一方面, 處理單元202可以是具有模擬和數字組件兩者的混合信號電路。計算網絡可包括任何前述 形式的處理單元。使用這樣的處理單元的計算網絡(神經系統或神經網絡)可用在大范圍的 應用中,諸如圖像和模式識別、機器學習、電機控制、及類似應用等。
[0043] 在神經網絡的訓練過程期間,突觸權重(例如,來自圖1的權重、4,/+1) 和/或來自圖2的權重206:-2064可用隨機值來初始化并根據學習規則而被增大或減小。本 領域技術人員將領會,學習規則的示例包括但不限于尖峰定時依賴可塑性(STDP)學習規 貝丨J、Hebb規則、Oja規則、Bienenstock-Copper-Munro(BCM)規則等。在一些方面,這些權重可 穩定或收斂至兩個值(即,權重的雙峰分布)之一。該效應可被用于減少每個突觸權重的位 數、提高從/向存儲突觸權重的存儲器讀取和寫入的速度、以及降低突觸存儲器的功率和/ 或處理器消耗。
[0044] 突觸類型
[0045] 在神經網絡的硬件和軟件模型中,突觸相關功能的處理可基于突觸類型。突觸類 型可以是非可塑突觸(權重和延遲沒有改變)、可塑突觸(權重可改變)、結構化延遲可塑突 觸(權重和延遲可改變)、全可塑突觸(權重、延遲和連通性可改變)、以及基于此的變型(例 如,延遲可改變,但在權重或連通性方面沒有改變)。多種類型的優點在于處理可以被細分。 例如,非可塑突觸可以不涉及可塑性功能的執行(或等待此類功能完成)。類似地,延遲和權 重可塑性可被細分成可一起或分開地、順序地或并行地運作的操作。不同類型的突觸對于 適用的每一種不同的可塑性類型可具有不同的查找表或公式以及參數。因此,這些方法將 針對該突觸的類型來訪問相關的表、公式或參數。
[0046] 還進一步牽涉到以下事實:尖峰定時依賴型結構化可塑性可獨立于突觸可塑性地 來執行。結構化可塑性即使在權重幅值沒有改變的情況下(例如,如果權重已達最小或最大 值、或者其由于某種其他原因而不被改變)也可被執行,因為結構化可塑性(即,延遲改變的 量)可以是pre-post(前-后)尖峰時間差的直接函數。替換地,結構化可塑性可被設為權重 變化量的函數或者可基于與權重或權重變化的界限有關的條件來設置。例如,突觸延遲可 僅在權重變化發生時或者在權重到達0的情況下才改變,但在這些權重為最大值時則不改 變。然而,具有獨立函數以使得這些過程能被并行化從而減少存儲器訪問的次數和交疊可 能是有利的。
[0047]突觸可塑性的確定
[0048]神經元可塑性(或簡稱"可塑性")是大腦中的神經元和神經網絡響應于新的信息、 感官刺激、發展、損壞、或機能障礙而改變其突觸連接和行為的能力。可塑性對于生物學中 的學習和記憶、以及對于計算神經元科學和神經網絡是重要的。已經研究了各種形式的可 塑性,諸如突觸可塑性(例如,根據Hebbian理論)、尖峰定時依賴可塑性(STDP)、非突觸可塑 性、活躍性依賴可塑性、結構化可塑性和自穩態可塑性。
[0049] STDP是調節神經元之間的突觸連接的強度的學習過程。連接強度是基于特定神經 元的輸出與收到輸入尖峰(即,動作電位)的相對定時來調節的。在STDP過程下,如果至某個 神經元的輸入尖峰平均而言傾向于緊挨在該神經元的輸出尖峰之前發生,則可發生長期增 強(LTP)。于是使得該特定輸入在一定程度上更強。另一方面,如果輸入尖峰平均而言傾向 于緊接在輸出尖峰之后發生,則可發生長期抑壓(LTD)。于是使得該特定輸入在一定程度上 更弱,并由此得名"尖峰定時依賴可塑性"。因此,使得可能是突觸后神經元興奮原因的輸入 甚至在將來作出貢獻的可能性更大,而使得不是突觸后尖峰的原因的輸入在將來作出貢獻 的可能性更小。該過程繼續,直至初始連接集合的子集保留,而所有其他連接的影響減小至 無關緊要的水平。
[0050]由于神經元一般在其許多輸入都在一短時段內發生(即,累積性足以引起輸出)時 產生輸出尖峰,因此通常保留下來的輸入子集包括傾向于在時間上相關的那些輸入。另外, 由于在輸出尖峰之前發生的輸入被加強,因此提供對相關性的最早充分累積性指示的那些 輸入將最終變成至該神經元的最后輸入。
[0051 ] STDP學習規則可因變于突觸前神經元的尖峰時間tpre與突觸后神經元的尖峰時間 tpcist之間的時間差(即,t = tpcist-tpre)來有效地適配將該突觸前神經元連接到該突觸后神經 元的突觸的突觸權重。STDP的典型公式化是若該時間差為正(突觸前神經元在突觸后神經 元之前激發)則增大突觸權重(即,增強該突觸),以及若該時間差為負(突觸后神經元在突 觸前神經元之前激發)則減小突觸權重(即,抑壓該突觸)。
[0052]在STDP過程中,突觸權重隨時間推移的改變可通常使用指數式衰退來達成,如由 下式給出的:
[0054] 其中k+和lTsign(At)分別是針對正和負時間差的時間常數,a+和a-是對應的比例縮 放幅值,并且μ是可應用于正時間差和/或負時間差的偏移。
[0055] 圖3解說了根據STDP,突觸權重作為突觸前(presynaptic)和突觸后 (postsynaptic)尖峰的相對定時的函數而改變的示例性示圖300。如果突觸前神經元在突 觸后神經元之前激發,則對應的突觸權重可被增大,如曲線圖300的部分302中所解說的。該 權重增大可被稱為該突觸的LTP。從曲線圖部分302可觀察到,LTP的量可因變于突觸前和突 觸后尖峰時間之差而大致呈指數式地下降。相反的激發次序可減小突觸權重,如曲線圖300 的部分304中所解說的,從而導致該突觸的LTD。
[0056]如圖3中的曲線圖300中所解說的,可向STDP曲線圖的LTP(因果性)部分302應用負 偏移lx軸的交越點306(y = 0)可被配置成與最大時間滯后重合以考慮到來自層i-Ι的各因 果性輸入的相關性。在基于幀的輸入(即,呈特定歷時的包括尖峰或脈沖的幀的形式的輸 入)的情形中,可計算偏移值μ以反映幀邊界。該幀中的第一輸入尖峰(脈沖)可被視為要么 如直接由突觸后電位所建模地隨時間衰退,要么在對神經狀態的影響的意義上隨時間衰 退。如果該幀中的第二輸入尖峰(脈沖)被視為與特定時間幀相關或有關,則該幀之前和之 后的有關時間可通過使STDP曲線的一個或多個部分偏移以使得這些有關時間中的值可以 不同(例如,對于大于一個幀為負,而對于小于一個幀為正)來在該時間幀邊界處被分開并 在可塑性意義上被不同地對待。例如,負偏移μ可被設為偏移LTP以使得曲線實際上在大于 幀時間的pre-post時間處變得低于零并且它由此為LTD而非LTP的一部分。
[0057]神經元模型及操作
[0058]存在一些用于設計有用的尖峰發放神經元模型的一般原理。良好的神經元模型在 以下兩個計算態相(regime)方面可具有豐富的潛在行為:重合性檢測和功能性計算。此外, 良好的神經元模型應當具有允許時間編碼的兩個要素:輸入的抵達時間影響輸出時間,以 及重合性檢測能具有窄時間窗。最后,為了在計算上是有吸引力的,良好的神經元模型在連 續時間上可具有閉合形式解,并且具有穩定的行為,包括在靠近吸引子和鞍點之處。換言 之,有用的神經元模型是可實踐且可建模豐富的、現實的且生物學一致的行為并且允許對 神經電路進行工程設計和反向工程設計兩者的神經元模型。
[0059] 神經元模型可取決于事件,諸如輸入抵達、輸出尖峰或其他事件,無論這些事件是 內部的還是外部的。為了達成豐富的行為庫,能展現復雜行為的狀態機可能是期望的。如果 事件本身的發生在撇開輸入貢獻(若有)的情況下能影響狀態機并約束該事件之后的動態, 則該系統的將來狀態并非僅是狀態和輸入的函數,而是狀態、事件和輸入的函數。
[0060] 在一方面,神經元η可被建模為尖峰帶漏泄積分激發神經元,其膜電壓Vn(t)由以 下動態來支配:
[0062] 其中α和β是參數,Wm,n是將突觸前神經元m連接至突觸后神經元 n的突觸的突觸權 重,以及ym(t)是神經元m的尖峰發放輸出,其可根據AU,n被延遲達樹突或軸突延遲才抵達 神經元η的胞體。
[0063] 應注意,從建立了對突觸后神經元的充分輸入的時間直至該突觸后神經元實際上 激發的時間存在延遲。在動態尖峰發放神經元模型(諸如Izhikevich簡單模型)中,如果在 去極化閾值vt與峰值尖峰電壓v peak之間有差量,則可引發時間延遲。例如,在該簡單模型中, 神經元胞體動態可由關于電壓和恢復的微分方程對來支配,即:
[0066] 其中v是膜電位,u是膜恢復變量,k是描述膜電位v的時間尺度的參數,a是描述恢 復變量u的時間尺度的參數,b是描述恢復變量u對膜電位v的閾下波動的敏感度的參數,Vi· 是膜靜息電位,I是突觸電流,以及C是膜的電容。根據該模型,神經元被定義為在v>v peak時 發放尖峰。
[0067] Hunzinger Cold模型
[0068] Hunzinger Cold神經元模型是能再現豐富多樣的各種神經行為的最小雙態相尖 峰發放線性動態模型。該模型的一維或二維線性動態可具有兩個態相,其中時間常數(以及 耦合)可取決于態相。在閾下態相中,時間常數(按照慣例為負)表示漏泄通道動態,其一般 作用于以生物學一致的線性方式使細胞返回到靜息。閾上態相中的時間常數(按照慣例為 正)反映抗漏泄通道動態,其一般驅動細胞發放尖峰,而同時在尖峰生成中引發等待時間。 [0069]如圖4中所解說的,該模型400的動態可被劃分成兩個(或更多個)態相。這些態相 可被稱為負態相402(也可互換地稱為帶漏泄積分激發(LIF)態相,勿與LIF神經元模型混 淆)以及正態相404(也可互換地稱為抗漏泄積分激發(ALIF)態相,勿與ALIF神經元模型混 淆)。在負態相402中,狀態在將來事件的時間趨向于靜息(V-)。在該負態相中,該模型一般 展現出時間輸入檢測性質及其他閾下行為。在正態相404中,狀態趨向于尖峰發放事件 (Vs)。在該正態相中,該模型展現出計算性質,諸如取決于后續輸入事件而引發發放尖峰的 等待時間。在事件方面對動態進行公式化以及將動態分成這兩個態相是該模型的基礎特 性。
[0070]線性雙態相二維動態(對于狀態v和u)可按照慣例定義為:
[0073] 其中qP和r是用于耦合的線性變換變量。
[0074] 符號p在本文中用于標示動態態相,在討論或表達具體態相的關系時,按照慣例對 于負態相和正態相分別用符號或"+"來替換符號P。
[0075] 模型狀態由膜電位(電壓)v和恢復電流u來定義。在基本形式中,態相在本質上是 由模型狀態來決定的。該精確和通用的定義存在一些細微卻重要的方面,但目前考慮該模 型在電壓v高于閾值(v+)的情況下處于正態相404中,否則處于負態相402中。
[0076] 態相相關時間常數包括負態相時間常數τ-和正態相時間常數τ+。恢復電流時間常 數^通常是與態相無關的。出于方便起見,負態相時間常數τ_通常被指定為反映衰退的負 量,從而用于電壓演變的相同表達式可用于正態相,在正態相中指數和τ+將一般為正,正如 tu那樣。
[0077] 這兩個狀態元素的動態可在發生事件之際通過使狀態偏離其零傾線(nul Ιο 1 ine) 的變換來耦合 ,其中 變換變量為:
[0078] qP = -Tp0u-Vp (7)
[0079] Γ = δ(ν+ε) (8)
[0080] 其中δ、ε、β和V-、V+是參數。Vp的兩個值是這兩個態相的參考電壓的基數。參數ν-是 負態相的基電壓,并且膜電位在負態相中一般將朝向V-衰退。參數v+是正態相的基電壓,并 且膜電位在正態相中一般將趨向于背離v+。
[0081] v和u的零傾線分別由變換變量qP和r的負數給出。參數δ是控制u零傾線的斜率的 比例縮放因子。參數ε通常被設為等于-V-。參數β是控制這兩個態相中的ν零傾線的斜率的 電阻值。τρ時間常數參數不僅控制指數式衰退,還單獨地控制每個態相中的零傾線斜率。
[0082] 該模型可被定義為在電壓ν達到值vs時發放尖峰。隨后,狀態可在發生復位事件 (其可以與尖峰事件完全相同)之際被復位:
[0083] ν = (Q)
[0084] u = u+Au (10)
[0085] 其中1和Au是參數。復位電壓I通常被設為ν-。
[0086] 依照瞬時耦合的原理,閉合形式解不僅對于狀態是可能的(且具有單個指數項), 而且對于到達特定狀態的時間也是可能的。閉合形式狀態解為:
[0089] 因此,模型狀態可僅在發生事件之際被更新,諸如在輸入(突觸前尖峰)或輸出(突 觸后尖峰)之際被更新。還可在任何特定時間(無論是否有輸入或輸出)執行操作。
[0090] 而且,依照瞬時耦合原理,突觸后尖峰的時間可被預計,因此到達特定狀態的時間 可提前被確定而無需迭代技術或數值方法(例如,歐拉數值方法)。給定了先前電壓狀態V0, 直至到達電壓狀態Vf之前的時間延遲由下式給出:
[0092]如果尖峰被定義為發生在電壓狀態v到達vs的時間,則從電壓處于給定狀態v的時 間起測量的直至發生尖峰前的時間量或即相對延遲的閉合形式解為:
[0094] 其中義通常被設為參數v+,但其他變型可以是可能的。
[0095] 模型動態的以上定義取決于該模型是在正態相還是負態相中。如所提及的,耦合 和態相P可基于事件來計算。出于狀態傳播的目的,態相和耦合(變換)變量可基于在上一 (先前)事件的時間的狀態來定義。出于隨后預計尖峰輸出時間的目的,態相和耦合變量可 基于在下一(當前)事件的時間的狀態來定義。
[0096] 存在對該Cold模型、以及在時間上執行模擬、仿真、或建模的若干可能實現。這包 括例如事件-更新、步階-事件更新、以及步階-更新模式。事件更新是其中基于事件或"事件 更新"(在特定時刻)來更新狀態的更新。步階更新是以間隔(例如,lms)來更新模型的更新。 這不一定涉及迭代方法或數值方法。通過僅在事件發生于步階處或步階間的情況下才更新 模型或即通過"步階-事件"更新,基于事件的實現以有限的時間分辨率在基于步階的模擬 器中實現也是可能的。
[0097] 原位神經網絡協同處理
[0098]本公開的各方面涉及神經網絡模擬器,并且尤其涉及原位神經協同處理。
[0099] 通常,神經網絡模擬器在靈活性與性能(例如,模擬器的功率)之間作出折衷。例 如,設計者可能往往被迫在創建使得能夠實現學習、運行得較快、或消耗較少功率的芯片之 間作出決定。由此,當學習被離線地實現時,在不支持學習的模擬器上實現的經訓練神經網 絡可能不會經歷與在支持學習的模擬器上實現的網絡相同的輸入。這可能是因為與學習相 關聯的網絡的實時改變可能會影響神經網絡的環境(經由與該神經網絡相關聯的受動器), 該環境可能進而經由表示環境并且向網絡提供輸入的傳感器來影響至該神經網絡的輸入。 神經網絡的環境還可指示下游神經網絡,該下游神經網絡可能同樣通過反饋連接或非本地 信號來導致該神經網絡的改變。
[0100] 根據本公開的各方面,多個模擬平臺可被組合,以使得可在模擬器的正常操作期 間作出折衷。例如,不利用學習的模擬可以在不提供此特征的模擬平臺上運行。這可以是有 益的,例如在第二模擬平臺比第一模擬平臺消耗更少功率時。
[0101] 在本公開的一些方面,可以提供可彼此交換的神經協同處理器。在一些方面,神經 協同處理器可以是具有有差別特征的神經處理單元或節點。例如,一個神經處理節點可被 配置成執行學習操作,而另一處理核被配置有靜態權重。
[0102] 在一個示例性方面,特征較多的核(即,具有較多特征的核(例如,存儲器或處理 器))可接管或納入特征較少的核(g卩,具有較少特征的核)的功能。功能的納入可以按處理 節點的"熱交換"的形式進行。通過進行此"熱交換",可以增強靈活性和性能。
[0103] 圖5解說根據本公開的某些方面的前述使用通用處理器502來在神經網絡中執行 協同處理的示例實現500。與計算網絡(神經網絡)相關聯的變量(神經信號)、突觸權重、系 統參數,延遲,頻率槽信息,性能度量以及系統狀態信息可被存儲在存儲器塊504中,而在通 用處理器502處執行的指令可從程序存儲器506中加載。在本公開的一方面,加載到通用處 理器502中的指令可包括用于將神經網絡的一部分交換至第一處理節點達一時間段,用第 一處理節點來執行神經網絡的該部分,在該時間段之后將神經網絡的該部分返回給第二處 理節點,和/或用第二處理節點來執行神經網絡的該部分的代碼。
[0104] 圖6解說了根據本公開的某些方面的前述在神經網絡中執行協同處理的示例實現 600,其中存儲器602可以經由互連網絡604與計算網絡(神經網絡)的個體(分布式)處理單 元(神經處理器)606對接。與計算網絡(神經網絡)相關聯的變量(神經信號)、突觸權重、系 統參數,延遲,頻率槽信息,性能度量和系統狀態信息可被存儲在存儲器602中,并且可從存 儲器602經由互連網絡604的連接被加載到每個處理單元(神經處理器)606中。在本公開的 一方面,處理單元606可被配置成將神經網絡的一部分交換至第一處理節點達一時間段,用 第一處理節點來執行神經網絡的該部分,在該時間段之后將神經網絡的該部分返回給第二 處理節點,和/或用第二處理節點來執行神經網絡的該部分。
[0105] 圖7解說了前述在神經網絡中執行協同處理的示例實現700。如圖7中所解說的,一 個存儲器組702可與計算網絡(神經網絡)的一個處理單元704直接對接。每一個存儲器組 702可存儲與對應的處理單元(神經處理器)704相關聯的變量(神經信號)、突觸權重、和/或 系統參數,延遲,頻率槽信息,性能度量和系統狀態信息。在本公開的一方面,處理單元704 可被配置成將神經網絡的一部分交換至第一處理節點達一時間段,用第一處理節點來執行 神經網絡的該部分,在該時間段之后將神經網絡的該部分返回給第二處理節點,和/或用第 二處理節點來執行神經網絡的該部分。
[0106] 圖8解說根據本公開的某些方面的神經網絡800的示例實現。如圖8中所解說的,神 經網絡800可具有多個局部處理單元802,它們可執行本文所描述的方法的各種操作。每個 局部處理單元802可包括存儲該神經網絡的參數的局部狀態存儲器804和局部參數存儲器 806。另外,局部處理單元802可具有用于存儲局部模型程序的局部(神經元)模型程序(LMP) 存儲器808、用于存儲局部學習程序的局部學習程序(LLP)存儲器810、以及局部連接存儲器 812。此外,如圖8中所解說的,每個局部處理單元802可與用于提供對局部處理單元的局部 存儲器的配置的配置處理單元814對接,并且與提供各局部處理單元802之間的路由的路由 連接處理元件816對接。
[0107] 在一種配置中,神經元模型被配置成用于將神經網絡的一部分交換至第一處理節 點達一時間段,用第一處理節點來執行神經網絡的該部分,在該時間段之后將神經網絡的 該部分返回給第二處理節點,和/或用第二處理節點來執行神經網絡的該部分。該神經元模 型包括交換裝置、用于用第一處理節點來執行神經網絡的該部分的裝置、返回裝置、以及用 于用第二處理節點來執行神經網絡的該部分的裝置。在一個方面,交換裝置、用于用第一處 理節點來執行神經網絡的該部分的裝置、返回裝置、和/或用于用第二處理節點來處理神經 網絡的該部分的裝置可以是被配置成執行所敘述的功能的通用處理器502、程序存儲器 506、存儲器塊504、存儲器602、互連網絡604、處理單元606、處理單元704、局部處理單元 802、和/或路由連接處理單元816。在另一種配置中,前述裝置可以是被配置成執行由前述 裝置所敘述的功能的任何模塊或任何裝置。
[0108] 在另一配置中,神經元模型被配置成通過初始在第一處理核處執行神經網絡的一 部分和/或將神經網絡的該部分移至第二處理核以供進一步執行來協同定位離線學習。該 神經元模型包括協同定位裝置和移動裝置。在一個方面,協同定位裝置和/或移動裝置可以 是被配置成執行所敘述的功能的通用處理器502、程序存儲器506、存儲器塊504、存儲器 602、互連網絡604、處理單元606、處理單元704、局部處理單元802、和/或路由連接處理單元 816。在另一種配置中,前述裝置可以是被配置成執行由前述裝置所敘述的功能的任何模塊 或任何裝置。
[0109] 根據本公開的某些方面,每個局部處理單元802可被配置成基于神經網絡的一個 或多個期望功能性特征來確定神經網絡的參數,以及隨著所確定的參數被進一步適配、調 諧和更新來使這一個或多個功能性特征朝著期望的功能性特征發展。
[0110] 圖9是解說根據本公開的各方面的神經網絡的示例性架構900的框圖。架構900可 包括協同處理器904,該協同處理器904可包括處理節點A 906和處理節點B 908。在一些方 面,處理節點A 906和處理節點B 908可以被包括在相同的硬件核內。然而,這僅是示例性 的,并且處理節點A 906和處理節點B 908可替換地在分開的硬件核中提供。
[0111] 處理節點A 906和處理節點B 908可被有差別地配置。即,在一些方面,處理節點A 906和處理節點B 908可具有適于高效地執行神經網絡的功能特征的不同配置。在一些配置 中,處理節點A 906可被配置有比處理節點B更大的資源。例如,處理節點A 906可被配置有 比處理節點B 908更快和/或更大的處理能力(例如,多個處理器或更快的處理速度)。在第 二示例中,處理節點B 908可被配置有更多和/或更快的存儲器。
[0112] 處理節點A 906和處理節點B 908可被配置成經由輸入節點902來接收輸入。處理 節點A 906和處理節點B 908還可被配置成向輸出節點910提供輸出。輸入902和輸出910可 包括傳感器、致動器、以及其他輸入/輸出設備。
[0113] 另外,處理節點A 906和處理節點B 908可被通信地彼此耦合以使得能在處理節點 之間實現對神經網絡的執行中的功能特征的熱交換。即,在運行時間期間,具有較多特征的 處理節點(例如,906、908)可納入或者接管處理具有較少特征的核的功能。
[0114] 在一些方面,處理節點A 906的狀態可被復制并且經由通信路徑912或任何其他通 信路徑提供給處理節點B 908。處理節點A 906的狀態可以例如包括狀態變量、連通性信息、 以及其他狀態信息。
[0115] 處理節點B 908的資源可被分配用于從處理節點A 906接管對神經網絡的功能特 征的處理。另外,經由輸入節點902提供的輸入可被路由至處理節點B 908。基于來自處理節 點A 906的狀態信息以及這些輸入,處理節點B 908可接管處理先前在由處理節點A 906處 理的神經網絡的功能特征。
[0116]在一些方面,處理節點A 906可繼續經由輸入節點902接收被提供給處理節點B 908的相同輸入。由此,處理節點A 906的輸出可與處理節點B 908的輸出進行比較以提供一 致性檢查。在一個示例中,處理節點B 908可被配置為調試核以標識和減少處理節點A 906 中的缺陷或瑕疵。在本公開的其他方面,處理節點A 906可處理神經網絡的其他功能特征。
[0117] 處理節點B 908可繼續處理神經網絡的從處理節點A 906納入的該部分達預定時 間段或者在一些方面直至特定任務或任務集合完成。例如,處理節點B 908可被配置成實現 學習并且可繼續處理神經網絡的從處理節點A 906納入的該部分直至達成學習。在另一示 例中,處理節點B 908可被配置成實現尖峰定時依賴可塑性。由此,處理節點B可處理所接收 到的狀態信息并且應用可塑性規則直至狀態信息的更新(例如,權重更新)被確定。
[0118] 在一些方面,特征較多的處理節點(例如,906、908)可基于系統性能度量來接管處 理。例如,特征較多的處理節點可在特征較少的處理節點的系統性能低于閾值水平時納入 處理。在其他方面,可在電源被施加于系統時執行交換。當然,這些僅是示例性基礎,并且其 他系統和網絡性能度量可提供用于將處理從特征較少的處理節點交換至特征較多的處理 節點的基礎。
[0119]在任務完成或者時間段期滿之際,處理節點B 908的狀態可被復制并且被提供給 處理節點A 906作為經修改的核。在一些方面,神經網絡的一部分的返回可基于系統性能度 量來執行。例如,當系統性能高于閾值時,處理節點B 908的狀態可被復制并且被提供給處 理節點A 906。在第二示例中,返回可在電源被施加于系統(例如,系統插上電源)時發生。在 一些方面,經由輸入節點902提供的輸入可被路由至處理節點A 906以使用包括來自處理節 點B 908的狀態信息的經修改的核來繼續處理該神經網絡的功能特征。
[0120] 圖10A-F是解說根據本公開的各方面的神經網絡中的原位協同處理的示例性框圖 1000。每一個示例性框圖示出包括靜態核1008和學習核1006的協同處理器1004。靜態核 1008可被配置有用于執行與操作神經網絡或其一部分相關聯的功能的靜態權重。學習核 1006可被配置成實現學習和執行學習操作。例如,在一些方面,學習核1006可被配置成實現 增強學習或其他學習模型。
[0121] 在一些方面,學習核1006可被配置有比靜態核1008更大的資源。例如,學習核1006 可被配置有比靜態核1008更快和/或更多的處理能力(例如,多個處理器或更快的處理速 度)。在另一示例中,學習核1006可被配置有與靜態核1008不同的存儲器資源(例如,更多 和/或更快的存儲器)。不同類型的存儲器資源可以例如使得能夠實現關于參數(例如,權 重)的更大(或更小)精度或提供用于捕捉尖峰歷史的更多資源、使得能夠實現對學習規則 的訪問、以及實現尖峰定時依賴可塑性和/或比特分配。當然,與處理和性能相關的這些特 征僅是示例性的,并且與處理和性能相關的其他特征或者增強可以被有差別地包括在學習 核1006和靜態核1008中。
[0122] 盡管圖10A-F中所包括的每個框圖僅示出了一個靜態核1008和學習核1006,但是 這僅是示例性的并且是出于便于解說的目的。取而代之的是,例如,出于設計效率的目的, 可以包括任何數目的靜態核1008和學習核1006。此外,靜態核1008和學習核1006可以被包 括在相同的處理核內或者可替換地在分開的處理核中提供。
[0123] 靜態核1008和學習核1006可選擇性地經由輸入節點1002接收輸入并且向輸出節 點1010提供輸出。在一些方面,靜態核1008和學習核1006兩者均可經由輸入節點1002接收 輸入。同樣,靜態核1008和學習核1006兩者均可向輸出節點1010提供輸出以使得能夠實現 一致性檢查或處理驗證。
[0124] 在圖10A中,來自輸入節點1002的輸入被提供給靜態核1008而不是學習核1006。在 此示例性方面,神經網絡的操作可被流水線化以經由靜態核1008來執行。在一些方面,可以 不實現學習。
[0125] 在圖10B中,靜態核1008的狀態信息可被復制并且經由通信路徑1012提供給學習 核1006。該狀態信息可以例如包括神經元狀態變量、突觸狀態信息、連通性信息(例如,圖或 表)、以及權重信息。
[0126] 在圖10C中,經由輸入節點1002的輸入可被路由至學習核1006。在一些方面,輸入 可僅被提供給學習核1006。當然,輸入可替換地被提供學習核1006和靜態核1008兩者。在此 配置中,例如,可以執行驗證技術以確保來自靜態核1008和學習核1006的輸出是一致的(例 如,相等的)。
[0127] 在圖10D中,學習核1006納入或接管處理與曾由靜態核1008執行的神經網絡(或其 一部分)相關聯的功能。學習核1006可接管處理達預定義時間段或者在特定任務或功能的 執行期間接管處理。例如,在一些方面,學習核1006可從特征較少的靜態核1008接管處理以 實現STDP或學習模型(諸如結合神經網絡或其部分的強化學習)。
[0128] 在另一示例中,神經網絡的由學習核1006納入處理的部分可以是深度置信網絡的 層。深度置信網絡是由多層隨機潛伏變量構成的概率生成模型。在深度置信網絡中,學習可 例如以自頂向下的方式逐層實現。
[0129] 學習可在線或離線地實現。當進行離線學習時,學習核1006的輸入(例如,1002)和 輸出(例如,1010)可包括神經網絡的其他層。此外,學習核1006的輸入(例如,1002)和輸出 (例如,1010)還可包括傳感器、致動器等。
[0130]在一些方面,靜態核1008可繼續接收輸入。例如,靜態核1008可作為監督核來操作 以使得能夠實現受監督學習。由此,靜態核1008的輸出可訓練學習核1006。在其他方面,靜 態核1008可繼續接收輸入并且可被指派以執行與神經網絡或其一部分的操作相關聯的其 他任務。在又一些方面,靜態核1008可停止接收輸入。
[0131] 在圖10E中,在預定義時間段期滿之后或者在任務或所執行的功能完成(例如,達 成學習)之際,學習核1006可發起將處理控制返回給靜態核1008。學習核1006的狀態信息可 被復制并且經由通信路徑1012被提供給靜態核1008。在一些方面,學習核1006的狀態信息 可包括靜態核1008的不同實例。例如,該不同實例可以是基于所達成的學習來增強的經修 改靜態核1008。在另一示例中,經修改靜態核1008可包括基于STDP規則的實現對靜態權重 的更新。
[0132] 在圖10F中,學習核1006將控制返回給靜態核1008以基于來自學習核1006的狀態 信息來繼續執行與神經網絡或其一部分的操作相關聯的功能。
[0133] 圖11解說了用于在神經網絡中執行協同處理的方法1100。在框1102,神經元模型 將神經網絡的一部分交換至第一處理節點達一時間段。在框1104,神經元模型用第一處理 節點來執行神經網絡的該部分。在框1106,神經元模型在該時間段之后將神經網絡的該部 分返回給第二處理節點。此外,在框1108,神經元模型用第二處理節點來執行神經網絡的該 部分。
[0134] 圖12解說了用于在神經網絡中執行協同處理的方法1200。在框1202,神經元模型 通過初始在第一處理核處執行神經網絡的一部分來對離線學習進行協同定位。在框1204, 神經元模型將神經網絡的該部分移至第二處理核以供進一步執行。
[0135] 以上所描述的方法的各種操作可由能夠執行相應功能的任何合適的裝置來執行。 這些裝置可包括各種硬件和/或軟件組件和/或模塊,包括但不限于電路、專用集成電路 (ASIC)、或處理器。一般而言,在附圖中有解說的操作的場合,那些操作可具有帶相似編號 的相應配對裝置加功能組件。
[0136] 如本文所使用的,術語"確定"涵蓋各種各樣的動作。例如,"確定"可包括演算、計 算、處理、推導、研究、查找(例如,在表、數據庫或其他數據結構中查找)、探知及諸如此類。 另外,"確定"可包括接收(例如接收信息)、訪問(例如訪問存儲器中的數據)、及類似動作。 而且,"確定"可包括解析、選擇、選取、確立及類似動作。
[0137] 如本文所使用的,引述一列項目中的"至少一個"的短語是指這些項目的任何組 合,包括單個成員。作為示例,"a、b或c中的至少一個"旨在涵蓋:a、b、c、a-b、a-c、b-c、&& a-b-c〇
[0138] 結合本公開和附錄A所描述的各種解說性邏輯框、模塊、以及電路可用設計成執行 本文所描述功能的通用處理器、數字信號處理器(DSP)、專用集成電路(ASIC)、現場可編程 門陣列信號(FPGA)或其他可編程邏輯器件(PLD)、分立的門或晶體管邏輯、分立的硬件組件 或其任何組合來實現或執行。通用處理器可以是微處理器,但在替換方案中,處理器可以是 任何市售的處理器、控制器、微控制器、或狀態機。處理器還可以被實現為計算設備的組合, 例如DSP與微處理器的組合、多個微處理器、與DSP核心協同的一個或多個微處理器、或任何 其它此類配置。
[0139] 結合本公開和附錄A描述的方法或算法的步驟可直接在硬件中、在由處理器執行 的軟件模塊中、或在這兩者的組合中實施。軟件模塊可駐留在本領域所知的任何形式的存 儲介質中。可使用的存儲介質的一些示例包括隨機存取存儲器(RAM)、只讀存儲器(ROM)、閃 存、可擦除可編程只讀存儲器(EPROM)、電可擦除可編程只讀存儲器(EEPR0M)、寄存器、硬 盤、可移動盤、CD-ROM,等等。軟件模塊可包括單條指令、或許多條指令,且可分布在若干不 同的代碼段上,分布在不同的程序間以及跨多個存儲介質分布。存儲介質可被耦合到處理 器以使得該處理器能從/向該存儲介質讀寫信息。在替換方案中,存儲介質可以被整合到處 理器。
[0140] 本文所公開的方法包括用于實現所描述的方法的一個或多個步驟或動作。這些方 法步驟和/或動作可以彼此互換而不會脫離權利要求的范圍。換言之,除非指定了步驟或動 作的特定次序,否則具體步驟和/或動作的次序和/或使用可以改動而不會脫離權利要求的 范圍。
[0141] 本文中所描述的功能可以在硬件、軟件、固件、或其任何組合中實現。如果以硬件 實現,則示例硬件配置可包括設備中的處理系統。處理系統可以用總線架構來實現。取決于 處理系統的具體應用和整體設計約束,總線可包括任何數目的互連總線和橋接器。總線可 將包括處理器、機器可讀介質、以及總線接口的各種電路鏈接在一起。總線接口可尤其將網 絡適配器等經由總線連接至處理系統。網絡適配器可實現信號處理功能。對于某些方面,用 戶接口(例如,按鍵板、顯示器、鼠標、操縱桿,等等)也可以被連接到總線。總線還可以鏈接 各種其他電路,諸如定時源、外圍設備、穩壓器、功率管理電路以及類似電路,它們在本領域 中是眾所周知的,因此將不再進一步描述。
[0142] 處理器可負責管理總線和一般處理,包括執行存儲在機器可讀介質上的軟件。處 理器可用一個或多個通用和/或專用處理器來實現。示例包括微處理器、微控制器、DSP處理 器、以及其他能執行軟件的電路系統。軟件應當被寬泛地解釋成意指指令、數據、或其任何 組合,無論是被稱作軟件、固件、中間件、微代碼、硬件描述語言、或其他。作為示例,機器可 讀介質可包括隨機存取存儲器(RAM)、閃存、只讀存儲器(R0M)、可編程只讀存儲器(PR0M)、 可擦式可編程只讀存儲器(EPROM)、電可擦式可編程只讀存儲器(EEPR0M)、寄存器、磁盤、光 盤、硬驅動器、或者任何其他合適的存儲介質、或其任何組合。機器可讀介質可被實施在計 算機程序產品中。該計算機程序產品可以包括包裝材料。
[0143] 在硬件實現中,機器可讀介質可以是處理系統中與處理器分開的一部分。然而,如 本領域技術人員將容易領會的,機器可讀介質或其任何部分可在處理系統外部。作為示例, 機器可讀介質可包括傳輸線、由數據調制的載波、和/或與設備分開的計算機產品,所有這 些都可由處理器通過總線接口來訪問。替換地或補充地,機器可讀介質或其任何部分可被 集成到處理器中,諸如高速緩存和/或通用寄存器文件可能就是這種情形。雖然所討論的各 種組件可被描述為具有特定位置,諸如局部組件,但它們也可按各種方式來配置,諸如某些 組件被配置成分布式計算系統的一部分。
[0144] 處理系統可以被配置為通用處理系統,該通用處理系統具有一個或多個提供處理 器功能性的微處理器、以及提供機器可讀介質中的至少一部分的外部存儲器,它們都通過 外部總線架構與其他支持電路系統鏈接在一起。替換地,該處理系統可以包括一個或多個 神經元形態處理器以用于實現本文所述的神經元模型和神經系統模型。作為另一替換方 案,處理系統可以用帶有集成在單塊芯片中的處理器、總線接口、用戶接口、支持電路系統、 和至少一部分機器可讀介質的專用集成電路(ASIC)來實現,或者用一個或多個現場可編程 門陣列(FPGA)、可編程邏輯器件(PLD)、控制器、狀態機、門控邏輯、分立硬件組件、或者任何 其他合適的電路系統、或者能執行本公開通篇所描述的各種功能性的電路的任何組合來實 現。取決于具體應用和加諸于整體系統上的總設計約束,本領域技術人員將認識到如何最 佳地實現關于處理系統所描述的功能性。
[0145] 機器可讀介質可包括數個軟件模塊。這些軟件模塊包括當由處理器執行時使處理 系統執行各種功能的指令。這些軟件模塊可包括傳送模塊和接收模塊。每個軟件模塊可以 駐留在單個存儲設備中或者跨多個存儲設備分布。作為示例,當觸發事件發生時,可以從硬 驅動器中將軟件模塊加載到RAM中。在軟件模塊執行期間,處理器可以將一些指令加載到高 速緩存中以提高訪問速度。隨后可將一個或多個高速緩存行加載到通用寄存器文件中以供 處理器執行。在以下述及軟件模塊的功能性時,將理解此類功能性是在處理器執行來自該 軟件模塊的指令時由該處理器來實現的。
[0146] 如果以軟件實現,則各功能可作為一條或多條指令或代碼存儲在計算機可讀介質 上或藉其進行傳送。計算機可讀介質包括計算機存儲介質和通信介質兩者,這些介質包括 促成計算機程序從一地向另一地轉移的任何介質。存儲介質可以是能被計算機訪問的任何 可用介質。作為示例而非限定,這樣的計算機可讀介質可包括RAM、R0M、EEPR0M、CD-R0M或其 它光盤存儲、磁盤存儲或其它磁存儲設備、或能攜帶或存儲指令或數據結構形式的期望程 序代碼且能被計算機訪問的任何其它介質。另外,任何連接也被正當地稱為計算機可讀介 質。例如,如果軟件是使用同軸電纜、光纖電纜、雙絞線、數字訂戶線(DSL)、或無線技術(諸 如紅外(IR)、無線電、以及微波)從web網站、服務器、或其他遠程源傳送而來,則該同軸電 纜、光纖電纜、雙絞線、DSL或無線技術(諸如紅外、無線電、以及微波)就被包括在介質的定 義之中。如本文中所使用的盤(disk)和碟(disc)包括壓縮碟(CD)、激光碟、光碟、數字多用 碟(DVD)、軟盤、和藍光*碟,其中盤(disk)常常磁性地再現數據,而碟(disc)用激光來光學 地再現數據。因此,在一些方面,計算機可讀介質可包括非瞬態計算機可讀介質(例如,有形 介質)。另外,對于其他方面,計算機可讀介質可包括瞬態計算機可讀介質(例如,信號)。上 述的組合應當也被包括在計算機可讀介質的范圍內。
[0147] 因此,某些方面可包括用于執行本文中給出的操作的計算機程序產品。例如,此類 計算機程序產品可包括其上存儲(和/或編碼)有指令的計算機可讀介質,這些指令能由一 個或多個處理器執行以執行本文中所描述的操作。對于某些方面,計算機程序產品可包括 包裝材料。
[0148] 此外,應當領會,用于執行本文中所描述的方法和技術的模塊和/或其它恰適裝置 能由用戶終端和/或基站在適用的場合下載和/或以其他方式獲得。例如,此類設備能被耦 合至服務器以促成用于執行本文中所描述的方法的裝置的轉移。替換地,本文所述的各種 方法能經由存儲裝置(例如,RAM、R0M、諸如壓縮碟(CD)或軟盤等物理存儲介質等)來提供, 以使得一旦將該存儲裝置耦合至或提供給用戶終端和/或基站,該設備就能獲得各種方法。 此外,可利用適于向設備提供本文所描述的方法和技術的任何其他合適的技術。
[0149] 將理解,權利要求并不被限定于以上所解說的精確配置和組件。可在以上所描述 的方法和裝置的布局、操作和細節上作出各種改動、更換和變形而不會脫離權利要求的范 圍。
【主權項】
1. 一種在神經網絡中執行協同處理的方法,包括: 將所述神經網絡的一部分交換至第一處理節點達一時間段; 用所述第一處理節點來執行所述神經網絡的所述部分; 在所述時間段之后將所述神經網絡的所述部分返回給第二處理節點;以及 用所述第二處理節點來執行所述神經網絡的所述部分。2. 如權利要求1所述的方法,其特征在于,所述第一處理節點包括單獨的硬件核。3. 如權利要求1所述的方法,其特征在于,所述第一處理節點包括學習處理核。4. 如權利要求3所述的方法,其特征在于,所述學習處理核被配置有比所述第二處理節 點更高等級的資源。5. 如權利要求3所述的方法,其特征在于,學習是離線或在線地實現的。6. 如權利要求5所述的方法,其特征在于,在學習是離線地實現時,所述學習處理核的 輸入和輸出包括所述神經網絡的其他層。7. 如權利要求1所述的方法,其特征在于: 所述第一處理節點包括學習處理核; 所述第二處理節點包括靜態處理核; 交換包括: 將所述靜態處理核的狀態復制到所述學習處理核;以及 將輸入路由至所述學習處理核,以使得所述學習處理核納入所述靜態處理核的功能; 并且 返回包括: 將所述學習處理核的狀態復制到所述靜態處理核;以及 將控制返回給經修改的靜態處理核。8. 如權利要求1所述的方法,其特征在于,所述交換包括將來自所述第一處理節點的資 源分配給所述第二處理節點。9. 如權利要求1所述的方法,其特征在于,所述神經網絡的所述部分包括深度置信網絡 的層。10. 如權利要求1所述的方法,其特征在于,所述第一處理節點包括調試核。11. 如權利要求1所述的方法,其特征在于,所述交換是在系統性能低于閾值時發生的。12. 如權利要求1所述的方法,其特征在于,所述返回是在系統性能高于閾值時發生的。13. 如權利要求1所述的方法,其特征在于,所述交換或返回是在電源被施加于系統時 發生的。14. 一種用于在神經網絡中執行協同處理的裝置,包括: 存儲器;以及 耦合至所述存儲器的至少一個處理器,所述至少一個處理器被配置成: 將所述神經網絡的一部分交換至第一處理節點達一時間段; 用所述第一處理節點來執行所述神經網絡的所述部分; 在所述時間段之后將所述神經網絡的所述部分返回給第二處理節點;以及 用所述第二處理節點來執行所述神經網絡的所述部分。15. 如權利要求14所述的裝置,其特征在于,所述第一處理節點包括單獨的硬件核。16. 如權利要求14所述的裝置,其特征在于,所述第一處理節點包括學習處理核。17. 如權利要求16所述的裝置,其特征在于,所述學習處理核被配置有比所述第二處理 節點更高等級的資源。18. 如權利要求16所述的裝置,其特征在于,學習是離線或在線地實現的。19. 如權利要求18所述的裝置,其特征在于,在學習是離線地實現時,所述學習處理核 的輸入和輸出包括所述神經網絡的其他層。20. 如權利要求14所述的裝置,其特征在于,所述第一處理節點包括學習處理核并且所 述第二處理節點包括靜態處理核,并且所述至少一個處理器被進一步配置成: 將所述靜態處理核的狀態復制到所述學習處理核; 將輸入路由至所述學習處理核,以使得所述學習處理核納入所述靜態處理核的功能; 將所述學習處理核的狀態復制到所述靜態處理核;以及 將控制返回給經修改的靜態處理核。21. 如權利要求14所述的裝置,其特征在于,所述至少一個處理器被進一步配置成將來 自所述第一處理節點的資源分配給所述第二處理節點。22. 如權利要求14所述的裝置,其特征在于,所述神經網絡的所述部分包括深度置信網 絡的層。23. 如權利要求14所述的裝置,其特征在于,所述第一處理節點包括調試核。24. 如權利要求14所述的裝置,其特征在于,所述至少一個處理器被進一步配置成在系 統性能低于閾值時將所述神經網絡的所述部分交換至所述第一處理節點。25. 如權利要求14所述的裝置,其特征在于,所述至少一個處理器被進一步配置成在系 統性能高于閾值時將所述神經網絡的所述部分返回給所述第二處理節點。26. 如權利要求14所述的裝置,其特征在于,所述至少一個處理器被進一步配置成在電 源被施加于系統時將所述神經網絡的所述部分交換至所述第一處理節點或者將所述神經 網絡的所述部分返回給所述第二處理節點。27. -種用于在神經網絡中執行協同處理的設備,包括: 用于將所述神經網絡的一部分交換至第一處理節點達一時間段的裝置; 用于用所述第一處理節點來執行所述神經網絡的所述部分的裝置; 用于在所述時間段之后將所述神經網絡的所述部分返回給第二處理節點的裝置;以及 用于用所述第二處理節點來執行所述神經網絡的所述部分的裝置。28. -種用于在神經網絡中執行協同處理的計算機程序產品,包括: 其上編碼有程序代碼的非瞬態計算機可讀介質,所述程序代碼包括: 用于將所述神經網絡的一部分交換至第一處理節點達一時間段的程序代碼; 用于用所述第一處理節點來執行所述神經網絡的所述部分的程序代碼; 用于在所述時間段之后將所述神經網絡的所述部分返回給第二處理節點的程序代碼; 以及 用于用所述第二處理節點來執行所述神經網絡的所述部分的程序代碼。
【文檔編號】G06N3/08GK106030622SQ201580009326
【公開日】2016年10月12日
【申請日】2015年2月13日
【發明人】M·坎伯斯, A·路易斯, N·G·勞
【申請人】高通股份有限公司