連續(xù)時(shí)間尖峰神經(jīng)網(wǎng)絡(luò)基于事件的模擬的制作方法
【專利摘要】本公開的某些方面提供了用于連續(xù)時(shí)間神經(jīng)網(wǎng)絡(luò)基于事件的模擬的方法和裝置,該連續(xù)時(shí)間神經(jīng)網(wǎng)絡(luò)基于事件的模擬包括具有用于提供更快的事件分揀的有序和無序調(diào)度以及加速器的多維多調(diào)度體系結(jié)構(gòu);以及將建模事件操作規(guī)劃為預(yù)測(未來)和進(jìn)展(更新/向前跳轉(zhuǎn)/跟進(jìn))規(guī)則或方法以提供連續(xù)時(shí)間神經(jīng)網(wǎng)絡(luò)模型。以此方式,優(yōu)點(diǎn)包括對尖峰神經(jīng)網(wǎng)絡(luò)的更快模擬(多個(gè)量級(jí));以及一種用于對連續(xù)時(shí)間神經(jīng)元、突觸和一般神經(jīng)網(wǎng)絡(luò)行為進(jìn)行描述和建模的方法。
【專利說明】連續(xù)時(shí)間尖峰神經(jīng)網(wǎng)絡(luò)基于事件的模擬
【背景技術(shù)】
[0001] 領(lǐng)域
[0002] 本公開的某些方面一般涉及神經(jīng)網(wǎng)絡(luò),尤其涉及連續(xù)時(shí)間神經(jīng)網(wǎng)絡(luò)基于事件的模 擬。
[0003] 背景
[0004] 人工神經(jīng)網(wǎng)絡(luò)是由一群互連的人工神經(jīng)元(即神經(jīng)元模型)組成的數(shù)學(xué)或計(jì)算模 型。人工神經(jīng)網(wǎng)絡(luò)可以源自于(或至少寬松地基于)生物神經(jīng)網(wǎng)絡(luò)(諸如在人腦中發(fā)現(xiàn)的 那些生物神經(jīng)網(wǎng)絡(luò))的結(jié)構(gòu)和/或功能。由于人工神經(jīng)網(wǎng)絡(luò)能從觀察中推斷出函數(shù),因此這 樣的網(wǎng)絡(luò)在因任務(wù)或數(shù)據(jù)的復(fù)雜度使得手工設(shè)計(jì)該函數(shù)不切實(shí)際的應(yīng)用中是特別有用的。
[0005] -種類型的人工神經(jīng)網(wǎng)絡(luò)是尖峰神經(jīng)網(wǎng)絡(luò),其將時(shí)間概念以及神經(jīng)元和突觸狀態(tài) 納入到其工作模型中,由此增加了此種類型的神經(jīng)模擬中的真實(shí)性水平。尖峰神經(jīng)網(wǎng)絡(luò)基 于神經(jīng)元僅當(dāng)膜電位達(dá)到閾值時(shí)才激發(fā)這一概念。當(dāng)神經(jīng)元激發(fā)時(shí),它生成一尖峰,該尖峰 行進(jìn)至其他神經(jīng)元,這些其他神經(jīng)元繼而基于該收到的尖峰來升高或降低其膜電位。
[0006] 概述
[0007] 本公開的某些方面一般涉及基于連續(xù)時(shí)間神經(jīng)網(wǎng)絡(luò)事件的模擬。具體而言,某些 方面包括具有有序和無序調(diào)度和加速器的多維多調(diào)度體系結(jié)構(gòu)以及將建模事件操作規(guī)劃 為預(yù)測(未來)和更新(向前跳轉(zhuǎn)/跟進(jìn))規(guī)則或方法。由此有以下優(yōu)點(diǎn):對尖峰神經(jīng)網(wǎng) 絡(luò)的更快模擬(多量級(jí));以及一種用于對連續(xù)時(shí)間神經(jīng)元、突觸和一般神經(jīng)網(wǎng)絡(luò)行為進(jìn)行 描述和建模的方法。
[0008] 本公開的某些方面提供了一種用于神經(jīng)網(wǎng)絡(luò)的方法。該方法一般包括使用多級(jí)架 構(gòu)來調(diào)度神經(jīng)網(wǎng)絡(luò)中的多個(gè)節(jié)點(diǎn)的多個(gè)事件以便相比于單級(jí)的有序事件列表更快地處理 事件;以及執(zhí)行所調(diào)度的多個(gè)事件。
[0009] 本公開的某些方面提供了一種用于神經(jīng)網(wǎng)絡(luò)的裝置。該裝置一般包括處理系統(tǒng), 其被配置成:使用多級(jí)架構(gòu)來調(diào)度神經(jīng)網(wǎng)絡(luò)中的多個(gè)節(jié)點(diǎn)的多個(gè)事件以便相比于單級(jí)的有 序事件列表更快地處理事件;以及執(zhí)行所調(diào)度的多個(gè)事件。
[0010] 本公開的某些方面提供了一種用于神經(jīng)網(wǎng)絡(luò)的設(shè)備。該設(shè)備一般包括用于使用多 級(jí)架構(gòu)來調(diào)度神經(jīng)網(wǎng)絡(luò)中的多個(gè)節(jié)點(diǎn)的多個(gè)事件以便相比于單級(jí)的有序事件列表更快地 處理事件的裝置;以及用于執(zhí)行所調(diào)度的多個(gè)事件的裝置。
[0011] 本公開的某些方面提供了一種用于神經(jīng)網(wǎng)絡(luò)的計(jì)算機(jī)程序產(chǎn)品。該計(jì)算機(jī)程序產(chǎn) 品一般包括具有指令的計(jì)算機(jī)可讀介質(zhì),這些指令可執(zhí)行以便:使用多級(jí)架構(gòu)來調(diào)度神經(jīng) 網(wǎng)絡(luò)中的多個(gè)節(jié)點(diǎn)的多個(gè)事件以便相比于單級(jí)的有序事件列表更快地處理事件;以及執(zhí)行 所調(diào)度的多個(gè)事件。
[0012] 本公開的某些方面提供了一種用于神經(jīng)網(wǎng)絡(luò)的方法。該方法一般包括在神經(jīng)網(wǎng)絡(luò) 中的第一節(jié)點(diǎn)處接收第一輸入事件,基于接收到的第一輸入事件來使該第一節(jié)點(diǎn)的狀態(tài)進(jìn) 展,以及基于該第一節(jié)點(diǎn)的進(jìn)展后狀態(tài)來確定該第一節(jié)點(diǎn)的第一輸出事件(在發(fā)生過的情 況下)預(yù)期在何時(shí)發(fā)生。
[0013] 本公開的某些方面提供了一種用于神經(jīng)網(wǎng)絡(luò)的裝置。該裝置一般包括處理系統(tǒng), 其被配置成在神經(jīng)網(wǎng)絡(luò)中的第一節(jié)點(diǎn)處接收第一輸入事件,基于接收到的第一輸入事件來 使該第一節(jié)點(diǎn)的狀態(tài)進(jìn)展,以及基于該第一節(jié)點(diǎn)的進(jìn)展后狀態(tài)來確定該第一節(jié)點(diǎn)的第一輸 出事件(在發(fā)生過的情況下)預(yù)期在何時(shí)發(fā)生。
[0014] 本公開的某些方面提供了一種用于神經(jīng)網(wǎng)絡(luò)的設(shè)備。該設(shè)備一般包括用于在神經(jīng) 網(wǎng)絡(luò)中的第一節(jié)點(diǎn)處接收第一輸入事件的裝置,用于基于接收到的第一輸入事件來使該第 一節(jié)點(diǎn)的狀態(tài)進(jìn)展的裝置,以及用于基于該第一節(jié)點(diǎn)的進(jìn)展后狀態(tài)來確定該第一節(jié)點(diǎn)的第 一輸出事件(在發(fā)生過的情況下)預(yù)期在何時(shí)發(fā)生的裝置。
[0015] 本公開的某些方面提供了一種用于神經(jīng)網(wǎng)絡(luò)的計(jì)算機(jī)程序產(chǎn)品。該計(jì)算機(jī)程序產(chǎn) 品一般包括具有指令的計(jì)算機(jī)可讀介質(zhì),這些指令可執(zhí)行以便:在神經(jīng)網(wǎng)絡(luò)中的第一節(jié)點(diǎn) 處接收第一輸入事件,基于接收到的第一輸入事件來使該第一節(jié)點(diǎn)的狀態(tài)進(jìn)展,以及基于 該第一節(jié)點(diǎn)的進(jìn)展后狀態(tài)來確定該第一節(jié)點(diǎn)的第一輸出事件(在發(fā)生過的情況下)預(yù)期在 何時(shí)發(fā)生。
[0016] 本公開的某些方面提供了一種用于神經(jīng)網(wǎng)絡(luò)的方法。該方法一般包括生成引用神 經(jīng)網(wǎng)絡(luò)中的多個(gè)節(jié)點(diǎn)的事件列表的向量,其中該列表按時(shí)間從最早事件到最晚事件排序; 以及在不遍歷該列表的情況下使用該向量來在該列表中查找最接近目標(biāo)的一個(gè)或多個(gè)事 件。
[0017] 本公開的某些方面提供了一種用于神經(jīng)網(wǎng)絡(luò)的裝置。該裝置一般包括處理系統(tǒng), 其被配置成生成引用神經(jīng)網(wǎng)絡(luò)中的多個(gè)節(jié)點(diǎn)的事件列表的向量,其中該列表按時(shí)間從最早 事件到最晚事件排序;以及在不遍歷該列表的情況下使用該向量來在該列表中查找最接近 目標(biāo)的一個(gè)或多個(gè)事件。
[0018] 本公開的某些方面提供了一種用于神經(jīng)網(wǎng)絡(luò)的設(shè)備。該設(shè)備一般包括用于生成引 用神經(jīng)網(wǎng)絡(luò)中的多個(gè)節(jié)點(diǎn)的事件列表的向量的裝置,其中該列表按時(shí)間從最早事件到最晚 事件排序;以及用于在不遍歷該列表的情況下使用該向量來在該列表中查找最接近目標(biāo)的 一個(gè)或多個(gè)事件的裝置。
[0019] 本公開的某些方面提供了一種用于神經(jīng)網(wǎng)絡(luò)的計(jì)算機(jī)程序產(chǎn)品。該計(jì)算機(jī)程序產(chǎn) 品一般包括具有指令的計(jì)算機(jī)可讀介質(zhì),這些指令可執(zhí)行以便:生成引用神經(jīng)網(wǎng)絡(luò)中的多 個(gè)節(jié)點(diǎn)的事件列表的向量,其中該列表按時(shí)間從最早事件到最晚事件排序;以及在不遍歷 該列表的情況下使用該向量來在該列表中查找最接近目標(biāo)的一個(gè)或多個(gè)事件。
[0020] 附圖簡述
[0021] 為了能詳細(xì)理解本公開的以上陳述的特征所用的方式,可參照各方面來對以上簡 要概述的內(nèi)容進(jìn)行更具體的描述,其中一些方面在附圖中解說。然而應(yīng)該注意,附圖僅解說 了本公開的某些典型方面,故不應(yīng)被認(rèn)為限定其范圍,因?yàn)楸久枋隹稍试S有其他等同有效 的方面。
[0022] 圖1解說根據(jù)本公開的某些方面的示例神經(jīng)元網(wǎng)絡(luò)。
[0023] 圖2解說根據(jù)本公開的某些方面的離散時(shí)間和連續(xù)時(shí)間神經(jīng)網(wǎng)絡(luò)模擬之間關(guān)于 狀態(tài)更新、事件處理和事件排序的比較。
[0024] 圖3解說了根據(jù)本公開的某些方面的三個(gè)神經(jīng)網(wǎng)絡(luò)節(jié)點(diǎn)的事件的示例調(diào)度。
[0025] 圖4解說根據(jù)本公開的某些方面的突觸后神經(jīng)元的示例輸入事件和輸出事件。
[0026] 圖5解說了根據(jù)本公開的某些方面的單個(gè)節(jié)點(diǎn)的預(yù)測一進(jìn)展循環(huán)。
[0027] 圖6解說根據(jù)本公開的某些方面的突觸和神經(jīng)元的預(yù)測一進(jìn)展循環(huán)之間的示例 關(guān)系。
[0028] 圖7解說根據(jù)本公開的某些方面的用于允許設(shè)計(jì)者描述每一個(gè)節(jié)點(diǎn)的行為的與 每一個(gè)節(jié)點(diǎn)相關(guān)聯(lián)的預(yù)測和進(jìn)展規(guī)則。
[0029] 圖8是解說根據(jù)本公開的某些方面的用于神經(jīng)網(wǎng)絡(luò)的示例完整事件處理的流程 圖。
[0030] 圖9解說根據(jù)本公開的某些方面的節(jié)點(diǎn),這些節(jié)點(diǎn)被組織成單元以使得單元間延 遲相比于單元內(nèi)延遲是顯著的。
[0031] 圖10解說根據(jù)本公開的某些方面的在多級(jí)架構(gòu)中的不同級(jí)使用的各種事件調(diào)度 方法。
[0032] 圖11解說根據(jù)本公開的某些方面的使用圖10的多級(jí)架構(gòu)來查找示例節(jié)點(diǎn)。
[0033] 圖12解說根據(jù)本公開的某些方面的使用圖10的多級(jí)架構(gòu)來查找最早事件。
[0034] 圖13解說根據(jù)本公開的某些方面的使用圖10的多級(jí)架構(gòu)來刪除示例經(jīng)處理事 件。
[0035] 圖14解說根據(jù)本公開的某些方面的使用圖10的多級(jí)架構(gòu)來插入或刪除示例非引 導(dǎo)事件。
[0036] 圖15-17解說根據(jù)本公開的某些方面的使用圖10的多級(jí)架構(gòu)來刪除示例引導(dǎo)事 件。
[0037] 圖18解說根據(jù)本公開的某些方面的使用圖10的多級(jí)架構(gòu)來插入示例首引導(dǎo)事 件。
[0038] 圖19解說根據(jù)本公開的某些方面的引用鏈表調(diào)度的示例調(diào)度向量。
[0039] 圖20解說根據(jù)本公開的某些方面的在一個(gè)節(jié)點(diǎn)的引導(dǎo)事件改變后的圖19的調(diào)度 向量。
[0040] 圖21解說根據(jù)本公開的某些方面的示例稀疏調(diào)度向量。
[0041] 圖22概念性地解說根據(jù)本公開的某些方面的突觸前神經(jīng)元和突觸后神經(jīng)元之間 的突觸延遲。
[0042] 圖23解說根據(jù)本公開的某些方面的突觸前神經(jīng)元的輸出事件和突觸后神經(jīng)元的 對應(yīng)輸入事件之間的先前居間事件如何可以在虛擬調(diào)度的突觸后神經(jīng)元輸入事件后發(fā)生。
[0043] 圖24是根據(jù)本公開的某些方面的在沒有失效的情況下對突觸進(jìn)行建模和在有突 觸失效的情況下對突觸進(jìn)行建模之間的比較。
[0044] 圖25解說了根據(jù)本公開的某些方面的包括神經(jīng)元、突觸和連接器模型的示例神 經(jīng)網(wǎng)絡(luò)模型。
[0045] 圖26是根據(jù)本公開的某些方面的用于神經(jīng)網(wǎng)絡(luò)中的基于事件的調(diào)度的示例操作 的流程圖。
[0046] 圖26A解說能夠執(zhí)行圖26中示出的各操作的示例裝置。
[0047] 圖27是根據(jù)本公開的某些方面的用于神經(jīng)網(wǎng)絡(luò)中的連續(xù)時(shí)間的、基于事件的建 模的示例操作的流程圖。
[0048] 圖27A解說能夠執(zhí)行圖27中示出的各操作的示例裝置。
[0049] 圖28是根據(jù)本公開的某些方面的用于使用向量來在事件列表中查找一個(gè)或多個(gè) 事件的示例操作的流程圖。
[0050] 圖28A解說能夠執(zhí)行圖28中示出的各操作的示例裝置。
[0051] 詳細(xì)描述
[0052] 以下參照附圖更全面地描述本公開的各個(gè)方面。然而,本公開可用許多不同形式 來實(shí)施并且不應(yīng)解釋為被限定于本公開通篇給出的任何具體結(jié)構(gòu)或功能。相反,提供這些 方面是為了使得本公開將是透徹和完整的,并且其將向本領(lǐng)域技術(shù)人員完全傳達(dá)本公開的 范圍?;诒疚闹械慕虒?dǎo),本領(lǐng)域技術(shù)人員應(yīng)領(lǐng)會(huì),本公開的范圍旨在覆蓋本文中所披露的 本公開的任何方面,不論其是與本公開的任何其他方面相獨(dú)立地還是組合地實(shí)現(xiàn)的。例如, 可以使用本文所闡述的任何數(shù)目的方面來實(shí)現(xiàn)裝置或?qū)嵺`方法。另外,本公開的范圍旨在 覆蓋使用作為本文中所闡述的本公開的各種方面的補(bǔ)充或者另外的其他結(jié)構(gòu)、功能性、或 者結(jié)構(gòu)及功能性來實(shí)踐的此類裝置或方法。應(yīng)當(dāng)理解,本文中所披露的本公開的任何方面 可由權(quán)利要求的一個(gè)或多個(gè)元素來實(shí)施。
[0053] 措辭"示例性"在本文中用于表示"用作示例、實(shí)例或解說"。本文中描述為"示例 性"的任何方面不必被解釋為優(yōu)于或勝過其他方面。
[0054] 盡管本文描述了特定方面,但這些方面的眾多變體和置換落在本公開的范圍之 內(nèi)。雖然提到了優(yōu)選方面的一些益處和優(yōu)點(diǎn),但本公開的范圍并非旨在被限定于特定益處、 用途或目標(biāo)。相反,本公開的各方面旨在能寬泛地應(yīng)用于不同的技術(shù)、系統(tǒng)配置、網(wǎng)絡(luò)和協(xié) 議,其中一些作為示例在附圖以及以下對優(yōu)選方面的描述中解說。該詳細(xì)描述和附圖僅僅 解說本公開而非限定本公開,本公開的范圍由所附權(quán)利要求及其等效技術(shù)方案來定義。
[0055] 示例神經(jīng)系統(tǒng)
[0056] 圖1解說根據(jù)本公開的某些方面的具有多級(jí)神經(jīng)元的示例神經(jīng)系統(tǒng)100。神經(jīng)系 統(tǒng)100可包括神經(jīng)元級(jí)102,該級(jí)神經(jīng)元102通過突觸連接網(wǎng)絡(luò)104連接到另一級(jí)神經(jīng)元 106。為簡單起見,圖1中僅解說了兩級(jí)神經(jīng)元,但在典型的神經(jīng)系統(tǒng)中可存在更少或更多 級(jí)神經(jīng)元。
[0057] 如圖1所解說的,級(jí)102中的每一神經(jīng)元可接收輸入信號(hào)108,輸入信號(hào)108可以 是由前一級(jí)(圖1中未示出)的多個(gè)神經(jīng)元所生成的。信號(hào)108可表示級(jí)102的神經(jīng)元的 輸入(例如,輸入電流)。此類輸入可在神經(jīng)元膜上累積以對膜電位進(jìn)行充電。當(dāng)膜電位達(dá) 到其閾值時(shí),該神經(jīng)元可激發(fā)并生成輸出尖峰,該輸出尖峰將被傳遞到下一級(jí)神經(jīng)元(例 如,級(jí)106)。
[0058] 尖峰從一級(jí)神經(jīng)元向另一級(jí)神經(jīng)元的傳遞可通過突觸連接(或簡稱"突觸")網(wǎng)絡(luò) 104來達(dá)成,如圖1所解說的。
[0059] 突觸104可從級(jí)102的神經(jīng)元(相對于突觸104而言的突觸前神經(jīng)元)接收輸出 信號(hào)(即尖峰)。對于某些方面,這些信號(hào)可根據(jù)可調(diào)整的突觸權(quán)重wp+1)_w|'/+1)(其 中P是級(jí)102和106的神經(jīng)元之間的突觸連接的總數(shù))來縮放。對于其它方面,突觸104 可以不應(yīng)用任何突觸權(quán)重。此外,(經(jīng)縮放)信號(hào)可被組合以作為級(jí)106中每個(gè)神經(jīng)元(相 對于突觸104而言的突觸后神經(jīng)元)的輸入信號(hào)。級(jí)106中的每個(gè)神經(jīng)元可基于對應(yīng)的組 合輸入信號(hào)來生成輸出尖峰110。隨后可使用另一突觸連接網(wǎng)絡(luò)(圖1中未示出)將這些 輸出尖峰110傳遞到另一級(jí)神經(jīng)元。
[0060] 神經(jīng)系統(tǒng)100可以軟件或以硬件(例如通過電路)來仿真并且可以用在大范圍的 應(yīng)用中,諸如圖像和模式識(shí)別、機(jī)器學(xué)習(xí)、電機(jī)控制等等。神經(jīng)系統(tǒng)100中的每個(gè)神經(jīng)元(或 神經(jīng)元模型)都可以被實(shí)現(xiàn)為神經(jīng)元電路。被充電至發(fā)起輸出尖峰的閾值的神經(jīng)元膜可被 實(shí)現(xiàn)為例如對流經(jīng)其的電流進(jìn)行積分的電容器。
[0061] 示例連續(xù)時(shí)間尖峰神經(jīng)網(wǎng)絡(luò)基于事件的模擬
[0062] 神經(jīng)網(wǎng)絡(luò)的基于事件的模擬由于復(fù)雜性已經(jīng)是有問題的。主要問題是按序執(zhí)行事 件。當(dāng)神經(jīng)網(wǎng)絡(luò)節(jié)點(diǎn)(例如,突觸和/或神經(jīng)元)的數(shù)量較多且共同待決(所調(diào)度)事件 的數(shù)量較多時(shí),對調(diào)度進(jìn)行分揀變成在計(jì)算上繁重的主要任務(wù)。而且,傳統(tǒng)/常規(guī)神經(jīng)元/ 突觸模型不可適用于基于事件的模擬并且通常涉及迭代(其限制速度和穩(wěn)定性)或表查找 (其限制精確性和準(zhǔn)確性)以計(jì)算出穩(wěn)定的解。結(jié)果,基于事件的規(guī)劃通常比基于步長的 模擬慢多個(gè)量級(jí)。本公開的某些方面提供了克服上述兩個(gè)問題的連續(xù)時(shí)間神經(jīng)網(wǎng)絡(luò)事件模 擬(模型)的規(guī)劃:(1)具有有序和無序調(diào)度以及加速器的多維多調(diào)度體系結(jié)構(gòu)克服分揀 問題;以及(2)將建模事件操作規(guī)劃為預(yù)測(未來)和進(jìn)展(向前跳轉(zhuǎn)/跟進(jìn))規(guī)則或方 法克服了連續(xù)時(shí)間建模問題。優(yōu)點(diǎn)包括對尖峰神經(jīng)網(wǎng)絡(luò)的更快模擬(多個(gè)量級(jí)地更快); 以及一種用于對連續(xù)時(shí)間神經(jīng)元、突觸和一般神經(jīng)網(wǎng)絡(luò)行為進(jìn)行描述和建模的方法。
[0063] 神經(jīng)網(wǎng)絡(luò)的常規(guī)模擬按時(shí)間步長操作,每一步進(jìn)展固定時(shí)間量。狀態(tài)更新(即,對 神經(jīng)網(wǎng)絡(luò)節(jié)點(diǎn)的狀態(tài)的更新)通常在向下一步長傳播輸出之前批量完成。由差分方程描述 的神經(jīng)元模型通過眾多方法(諸如Euler方法)來評估。對此的問題是這些模型經(jīng)常由于 對包括確切時(shí)間步長的參數(shù)的敏感性而不穩(wěn)定。此外,結(jié)果只在模擬器的時(shí)間分辨率(即, 時(shí)間步長)處可用。這意味著能夠傳達(dá)的信息量是有限的。例如,如果尖峰的時(shí)間被限于 Ims的分辨率,則最大通信速率是lkbps。這還使得不可能在兩個(gè)尖峰出現(xiàn)在同一時(shí)間步長 期間時(shí)確定是否是一個(gè)尖峰引發(fā)了另一個(gè)尖峰。通過某些神經(jīng)元模型,甚至不可能在給定 固定時(shí)間分辨率的情況下區(qū)分不同的輸入。換言之,輸出是相同的,而不管輸入的定時(shí)是否 不同。此外,各模型經(jīng)常在較小的時(shí)間步長處迭代以限制(并非必需避免)不穩(wěn)定性。結(jié) 果,模擬通常慢許多倍地運(yùn)行。
[0064] 基于事件的模擬已被提議。然而,若干問題(即,建模困難和/或速度/復(fù)雜性問 題)妨礙了這些模擬獲得認(rèn)可。
[0065] 首先,具有豐富行為的神經(jīng)元模型經(jīng)常具有無法以閉合形式直接求解的差分方 程。這些模型行為在基于事件的模擬中可由迭代操作描述。這不僅有違目標(biāo),而且導(dǎo)致執(zhí) 行緩慢。一般而言,描述模型的方式對模擬施加限制。神經(jīng)元模型通常由將在給定時(shí)間步 長執(zhí)行的規(guī)則來描述。如果基于事件的模擬僅僅以不同的次序執(zhí)行時(shí)間步長更新,則沒有 優(yōu)勢。因此,需要考慮和描述神經(jīng)元行為的不同方式。
[0066] 第二,事件排序經(jīng)常是主要瓶頸。事件排序或分揀在共同待決事件的數(shù)量較大時(shí) 變成難以應(yīng)對。三個(gè)要素決定神經(jīng)網(wǎng)絡(luò)模擬的速度:狀態(tài)更新、事件處理和事件排序。這些 要素在圖2中的常規(guī)離散時(shí)間模擬202和連續(xù)時(shí)間模擬204之間的比較中描繪。
[0067] 在常規(guī)離散時(shí)間或步進(jìn)模擬的情況下,狀態(tài)更新是瓶頸(左上角的陰影框)。在基 于事件的模擬的情況下,事件排序經(jīng)常是非平凡(即,不小的)網(wǎng)絡(luò)中的瓶頸(右下角的陰 影框)。
[0068] 典型的(現(xiàn)有的)基于事件的模擬由于分揀事件的復(fù)雜性而是緩慢的。在調(diào)度中 插入、刪除和重新調(diào)度事件變成隨事件呈指數(shù)增長的問題。該問題的示例由圖3的節(jié)點(diǎn)302 示出。例如,從節(jié)點(diǎn)i到節(jié)點(diǎn)k的連接比從節(jié)點(diǎn)i到節(jié)點(diǎn)j的連接更長,并因此事件從節(jié)點(diǎn) i到達(dá)節(jié)點(diǎn)k比到節(jié)點(diǎn)j花費(fèi)更多時(shí)間。結(jié)果,在發(fā)生來自節(jié)點(diǎn)i的輸出事件之際,可以調(diào) 度以下事件:節(jié)點(diǎn)j的輸入事件1以及節(jié)點(diǎn)k的輸入事件2,后者較晚發(fā)生。作為接收到輸 入事件1的結(jié)果,假定節(jié)點(diǎn)j然后產(chǎn)生將導(dǎo)致節(jié)點(diǎn)k的輸入事件3的輸出事件。該輸入事 件3甚至可以在節(jié)點(diǎn)k的輸入事件2之前發(fā)生,如果從節(jié)點(diǎn)j到節(jié)點(diǎn)k的延遲較小的話。此 夕卜,節(jié)點(diǎn)k(至節(jié)點(diǎn)j)的輸出事件4可能必須重新調(diào)度,因?yàn)橛捎谳斎胧录?而產(chǎn)生的附加 輸入可能減少了節(jié)點(diǎn)k發(fā)放尖峰(即,生成輸出事件)花費(fèi)的時(shí)間量。
[0069] 這些調(diào)度操作示例突顯以下事實(shí):典型的基于事件的模擬需要繁重的調(diào)度分揀/ 排序操作。該負(fù)擔(dān)隨著節(jié)點(diǎn)和連接的數(shù)量的增加而急劇地(呈指數(shù))增加,因?yàn)楣?jié)點(diǎn)和連 接的數(shù)量的增加將增加事件數(shù)量。
[0070] 典型的增強(qiáng)嘗試包括僅僅使調(diào)度的前部保持被分揀。然而,如果網(wǎng)絡(luò)中的節(jié)點(diǎn)之 間的延遲變化,則事件將跨寬時(shí)間窗口混合,且該增強(qiáng)的益處會(huì)是有限的。另一種辦法是在 某一時(shí)間余量內(nèi)放松排序約束。然而,這更改了網(wǎng)絡(luò)行為??偠灾?,即使具有所提議的增 強(qiáng),典型的基于事件的模擬提供了有限的改進(jìn)希望。
[0071] 因此,需要用于在沒有狀態(tài)更新和事件排序瓶頸的情況下對神經(jīng)網(wǎng)絡(luò)(尤其針對 較大的網(wǎng)絡(luò))進(jìn)行建模的技術(shù)和裝置。
[0072] 本公開的某些方面包括調(diào)度方法、調(diào)度加速方法和建模方法。盡管這些方法是互 相關(guān)的,但它們也可獨(dú)立地使用。這些調(diào)度(加速)和建模方法與事件一起工作。這并不 意味著本公開的各方面中的所有輸入和輸出都出現(xiàn)在離散時(shí)刻。例如,抑制性突觸后電位 (IPSP)可具有隨時(shí)間增大且隨后減小的形狀。然而,包括例如IPSP的每一個(gè)行為具有相關(guān) 聯(lián)的事件,其具有特定時(shí)間,諸如IPSP開始或達(dá)到高峰的時(shí)間。
[0073] 共同待決事件
[0074] 本公開的各方面的中心要素是事件。每一個(gè)節(jié)點(diǎn)(諸如突觸或神經(jīng)元)可具有輸 入和輸出事件。在本公開中,輸入和輸出事件被描述為待決或經(jīng)調(diào)度并且通常將被一起考 慮。然而,應(yīng)理解,輸入和輸出事件也可分開處理(諸如對于某些方面在單獨(dú)的調(diào)度中處 理)。另外,輸入和輸出事件可被不同地對待,如下所述。突觸和神經(jīng)元兩者都是可具有輸 入和輸出事件的節(jié)點(diǎn)的示例。神經(jīng)元的輸入事件是來自突觸的輸出事件的結(jié)果,反之亦然。
[0075] 例如,圖4解說經(jīng)由三個(gè)突觸404與三個(gè)單獨(dú)的突觸前神經(jīng)元406 (神經(jīng)元i、j和 k)連接的突觸后神經(jīng)元402 (神經(jīng)元X),每一個(gè)突觸前/突觸后神經(jīng)元連接針對一個(gè)突觸 404。從突觸后神經(jīng)元402的角度來看,突觸后神經(jīng)元402可以從突觸404接收一個(gè)或多個(gè) 輸入事件408。輸入事件408可導(dǎo)致突觸后神經(jīng)元402調(diào)度、重新調(diào)度和/或最終輸出輸 出事件410。在突觸后神經(jīng)元402生成輸出事件410之前,輸入事件408可被插入調(diào)度和/ 或從調(diào)度中刪除,并且多個(gè)輸入事件可經(jīng)由同一突觸404接收。
[0076] 具體而言,本公開關(guān)注于"共同待決事件"。如本文中所使用的,一事件甚至在以下 情況下是與另一事件共同待決的:調(diào)度操作必須處理確定這兩個(gè)事件的次序。并非所有事 件都是共同待決事件。只有已被調(diào)度的事件可以是共同待決的。
[0077] 例如,考慮至特定神經(jīng)元的兩個(gè)輸入事件被調(diào)度成在將來發(fā)生的情形。那兩個(gè)事 件是共同待決的。如果接收神經(jīng)元尚未發(fā)放尖峰,但已被調(diào)度成在將來的特定時(shí)間發(fā)放尖 峰,則輸出尖峰事件也與輸入共同待決。然而,如果神經(jīng)元尚未發(fā)放尖峰,則一旦神經(jīng)元發(fā) 放尖峰就會(huì)發(fā)生的輸入事件尚未被調(diào)度并因此不是共同待決的。
[0078] 具有相同時(shí)間的事件的次序按照本公開的某些方面來確定。對于某些方面,該次 序通過事件調(diào)度插入機(jī)制來確定以使得進(jìn)行最少的搜索。然而,相同時(shí)間的事件可按照例 如節(jié)點(diǎn)標(biāo)識(shí)符、確定次序或基于對調(diào)度的影響來排序。
[0079] 用于基于事件的模擬的示例模型
[0080] 預(yù)測一講展循環(huán)
[0081] 預(yù)測輸出事件。當(dāng)輸出事件發(fā)生時(shí),它們生成輸入事件。輸入事件然后可招致狀 態(tài)進(jìn)展(如本文中所使用的,術(shù)語"進(jìn)展"一般指的是更新,但使用該術(shù)語而不是"更新"是 為了與離散時(shí)間系統(tǒng)中的基于步長的更新相區(qū)分)。狀態(tài)進(jìn)展可以在預(yù)期發(fā)生輸出事件時(shí) 改變。該循環(huán)(被稱為"預(yù)測一進(jìn)展循環(huán)")在圖5中針對單個(gè)節(jié)點(diǎn)解說并適用于所有節(jié)點(diǎn) (無論突觸還是神經(jīng)元)。在502,事件發(fā)生(例如,在特定節(jié)點(diǎn)處從另一節(jié)點(diǎn)接收到輸入事 件),這導(dǎo)致在504節(jié)點(diǎn)使該節(jié)點(diǎn)的狀態(tài)進(jìn)展。因?yàn)樵摴?jié)點(diǎn)的狀態(tài)在504進(jìn)展,所以該節(jié)點(diǎn) 的輸出事件的預(yù)期時(shí)間可改變,由此該節(jié)點(diǎn)在506預(yù)測該預(yù)期時(shí)間。然后,或者在502該節(jié) 點(diǎn)根據(jù)預(yù)期時(shí)間輸出輸出事件、或者在502在預(yù)期時(shí)間之前接收新輸入事件,且預(yù)測一進(jìn) 展循環(huán)重復(fù)。
[0082] 如上所述,該循環(huán)適用于每一個(gè)節(jié)點(diǎn)。因此,在具有相連節(jié)點(diǎn)的神經(jīng)網(wǎng)絡(luò)中,來自 神經(jīng)元(或突觸)的輸出生成對突觸(或神經(jīng)元)的輸入,并由此鏈接每一個(gè)節(jié)點(diǎn)的循環(huán)。
[0083] 圖6解說突觸和神經(jīng)元(突觸后神經(jīng)元)的預(yù)測一進(jìn)展循環(huán)之間的此鏈接關(guān)系的 示例。在602,事件發(fā)生(例如,在突觸處接收到來自突觸前神經(jīng)元(未示出)的輸入事件, 或者輸出事件發(fā)生并且從突觸輸出),這導(dǎo)致該突觸在604使其自己的狀態(tài)進(jìn)展。因?yàn)樵撏?觸的狀態(tài)在604進(jìn)展,所以該突觸的輸出事件的預(yù)期時(shí)間可改變,由此該突觸在606預(yù)測該 預(yù)期時(shí)間。然后,或者在602該突觸根據(jù)預(yù)期時(shí)間輸出輸出事件、或者在602在預(yù)期時(shí)間之 前接收新輸入事件,且該突觸的預(yù)測一進(jìn)展循環(huán)重復(fù)。
[0084] 此外,一旦突觸輸出事件發(fā)生,在608該輸出事件就被突觸后神經(jīng)元作為輸入事 件接收,這導(dǎo)致該神經(jīng)元在610使其自己的狀態(tài)進(jìn)展。因?yàn)樵撋窠?jīng)元的狀態(tài)在610進(jìn)展,所 以該神經(jīng)元的輸出事件的預(yù)期時(shí)間可改變,由此該神經(jīng)元在612預(yù)測該預(yù)期時(shí)間。然后,或 者在608該神經(jīng)元根據(jù)預(yù)期時(shí)間輸出輸出事件、或者在608在預(yù)期時(shí)間之前接收新輸入事 件,且該神經(jīng)元的預(yù)測一進(jìn)展循環(huán)重復(fù)。
[0085] 作為另一示例,考慮以下序列:
[0086] 1.來自突觸前神經(jīng)元A的輸出是對突觸X的輸入,在時(shí)間dtl之后到達(dá)。
[0087] 2.突觸狀態(tài)向前跳轉(zhuǎn)(進(jìn)展)時(shí)間量dtl (可以無操作或取決于已過去了多少時(shí) 間和最后狀態(tài))。突觸狀態(tài)也被調(diào)整為反映輸入(可以無操作或者學(xué)習(xí)操作或者可以改變 突觸的一個(gè)或多個(gè)狀態(tài)變量)。
[0088] 3.突觸預(yù)測在時(shí)間dt2之后將輸入傳遞給突觸后神經(jīng)元B。
[0089] 4.突觸輸出事件在時(shí)間dt2之后發(fā)生。
[0090] 5.輸出事件生成對突觸后神經(jīng)元B的輸入事件。
[0091] 6.突觸后神經(jīng)元B的狀態(tài)向前跳轉(zhuǎn)(進(jìn)展)時(shí)間量dtl+dt2。神經(jīng)元B的狀態(tài)被 調(diào)整為反映該輸入。
[0092] 7.突觸后神經(jīng)元B預(yù)測在延遲dt3之后激發(fā)。
[0093] 8.突觸后神經(jīng)兀B在延遲dt3之后激發(fā)。
[0094] 9?輸出事件生成突觸Y的輸入事件。
[0095] 10.突觸后神經(jīng)元B的狀態(tài)向前跳轉(zhuǎn)量dt3。
[0096] 11?依此類推。
[0097] 本公開的某些方面允許模型設(shè)計(jì)者(例如,神經(jīng)元或突觸模型的設(shè)計(jì)者)確定 (和/或描述)如何預(yù)測將來事件(它是否將會(huì)發(fā)生以及何時(shí)或在多少時(shí)間內(nèi)發(fā)生)。模 型設(shè)計(jì)者還可確定(和/或描述)如何進(jìn)展(向前跳轉(zhuǎn)或跟進(jìn))給定時(shí)間量。這些是在本 公開的上下文中描述節(jié)點(diǎn)(例如,神經(jīng)元或突觸)的行為的主要元素。
[0098] 例如,圖7解說根據(jù)本公開的某些方面的用于允許設(shè)計(jì)者描述每一個(gè)節(jié)點(diǎn)的行為 的與每一個(gè)節(jié)點(diǎn)相關(guān)聯(lián)的預(yù)測和進(jìn)展規(guī)則。在圖7中,設(shè)計(jì)者可使用具有預(yù)測規(guī)則706以 及一個(gè)或多個(gè)進(jìn)展規(guī)則708的神經(jīng)元模型704來描述神經(jīng)元702的行為。用于該神經(jīng)元模 型704的預(yù)測規(guī)則706 (和/或進(jìn)展規(guī)則708)可以與用于相同的神經(jīng)網(wǎng)絡(luò)或其他神經(jīng)網(wǎng)絡(luò) 中的另一神經(jīng)元模型的預(yù)測規(guī)則(和/或進(jìn)展規(guī)則)相同或不同。設(shè)計(jì)者還可使用具有預(yù) 測規(guī)則716以及一個(gè)或多個(gè)進(jìn)展規(guī)則718的突觸模型714來描述突觸712。類似地,用于該 突觸模型714的預(yù)測規(guī)則716 (和/或進(jìn)展規(guī)則718)可以與用于相同或不同的神經(jīng)網(wǎng)絡(luò)中 的另一突觸模型的預(yù)測規(guī)則(和/或進(jìn)展規(guī)則)相同或不同。
[0099] 本公開的某些方面出于總體建模/模擬的目的而對這些操作進(jìn)行抽象。例如,設(shè) 計(jì)者可能想要表現(xiàn)不同行為的各種神經(jīng)元。這些區(qū)別可通過節(jié)點(diǎn)模型來描述,但通過模擬 來實(shí)現(xiàn)。該抽象將在下文中更詳細(xì)地解釋。
[0100] 預(yù)測將來事件
[0101] 根據(jù)本公開的某些方面,預(yù)測事件。事件預(yù)測包括確定事件預(yù)期在將來何時(shí)發(fā)生。 這不要求事件實(shí)際上發(fā)生。此外,預(yù)測事件發(fā)生的時(shí)間可以在任何時(shí)間改變,直到事件實(shí)際 上發(fā)生(即,在模擬中到達(dá)事件時(shí)間)。對于某些方面,只預(yù)測輸出事件。但輸入事件和輸出 事件不應(yīng)被混淆。一個(gè)節(jié)點(diǎn)的輸出是對另一節(jié)點(diǎn)的輸入。輸入事件是輸出事件的結(jié)果。輸 入事件也被調(diào)度成在將來發(fā)生,但一旦經(jīng)調(diào)度一般就不改變(被重新調(diào)度為不同的時(shí)間)。
[0102] 如何預(yù)測突觸輸出事件?
[0103] 突觸是分別在輸入和輸出神經(jīng)元之間、或突觸前和突觸后神經(jīng)元之間的連接點(diǎn)。 通常,連接具有延遲。該延遲可能是由于信號(hào)沿突觸前神經(jīng)元的軸突向下傳播以激活突觸、 或者沿突觸后神經(jīng)元的樹突向下傳播至胞體所涉及的時(shí)間。特定抽象不是重要的。在短期 內(nèi),這些延遲可以是相對恒定的(固定或預(yù)定的)。因此,預(yù)測突觸事件變成大致以下兩種 情形:如果不存在輸入事件(突觸前尖峰),則沒有預(yù)測的突觸事件要中繼;或者如果存在 輸入事件(突觸前尖峰),則突觸輸出事件被預(yù)測為在將來發(fā)生且具有一致的預(yù)定延遲。這 些判定是由節(jié)點(diǎn)模型做出的。
[0104] 注意,在該框架中,它變成針對對可變延遲建模的簡單問題。生物學(xué)網(wǎng)絡(luò)中的延遲 可能由于動(dòng)態(tài)或結(jié)構(gòu)改變(諸如樹突結(jié)構(gòu)(諸如書脊或分支)的形成或運(yùn)動(dòng))或者這些結(jié) 構(gòu)的形狀或表面區(qū)域的物理改變而改變。這些效應(yīng)可通過改變延遲來建模。
[0105] 例如,第一輸入可以帶第一延遲地調(diào)度。然后,該延遲可由于結(jié)構(gòu)可塑性算法而改 變。第二輸入然后可以帶第二延遲地調(diào)度。對于相同或不同的突觸后神經(jīng)元,這兩個(gè)輸入 事件在相同的時(shí)間可以是共同待決的。
[0106] 如何預(yù)測神經(jīng)元輸出事件?
[0107] 神經(jīng)元模型通常由涉及狀態(tài)變量的動(dòng)態(tài)來描述。對于某些方面,神經(jīng)元輸出時(shí)間 是確定性的并且可被計(jì)算為它們的狀態(tài)變量的函數(shù)。換言之,神經(jīng)元發(fā)放尖峰之前的剩余 時(shí)間能夠在尖峰之前的一時(shí)間從狀態(tài)變量值計(jì)算。然而,注意到神經(jīng)元可在其發(fā)放尖峰之 前接收到更大輸入是重要的。該輸入可能是興奮性的,并因此減少剩余時(shí)間。或者,該輸入 可能是抑制性的,并因此增加剩余時(shí)間(可能增加至無窮,這意味著神經(jīng)元根本未被預(yù)測 為激發(fā))。因此,神經(jīng)元的所預(yù)測的輸出事件時(shí)間在狀態(tài)變量的軌跡被更改時(shí)改變。因此, 本公開的某些方面包括在每一次處理神經(jīng)元的事件時(shí)(重新)預(yù)測神經(jīng)元輸出事件。對于 其他方面,預(yù)測神經(jīng)元輸出事件只在已經(jīng)處理該神經(jīng)元的兩個(gè)或更多事件之后進(jìn)行,這取 決于各種條件(例如,自從第一事件以來逝去的時(shí)間)。
[0108] 俥狀杰講展(向前跳轉(zhuǎn)和處理事件)
[0109] 對于本公開的某些方面,進(jìn)展在處理輸入事件時(shí)、處理輸出事件時(shí)或兩者時(shí)確定。 進(jìn)展通常包括兩個(gè)操作:(1)使?fàn)顟B(tài)向前跳轉(zhuǎn)以及(2)處理事件。向前跳轉(zhuǎn)(或跟進(jìn),這取 決于視角)包括使?fàn)顟B(tài)進(jìn)展至要處理事件的時(shí)間。處理事件包括根據(jù)事件來改變狀態(tài)。例 如,如果事件是對神經(jīng)元的輸入,則可應(yīng)用輸入電流來計(jì)算新的膜電位(電壓)。如果事件 是來自神經(jīng)元的輸出,則狀態(tài)可進(jìn)展至(改變?yōu)椋┓祷氐届o息狀態(tài)(例如,靜息電位)。
[0110] 注意,一般而言,如果兩個(gè)或更多個(gè)事件具有相同的時(shí)間,則狀態(tài)通常只需在處理 第一事件之前進(jìn)展。在考慮輸入之前,某些模型甚至可以不涉及狀態(tài)進(jìn)展(這兩個(gè)操作的 次序可能并不是嚴(yán)格要求的)。
[0111] 輸Hi事件算法
[0112] 對于某些方面,每一個(gè)神經(jīng)元在給定時(shí)間都只使一個(gè)輸出事件被調(diào)度。對于某些 方面,輸出事件始終被調(diào)度(或即使未被插入調(diào)度中,也至少始終被限定或跟蹤)。此外,輸 出事件的時(shí)間可以改變(例如,可以進(jìn)展,這然后可以有效地包括重新調(diào)度)。這與輸入事 件形成對比,對于輸入事件,一旦被調(diào)度,時(shí)間一般不改變并且對于同一連接(從特定節(jié)點(diǎn) 到另一特定節(jié)點(diǎn)的連接)可能有多個(gè)輸入事件待決。
[0113] 作為示例,輸出事件可以如下處理(其中發(fā)出輸出事件的神經(jīng)元是突觸前神經(jīng) 元):
[0114] 1.對于連接到突觸前神經(jīng)元的輸出的每一個(gè)突觸:
[0115] a.預(yù)測突觸輸出事件:
[0116] i.是否將存在事件;以及
[0117] ii.事件將在何時(shí)發(fā)生(即,在多少相對時(shí)間內(nèi))。
[0118] b.如果將不存在突觸輸出事件,則
[0119] i?使突觸模型進(jìn)展(向前跳轉(zhuǎn)并處理輸入,例如學(xué)習(xí))
[0120] c.否則,如果將存在事件,但發(fā)生的相對時(shí)間為0或更少,則
[0121] i.使突觸模型進(jìn)展(向前跳轉(zhuǎn)并處理輸入,例如學(xué)習(xí));
[0122] ii.使突觸后神經(jīng)元模型進(jìn)展(向前跳轉(zhuǎn)并處理來自突觸的輸入);以及
[0123] iii.預(yù)測下一突觸后神經(jīng)元事件。
[0124] 1.如果存在所預(yù)測的輸出事件,則重新調(diào)度該事件。
[0125] 2.否則,針對無限延遲移除該事件、或者重新調(diào)度該事件。
[0126] d.否則
[0127] i.提交新輸入事件以供突觸后神經(jīng)元以所確定的延遲(從上述(a)確定)發(fā)生。
[0128] 2.對于作為輸入連接到突觸前神經(jīng)元的每一個(gè)突觸:
[0129] a.使突觸模型進(jìn)展(向前跳轉(zhuǎn)并處理輸入,例如學(xué)習(xí))
[0130] 3.使突觸前神經(jīng)元的狀態(tài)進(jìn)展(向前跳轉(zhuǎn)并處理該事件)。
[0131] 4.預(yù)測下一突觸前神經(jīng)元事件。
[0132] a.如果存在所預(yù)測的輸出事件,則重新調(diào)度該事件。
[0133] b.否則,針對無限延遲移除該事件、或者重新調(diào)度該事件。
[0134] 注意,在神經(jīng)元和神經(jīng)元的模型之間(也在突觸和突觸的模型之間)存在差別。 模型是模型設(shè)計(jì)者(模擬器用戶)針對其定義行為(經(jīng)由例如預(yù)測和進(jìn)展規(guī)則)的模型。 神經(jīng)元(或突觸)是具有相關(guān)聯(lián)的事件的模擬實(shí)體。雖然本公開可以(在節(jié)點(diǎn)及其模型之 間)互換地使用這些術(shù)語,但從上下文中應(yīng)當(dāng)清楚意指節(jié)點(diǎn)還是節(jié)點(diǎn)的模型。
[0135] 還注意,如果突觸具有零延遲,則無需調(diào)度輸入事件。而是突觸后神經(jīng)元可以立即 處理該事件。當(dāng)涉及零突觸延遲時(shí),這在下文中在題為"模型操作(預(yù)測和進(jìn)展)執(zhí)行策 略"的章節(jié)中進(jìn)一步描述。
[0136] 輸入事件算法
[0137] 輸入事件可以如下處理(其中接收突觸輸入的神經(jīng)元被稱為突觸后神經(jīng)元):
[0138] 1.使突觸進(jìn)展(向前跳轉(zhuǎn)并處理輸入,例如學(xué)習(xí))
[0139] 2.使突觸后神經(jīng)元模型進(jìn)展。
[0140] 3.預(yù)測下一突觸后神經(jīng)元事件。
[0141] a.如果存在所預(yù)測的輸出事件,則重新調(diào)度該事件。
[0142] b.否則,針對無限延遲移除該事件、或者重新調(diào)度該事件。
[0143] 注意,在模擬中,突觸輸入事件和突觸輸出事件無需被調(diào)度。這些事件可被(虛擬 地)立即處置。突觸輸入事件由神經(jīng)元輸出事件生成(它們出于模擬的目的而可被認(rèn)為是 相同的)。突觸輸出事件生成神經(jīng)元輸入事件(同樣它們出于模擬的目的而可被認(rèn)為是相 同的)。
[0144] 示例完整事件處理
[0145] 圖8示出整個(gè)事件處理,作為整體包括對用于進(jìn)展的模型規(guī)則(具有水平和垂直 線的網(wǎng)格陰影)、用于預(yù)測的規(guī)則(具有對角線的交叉陰影)以及用于網(wǎng)絡(luò)的規(guī)則(蜂巢陰 影)的調(diào)用。
[0146] 里元
[0147] 根據(jù)某些方面,節(jié)點(diǎn)(例如,神經(jīng)元)可被組織成各個(gè)單元。對于某些方面,單元 可取決于連接延遲來組織。例如,如圖9所示,節(jié)點(diǎn)可被分組成各單元900,以使得各單元之 間的連接的延遲(單元間延遲902)比單元內(nèi)的延遲(單元內(nèi)延遲904)更長,但也可考慮 相反的情況。
[0148] 一般而言,單元大小最有可能被保持相對較小。此中緣由將從調(diào)度操作中變得顯 而易見。對于某些方面,單元大小可被限于最大值,且神經(jīng)網(wǎng)絡(luò)模型可被自動(dòng)劃分成不超過 該最大值的單元。
[0149] 對于某些方面,網(wǎng)絡(luò)模型設(shè)計(jì)者也可具有用于指定哪些神經(jīng)元屬于一單元和/或 何時(shí)將神經(jīng)元分配給不同的(新)單元的選項(xiàng)。由于模型設(shè)計(jì)者可能知曉關(guān)于事件分布的 先驗(yàn)信息(由于連通性、活動(dòng)和延遲),因此這允許出于軟件或硬件中的執(zhí)行速度的目的來 策略性地將神經(jīng)元指派或分配給各單元。
[0150] 調(diào)度
[0151] 本公開的某些方面包括在發(fā)生事件之際執(zhí)行預(yù)測和進(jìn)展操作。為了確定處理事件 的次序,某些方面在不同級(jí)使用若干調(diào)度方法。圖10解說根據(jù)本公開的某些方面的在多級(jí) 架構(gòu)1000的不同級(jí)使用的各種事件調(diào)度方法。實(shí)現(xiàn)無需使用所有這些方法,但某些方面可 包括所有這些方法。
[0152] 級(jí) 0
[0153] 在多級(jí)架構(gòu)1000的最低級(jí)(級(jí)0),可維護(hù)節(jié)點(diǎn)類。這些節(jié)點(diǎn)1002可被索引并直 接訪問(即,可直接索引的節(jié)點(diǎn))。每一個(gè)節(jié)點(diǎn)1002可表示神經(jīng)網(wǎng)絡(luò)中的神經(jīng)元或突觸。
[0154] 最低級(jí)處的加速可通過建模以及以下單獨(dú)描述的模型操作(預(yù)測和進(jìn)展)執(zhí)行策 略來實(shí)現(xiàn)。
[0155] 級(jí) 1
[0156] 在下一級(jí)(級(jí)1),每一個(gè)節(jié)點(diǎn)類都具有包含節(jié)點(diǎn)1002 (僅僅該節(jié)點(diǎn))的所有共同 待決輸入和輸出事件的調(diào)度。每一個(gè)節(jié)點(diǎn)1002的成員節(jié)點(diǎn)調(diào)度是可以按分揀次序維護(hù)或 者可以部分地按分揀次序維護(hù)(例如,至少時(shí)間上最早的事件1006被首先列出)的列表 1004(例如,鏈表)。對于某些方面,可能只存在一個(gè)輸出事件(最多)。最早事件1006被 稱為"引導(dǎo)"事件。
[0157] 該級(jí)處的用于搜索插入點(diǎn)或刪除事件(列表1004中的條目)的加速可通過從列 表1004的如部、列表1004的后部和最后插入點(diǎn)(或者在時(shí)間上最接近、或者最快地或最接 近地向期望時(shí)間點(diǎn)收斂的無論哪個(gè)點(diǎn))開始并行搜索來實(shí)現(xiàn)。
[0158] 級(jí) 2
[0159] 在下一級(jí)(級(jí)2),神經(jīng)元的每一單元900可具有引導(dǎo)事件的調(diào)度1008 (在級(jí)2a)。 該調(diào)度1008只包括來自級(jí)1的引導(dǎo)事件(S卩,單元900中的每一個(gè)神經(jīng)元的最早事件),并 且對于某些方面這些引導(dǎo)事件調(diào)度可以用經(jīng)分揀的鏈表實(shí)現(xiàn)。如果每一個(gè)單元的神經(jīng)元的 數(shù)量是固定的,則調(diào)度1008中的條目數(shù)量是固定的。注意,神經(jīng)元最少將輸出事件被調(diào)度 為在將來的無限時(shí)間(即,永遠(yuǎn)不會(huì))發(fā)生。
[0160] 該級(jí)處的用于搜索插入點(diǎn)或刪除事件(調(diào)度1008中的條目)的加速可通過從調(diào) 度1008的前部、調(diào)度1008的后部和最后插入點(diǎn)(或者在時(shí)間上最接近、或者最快地或最接 近地向期望時(shí)間點(diǎn)收斂的無論哪個(gè)點(diǎn))開始并行搜索來實(shí)現(xiàn)。
[0161] 然而,該級(jí)處的更大加速可使用一個(gè)或多個(gè)參考向量(例如,實(shí)際向量1012和虛 擬向量1014)來實(shí)現(xiàn)。每一個(gè)單元900還可具有對應(yīng)的未被分揀的向量(在級(jí)2b)。每一 個(gè)向量可包含對對應(yīng)調(diào)度1008的引用。向量條目可用于按時(shí)間快速搜索調(diào)度1008。根據(jù) 某些方面,向量條目可取決于各種條件來在進(jìn)行中重建。該級(jí)2加速方法被稱為"有條件地 重新生成稀疏調(diào)度"并且在下文中單獨(dú)描述。
[0162] 級(jí) 3
[0163] 在下一級(jí)(級(jí)3),單元900可根據(jù)該單元級(jí)處的首引導(dǎo)事件來組織。這是每一個(gè) 單元900中的最早引導(dǎo)事件。一個(gè)示例是使用如圖10所解說的二叉樹1010。
[0164] 該級(jí)處的操作也可被加速。該組織無需被完全分揀(或甚至部分分揀),只要最早 的首引導(dǎo)事件可被直接找到。另一加速方法涉及確定單元大小。通過減小單元大小,較低 級(jí)處的操作復(fù)雜性可以組織單元的成本為代價(jià)而降低。隨著節(jié)點(diǎn)數(shù)的增加,單元大小可被 增大以抵消級(jí)3處維護(hù)操作的折衷。
[0165] 調(diào)度橾作
[0166] 查找節(jié)點(diǎn)
[0167] 節(jié)點(diǎn)的調(diào)度(例如,列表1004)可通過在最低級(jí)(級(jí)0)尋址節(jié)點(diǎn)1002來查找。圖 11解說通過在1102使用圖10的多級(jí)架構(gòu)1000來直接尋址節(jié)點(diǎn)1002來查找節(jié)點(diǎn)1002的 示例列表1004。
[0168] 查找最早事件
[0169] 最早事件(即,下一事件)可通過從上到下地遍歷多級(jí)架構(gòu)1000的各級(jí)來查找, 如圖12所示。從級(jí)3處的二叉樹1010的根,可通過在遍歷二叉樹1010時(shí)保持在左側(cè)、確 定單個(gè)單元900的引導(dǎo)事件調(diào)度1008中的首引導(dǎo)事件并且確定與首引導(dǎo)事件相關(guān)聯(lián)的節(jié) 點(diǎn)1002的列表1004中的最早事件1006,來在1202查找下一事件。查找下一事件涉及非常 少的計(jì)算,因?yàn)槊恳患?jí)處的最早事件已經(jīng)被確定。注意,確定下一事件是什么可以立即通過 檢查二叉樹1010的根來找到。
[0170] 刪除經(jīng)處理事件
[0171] 一旦事件已被處理,該事件就可通過從最低級(jí)(級(jí)0)處的節(jié)點(diǎn)的調(diào)度中移除來刪 除。在圖13中,已經(jīng)移除先前是圖12中的1202處的下一事件的交叉陰影事件。結(jié)果,節(jié) 點(diǎn)調(diào)度中的引導(dǎo)事件改變(即,1202處的交叉陰影事件已經(jīng)從列表1004中移除以使得存在 新的引導(dǎo)事件(未在圖13中加陰影))。在該示例中,不同節(jié)點(diǎn)1002的引導(dǎo)事件(S卩,負(fù) 斜率對角線陰影事件)是單元級(jí)處(級(jí)2a處)和甚至整個(gè)網(wǎng)絡(luò)級(jí)(級(jí)3)處的下一最早事 件,并因此變成下一事件。該更新在經(jīng)處理事件被刪除后傳播通過多級(jí)架構(gòu)1000的各級(jí), 從而產(chǎn)生圖13所示的描繪。
[0172] 插入或刪除非引導(dǎo)事件
[0173] 然而,有時(shí)事件在它不是下一事件時(shí)被插入或刪除(例如,以便被重新調(diào)度)。結(jié) 果,可牽涉較少改變,如圖14所示。在圖14中,事件1402被插入第二單元900中的特定節(jié) 點(diǎn)1002的列表1004。由于所插入的事件1402不是該節(jié)點(diǎn)1002的最早事件1006(引導(dǎo)事 件),因此由于所插入的事件1402而產(chǎn)生的對多級(jí)架構(gòu)1000中的其他各級(jí)中的任一級(jí)的更 新無需在此時(shí)進(jìn)行。
[0174] 刪除引導(dǎo)事件
[0175] 刪除引導(dǎo)事件是更復(fù)雜的。從圖15中的情形開始展示,并刪除第一單元900的第 二節(jié)點(diǎn)中的引導(dǎo)事件1502。
[0176] 首先,引導(dǎo)事件1502被從該特定節(jié)點(diǎn)的調(diào)度(節(jié)點(diǎn)1002的列表1004)中刪除。如 果被刪除的事件尚未成為引導(dǎo)事件,則這將會(huì)是操作結(jié)束。由于被刪除的事件曾經(jīng)是引導(dǎo) 事件,因此最有可能在該級(jí)和下一級(jí)(即,級(jí)1和2)執(zhí)行更新。
[0177] 為了更新該級(jí),用新引導(dǎo)事件1504來替換被刪除的引導(dǎo)事件1502,如圖16所示。 由于該引導(dǎo)事件1504是不同的,因此下一級(jí)處的調(diào)度1008也可以在此時(shí)進(jìn)行分揀,如圖17 所示。此外,由于也存在過來自向量1012的對調(diào)度條目1702的引用,因此該向量條目被無 效(該引用被移除,從而有效地將引用移位到相對于調(diào)度1008的右側(cè))。這可以使得使用 向量1012來在調(diào)度1008中查找條目的有效性稍有退化(至少直到該向量被重新生成,如 下所述)。
[0178] 由于引導(dǎo)事件未變成為單元900的首引導(dǎo)事件,因此無需為此操作更新單元級(jí)組 織(在級(jí)3)。
[0179] 插入首引導(dǎo)事件
[0180] 在所插入的事件變成單元900的新的首引導(dǎo)事件的情形中,單元級(jí)組織(在級(jí)3) 可被更新。例如,圖18解說使用圖10的多級(jí)架構(gòu)1000來插入示例首引導(dǎo)事件,這導(dǎo)致重 新組織二叉樹1010的右部。
[0181] 在圖18中,為特定節(jié)點(diǎn)1002調(diào)度新事件1802。由于該事件1802是該節(jié)點(diǎn)1002 的最早事件1006,因此列表1004被重新分揀以使得所插入的事件1802是新的最早事件。 因?yàn)樵摴?jié)點(diǎn)的引導(dǎo)事件現(xiàn)在由于所插入的事件1802而不同,所以包含該節(jié)點(diǎn)的單元900的 調(diào)度1008也被重新分揀。因?yàn)樾率录?802比另一節(jié)點(diǎn)的最早事件1804(先前曾是該單元 900的首引導(dǎo)事件)更早發(fā)生,所以調(diào)度1008被重新分揀以使得條目1806(其對應(yīng)于新事 件1802)變成條目1808(其對應(yīng)于先前的首引導(dǎo)事件(事件1804))之前的新的首引導(dǎo)事 件。這些向量條目可以移位以匹配調(diào)度1008的分揀。
[0182] 此外,因?yàn)樾率录?802是該單元的首引導(dǎo)事件且比二叉樹1010的該分支中的另 一單元的首引導(dǎo)事件(其對應(yīng)于條目1810)更早發(fā)生,所以該二叉樹的右部被重新分揀。這 通過以下操作來實(shí)現(xiàn):如1812所示地交換分支(如已經(jīng)在圖18中完成的,從圖10更新) 并將二叉樹1010的元素1814改為對應(yīng)于條目1806(表示這兩個(gè)單元之間的最早首引導(dǎo)事 件),而不是對應(yīng)于條目1810。
[0183] 分揀/部分分揀/僅最早跟蹤/不分揀
[0184] 如上所述,不同級(jí)處的調(diào)度無需保持被分揀。一個(gè)或多個(gè)調(diào)度可保持部分被分揀 或不被分揀。部分分揀包括使調(diào)度的最早部分保持被分揀,或者在時(shí)間余量內(nèi)保持事件被 分揀直到事件接近發(fā)生。在使用未被分揀的向量時(shí),后一操作在級(jí)2處是優(yōu)選的,因?yàn)橄蛄?隨時(shí)間降級(jí)。調(diào)度中的分揀時(shí)間余量的量可維持與向量引用的降級(jí)量相當(dāng)。
[0185] 有備件地重新牛成稀疏調(diào)度(非分揀)
[0186] 調(diào)度涉及插入和刪除事件以及重新調(diào)度事件(刪除并然后重新插入)。這些任務(wù) 需要確定插入或刪除點(diǎn)。在后一種情形中,要?jiǎng)h除的項(xiàng)的位置最有可能被找到。在前一種 情形中,插入點(diǎn)最有可能被找到。該點(diǎn)對應(yīng)于該項(xiàng)的正確位置以使得調(diào)度被分揀(在插入 之前和之后以及在刪除之前)。
[0187] 鏈表對于容易地插入和刪除事件而言是方便的。然而,通過常規(guī)手段在鏈表中搜 索插入或刪除點(diǎn)通常涉及從頭開始并向前移動(dòng)通過每一項(xiàng)直到找到期望點(diǎn)。這可能會(huì)非常 非常緩慢。
[0188] 本公開的一方面包括從前部、后部和最后插入點(diǎn)并行搜索。然而,在具有稀疏調(diào)度 向量的情況下,甚至可以進(jìn)一步減少搜索時(shí)間。
[0189] 稀疏調(diào)度向量利用以下事實(shí):單元中的神經(jīng)元的鏈表是固定長度的(但對于本公 開的某些方面這并非是嚴(yán)格要求的)。向量包含直接對鏈表?xiàng)l目的引用(在軟件中這可以 是C++迭代器或指針)。向量可被初始化以使得該向量中的第i個(gè)條目引用鏈表中的第i 個(gè)條目。該引用情形在圖19中通過箭頭來描繪,其中頂行是調(diào)度1008 (例如,鏈表調(diào)度) 的表不,而各底行表不向量。在底部存在表不向量的兩行:一行表不實(shí)際向量1012,一行表 示虛擬向量1014。然而,此時(shí)將這兩個(gè)底行被認(rèn)為是相同的。差別將在以下進(jìn)一步解釋。
[0190] 對調(diào)度1008中的條目的搜索涉及以下內(nèi)容。調(diào)度1008中的條目對應(yīng)于單元中的 每一個(gè)神經(jīng)元的引導(dǎo)事件。條目可根據(jù)其發(fā)生時(shí)間來排序(例如,首先最早)。由于引導(dǎo)事 件針對特定神經(jīng)元,因此條目基本上是神經(jīng)元(或?qū)儆谏窠?jīng)元的事件)。對于刪除,搜索針 對特定神經(jīng)元。由于神經(jīng)元是已知的,因此該神經(jīng)元的引導(dǎo)事件的時(shí)間是已知的。對于引 導(dǎo)事件(即,神經(jīng)元)的插入,搜索針對具有橫跨要插入的引導(dǎo)事件的時(shí)間的引導(dǎo)事件時(shí)間 的兩個(gè)神經(jīng)元之間的點(diǎn)(即,t < t2,其中tl和t2是兩個(gè)橫跨神經(jīng)元的引導(dǎo)事件時(shí) 間,且t是要插入的新引導(dǎo)事件的時(shí)間)。注意,如果插入點(diǎn)在開頭,則tl = 0,而如果插入 點(diǎn)在末尾,則t2 =°°。
[0191] 為了加速對調(diào)度中的神經(jīng)元(引導(dǎo)事件)的搜索,可使用稀疏向量。由于神經(jīng)元 的引導(dǎo)事件的時(shí)間是已知的,因此可使用該向量的散列或快速搜索(例如,經(jīng)索引的二元 搜索)來直接查找具有給定時(shí)間的向量條目,而根本不必遍歷鏈表。
[0192] 為了搜索神經(jīng)元(引導(dǎo)事件)在調(diào)度中的插入點(diǎn),也可使用稀疏向量。由于引導(dǎo) 事件的時(shí)間是已知的,因此搜索針對具有該時(shí)間的條目或者具有橫跨該時(shí)間的時(shí)間的各條 目。同樣,可使用向量的散列或快速搜索來直接查找橫跨條目,而根本不必遍歷鏈表??焖?搜索可包括通過從向量中的事件的時(shí)間的變化率外推或內(nèi)插位置來計(jì)算將在向量中何處 找到具有特定時(shí)間的條目的近似。第一步可涉及從向量開頭開始并查看前兩個(gè)條目。如果 前兩個(gè)條目之間的時(shí)間差是2ms,則可假定為了查找時(shí)間IOms處的條目,應(yīng)進(jìn)一步向前查 看5個(gè)條目。因此,可以直接跳轉(zhuǎn)到該條目。如果所到達(dá)的條目不是期望條目(即,具有不 同時(shí)間),則可執(zhí)行第二步。第二步涉及查看期望時(shí)間方向上的第五個(gè)條目和下一個(gè)條目 (即,第四或第六個(gè)條目)之間的變化率(時(shí)間差)。該時(shí)間差然后可被用來外推要跳轉(zhuǎn)到 的下一個(gè)位置。
[0193] 在找到具有期望時(shí)間的條目或找到兩個(gè)橫跨條目后,可使用指針來移至鏈表。注 意,不一定只使用兩個(gè)相鄰條目來估計(jì)跨向量的時(shí)間進(jìn)度。例如,可使用多個(gè)條目,可使用 非相鄰條目,可跟蹤和使用平均速率,或者可基于找到曾搜索過的先前條目的結(jié)果反過來 確定速率??扇缦率褂孟喔鬗個(gè)條目的具有時(shí)間tl和t2的任何兩個(gè)條目1和2來確定速 率(r) :r = (t2-tl)/M。到具有時(shí)間t的條目的期望跳轉(zhuǎn)然后可被確定為從條目1起的N 個(gè)向量條目,其中N = r(t-tl)。
[0194] 然而,由于條目被插入或刪除且調(diào)度改變,因此加速變得復(fù)雜得多。鑒于此,向量 也改變??紤]一個(gè)神經(jīng)元的引導(dǎo)事件改變的情形(或者因?yàn)樵撌录驯惶幚?、重新調(diào)度、已 經(jīng)為該神經(jīng)元調(diào)度更早的事件等)。在這種情形中,調(diào)度可被重新排列,因?yàn)樵撋窠?jīng)元的新 引導(dǎo)事件可具有不同的發(fā)生時(shí)間(例如,更早或更晚)。
[0195] 在圖19和20的示例中,圖19的舊引導(dǎo)事件1602被圖20中的相同神經(jīng)元的新引 導(dǎo)事件1704替換,但該新引導(dǎo)事件1704具有比被替換的事件1602更晚的時(shí)間。舊引導(dǎo)事 件1602已經(jīng)從調(diào)度1008中刪除,并且新引導(dǎo)事件1704已經(jīng)在稍后被插入調(diào)度1008中。 鑒于此,向量引用不再與如圖20所示的鏈表?xiàng)l目(也通過箭頭示出)完全對應(yīng)。實(shí)際向量 1012具有現(xiàn)在相對于調(diào)度1008向右移位(中間部分)的引用。而且,指向被刪除的舊引導(dǎo) 事件1602的條目最有可能可被改正(因此它不指向非現(xiàn)有條目)。對于某些方面,這是設(shè) 置對鏈表中的在先或在后條目的引用(對在先條目的引用在圖20中示出)的問題。無論 如何,結(jié)果是所得虛擬向量1014具有比先前少一個(gè)的條目。
[0196] 隨著引導(dǎo)事件改變,向量變得越來越稀疏。稀疏向量的含義是什么?注意,調(diào)度 1008中的新引導(dǎo)事件1704的條目不具有來自該向量的直接引用。基于向量的搜索或散列 能夠最接近期望條目的地方是任一側(cè)的最接近的所引用的條目。這意味著基于向量的搜索 或散列可以靠近該條目,但也可牽涉對鏈表調(diào)度(盡管較短)的最終搜索。在某一時(shí)刻后, 向量可以是相當(dāng)稀疏的,如圖21的示例所示,并因此提供有限的搜索幫助。
[0197] 一般而言,插入/刪除涉及在調(diào)度中查找一個(gè)或多個(gè)條目,這包括兩個(gè)任務(wù):(1) 使用向量來快速查找鏈表中的最接近的一個(gè)或多個(gè)條目;以及(2)使用鏈表來定位條目 (在第一步中找到的最接近的一個(gè)或多個(gè)條目附近)。第一步在必須搜索鏈表的情況下一 般快得多,即使向量是稀疏的。然而,由于向量變得非常稀疏,因此加速可能是有限的。
[0198] 本公開的某些方面進(jìn)一步包括有條件地重新生成向量(完整地恢復(fù)向量)。例如, 當(dāng)向量達(dá)到特定稀疏性水平時(shí)。然而,根據(jù)某些方面,向量取決于插入/刪除搜索的第二部 分(即,鏈表中的搜索)的成本來重新生成。或者,向量可取決于鏈表中所牽涉的附加搜索 (即,在使用向量來查找條目附近后的搜索)的數(shù)量、頻率或概率來重新生成。
[0199] 此外,對于某些方面,加速可以是自適應(yīng)的。根據(jù)某些方面,用于重建向量的閾值 (無論是搜索次數(shù)、稀疏性還是任何其它合適的準(zhǔn)則)可以在進(jìn)行中用模擬或網(wǎng)絡(luò)行為調(diào) 整,諸如共同待決事件率或復(fù)雜性。對于某些方面,使用以下更抽象的自適應(yīng):
[0200] 1.使用重新生成的第一(引用)條件。
[0201] 2?測量運(yùn)行時(shí)性能
[0202] 3?使用重新生成的(不同的)第二條件。
[0203] 4?測量運(yùn)行時(shí)性能。
[0204] 5.將第一(引用)條件下的性能與(不同的)第二條件下的性能進(jìn)行比較。
[0205] 6.將引用條件設(shè)為曾具有最佳性能的條件。
[0206] 對于某些方面,條件是測量超過標(biāo)量閾值。第一條件因此將會(huì)是一個(gè)閾值,而第二 條件將會(huì)是不同的閾值。該自適應(yīng)算法的變體包括方向改變。例如,如果性能隨著閾值的 減小而提高,則可嘗試進(jìn)一步減小,反之亦然。
[0207] 合適測量的示例包括刪除次數(shù)、鏈表搜索次數(shù)、鏈表中搜索的距離等。這些數(shù)量還 可被表達(dá)為相對于(或以其他方式取決于)單元內(nèi)(調(diào)度內(nèi))的條目或神經(jīng)元的數(shù)量的比 值。
[0208] 樽型橾作(預(yù)測和講展)執(zhí)行策略
[0209] 本章節(jié)描述了根據(jù)本公開的某些方面的執(zhí)行策略。一般而言,用于自先前時(shí)間以 來預(yù)測新事件和更新(向前跳轉(zhuǎn))的模型操作根據(jù)上述算法來執(zhí)行。然而,多個(gè)優(yōu)化或增 強(qiáng)是可能的。
[0210] 虛擬延遲突觸
[0211] 圖22概念性地解說根據(jù)本公開的某些方面的突觸前神經(jīng)元406和突觸后神經(jīng)元 402之間的突觸延遲2202。首先考慮突觸延遲2202為零的情形。在這種情形中,考慮上述 算法,對突觸后神經(jīng)元402的輸入事件的調(diào)度可被完全繞過。算法可直接跳轉(zhuǎn)至更新突觸 后神經(jīng)元402以及預(yù)測下一事件(對于突觸亦如此)。
[0212] 但如果突觸具有非零延遲的話會(huì)如何?考慮一些情形。首先,如果延遲2202較 小,則本公開的某些方面可忽略該延遲并就像延遲為零那樣繼續(xù)。事件可具有定時(shí)誤差,但 該誤差可以是"可準(zhǔn)許的"。第二,考慮是否存在取決延遲幅度或連接的過往歷史或突觸后 神經(jīng)元狀態(tài)來忽略延遲的可能性。這些和其他變體是可能的。第三,考慮突觸延遲2202是 否被忽略(被假定為零),但該延遲在突觸后神經(jīng)元模型進(jìn)展后得到補(bǔ)償。該第三種情形是 重要的。
[0213] 如何能夠假定在突觸后神經(jīng)元模型進(jìn)展中補(bǔ)償零突觸延遲?
[0214] 模擬器能夠誘使模型進(jìn)展到考慮該進(jìn)展是針對比實(shí)際時(shí)間晚的時(shí)間。該時(shí)間差是 突觸延遲。該誘使允許模型設(shè)計(jì)者們?yōu)樗麄兊哪P驮O(shè)計(jì)花費(fèi)并返回時(shí)間的預(yù)測和進(jìn)展規(guī)則 (例如,所預(yù)測的延遲通過向前跳轉(zhuǎn)給定時(shí)間量來發(fā)放尖峰或傳播至胞體或進(jìn)展模型狀態(tài) 等)。然而,模擬執(zhí)行進(jìn)展,不是針對突觸前神經(jīng)元輸出事件時(shí)間(當(dāng)前模擬時(shí)間),而是針 對等于當(dāng)前時(shí)間加上突觸延遲的將來時(shí)間?,F(xiàn)在,有可能下一模擬事件發(fā)生在該將來時(shí)間 之前且隨后各事件將無序地執(zhí)行。然而,這是可容忍的。如果事件不是互相關(guān)的,則沒有差 另IJ。如果事件僅僅對接收神經(jīng)元具有極小影響,則差別可以是極小的;小量級(jí)的定時(shí)差別的 重要性可忽略。虛擬調(diào)度的示例(將突觸延遲視作為零以避免調(diào)度,但通過誘使模型來進(jìn) 行補(bǔ)償)在圖23中示出。在技術(shù)上,居間事件可發(fā)生在虛擬調(diào)度的事件之后而不是之前是 可能的。然而,該居間事件可針對另一神經(jīng)元或以其他方式對總體結(jié)果不具有影響,或者該 影響可被認(rèn)為是"可準(zhǔn)許的"。
[0215] 圖23解說正常調(diào)度的操作2300和虛擬調(diào)度的操作2310之間的比較。在正常調(diào) 度的操作2300中,突觸前神經(jīng)元輸出事件2302可以在t發(fā)生,而突觸后神經(jīng)元輸入事件 2304可以在t+At發(fā)生,這是由于突觸延遲2306 (At)的原因。在突觸延遲2306期間,居 間事件2308可發(fā)生。在虛擬調(diào)度的操作2310中,虛擬調(diào)度的突觸后神經(jīng)元輸入事件2312 可以在t被評估,但就像時(shí)間是t+At那樣被更新。由此,居間事件2308可以在虛擬調(diào)度 的突觸后神經(jīng)元輸入事件2312之后發(fā)生,即使在正常調(diào)度的操作2300中會(huì)在突觸后神經(jīng) 元輸入事件2304之前發(fā)生。
[0216] 現(xiàn)在,還考慮特殊情形。如果對于同一神經(jīng)元存在居間事件,則針對該事件的模型 進(jìn)展相對于上一進(jìn)展可具有負(fù)時(shí)間差。為了解決該問題,模型進(jìn)展可以或者能夠使模型狀 態(tài)在時(shí)間上后退(而不是向前跳轉(zhuǎn),即向后跳轉(zhuǎn))或者該差異可忽略(例如被假定為逝去 零時(shí)間)。后一種方法可以在為了調(diào)度的被視為零的最大突觸延遲是有限的時(shí)候采用。
[0217] 某些方面的另一變體包括假定所有突觸延遲都為零的選項(xiàng)。
[0218] 進(jìn)展時(shí)滯
[0219] 補(bǔ)償突觸延遲的另一種方式是使得模型進(jìn)展存儲(chǔ)將來事件(輸入)以使得下一 (或某一稍后)事件發(fā)生時(shí)多個(gè)輸入可被一起處理。益處是避免調(diào)度。然而,該替換方案可 暗示模型設(shè)計(jì)明確地處置該時(shí)滯,而上述方法并非如此。
[0220] 細(xì)微的變動(dòng)是使得各事件排隊(duì)以便對它們進(jìn)行批量更新和處置。這樣做的原因?qū)?會(huì)在下文中解釋。
[0221] 預(yù)測時(shí)滯
[0222] 考慮神經(jīng)元在發(fā)放尖峰之前接收到多個(gè)輸入的情形。在上述事件算法中,對將來 神經(jīng)元事件的模型預(yù)測是在模型進(jìn)展之后執(zhí)行的。這是因?yàn)槊恳粋€(gè)輸入都能夠改變所預(yù)測 的輸出時(shí)間。這對于所有神經(jīng)元模型而言一般為真。對于某些簡單的神經(jīng)元模型,假定輸入 可以不改變所預(yù)測的輸出時(shí)間。例如,泄漏積分激發(fā)(LIF)神經(jīng)元可接收多個(gè)輸入,并且如 果所有輸入都低于激發(fā)閾值,則所預(yù)測的輸出時(shí)間(永遠(yuǎn),即無窮)不改變。然而,作為一 個(gè)示例,在Izhikevich的簡單模型中,神經(jīng)元在電壓超過閾值后以某一延遲發(fā)放尖峰。而 且,直到尖峰的時(shí)延取決于輸入的量以及它何時(shí)出現(xiàn)。因此,神經(jīng)元電壓超過閾值后且在它 發(fā)放尖峰之前的每一個(gè)輸入更改所預(yù)測的尖峰(輸出)時(shí)間。
[0223] 如在上述事件算法中提及的,對將來神經(jīng)元事件的模型預(yù)測是在每一模型進(jìn)展之 后執(zhí)行的。本公開的某些方面可包括可任選的預(yù)測時(shí)滯特征。根據(jù)該特征,模型進(jìn)展被執(zhí) 行,但模型預(yù)測步驟被延遲。根據(jù)一變體,預(yù)測步驟只在某些條件下被延遲。此外,如果第 二或后續(xù)模型進(jìn)展在針對第一模型進(jìn)展(針對同一神經(jīng)元)的預(yù)測步驟之前發(fā)生,則只可 執(zhí)行一個(gè)預(yù)測步驟。這以可能較晚的事件預(yù)測為代價(jià)節(jié)省了模型計(jì)算。進(jìn)一步增強(qiáng)涉及使 進(jìn)展步驟排隊(duì)并在延遲的預(yù)測時(shí)間批量執(zhí)行這些步驟。
[0224] 延遲的預(yù)測判定何時(shí)發(fā)生?
[0225] 為了確定輸出事件時(shí)間,模擬必須執(zhí)行模型預(yù)測規(guī)則。預(yù)測基于神經(jīng)元(或突觸, 視情況而定)的當(dāng)前狀態(tài)來做出。因此,如果多個(gè)模型進(jìn)展在預(yù)測之前發(fā)生,則預(yù)測最有可 能基于最后一個(gè)進(jìn)展的最終狀態(tài)來執(zhí)行。因此,預(yù)測時(shí)滯特征選項(xiàng)暗示模型規(guī)則與該方面 一致。
[0226] 突觸失效和學(xué)習(xí)
[0227] 本公開的某些方面包括為突觸失效做準(zhǔn)備,突觸失效對應(yīng)于突觸輸入事件導(dǎo)致突 觸輸出事件(神經(jīng)元輸入事件)的失效。根據(jù)某些方面,該特征是對預(yù)測方法的對應(yīng)判定。 例如,突觸預(yù)測規(guī)則一般確定突觸在將來何時(shí)(相對于當(dāng)前時(shí)間)將輸出事件。然而,該判 定還可確定將永遠(yuǎn)不會(huì)存在對應(yīng)于輸入的輸出。
[0228] 對突觸失效(諸如基于各條件、各因素或各參數(shù)的概率性失效或確定性失效)的 判定的細(xì)節(jié)在本公開的范圍之外。然而,存在涉及突觸失效和學(xué)習(xí)的本公開的附加重要方 面。為了理解這些方面,考慮"尖峰定時(shí)依賴可塑性(STDP) "。一種實(shí)現(xiàn)STDP的方式是觸 發(fā)基于突觸后事件的長期增強(qiáng)(LTP)以及基于突觸前事件的長期抑壓(LTD)。LTP和LTD 兩者都取決于突觸前和突觸后尖峰之間的時(shí)間差。然而,如果發(fā)生突觸失效且不存在突觸 后事件,則可能不存在對LTP的觸發(fā)并因此可消除LTP?;蛘咦詈蟮耐挥|后時(shí)間戳對于LTD 可能是不正確的,并因此LTD效應(yīng)可能是不正確的。突觸后時(shí)間戳問題可通過在神經(jīng)元模 型中而不是在突觸模型中跟蹤時(shí)間戳、并且或者從確定STDP的突觸規(guī)則中訪問時(shí)間戳或 者從神經(jīng)元模型中確定STDP來避免。
[0229] 根據(jù)本公開的某些方面,某些其他選項(xiàng)是可用的。首先,如果預(yù)測規(guī)則確定將不 會(huì)發(fā)生輸出事件,則模擬可執(zhí)行突觸進(jìn)展規(guī)則事件。在替換方案中,可執(zhí)行特殊進(jìn)展規(guī)則。 為了避免為該特殊目的調(diào)度另一事件,特殊進(jìn)展規(guī)則(或假象規(guī)則)可以就像當(dāng)前時(shí)間是 (失效的)輸出事件時(shí)間那樣執(zhí)行,或者(失效的)輸出事件的時(shí)間可被傳遞至進(jìn)展規(guī)則。 后一種針對(失效的)輸出事件的對突觸進(jìn)展規(guī)則的執(zhí)行不應(yīng)與針對輸入事件(突觸前神 經(jīng)元輸出)的對突觸進(jìn)展規(guī)則的執(zhí)行相混淆。
[0230] 圖24是根據(jù)本公開的某些方面的用于在沒有失效的情況下對突觸進(jìn)行建模的操 作2400與在有突觸失效的情況下對突觸進(jìn)行建模的操作2420之間的比較。在操作2400 中,在2402針對輸入事件使突觸的狀態(tài)進(jìn)展之后,在2404突觸可預(yù)測輸出事件的預(yù)期時(shí) 間,即使預(yù)測規(guī)則確定將不會(huì)發(fā)生輸出事件(即,沒有突觸失效)。在2406突觸延遲可以在 突觸輸出輸出事件之前發(fā)生并且在2408響應(yīng)于輸出事件而使突觸的狀態(tài)進(jìn)展。在2410,給 定在2408確定的進(jìn)展后狀態(tài),突觸可再次預(yù)測輸出事件的預(yù)期時(shí)間。
[0231] 作為對比,在操作2420中在2402針對輸入事件使突觸的狀態(tài)進(jìn)展之后,在2422 突觸可以在具有突觸失效特征的情況下預(yù)測輸出事件的預(yù)期時(shí)間。在這種情形中,如果預(yù) 測規(guī)則確定將不會(huì)發(fā)生輸出事件,則可以在2424執(zhí)行假象規(guī)則。
[0232] 為何想要從失效的突觸事件中學(xué)習(xí)的模型?
[0233] 在對突觸失效進(jìn)行建模與出于在計(jì)算上有利的目的確定突觸失效之間存在差異。 在前一種情形中,可能不想基于所建模的突觸失效來學(xué)習(xí)(就像突觸輸入不具有生物學(xué)效 應(yīng)那樣)。在后一種情形中,突觸可能已經(jīng)在生物學(xué)中成功,但可被激勵(lì)跳過與事件相關(guān)聯(lián) 的事件調(diào)度和處理以節(jié)省計(jì)算復(fù)雜性。例如,如果相同的高水平網(wǎng)絡(luò)結(jié)果能夠在具有概率 性突觸失效的情況下實(shí)現(xiàn),則可被激勵(lì)將其用作加速模擬的方式。
[0234] 人工事件(將來)
[0235] 本公開的某些方面提供了用于以最小間隔使節(jié)點(diǎn)進(jìn)展的特征。這樣做確?;谑?件的模型以最小間隔更新,即使不存在事件。
[0236] 該特征可使用各種合適的方法中的任一種來實(shí)現(xiàn)。例如在第一種方法中,可以在 每一輸入或輸出事件后以特定延遲(重新)調(diào)度人工事件。如果另一輸入或輸出事件更早 地發(fā)生,則重新調(diào)度人工事件。否則,人工事件被處理(即,突觸或神經(jīng)元節(jié)點(diǎn)進(jìn)展)并在 稍后時(shí)間被重新調(diào)度。通過使用第二種實(shí)現(xiàn)技術(shù),人工事件可以周期性地發(fā)生。在第三種 方法中,當(dāng)?shù)诙?jié)點(diǎn)具有事件時(shí),可以為第一節(jié)點(diǎn)觸發(fā)人工事件。這一被稱為"代理事件技 巧"的情況甚至在第一和第二節(jié)點(diǎn)未連接的情況下也可發(fā)生。
[0237] 示例事件定時(shí)和分辨率
[0238] 本公開的某些方面允許在沒有(或可忽略的)附加成本的情況下的任意精細(xì)定時(shí) 分辨率。然而,這并不意味著基于步長的模擬在其可以同樣精細(xì)的定時(shí)分辨率操作的情況 下將必然實(shí)現(xiàn)相同的功能結(jié)果。存在有兩個(gè)原因。第一,根據(jù)本公開的某些方面的模型動(dòng) 態(tài)在事件時(shí)間確定,而不是通過步長更新來確定。第二,在相同的時(shí)間不處理由相同的處理 線程處置的事件。在基于步長的模擬中,通常所有更新在所得事件的批量傳播之前被批量 處理。對于某些方面,如果進(jìn)展導(dǎo)致一事件,則這一事件被立即調(diào)度。因此,事件的執(zhí)行次 序也是潛在不同的。對于其他方面,這可改變以使得在同一時(shí)間發(fā)生的事件按照例如神經(jīng) 元或突觸索引來排序。
[0239] 示例方法和操作
[0240] 根據(jù)本公開的某些方面,神經(jīng)元和突觸模型704、714也可分別具有共享的神經(jīng)元 參數(shù)模型2506和共享的突觸參數(shù)模型2504,如圖25所解說的。這些參數(shù)模型2504、2506 可包括兩種數(shù)據(jù)(常量和變量)以及方法(規(guī)則)。這些參數(shù)模型可用于定義取決于能夠 在一組(層或常見類型的)神經(jīng)元或突觸當(dāng)中共享的參數(shù)的方法。本公開的某些方面還包 括網(wǎng)絡(luò)模型(或簡稱"模型")2500并且可包括連接器模型2502 (確定如何將神經(jīng)元與突觸 連接)。模型也可從彼此導(dǎo)出(繼承)。
[0241] 圖26是根據(jù)本公開的某些方面的用于在尖峰神經(jīng)網(wǎng)絡(luò)中進(jìn)行基于事件的調(diào)度的 示例操作2600的流程圖。操作2600可以硬件(例如由一個(gè)或多個(gè)處理單元)、以軟件或以 固件來執(zhí)行。
[0242] 操作2600可以通過在2602調(diào)度神經(jīng)網(wǎng)絡(luò)中的多個(gè)節(jié)點(diǎn)的多個(gè)事件來開始。該調(diào) 度可使用多級(jí)架構(gòu)來執(zhí)行以便與單級(jí)的有序事件列表相比更快地處理事件。對于某些方 面,多個(gè)節(jié)點(diǎn)可包括多個(gè)神經(jīng)元或多個(gè)突觸中的至少一個(gè)。在2604,可執(zhí)行所調(diào)度的多個(gè)事 件。
[0243] 對于某些方面,執(zhí)行所調(diào)度的多個(gè)事件包括查找所調(diào)度的多個(gè)事件中的下一事 件;基于該下一事件來使與該下一事件相關(guān)聯(lián)的節(jié)點(diǎn)狀態(tài)進(jìn)展,其中該節(jié)點(diǎn)是該多個(gè)節(jié)點(diǎn) 之一;以及基于進(jìn)展后節(jié)點(diǎn)狀態(tài)來確定該節(jié)點(diǎn)的輸出事件(在發(fā)生過的情況下)被預(yù)測在 何時(shí)發(fā)生。對于某些方面,操作2600還可包括基于該確定來重新調(diào)度該節(jié)點(diǎn)的輸出事件。 該重新調(diào)度涉及使用多級(jí)架構(gòu)(即,多級(jí)處理八重新)調(diào)度架構(gòu))。
[0244] 對于某些方面,在2604執(zhí)行所調(diào)度的多個(gè)事件包括查找所調(diào)度的多個(gè)事件中的 下一事件。查找下一事件可包括遍歷多級(jí)架構(gòu)中的各級(jí)以便確定每一級(jí)處的最早事件以及 在遍歷各級(jí)后確定下一事件為所有事件中的最早事件。
[0245] 根據(jù)某些方面,多級(jí)架構(gòu)的第一級(jí)包括多個(gè)節(jié)點(diǎn)的可索引列表。對于多個(gè)節(jié)點(diǎn)中 的每一個(gè)節(jié)點(diǎn),多級(jí)架構(gòu)中的第二級(jí)可包括該節(jié)點(diǎn)的共同待決事件的調(diào)度。對于某些方面, 操作2600還可包括通過在第一級(jí)尋址多個(gè)節(jié)點(diǎn)中的一個(gè)節(jié)點(diǎn)來確定該節(jié)點(diǎn)的共同待決事 件的調(diào)度。該節(jié)點(diǎn)的共同待決事件的調(diào)度可以至少部分地分揀,其中共同待決事件中的最 早事件被首先調(diào)度。對于某些方面,共同待決事件的調(diào)度可包括節(jié)點(diǎn)的最多僅一個(gè)輸出事 件。
[0246] 對于某些方面,操作2600還可包括將多個(gè)節(jié)點(diǎn)組織成一個(gè)或多個(gè)單元。該組織可 涉及基于連接延遲來將多個(gè)節(jié)點(diǎn)組織成各個(gè)單元,以使得各個(gè)單元之間的第一連接延遲長 于各個(gè)單元內(nèi)的第二連接延遲。
[0247] 對于某些方面,對于每一單元,多級(jí)架構(gòu)中的第三級(jí)包括來自該單元中的每一個(gè) 節(jié)點(diǎn)的共同待決事件中的最早事件。對于某些方面,多級(jí)架構(gòu)中的第四級(jí)包括基于來自每 一個(gè)單元的共同待決事件中的最早事件的組織。該組織可需要二叉樹。該二叉樹的根可 以是全部所調(diào)度的多個(gè)事件中的最早的共同待決事件。對于某些方面,在多級(jí)架構(gòu)的第三 級(jí)中,對于每一單元,來自該單元中的每一個(gè)節(jié)點(diǎn)的共同待決事件中的最早事件可被組織 為鏈表。對于每一單元,多級(jí)架構(gòu)中的第五級(jí)可包括引用鏈表的向量。對于某些方面,操作 2600還可包括重新調(diào)度所調(diào)度的多個(gè)事件。該重新調(diào)度可涉及使用向量來在鏈表中查找最 接近期望條目的一個(gè)或多個(gè)條目,以供插入所調(diào)度的多個(gè)事件或從所調(diào)度的多個(gè)事件中刪 除;以及使用鏈表來基于所找到的最接近的一個(gè)或多個(gè)條目定位該期望條目。
[0248] 圖27是根據(jù)本公開的某些方面的用于神經(jīng)網(wǎng)絡(luò)中的連續(xù)時(shí)間的、基于事件的建 模的示例操作2700的流程圖。操作2700可以硬件(例如由一個(gè)或多個(gè)處理單元)、以軟件 或以固件來執(zhí)行。
[0249] 操作2700可以通過在2702在神經(jīng)網(wǎng)絡(luò)中的第一節(jié)點(diǎn)處接收第一輸入事件開始。 在2704,基于來自2702的接收到的第一輸入事件來使第一節(jié)點(diǎn)的狀態(tài)進(jìn)展。該第一節(jié)點(diǎn)的 狀態(tài)可通過第一節(jié)點(diǎn)的膜電位和恢復(fù)電流來定義。根據(jù)某些方面,使第一節(jié)點(diǎn)的狀態(tài)進(jìn)展 包括處理接收到的第一輸入事件以調(diào)整該第一節(jié)點(diǎn)的狀態(tài)以及向前跳轉(zhuǎn)至接收到的第一 輸入事件的時(shí)間。
[0250] 在2706,可基于來自2704的第一節(jié)點(diǎn)的進(jìn)展后狀態(tài)來確定該第一節(jié)點(diǎn)的第一輸 出事件(在發(fā)生過的情況下)預(yù)期在何時(shí)發(fā)生。對于某些方面,該確定在第一節(jié)點(diǎn)的狀態(tài) 每一次進(jìn)展之后執(zhí)行。對于其他方面,可延遲該確定。在這種情形中,可以在第一節(jié)點(diǎn)處接 收第二輸入事件,其中第二輸入事件在第一輸入事件后且在經(jīng)延遲的確定之前發(fā)生。在第 一節(jié)點(diǎn)的狀態(tài)已經(jīng)基于接收到的第一輸入事件進(jìn)展之后、但在經(jīng)延遲的確定之前,第一節(jié) 點(diǎn)的狀態(tài)可基于接收到的第二輸入事件進(jìn)展。對于某些方面,基于接收到的第一和第二輸 入事件來使第一節(jié)點(diǎn)的狀態(tài)進(jìn)展包括:(1)將基于接收到的第一輸入事件使第一節(jié)點(diǎn)的狀 態(tài)進(jìn)展和基于接收到的第二輸入事件使第一節(jié)點(diǎn)的狀態(tài)進(jìn)展排隊(duì);以及(2)在經(jīng)延遲的確 定的時(shí)間執(zhí)行所排隊(duì)的進(jìn)展。
[0251] 根據(jù)其中第一節(jié)點(diǎn)是突觸后神經(jīng)元的某些方面,在2702接收第一輸入事件涉及 從第二節(jié)點(diǎn)接收第二輸出事件。對于某些方面,第二節(jié)點(diǎn)是具有延遲的突觸。在這種情形 中,在2704使第一節(jié)點(diǎn)的狀態(tài)進(jìn)展可包括處理接收到的第一輸入事件以調(diào)整該第一節(jié)點(diǎn) 的狀態(tài)以及向前跳轉(zhuǎn)至接收到的第一輸入事件的時(shí)間加上該延遲。對于其他方面,第二節(jié) 點(diǎn)是經(jīng)由突觸與突觸后神經(jīng)元連接的突觸前神經(jīng)元。在突觸具有零延遲的情形中,不調(diào)度 突觸的第三輸出事件。在突觸具有非零延遲的其他情形中,該延遲可被忽略,以使得不調(diào)度 該突觸的第三輸出事件,其類似于零延遲的情形。對于某些方面,突觸具有第一延遲,且忽 略第一延遲的至少一部分以使得以第二延遲調(diào)度該突觸的第三輸出事件。作為第一示例, 這覆蓋突觸具有非零恒定延遲能力以使得所調(diào)度的處理被限制在該延遲的情形,或者作為 第二示例,對于當(dāng)存在已經(jīng)調(diào)度的其他處理且期望特定延遲時(shí)調(diào)度處理,這覆蓋延遲差被 單獨(dú)考慮(即,通過發(fā)生延遲差時(shí)的處理)的情形。
[0252] 對于某些方面,操作2700還可包括在狀態(tài)在2704進(jìn)展之前存儲(chǔ)接收到的第一輸 入事件。然后,第一節(jié)點(diǎn)可以在第一事件之后接收第二輸入事件。在這種情形中,在2704 使?fàn)顟B(tài)進(jìn)展可包括一起處理接收到的第一輸入事件和接收到的第二輸入事件。
[0253] 根據(jù)某些方面,操作2700還包括根據(jù)判定來輸出來自第一節(jié)點(diǎn)的第一輸出事件。 接著,第二節(jié)點(diǎn)可以接收第一輸出事件作為第二輸入事件,并且第二節(jié)點(diǎn)的狀態(tài)可基于接 收到的第二輸入事件來進(jìn)展。然后可基于第二節(jié)點(diǎn)的進(jìn)展后狀態(tài)來確定該第二節(jié)點(diǎn)的第二 輸出事件(在發(fā)生過的情況下)預(yù)期在何時(shí)發(fā)生。
[0254] 對于其中第一節(jié)點(diǎn)是突觸的某些方面,判定指示第一輸出事件將永遠(yuǎn)不會(huì)發(fā)生。 在這種情形中,操作2700還可包括基于將永遠(yuǎn)不會(huì)發(fā)生的第一輸出事件來使突觸的狀態(tài) 進(jìn)展。當(dāng)前時(shí)間可被用作將永不發(fā)生的第一輸出事件的時(shí)間。
[0255] 根據(jù)某些方面,第一輸入事件包括第一節(jié)點(diǎn)的人工事件。對于某些方面,操作2700 還可包括將人工事件調(diào)度為周期性地發(fā)生。對于其他方面,操作2700還可包括如果在沒有 第一節(jié)點(diǎn)的事件的情況下逝去一時(shí)間量,則調(diào)度人工事件。對于某些方面,操作2700還可 包括將人工事件調(diào)度為在每一輸入或輸出事件發(fā)生后的一延遲之后發(fā)生,以使得如果沒有 輸入或輸出事件在該延遲內(nèi)發(fā)生,則發(fā)生人工事件。在這種情形中,操作還可包括將另一人 工事件(重新)調(diào)度為在人工事件發(fā)生后以另一延遲發(fā)生。
[0256] 圖28是根據(jù)本公開的某些方面的用于使用向量來在事件列表中查找一個(gè)或多個(gè) 事件的示例操作2800的流程圖。操作2800可以硬件(例如由一個(gè)或多個(gè)處理單元)、以軟 件或以固件來執(zhí)行。
[0257] 操作2800可以通過在2802生成引用神經(jīng)網(wǎng)絡(luò)中的多個(gè)節(jié)點(diǎn)的事件列表的向量來 開始。該列表可以按時(shí)間從最早事件到最晚事件排序。對于某些方面,該列表包括多個(gè)節(jié) 點(diǎn)中的每一個(gè)節(jié)點(diǎn)的最早事件(從最早事件到最晚事件排列)。根據(jù)某些方面,向量中的第 i個(gè)條目引用列表中的第i個(gè)條目。對于某些方面,該列表包括鏈表,并且向量可以被實(shí)現(xiàn) 為具有指向鏈表中的條目的指針。
[0258] 在2804,可使用向量來在事件列表中查找最接近目標(biāo)的一個(gè)或多個(gè)事件。該搜索 可以在不遍歷事件列表的情況下進(jìn)行。目標(biāo)可包括例如目標(biāo)時(shí)間或目標(biāo)事件。對于某些方 面,使用向量可涉及執(zhí)行對向量的索引二元搜索。對于其他方面,使用向量可涉及基于向量 中的時(shí)間條目來執(zhí)行內(nèi)插或外推。
[0259] 根據(jù)某些方面,操作2800還可包括在目標(biāo)處從列表中刪除事件或者在最接近目 標(biāo)的一個(gè)或多個(gè)事件之間將事件插入列表。然后,向量可基于所刪除或所插入的事件來更 新。對于某些方面,基于所刪除的事件來更新向量包括引用列表中的在所刪除的事件之前 (或之后)的條目。
[0260] 操作2800還可包括在滿足閾值的情況下重新生成向量。對于某些方面,閾值可被 動(dòng)態(tài)調(diào)整(即,在進(jìn)行中調(diào)整)。閾值可以例如是對目標(biāo)的搜索次數(shù)、對向量的更新次數(shù)、從 列表中的刪除次數(shù)、在找到最接近的一個(gè)或多個(gè)事件后搜索列表的成本或者虛擬向量的稀 疏性。該虛擬向量可以反映所生成的向量(即,在初始化或重新生成后反映向量)并且可 通過移除虛擬向量中對應(yīng)于從列表中刪除的事件的條目來形成。
[0261] 以上所描述的方法的各種操作可由能夠執(zhí)行相應(yīng)功能的任何合適的裝置來執(zhí)行。 這些裝置可包括各種硬件和/或軟件組件和/或模塊,包括但不限于電路、專用集成電路 (ASIC)、或處理器。一般而言,在存在附圖中解說的操作的場合,那些操作可具有帶相似編 號(hào)的相應(yīng)配對裝置加功能組件。例如,圖26中所解說的操作2600對應(yīng)于圖26A中所解說 的裝置2600A。
[0262] 例如,用于顯示的裝置可包括顯示器(例如,監(jiān)視器、平面屏幕、觸屏等)、打印機(jī)、 或任何其他用于輸出數(shù)據(jù)(諸如表格、圖表或圖)以供可視描繪的合適裝置。用于處理的裝 置、用于接收的裝置、用于調(diào)度的裝置、用于重新調(diào)度的裝置、用于執(zhí)行的裝置、用于進(jìn)展的 裝置、用于更新的裝置、用于生成的裝置、用于重新生成的裝置、用于查找的裝置、用于調(diào)整 的裝置、用于刪除的裝置、用于組織的裝置、用于延遲的裝置、用于輸出的裝置、用于提供的 裝置或者用于確定的裝置可包括處理系統(tǒng),其可包括一個(gè)或多個(gè)處理器或處理單元。用于 存儲(chǔ)的裝置可包括可由處理系統(tǒng)訪問的存儲(chǔ)器或任何其它合適的存儲(chǔ)設(shè)備(例如,RAM)。
[0263] 如本文所使用的,術(shù)語"確定"涵蓋各種各樣的動(dòng)作。例如,"確定"可包括演算、 計(jì)算、處理、推導(dǎo)、研究、查找(例如,在表、數(shù)據(jù)庫或其他數(shù)據(jù)結(jié)構(gòu)中查找)、查明、及類似動(dòng) 作。而且,"確定"可包括接收(例如接收信息)、訪問(例如訪問存儲(chǔ)器中的數(shù)據(jù))、及類似 動(dòng)作。同樣,"確定"還可包括解析、選擇、選取、建立、及類似動(dòng)作。
[0264] 如本文中所使用的,引述一列項(xiàng)目中的"至少一個(gè)"的短語是指這些項(xiàng)目的任何組 合,包括單個(gè)成員。作為示例,"a、b或c中的至少一個(gè)"旨在涵蓋:a、b、c、a-b、a-c、b-c、 以及a_b_c。
[0265] 結(jié)合本公開描述的各種解說性邏輯框、模塊、以及電路可用通用處理器、數(shù)字信號(hào) 處理器(DSP)、專用集成電路(ASIC)、現(xiàn)場可編程門陣列(FPGA)或其他可編程邏輯器件 (PLD)、分立的門或晶體管邏輯、分立的硬件組件、或其設(shè)計(jì)成執(zhí)行本文中描述的功能的任 何組合來實(shí)現(xiàn)或執(zhí)行。通用處理器可以是微處理器,但在替換方案中,處理器可以是任何可 商業(yè)購得的處理器、控制器、微控制器、或狀態(tài)機(jī)。處理器還可以被實(shí)現(xiàn)為計(jì)算設(shè)備的組合, 例如DSP與微處理器的組合、多個(gè)微處理器、與DSP核心協(xié)同的一個(gè)或多個(gè)微處理器或任何 其它此類配置。
[0266] 結(jié)合本文中公開的實(shí)施例描述的方法或算法的步驟可直接在硬件中、在由處理器 執(zhí)行的軟件模塊中、或在這兩者的組合中體現(xiàn)。軟件模塊可駐留在本領(lǐng)域所知的任何形 式的存儲(chǔ)介質(zhì)中??墒褂玫拇鎯?chǔ)介質(zhì)的一些示例包括隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器 (ROM)、閃存、EPROM存儲(chǔ)器、EEPROM存儲(chǔ)器、寄存器、硬盤、可移動(dòng)盤、CD-ROM,等等。軟件模 塊可包括單條指令、或許多條指令,且可分布在若干不同的代碼段上,分布在不同的程序間 以及跨多個(gè)存儲(chǔ)介質(zhì)分布。存儲(chǔ)介質(zhì)可被耦合到處理器以使得該處理器能從/向該存儲(chǔ)介 質(zhì)讀寫信息。替換地,存儲(chǔ)介質(zhì)可以被整合到處理器。
[0267] 本文所公開的方法包括用于實(shí)現(xiàn)所描述的方法的一個(gè)或多個(gè)步驟或動(dòng)作。這些方 法步驟和/或動(dòng)作可以相互互換而不會(huì)脫離權(quán)利要求的范圍。換言之,除非指定了步驟或 動(dòng)作的特定次序,否則具體步驟和/或動(dòng)作的次序和/或使用可以改動(dòng)而不會(huì)脫離權(quán)利要 求的范圍。
[0268] 所描述的功能可在硬件、軟件、固件或其任何組合中實(shí)現(xiàn)。如果以硬件實(shí)現(xiàn),則示 例硬件配置可包括設(shè)備中的處理系統(tǒng)。處理系統(tǒng)可以用總線架構(gòu)來實(shí)現(xiàn)。取決于處理系統(tǒng) 的具體應(yīng)用和整體設(shè)計(jì)約束,總線可包括任何數(shù)目的互連總線和橋接器??偩€可將包括處 理器、機(jī)器可讀介質(zhì)、以及總線接口的各種電路鏈接在一起??偩€接口可用于尤其將網(wǎng)絡(luò)適 配器等經(jīng)由總線連接至處理系統(tǒng)。網(wǎng)絡(luò)適配器可用于實(shí)現(xiàn)信號(hào)處理功能。對于某些方面, 用戶接口(例如,按鍵板、顯示器、鼠標(biāo)、操縱桿等)也可被連接至總線??偩€還可鏈接各種 其他電路(諸如定時(shí)源、外圍設(shè)備、穩(wěn)壓器、電源管理電路等),這些電路在本領(lǐng)域中是眾所 周知的,因此將不再贅述。
[0269] 處理器可負(fù)責(zé)管理總線和一般處理,包括執(zhí)行存儲(chǔ)在機(jī)器可讀介質(zhì)上的軟件。處 理器可用一個(gè)或多個(gè)通用和/或?qū)S锰幚砥鱽韺?shí)現(xiàn)。示例包括微處理器、微控制器、DSP處 理器、以及其他能執(zhí)行軟件的電路系統(tǒng)。軟件應(yīng)當(dāng)被寬泛地解釋成意指指令、數(shù)據(jù)、或其任 何組合,無論是被稱作軟件、固件、中間件、微代碼、硬件描述語言、或其他。作為示例,機(jī)器 可讀介質(zhì)可以包括RAM (隨機(jī)存取存儲(chǔ)器)、閃存、ROM (只讀存儲(chǔ)器)、PROM (可編程只讀存 儲(chǔ)器)、EPROM (可擦式可編程只讀存儲(chǔ)器)、EEPROM (電可擦式可編程只讀存儲(chǔ)器)、寄存器、 磁盤、光盤、硬驅(qū)動(dòng)器、或者任何其他合適的存儲(chǔ)介質(zhì)、或其任何組合。機(jī)器可讀介質(zhì)可被實(shí) 施在計(jì)算機(jī)程序產(chǎn)品中。該計(jì)算機(jī)程序產(chǎn)品可以包括包裝材料。
[0270] 在硬件實(shí)現(xiàn)中,機(jī)器可讀介質(zhì)可以是處理系統(tǒng)中與處理器分開的一部分。然而,如 本領(lǐng)域技術(shù)人員將容易領(lǐng)會(huì)的,機(jī)器可讀介質(zhì)、或其任何部分可在處理系統(tǒng)外部。作為示 例,機(jī)器可讀介質(zhì)可包括傳輸線、由數(shù)據(jù)調(diào)制的載波、和/或與設(shè)備分開的計(jì)算機(jī)產(chǎn)品,所 有這些都可由處理器通過總線接口來訪問。替換地或補(bǔ)充地,機(jī)器可讀介質(zhì)、或其任何部分 可被集成到處理器中,諸如高速緩存和/或通用寄存器文件可能就是這種情形。
[0271] 處理系統(tǒng)可以被配置為通用處理系統(tǒng),該通用處理系統(tǒng)具有一個(gè)或多個(gè)提供處 理器功能性的微處理器、和提供機(jī)器可讀介質(zhì)中的至少一部分的外部存儲(chǔ)器,它們都通過 外部總線架構(gòu)與其他支持電路系統(tǒng)鏈接在一起。替換地,處理系統(tǒng)可以用帶有集成在單 塊芯片中的處理器、總線接口、用戶接口、支持電路系統(tǒng)、和至少一部分機(jī)器可讀介質(zhì)的 ASIC (專用集成電路)來實(shí)現(xiàn),或者用一個(gè)或多個(gè)FPGA (現(xiàn)場可編程門陣列)、PLD(可編程 邏輯器件)、控制器、狀態(tài)機(jī)、門控邏輯、分立硬件組件、或者任何其他合適的電路系統(tǒng)、或者 能執(zhí)行本公開通篇所描述的各種功能性的電路的任何組合來實(shí)現(xiàn)。取決于具體應(yīng)用和加諸 于整體系統(tǒng)上的總設(shè)計(jì)約束,本領(lǐng)域技術(shù)人員將認(rèn)識(shí)到如何最佳地實(shí)現(xiàn)關(guān)于處理系統(tǒng)所描 述的功能性。
[0272] 機(jī)器可讀介質(zhì)可包括數(shù)個(gè)軟件模塊。這些軟件模塊包括當(dāng)由處理器執(zhí)行時(shí)使處理 系統(tǒng)執(zhí)行各種功能的指令。這些軟件模塊可包括傳輸模塊和接收模塊。每個(gè)軟件模塊可以 駐留在單個(gè)存儲(chǔ)設(shè)備中或者跨多個(gè)存儲(chǔ)設(shè)備分布。作為示例,當(dāng)觸發(fā)事件發(fā)生時(shí),可以從硬 驅(qū)動(dòng)器中將軟件模塊加載到RAM中。在軟件模塊執(zhí)行期間,處理器可以將一些指令加載到 高速緩存中以提高訪問速度。隨后可將一個(gè)或多個(gè)高速緩存行加載到通用寄存器文件中以 供由處理器執(zhí)行。在以下談及軟件模塊的功能性時(shí),將理解此類功能性是在處理器執(zhí)行來 自該軟件模塊的指令時(shí)由該處理器來實(shí)現(xiàn)的。
[0273] 如果以軟件實(shí)現(xiàn),則各功能可作為一條或多條指令或代碼存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì) 上或藉其進(jìn)行傳送。計(jì)算機(jī)可讀介質(zhì)包括計(jì)算機(jī)存儲(chǔ)介質(zhì)和通信介質(zhì)兩者,這些介質(zhì)包括 促成計(jì)算機(jī)程序從一地向另一地轉(zhuǎn)移的任何介質(zhì)。存儲(chǔ)介質(zhì)可以是能被計(jì)算機(jī)訪問的任何 可用介質(zhì)。作為示例而非限定,這樣的計(jì)算機(jī)可讀介質(zhì)可包括RAM、ROM、EEPROM、CD-ROM或 其它光盤存儲(chǔ)、磁盤存儲(chǔ)或其它磁存儲(chǔ)設(shè)備、或能被用來攜帶或存儲(chǔ)指令或數(shù)據(jù)結(jié)構(gòu)形式 的期望程序代碼且能被計(jì)算機(jī)訪問的任何其它介質(zhì)。任何連接也被正當(dāng)?shù)胤Q為計(jì)算機(jī)可讀 介質(zhì)。例如,如果軟件是使用同軸電纜、光纖電纜、雙絞線、數(shù)字訂戶線(DSL)、或無線技術(shù) (諸如紅外(IR)、無線電、以及微波)從web網(wǎng)站、服務(wù)器、或其他遠(yuǎn)程源傳送而來,則該同 軸電纜、光纖電纜、雙絞線、DSL或無線技術(shù)(諸如紅外、無線電、以及微波)就被包括在介 質(zhì)的定義之中。如本文中所使用的盤(disk)和碟(disc)包括壓縮碟(CD)、激光碟、光碟、 數(shù)字多用碟(DVD)、軟盤、和藍(lán)光《碟,其中盤(disk)常常磁性地再現(xiàn)數(shù)據(jù),而碟(disc)用 激光來光學(xué)地再現(xiàn)數(shù)據(jù)。因此,在一些方面,計(jì)算機(jī)可讀介質(zhì)可包括非瞬態(tài)計(jì)算機(jī)可讀介質(zhì) (例如,有形介質(zhì))。另外,對于其他方面,計(jì)算機(jī)可讀介質(zhì)可包括瞬態(tài)計(jì)算機(jī)可讀介質(zhì)(例 如,信號(hào))。上述的組合也應(yīng)被包括在計(jì)算機(jī)可讀介質(zhì)的范圍內(nèi)。
[0274] 因此,某些方面可包括用于執(zhí)行本文中給出的操作的計(jì)算機(jī)程序產(chǎn)品。例如,此種 計(jì)算機(jī)程序產(chǎn)品可包括其上存儲(chǔ)(和/或編碼)有指令的計(jì)算機(jī)可讀介質(zhì),這些指令能由 一個(gè)或多個(gè)處理器執(zhí)行以執(zhí)行本文中所描述的操作。對于某些方面,計(jì)算機(jī)程序產(chǎn)品可包 括包裝材料。
[0275] 另外,應(yīng)領(lǐng)會(huì),用于執(zhí)行本文中所描述的方法和技術(shù)的模塊和/或其它恰適裝置 能由設(shè)備在適用的場合下載和/或以其他方式獲得。例如,此類設(shè)備能被耦合至服務(wù)器以 促成用于執(zhí)行本文中所描述的方法的裝置的轉(zhuǎn)移。替換地,本文中所描述的各種方法能經(jīng) 由存儲(chǔ)裝置(例如,RAM、ROM、諸如壓縮碟(⑶)或軟盤之類的物理存儲(chǔ)介質(zhì)等)來提供,以 使得一旦將該存儲(chǔ)裝置耦合到或提供給設(shè)備,該設(shè)備就能獲得各種方法。此外,能利用適于 向設(shè)備提供本文中所描述的方法和技術(shù)的任何其他合適的技術(shù)。
[0276] 應(yīng)該理解的是,權(quán)利要求并不被限定于以上所解說的精確配置和組件。可在以上 所描述的方法和設(shè)備的布局、操作和細(xì)節(jié)上作出各種改動(dòng)、更換和變形而不會(huì)脫離權(quán)利要 求的范圍。
【權(quán)利要求】
1. 一種用于神經(jīng)網(wǎng)絡(luò)的方法,包括: 使用多級(jí)架構(gòu)來調(diào)度神經(jīng)網(wǎng)絡(luò)中的多個(gè)節(jié)點(diǎn)的多個(gè)事件以便相比于單級(jí)的有序事件 列表更快地處理事件;以及 執(zhí)行所調(diào)度的多個(gè)事件。
2. 如權(quán)利要求1所述的方法,其特征在于,執(zhí)行所調(diào)度的多個(gè)事件包括: 在所調(diào)度的多個(gè)事件中查找下一事件; 基于所述下一事件來使與所述下一事件相關(guān)聯(lián)的節(jié)點(diǎn)的狀態(tài)進(jìn)展,其中該節(jié)點(diǎn)是所述 多個(gè)節(jié)點(diǎn)之一;以及 基于該節(jié)點(diǎn)的進(jìn)展后狀態(tài)來確定該節(jié)點(diǎn)的輸出事件(在發(fā)生過的情況下)被預(yù)測在何 時(shí)發(fā)生。
3. 如權(quán)利要求2所述的方法,其特征在于,進(jìn)一步包括基于所述確定來重新調(diào)度該節(jié) 點(diǎn)的輸出事件,其中所述重新調(diào)度包括使用所述多級(jí)架構(gòu)。
4. 如權(quán)利要求1所述的方法,其特征在于,執(zhí)行所調(diào)度的多個(gè)事件包括在所調(diào)度的多 個(gè)事件中查找下一事件,其中查找所述下一事件包括: 遍歷所述多級(jí)架構(gòu)中的各級(jí)以確定所述各級(jí)中的每一級(jí)處的最早事件;以及 在遍歷所述各級(jí)后將所述下一事件確定為所有事件中的最早事件。
5. 如權(quán)利要求1所述的方法,其特征在于,所述多級(jí)架構(gòu)的第一級(jí)包括所述多個(gè)節(jié)點(diǎn) 的可索引列表。
6. 如權(quán)利要求5所述的方法,其特征在于,對于所述多個(gè)節(jié)點(diǎn)中的每一個(gè)節(jié)點(diǎn),所述多 級(jí)架構(gòu)的第二級(jí)包括該節(jié)點(diǎn)的共同待決事件的調(diào)度。
7. 如權(quán)利要求6所述的方法,其特征在于,進(jìn)一步包括通過在所述第一級(jí)尋址所述多 個(gè)節(jié)點(diǎn)中的一個(gè)節(jié)點(diǎn)來確定該節(jié)點(diǎn)的共同待決事件的調(diào)度。
8. 如權(quán)利要求6所述的方法,其特征在于,該節(jié)點(diǎn)的共同待決事件的調(diào)度被至少部分 地分揀,其中所述共同待決事件中的最早事件被首先調(diào)度。
9. 如權(quán)利要求6所述的方法,其特征在于,所述共同待決事件的調(diào)度包括該節(jié)點(diǎn)的最 多僅一個(gè)輸出事件。
10. 如權(quán)利要求6所述的方法,其特征在于,進(jìn)一步包括將所述多個(gè)節(jié)點(diǎn)組織成一個(gè)或 多個(gè)單元。
11. 如權(quán)利要求10所述的方法,其特征在于,所述組織包括基于連接延遲來將所述多 個(gè)節(jié)點(diǎn)組織成各個(gè)單元,以使得各個(gè)單元之間的第一連接延遲長于各個(gè)單元內(nèi)的第二連接 延遲。
12. 如權(quán)利要求10所述的方法,其特征在于,對于所述各個(gè)單元中的每一個(gè)單元,所述 多級(jí)架構(gòu)的第三級(jí)包括來自該單元中的每一個(gè)節(jié)點(diǎn)的共同待決事件中的最早事件。
13. 如權(quán)利要求12所述的方法,其特征在于,所述多級(jí)架構(gòu)的第四級(jí)包括基于來自所 述各個(gè)單元中的每一個(gè)單元的共同待決事件中的最早事件的組織。
14. 如權(quán)利要求13所述的方法,其特征在于,所述組織包括二叉樹,并且其中所述二叉 樹的根包括全部所調(diào)度的多個(gè)事件中的最早的共同待決事件。
15. 如權(quán)利要求13所述的方法,其特征在于,對于所述各個(gè)單元中的每一個(gè)單元,在所 述多級(jí)架構(gòu)的第三級(jí)中,來自該單元中的每一個(gè)節(jié)點(diǎn)的共同待決事件中的最早事件被組織 為鏈表,并且其中對于所述各個(gè)單元中的每一個(gè)單元,所述多級(jí)架構(gòu)的第五級(jí)包括引用所 述鏈表的向量。
16. 如權(quán)利要求15所述的方法,其特征在于,進(jìn)一步包括重新調(diào)度所調(diào)度的多個(gè)事件, 其中所述重新調(diào)度包括: 使用所述向量來在所述鏈表中查找最接近期望條目的一個(gè)或多個(gè)條目,以供插入所調(diào) 度的多個(gè)事件或從所調(diào)度的多個(gè)事件中刪除;以及 使用所述鏈表來基于所找到的最接近的一個(gè)或多個(gè)條目定位所述期望條目。
17. 如權(quán)利要求1所述的方法,其特征在于,所述多個(gè)節(jié)點(diǎn)包括多個(gè)神經(jīng)元或多個(gè)突觸 中的至少一個(gè)。
18. -種用于神經(jīng)網(wǎng)絡(luò)的裝置,包括: 處理系統(tǒng),其被配置成: 使用多級(jí)架構(gòu)來調(diào)度神經(jīng)網(wǎng)絡(luò)中的多個(gè)節(jié)點(diǎn)的多個(gè)事件以便相比于單級(jí)的有序事件 列表更快地處理事件;以及 執(zhí)行所調(diào)度的多個(gè)事件。
19. 如權(quán)利要求18所述的裝置,其特征在于,所述處理系統(tǒng)被配置成通過以下操作來 執(zhí)行所調(diào)度的多個(gè)事件: 在所調(diào)度的多個(gè)事件中查找下一事件; 基于所述下一事件來使與所述下一事件相關(guān)聯(lián)的節(jié)點(diǎn)的狀態(tài)進(jìn)展,其中該節(jié)點(diǎn)是所述 多個(gè)節(jié)點(diǎn)之一;以及 基于該節(jié)點(diǎn)的進(jìn)展后狀態(tài)來確定該節(jié)點(diǎn)的輸出事件(在發(fā)生過的情況下)被預(yù)測在何 時(shí)發(fā)生。
20. 如權(quán)利要求19所述的裝置,其特征在于,所述處理系統(tǒng)被進(jìn)一步配置成基于所述 確定來重新調(diào)度該節(jié)點(diǎn)的輸出事件,其中所述重新調(diào)度包括使用所述多級(jí)架構(gòu)。
21. 如權(quán)利要求18所述的裝置,其特征在于,所述處理系統(tǒng)被配置成通過在所調(diào)度的 多個(gè)事件中查找下一事件來執(zhí)行所調(diào)度的多個(gè)事件,其中查找所述下一事件包括: 遍歷所述多級(jí)架構(gòu)中的各級(jí)以確定每一級(jí)處的最早事件;以及 在遍歷所述各級(jí)后將所述下一事件確定為所有事件中的最早事件。
22. 如權(quán)利要求18所述的裝置,其特征在于,所述多級(jí)架構(gòu)的第一級(jí)包括所述多個(gè)節(jié) 點(diǎn)的可索引列表。
23. 如權(quán)利要求22所述的裝置,其特征在于,對于所述多個(gè)節(jié)點(diǎn)中的每一個(gè)節(jié)點(diǎn),所述 多級(jí)架構(gòu)的第二級(jí)包括該節(jié)點(diǎn)的共同待決事件的調(diào)度。
24. 如權(quán)利要求23所述的裝置,其特征在于,所述處理系統(tǒng)被進(jìn)一步配置成通過在所 述第一級(jí)尋址所述多個(gè)節(jié)點(diǎn)中的一個(gè)節(jié)點(diǎn)來確定該節(jié)點(diǎn)的共同待決事件的調(diào)度。
25. 如權(quán)利要求23所述的裝置,其特征在于,該節(jié)點(diǎn)的共同待決事件的調(diào)度被至少部 分地分揀,其中所述共同待決事件中的最早事件被首先調(diào)度。
26. 如權(quán)利要求23所述的裝置,其特征在于,所述共同待決事件的調(diào)度包括該節(jié)點(diǎn)的 最多僅一個(gè)輸出事件。
27. 如權(quán)利要求23所述的裝置,其特征在于,所述處理系統(tǒng)被進(jìn)一步配置成將所述多 個(gè)節(jié)點(diǎn)組織成一個(gè)或多個(gè)單元。
28. 如權(quán)利要求27所述的裝置,其特征在于,所述處理系統(tǒng)被配置成基于連接延遲來 將所述多個(gè)節(jié)點(diǎn)組織成各個(gè)單元,以使得各個(gè)單元之間的第一連接延遲長于各個(gè)單元內(nèi)的 第二連接延遲。
29. 如權(quán)利要求27所述的裝置,其特征在于,對于所述各個(gè)單元中的每一單元,所述多 級(jí)架構(gòu)的第三級(jí)包括來自該單元中的每一個(gè)節(jié)點(diǎn)的共同待決事件中的最早事件。
30. 如權(quán)利要求29所述的裝置,其特征在于,所述多級(jí)架構(gòu)的第四級(jí)包括基于來自所 述各個(gè)單元中的每一個(gè)單元的共同待決事件中的最早事件的組織。
31. 如權(quán)利要求30所述的裝置,其特征在于,所述組織包括二叉樹,并且其中所述二叉 樹的根包括全部所調(diào)度的多個(gè)事件中的最早的共同待決事件。
32. 如權(quán)利要求30所述的裝置,其特征在于,對于所述各個(gè)單元中的每一個(gè)單元,在所 述多級(jí)架構(gòu)的第三級(jí)中,來自該單元中的每一個(gè)節(jié)點(diǎn)的共同待決事件中的最早事件被組織 為鏈表,并且其中對于所述各個(gè)單元中的每一個(gè)單元,所述多級(jí)架構(gòu)的第五級(jí)包括引用所 述鏈表的向量。
33. 如權(quán)利要求32所述的裝置,其特征在于,所述處理系統(tǒng)被進(jìn)一步配置成通過以下 操作來重新調(diào)度所調(diào)度的多個(gè)事件: 使用所述向量來在所述鏈表中查找最接近期望條目的一個(gè)或多個(gè)條目,以供插入所調(diào) 度的多個(gè)事件或從所調(diào)度的多個(gè)事件中刪除;以及 使用所述鏈表來基于所找到的最接近的一個(gè)或多個(gè)條目定位所述期望條目。
34. 如權(quán)利要求18所述的裝置,其特征在于,所述多個(gè)節(jié)點(diǎn)包括多個(gè)神經(jīng)元或多個(gè)突 觸中的至少一個(gè)。
35. -種用于神經(jīng)網(wǎng)絡(luò)的設(shè)備,包括: 用于使用多級(jí)架構(gòu)來調(diào)度神經(jīng)網(wǎng)絡(luò)中的多個(gè)節(jié)點(diǎn)的多個(gè)事件以便相比于單級(jí)的有序 事件列表更快地處理事件的裝置;以及 用于執(zhí)行所調(diào)度的多個(gè)事件的裝置。
36. 如權(quán)利要求35所述的設(shè)備,其特征在于,所述用于執(zhí)行所調(diào)度的多個(gè)事件的裝置 被配置成: 在所調(diào)度的多個(gè)事件中查找下一事件; 基于所述下一事件來使與所述下一事件相關(guān)聯(lián)的節(jié)點(diǎn)的狀態(tài)進(jìn)展,其中該節(jié)點(diǎn)是所述 多個(gè)節(jié)點(diǎn)之一;以及 基于該節(jié)點(diǎn)的進(jìn)展后狀態(tài)來確定該節(jié)點(diǎn)的輸出事件(在發(fā)生過的情況下)被預(yù)測在何 時(shí)發(fā)生。
37. 如權(quán)利要求36所述的設(shè)備,其特征在于,進(jìn)一步包括用于基于所述確定來重新調(diào) 度該節(jié)點(diǎn)的輸出事件的裝置,其中所述用于重新調(diào)度的裝置被配置成使用所述多級(jí)架構(gòu)。
38. 如權(quán)利要求35所述的設(shè)備,其特征在于,所述用于執(zhí)行所調(diào)度的多個(gè)事件的裝置 被配置成通過以下操作來在所調(diào)度的多個(gè)事件中查找下一事件: 遍歷所述多級(jí)架構(gòu)中的各級(jí)以確定每一級(jí)處的最早事件;以及 在遍歷所述各級(jí)后將所述下一事件確定為所有事件中的最早事件。
39. 如權(quán)利要求35所述的設(shè)備,其特征在于,所述多級(jí)架構(gòu)的第一級(jí)包括所述多個(gè)節(jié) 點(diǎn)的可索引列表。
40. 如權(quán)利要求39所述的設(shè)備,其特征在于,對于所述多個(gè)節(jié)點(diǎn)中的每一個(gè)節(jié)點(diǎn),所述 多級(jí)架構(gòu)的第二級(jí)包括該節(jié)點(diǎn)的共同待決事件的調(diào)度。
41. 如權(quán)利要求40所述的設(shè)備,其特征在于,進(jìn)一步包括用于通過在所述第一級(jí)尋址 所述多個(gè)節(jié)點(diǎn)中的一個(gè)節(jié)點(diǎn)來確定該節(jié)點(diǎn)的共同待決事件的調(diào)度的裝置。
42. 如權(quán)利要求40所述的設(shè)備,其特征在于,該節(jié)點(diǎn)的共同待決事件的調(diào)度被至少部 分地分揀,其中所述共同待決事件中的最早事件被首先調(diào)度。
43. 如權(quán)利要求40所述的設(shè)備,其特征在于,所述共同待決事件的調(diào)度包括該節(jié)點(diǎn)的 最多僅一個(gè)輸出事件。
44. 如權(quán)利要求40所述的設(shè)備,其特征在于,進(jìn)一步包括用于將所述多個(gè)節(jié)點(diǎn)組織成 一個(gè)或多個(gè)單元的裝置。
45. 如權(quán)利要求44所述的設(shè)備,其特征在于,所述用于組織的裝置被配置成基于連接 延遲來將所述多個(gè)節(jié)點(diǎn)組織成各個(gè)單元,以使得各個(gè)單元之間的第一連接延遲長于各個(gè)單 元內(nèi)的第二連接延遲。
46. 如權(quán)利要求44所述的設(shè)備,其特征在于,對于所述各個(gè)單元中的每一單元,所述多 級(jí)架構(gòu)的第三級(jí)包括來自該單元中的每一個(gè)節(jié)點(diǎn)的共同待決事件中的最早事件。
47. 如權(quán)利要求46所述的設(shè)備,其特征在于,所述多級(jí)架構(gòu)的第四級(jí)包括基于來自所 述各個(gè)單元中的每一個(gè)單元的共同待決事件中的最早事件的組織。
48. 如權(quán)利要求47所述的設(shè)備,其特征在于,所述組織包括二叉樹,并且其中所述二叉 樹的根包括全部所調(diào)度的多個(gè)事件中的最早的共同待決事件。
49. 如權(quán)利要求47所述的設(shè)備,其特征在于,對于所述各個(gè)單元中的每一個(gè)單元,在所 述多級(jí)架構(gòu)的第三級(jí)中,來自該單元中的每一個(gè)節(jié)點(diǎn)的共同待決事件中的最早事件被組織 為鏈表,并且其中對于所述各個(gè)單元中的每一個(gè)單元,所述多級(jí)架構(gòu)的第五級(jí)包括引用所 述鏈表的向量。
50. 如權(quán)利要求49所述的設(shè)備,其特征在于,進(jìn)一步包括用于通過以下操作來重新調(diào) 度所調(diào)度的多個(gè)事件的裝置: 使用所述向量來在所述鏈表中查找最接近期望條目的一個(gè)或多個(gè)條目,以供插入所調(diào) 度的多個(gè)事件或從所調(diào)度的多個(gè)事件中刪除;以及 使用所述鏈表來基于所找到的最接近的一個(gè)或多個(gè)條目定位所述期望條目。
51. 如權(quán)利要求35所述的設(shè)備,其特征在于,所述多個(gè)節(jié)點(diǎn)包括多個(gè)神經(jīng)元或多個(gè)突 觸中的至少一個(gè)。
52. -種用于神經(jīng)網(wǎng)絡(luò)的計(jì)算機(jī)程序產(chǎn)品,包括包含可執(zhí)行用于以下操作的指令的計(jì) 算機(jī)可讀介質(zhì): 使用多級(jí)架構(gòu)來調(diào)度神經(jīng)網(wǎng)絡(luò)中的多個(gè)節(jié)點(diǎn)的多個(gè)事件以便相比于單級(jí)的有序事件 列表更快地處理事件;以及 執(zhí)行所調(diào)度的多個(gè)事件。
53. 如權(quán)利要求52所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于,執(zhí)行所調(diào)度的多個(gè)事件包括: 在所調(diào)度的多個(gè)事件中查找下一事件; 基于所述下一事件來使與所述下一事件相關(guān)聯(lián)的節(jié)點(diǎn)的狀態(tài)進(jìn)展,其中該節(jié)點(diǎn)是所述 多個(gè)節(jié)點(diǎn)之一;以及 基于該節(jié)點(diǎn)的進(jìn)展后狀態(tài)來確定該節(jié)點(diǎn)的輸出事件(在發(fā)生過的情況下)被預(yù)測在何 時(shí)發(fā)生。
54. 如權(quán)利要求53所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于,進(jìn)一步包括可執(zhí)行以通過使 用所述多級(jí)架構(gòu)基于所述確定來重新調(diào)度該節(jié)點(diǎn)的輸出事件的指令。
55. 如權(quán)利要求52所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于,執(zhí)行所調(diào)度的多個(gè)事件包括 在所調(diào)度的多個(gè)事件中查找下一事件,其中查找所述下一事件包括: 遍歷所述多級(jí)架構(gòu)中的各級(jí)以確定每一級(jí)處的最早事件;以及 在遍歷所述各級(jí)后將所述下一事件確定為所有事件中的最早事件。
56. 如權(quán)利要求52所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于,所述多級(jí)架構(gòu)的第一級(jí)包括 所述多個(gè)節(jié)點(diǎn)的可索引列表。
57. 如權(quán)利要求56所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于,對于所述多個(gè)節(jié)點(diǎn)中的每一 個(gè)節(jié)點(diǎn),所述多級(jí)架構(gòu)的第二級(jí)包括該節(jié)點(diǎn)的共同待決事件的調(diào)度。
58. 如權(quán)利要求57所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于,進(jìn)一步包括可執(zhí)行以通過在 所述第一級(jí)尋址所述多個(gè)節(jié)點(diǎn)中的一個(gè)節(jié)點(diǎn)來確定該節(jié)點(diǎn)的共同待決事件的調(diào)度的指令。
59. 如權(quán)利要求57所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于,該節(jié)點(diǎn)的共同待決事件的調(diào) 度被至少部分地分揀,其中所述共同待決事件中的最早事件被首先調(diào)度。
60. 如權(quán)利要求57所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于,所述共同待決事件的調(diào)度包 括該節(jié)點(diǎn)的最多僅一個(gè)輸出事件。
61. 如權(quán)利要求57所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于,進(jìn)一步包括可執(zhí)行以將所述 多個(gè)節(jié)點(diǎn)組織成一個(gè)或多個(gè)單元的指令。
62. 如權(quán)利要求61所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于,所述組織包括基于連接延遲 來將所述多個(gè)節(jié)點(diǎn)組織成各個(gè)單元,以使得各個(gè)單元之間的第一連接延遲長于各個(gè)單元內(nèi) 的第二連接延遲。
63. 如權(quán)利要求61所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于,對于所述各個(gè)單元中的每一 單元,所述多級(jí)架構(gòu)的第三級(jí)包括來自該單元中的每一個(gè)節(jié)點(diǎn)的共同待決事件中的最早事 件。
64. 如權(quán)利要求63所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于,所述多級(jí)架構(gòu)的第四級(jí)包括 基于來自所述各個(gè)單元中的每一個(gè)單元的共同待決事件中的最早事件的組織。
65. 如權(quán)利要求64所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于,所述組織包括二叉樹,并且其 中所述二叉樹的根包括全部所調(diào)度的多個(gè)事件中的最早的共同待決事件。
66. 如權(quán)利要求64所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于,對于所述各個(gè)單元中的每一 個(gè)單元,在所述多級(jí)架構(gòu)的第三級(jí)中,來自該單元中的每一個(gè)節(jié)點(diǎn)的共同待決事件中的最 早事件被組織為鏈表,并且其中對于所述各個(gè)單元中的每一個(gè)單元,所述多級(jí)架構(gòu)的第五 級(jí)包括引用所述鏈表的向量。
67. 如權(quán)利要求66所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于,進(jìn)一步包括可執(zhí)行以通過以 下操作來重新調(diào)度所調(diào)度的多個(gè)事件的指令: 使用所述向量來在所述鏈表中查找最接近期望條目的一個(gè)或多個(gè)條目,以供插入所調(diào) 度的多個(gè)事件或從所調(diào)度的多個(gè)事件中刪除;以及 使用所述鏈表來基于所找到的最接近的一個(gè)或多個(gè)條目定位所述期望條目。
68. 如權(quán)利要求52所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于,所述多個(gè)節(jié)點(diǎn)包括多個(gè)神經(jīng) 元或多個(gè)突觸中的至少一個(gè)。
69. -種用于神經(jīng)網(wǎng)絡(luò)的方法,包括: 在神經(jīng)網(wǎng)絡(luò)中的第一節(jié)點(diǎn)處接收第一輸入事件; 基于接收到的第一輸入事件來使所述第一節(jié)點(diǎn)的狀態(tài)進(jìn)展;以及 基于所述第一節(jié)點(diǎn)的進(jìn)展后狀態(tài)來確定所述第一節(jié)點(diǎn)的第一輸出事件(在發(fā)生過的 情況下)預(yù)期在何時(shí)發(fā)生。
70. 如權(quán)利要求69所述的方法,其特征在于,所述第一節(jié)點(diǎn)的狀態(tài)由所述第一節(jié)點(diǎn)的 膜電位和恢復(fù)電流來定義。
71. 如權(quán)利要求69所述的方法,其特征在于,所述進(jìn)展包括: 處理所述接收到的第一輸入事件以調(diào)整所述第一節(jié)點(diǎn)的狀態(tài);以及 向前跳轉(zhuǎn)到所述接收到的第一輸入事件的時(shí)間。
72. 如權(quán)利要求69所述的方法,其特征在于,所述第一節(jié)點(diǎn)包括突觸后神經(jīng)元,并且其 中接收所述第一輸入事件包括從第二節(jié)點(diǎn)接收第二輸出事件。
73. 如權(quán)利要求72所述的方法,其特征在于,所述第二節(jié)點(diǎn)包括具有延遲的突觸,并且 其中所述進(jìn)展包括: 處理所述接收到的第一輸入事件以調(diào)整所述第一節(jié)點(diǎn)的狀態(tài);以及 向前跳轉(zhuǎn)到所述接收到的第一輸入事件的時(shí)間加上所述延遲。
74. 如權(quán)利要求72所述的方法,其特征在于,所述第二節(jié)點(diǎn)包括經(jīng)由具有非零延遲的 突觸與所述突觸后神經(jīng)元連接的突觸前神經(jīng)元,并且其中所述延遲被忽略以使得不調(diào)度所 述突觸的第三輸出事件。
75. 如權(quán)利要求72所述的方法,其特征在于,所述第二節(jié)點(diǎn)包括經(jīng)由具有零延遲的突 觸與所述突觸后神經(jīng)元連接的突觸前神經(jīng)元,以使得不調(diào)度所述突觸的第三輸出事件。
76. 如權(quán)利要求72所述的方法,其特征在于,所述第二節(jié)點(diǎn)包括經(jīng)由具有第一延遲的 突觸與所述突觸后神經(jīng)元連接的突觸前神經(jīng)元,并且其中所述第一延遲的至少一部分被忽 略,以使得以第二延遲調(diào)度所述突觸的第三輸出事件。
77. 如權(quán)利要求69所述的方法,其特征在于,所述確定在所述第一節(jié)點(diǎn)的狀態(tài)每一次 進(jìn)展后執(zhí)行。
78. 如權(quán)利要求69所述的方法,其特征在于,進(jìn)一步包括延遲所述確定。
79. 如權(quán)利要求78所述的方法,其特征在于,進(jìn)一步包括: 在所述第一節(jié)點(diǎn)處接收第二輸入事件,其中所述第二輸入事件在所述第一輸入事件后 且在被延遲的確定之前發(fā)生;以及 在基于所述接收到的第一輸入事件來使所述第一節(jié)點(diǎn)的狀態(tài)進(jìn)展后、但在所述被延遲 的確定之前,基于所述接收到的第二輸入事件來使所述第一節(jié)點(diǎn)的狀態(tài)進(jìn)展。
80. 如權(quán)利要求79所述的方法,其特征在于,基于所述接收到的第一和第二輸入事件 來使所述第一節(jié)點(diǎn)的狀態(tài)進(jìn)展包括: 將基于所述接收到的第一輸入事件來使所述第一節(jié)點(diǎn)的狀態(tài)進(jìn)展和基于所述接收到 的第二輸入事件來使所述第一節(jié)點(diǎn)的狀態(tài)進(jìn)展進(jìn)行排隊(duì);以及 在所述被延遲確定的時(shí)間執(zhí)行所排隊(duì)的進(jìn)展。
81. 如權(quán)利要求69所述的方法,其特征在于,進(jìn)一步包括: 在所述進(jìn)展之前存儲(chǔ)所述接收到的第一輸入事件;以及 在所述第一節(jié)點(diǎn)處接收第二輸入事件,其中所述第二輸入事件在所述第一輸入事件之 后發(fā)生,其中所述進(jìn)展包括一起處理所述接收到的第一輸入事件和所述接收到的第二輸入 事件。
82. 如權(quán)利要求69所述的方法,其特征在于,進(jìn)一步包括: 根據(jù)所述確定來輸出來自所述第一節(jié)點(diǎn)的第一輸出事件; 接收所述第一輸出事件作為對第二節(jié)點(diǎn)的第二輸入事件; 基于接收到的第二輸入事件來使所述第二節(jié)點(diǎn)的狀態(tài)進(jìn)展;以及 基于所述第二節(jié)點(diǎn)的進(jìn)展后狀態(tài)來確定所述第二節(jié)點(diǎn)的第二輸出事件(在發(fā)生過的 情況下)預(yù)期在何時(shí)發(fā)生。
83. 如權(quán)利要求69所述的方法,其特征在于,所述第一節(jié)點(diǎn)包括突觸,并且其中所述確 定指示所述第一輸出事件將永不發(fā)生。
84. 如權(quán)利要求83所述的方法,其特征在于,進(jìn)一步包括基于將永不發(fā)生的所述第一 輸出事件來使所述突觸的狀態(tài)進(jìn)展,其中使所述突觸的狀態(tài)進(jìn)展包括將當(dāng)前時(shí)間用作將永 不發(fā)生的所述第一輸出事件的時(shí)間。
85. 如權(quán)利要求69所述的方法,其特征在于,所述第一輸入事件包括所述第一節(jié)點(diǎn)的 人工事件。
86. 如權(quán)利要求85所述的方法,其特征在于,進(jìn)一步包括將所述人工事件調(diào)度為周期 性地發(fā)生。
87. 如權(quán)利要求85所述的方法,其特征在于,進(jìn)一步包括如果在沒有所述第一節(jié)點(diǎn)的 事件的情況下已逝去一時(shí)間量,則調(diào)度所述人工事件發(fā)生。
88. 如權(quán)利要求85所述的方法,其特征在于,進(jìn)一步包括將所述人工事件調(diào)度為在每 一輸入或輸出事件發(fā)生后的一延遲之后發(fā)生,以使得如果沒有輸入或輸出事件在所述延遲 內(nèi)發(fā)生,則發(fā)生所述人工事件。
89. 如權(quán)利要求88所述的方法,其特征在于,進(jìn)一步包括將另一人工事件調(diào)度為在所 述人工事件發(fā)生后以另一延遲發(fā)生。
90. -種用于神經(jīng)網(wǎng)絡(luò)的裝置,包括: 處理系統(tǒng),其被配置成: 在神經(jīng)網(wǎng)絡(luò)中的第一節(jié)點(diǎn)處接收第一輸入事件; 基于接收到的第一輸入事件來使所述第一節(jié)點(diǎn)的狀態(tài)進(jìn)展;以及 基于所述第一節(jié)點(diǎn)的進(jìn)展后狀態(tài)來確定所述第一節(jié)點(diǎn)的第一輸出事件(在發(fā)生過的 情況下)預(yù)期在何時(shí)發(fā)生。
91. 如權(quán)利要求90所述的裝置,其特征在于,所述第一節(jié)點(diǎn)的狀態(tài)由所述第一節(jié)點(diǎn)的 膜電位和恢復(fù)電流來定義。
92. 如權(quán)利要求90所述的裝置,其特征在于,所述處理系統(tǒng)被配置成通過以下操作來 使所述第一節(jié)點(diǎn)的狀態(tài)進(jìn)展: 處理所述接收到的第一輸入事件以調(diào)整所述第一節(jié)點(diǎn)的狀態(tài);以及 向前跳轉(zhuǎn)到所述接收到的第一輸入事件的時(shí)間。
93. 如權(quán)利要求90所述的裝置,其特征在于,所述第一節(jié)點(diǎn)包括突觸后神經(jīng)元,并且其 中所述處理系統(tǒng)被配置成通過從第二節(jié)點(diǎn)接收第二輸出事件來接收所述第一輸入事件。
94. 如權(quán)利要求93所述的方法,其特征在于,所述第二節(jié)點(diǎn)包括具有延遲的突觸,并且 其中所述處理系統(tǒng)被配置成通過以下操作來使所述第一節(jié)點(diǎn)的狀態(tài)進(jìn)展: 處理所述接收到的第一輸入事件以調(diào)整所述第一節(jié)點(diǎn)的狀態(tài);以及 向前跳轉(zhuǎn)到所述接收到的第一輸入事件的時(shí)間加上所述延遲。
95. 如權(quán)利要求93所述的裝置,其特征在于,所述第二節(jié)點(diǎn)包括經(jīng)由具有非零延遲的 突觸與所述突觸后神經(jīng)元連接的突觸前神經(jīng)元,并且其中所述延遲被忽略以使得不調(diào)度所 述突觸的第三輸出事件。
96. 如權(quán)利要求93所述的裝置,其特征在于,所述第二節(jié)點(diǎn)包括經(jīng)由具有零延遲的突 觸與所述突觸后神經(jīng)元連接的突觸前神經(jīng)元,以使得不調(diào)度所述突觸的第三輸出事件。
97. 如權(quán)利要求93所述的裝置,其特征在于,所述第二節(jié)點(diǎn)包括經(jīng)由具有第一延遲的 突觸與所述突觸后神經(jīng)元連接的突觸前神經(jīng)元,并且其中所述第一延遲的至少一部分被忽 略以使得以第二延遲調(diào)度所述突觸的第三輸出事件。
98. 如權(quán)利要求90所述的裝置,其特征在于,所述確定在所述第一節(jié)點(diǎn)的狀態(tài)每一次 進(jìn)展后執(zhí)行。
99. 如權(quán)利要求90所述的裝置,其特征在于,進(jìn)一步包括延遲所述確定。
100. 如權(quán)利要求99所述的裝置,其特征在于,所述處理系統(tǒng)被進(jìn)一步配置成: 在所述第一節(jié)點(diǎn)處接收第二輸入事件,其中所述第二輸入事件在所述第一輸入事件后 且在被延遲的確定之前發(fā)生;以及 在基于所述接收到的第一輸入事件來使所述第一節(jié)點(diǎn)的狀態(tài)進(jìn)展后、但在所述被延遲 的確定之前,基于所述接收到的第二輸入事件來使所述第一節(jié)點(diǎn)的狀態(tài)進(jìn)展。
101. 如權(quán)利要求100所述的裝置,其特征在于,所述處理系統(tǒng)被配置成通過以下操作 來基于所述接收到的第一和第二輸入事件使所述第一節(jié)點(diǎn)的狀態(tài)進(jìn)展: 將基于所述接收到的第一輸入事件來使所述第一節(jié)點(diǎn)的狀態(tài)進(jìn)展和基于所述接收到 的第二輸入事件來使所述第一節(jié)點(diǎn)的狀態(tài)進(jìn)展進(jìn)行排隊(duì);以及 在所述被延遲確定的時(shí)間執(zhí)行所排隊(duì)的進(jìn)展。
102. 如權(quán)利要求90所述的裝置,其特征在于,所述處理系統(tǒng)被進(jìn)一步配置成: 在所述進(jìn)展之前存儲(chǔ)所述接收到的第一輸入事件;以及 在所述第一節(jié)點(diǎn)處接收第二輸入事件,其中所述第二輸入事件在所述第一輸入事件之 后發(fā)生,其中所述處理系統(tǒng)被配置成通過一起處理所述接收到的第一輸入事件和所述接收 到的第二輸入事件來使所述第一節(jié)點(diǎn)的狀態(tài)進(jìn)展。
103. 如權(quán)利要求90所述的裝置,其特征在于,所述處理系統(tǒng)被進(jìn)一步配置成: 根據(jù)所述確定來輸出來自所述第一節(jié)點(diǎn)的第一輸出事件; 接收所述第一輸出事件作為對第二節(jié)點(diǎn)的第二輸入事件; 基于接收到的第二輸入事件來使所述第二節(jié)點(diǎn)的狀態(tài)進(jìn)展;以及 基于所述第二節(jié)點(diǎn)的進(jìn)展后狀態(tài)來確定所述第二節(jié)點(diǎn)的第二輸出事件(在發(fā)生過的 情況下)預(yù)期在何時(shí)發(fā)生。
104. 如權(quán)利要求90所述的裝置,其特征在于,所述第一節(jié)點(diǎn)包括突觸,并且其中所述 確定指示所述第一輸出事件將永不發(fā)生。
105. 如權(quán)利要求104所述的裝置,其特征在于,所述處理系統(tǒng)被進(jìn)一步配置成基于將 永不發(fā)生的所述第一輸出事件來使所述突觸的狀態(tài)進(jìn)展,其中所述處理系統(tǒng)被配置成通過 將當(dāng)前時(shí)間用作將永不發(fā)生的所述第一輸出事件的時(shí)間來使所述突觸的狀態(tài)進(jìn)展。
106. 如權(quán)利要求90所述的裝置,其特征在于,所述第一輸入事件包括所述第一節(jié)點(diǎn)的 人工事件。
107. 如權(quán)利要求106所述的裝置,其特征在于,所述處理系統(tǒng)被進(jìn)一步配置成將所述 人工事件調(diào)度為周期性地發(fā)生。
108. 如權(quán)利要求106所述的裝置,其特征在于,所述處理系統(tǒng)被進(jìn)一步配置成如果在 沒有所述第一節(jié)點(diǎn)的事件的情況下已逝去一時(shí)間量,則調(diào)度所述人工事件發(fā)生。
109. 如權(quán)利要求106所述的裝置,其特征在于,所述處理系統(tǒng)被進(jìn)一步配置成將所述 人工事件調(diào)度為在每一輸入或輸出事件發(fā)生后的一延遲之后發(fā)生,以使得如果沒有輸入或 輸出事件在所述延遲內(nèi)發(fā)生,則發(fā)生所述人工事件。
110. 如權(quán)利要求109所述的裝置,其特征在于,所述處理系統(tǒng)被進(jìn)一步配置成將另一 人工事件調(diào)度為在所述人工事件發(fā)生后以另一延遲發(fā)生。
111. 一種用于神經(jīng)網(wǎng)絡(luò)的設(shè)備,包括: 用于在神經(jīng)網(wǎng)絡(luò)中的第一節(jié)點(diǎn)處接收第一輸入事件的裝置; 用于基于接收到的第一輸入事件來使所述第一節(jié)點(diǎn)的狀態(tài)進(jìn)展的裝置;以及 用于基于所述第一節(jié)點(diǎn)的進(jìn)展后狀態(tài)來確定所述第一節(jié)點(diǎn)的第一輸出事件(在發(fā)生 過的情況下)預(yù)期在何時(shí)發(fā)生的裝置。
112. 如權(quán)利要求111所述的設(shè)備,其特征在于,所述第一節(jié)點(diǎn)的狀態(tài)由所述第一節(jié)點(diǎn) 的膜電位和恢復(fù)電流來定義。
113. 如權(quán)利要求111所述的設(shè)備,其特征在于,所述用于進(jìn)展的裝置被配置成: 處理所述接收到的第一輸入事件以調(diào)整所述第一節(jié)點(diǎn)的狀態(tài);以及 向前跳轉(zhuǎn)到所述接收到的第一輸入事件的時(shí)間。
114. 如權(quán)利要求111所述的設(shè)備,其特征在于,所述第一節(jié)點(diǎn)包括突觸后神經(jīng)元,并且 其中所述用于接收所述第一輸入事件的裝置被配置成從第二節(jié)點(diǎn)接收第二輸出事件。
115. 如權(quán)利要求114所述的設(shè)備,其特征在于,所述第二節(jié)點(diǎn)包括具有延遲的突觸,并 且其中所述用于進(jìn)展的裝置被配置成: 處理所述接收到的第一輸入事件以調(diào)整所述第一節(jié)點(diǎn)的狀態(tài);以及 向前跳轉(zhuǎn)到所述接收到的第一輸入事件的時(shí)間加上所述延遲。
116. 如權(quán)利要求114所述的設(shè)備,其特征在于,所述第二節(jié)點(diǎn)包括經(jīng)由具有非零延遲 的突觸與所述突觸后神經(jīng)元連接的突觸前神經(jīng)元,并且其中所述延遲被忽略以使得不調(diào)度 所述突觸的第三輸出事件。
117. 如權(quán)利要求114所述的設(shè)備,其特征在于,所述第二節(jié)點(diǎn)包括經(jīng)由具有零延遲的 突觸與所述突觸后神經(jīng)元連接的突觸前神經(jīng)元,以使得不調(diào)度所述突觸的第三輸出事件。
118. 如權(quán)利要求114所述的設(shè)備,其特征在于,所述第二節(jié)點(diǎn)包括經(jīng)由具有第一延遲 的突觸與所述突觸后神經(jīng)元連接的突觸前神經(jīng)元,并且其中所述第一延遲的至少一部分被 忽略以使得以第二延遲調(diào)度所述突觸的第三輸出事件。
119. 如權(quán)利要求111所述的設(shè)備,其特征在于,所述確定在所述第一節(jié)點(diǎn)的狀態(tài)每一 次進(jìn)展后執(zhí)行。
120. 如權(quán)利要求111所述的設(shè)備,其特征在于,進(jìn)一步包括用于延遲所述確定的裝置。
121. 如權(quán)利要求120所述的設(shè)備,其特征在于,進(jìn)一步包括: 用于在所述第一節(jié)點(diǎn)處接收第二輸入事件的裝置,其中所述第二輸入事件在所述第一 輸入事件后且在被延遲的確定之前發(fā)生;以及 用于在基于所述接收到的第一輸入事件來使所述第一節(jié)點(diǎn)的狀態(tài)進(jìn)展后、但在所述被 延遲的確定之前,基于所述接收到的第二輸入事件來使所述第一節(jié)點(diǎn)的狀態(tài)進(jìn)展的裝置。
122. 如權(quán)利要求121所述的設(shè)備,其特征在于,所述用于基于所述接收到的第一和第 二輸入事件來使所述第一節(jié)點(diǎn)的狀態(tài)進(jìn)展的裝置被配置成: 將基于所述接收到的第一輸入事件來使所述第一節(jié)點(diǎn)的狀態(tài)進(jìn)展和基于所述接收到 的第二輸入事件來使所述第一節(jié)點(diǎn)的狀態(tài)進(jìn)展進(jìn)行排隊(duì);以及 在所述被延遲確定的時(shí)間執(zhí)行所排隊(duì)的進(jìn)展。
123. 如權(quán)利要求111所述的設(shè)備,其特征在于,進(jìn)一步包括: 用于在所述進(jìn)展之前存儲(chǔ)所述接收到的第一輸入事件的裝置;以及 用于在所述第一節(jié)點(diǎn)處接收第二輸入事件的裝置,其中所述第二輸入事件在所述第一 輸入事件之后發(fā)生,其中所述用于進(jìn)展的裝置被配置成一起處理所述接收到的第一輸入事 件和所述接收到的第二輸入事件。
124. 如權(quán)利要求111所述的設(shè)備,其特征在于,進(jìn)一步包括: 用于根據(jù)所述確定來輸出來自所述第一節(jié)點(diǎn)的第一輸出事件的裝置; 用于接收所述第一輸出事件作為對第二節(jié)點(diǎn)的第二輸入事件的裝置; 用于基于接收到的第二輸入事件來使所述第二節(jié)點(diǎn)的狀態(tài)進(jìn)展的裝置;以及 用于基于所述第二節(jié)點(diǎn)的進(jìn)展后狀態(tài)來確定所述第二節(jié)點(diǎn)的第二輸出事件(在發(fā)生 過的情況下)預(yù)期在何時(shí)發(fā)生的裝置。
125. 如權(quán)利要求111所述的設(shè)備,其特征在于,所述第一節(jié)點(diǎn)包括突觸,并且其中所述 確定指示所述第一輸出事件將永不發(fā)生。
126. 如權(quán)利要求125所述的設(shè)備,其特征在于,進(jìn)一步包括用于基于將永不發(fā)生的所 述第一輸出事件來使所述突觸的狀態(tài)進(jìn)展的裝置,其中所述用于使所述突觸的狀態(tài)進(jìn)展的 裝置被配置成將當(dāng)前時(shí)間用作將永不發(fā)生的所述第一輸出事件的時(shí)間。
127. 如權(quán)利要求111所述的設(shè)備,其特征在于,所述第一輸入事件包括所述第一節(jié)點(diǎn) 的人工事件。
128. 如權(quán)利要求127所述的設(shè)備,其特征在于,進(jìn)一步包括用于將所述人工事件調(diào)度 為周期性地發(fā)生的裝置。
129. 如權(quán)利要求127所述的設(shè)備,其特征在于,進(jìn)一步包括用于如果在沒有所述第一 節(jié)點(diǎn)的事件的情況下已逝去一時(shí)間量,則調(diào)度所述人工事件發(fā)生的裝置。
130. 如權(quán)利要求127所述的設(shè)備,其特征在于,進(jìn)一步包括用于將所述人工事件調(diào)度 為在每一輸入或輸出事件發(fā)生后的一延遲之后發(fā)生,以使得如果沒有輸入或輸出事件在所 述延遲內(nèi)發(fā)生,則發(fā)生所述人工事件的裝置。
131. 如權(quán)利要求130所述的設(shè)備,其特征在于,所述用于調(diào)度的裝置被配置成將另一 人工事件調(diào)度為在所述人工事件發(fā)生后以另一延遲發(fā)生。
132. -種用于神經(jīng)網(wǎng)絡(luò)的計(jì)算機(jī)程序產(chǎn)品,包括包含可執(zhí)行用于以下操作的指令的計(jì) 算機(jī)可讀介質(zhì): 在神經(jīng)網(wǎng)絡(luò)中的第一節(jié)點(diǎn)處接收第一輸入事件; 基于接收到的第一輸入事件來使所述第一節(jié)點(diǎn)的狀態(tài)進(jìn)展;以及 基于所述第一節(jié)點(diǎn)的進(jìn)展后狀態(tài)來確定所述第一節(jié)點(diǎn)的第一輸出事件(在發(fā)生過的 情況下)預(yù)期在何時(shí)發(fā)生。
133. 如權(quán)利要求132所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于,所述第一節(jié)點(diǎn)的狀態(tài)由所 述第一節(jié)點(diǎn)的膜電位和恢復(fù)電流來定義。
134. 如權(quán)利要求132所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于,所述進(jìn)展包括: 處理所述接收到的第一輸入事件以調(diào)整所述第一節(jié)點(diǎn)的狀態(tài);以及 向前跳轉(zhuǎn)到所述接收到的第一輸入事件的時(shí)間。
135. 如權(quán)利要求132所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于,所述第一節(jié)點(diǎn)包括突觸后 神經(jīng)元,并且其中接收所述第一輸入事件包括從第二節(jié)點(diǎn)接收第二輸出事件。
136. 如權(quán)利要求135所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于,所述第二節(jié)點(diǎn)包括具有延 遲的突觸,并且其中所述進(jìn)展包括: 處理所述接收到的第一輸入事件以調(diào)整所述第一節(jié)點(diǎn)的狀態(tài);以及 向前跳轉(zhuǎn)到所述接收到的第一輸入事件的時(shí)間加上所述延遲。
137. 如權(quán)利要求135所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于,所述第二節(jié)點(diǎn)包括經(jīng)由具 有非零延遲的突觸與所述突觸后神經(jīng)元連接的突觸前神經(jīng)元,并且其中所述延遲被忽略以 使得不調(diào)度所述突觸的第三輸出事件。
138. 如權(quán)利要求135所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于,所述第二節(jié)點(diǎn)包括經(jīng)由具 有零延遲的突觸與所述突觸后神經(jīng)元連接的突觸前神經(jīng)元,以使得不調(diào)度所述突觸的第三 輸出事件。
139. 如權(quán)利要求135所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于,所述第二節(jié)點(diǎn)包括經(jīng)由具 有第一延遲的突觸與所述突觸后神經(jīng)元連接的突觸前神經(jīng)元,并且其中所述第一延遲的至 少一部分被忽略以使得以第二延遲調(diào)度所述突觸的第三輸出事件。
140. 如權(quán)利要求132所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于,所述確定在所述第一節(jié)點(diǎn) 的狀態(tài)每一次進(jìn)展后執(zhí)行。
141. 如權(quán)利要求132所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于,進(jìn)一步包括可執(zhí)行以延遲 所述確定的指令。
142. 如權(quán)利要求141所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于,進(jìn)一步包括可執(zhí)行用于以 下操作的指令: 在所述第一節(jié)點(diǎn)處接收第二輸入事件,其中所述第二輸入事件在所述第一輸入事件后 且在被延遲的確定之前發(fā)生;以及 在基于所述接收到的第一輸入事件來使所述第一節(jié)點(diǎn)的狀態(tài)進(jìn)展后,但在所述被延遲 的確定之前,基于所述接收到的第二輸入事件來使所述第一節(jié)點(diǎn)的狀態(tài)進(jìn)展。
143. 如權(quán)利要求142所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于,基于所述接收到的第一和 第二輸入事件來使所述第一節(jié)點(diǎn)的狀態(tài)進(jìn)展包括: 將基于所述接收到的第一輸入事件來使所述第一節(jié)點(diǎn)的狀態(tài)進(jìn)展和基于所述接收到 的第二輸入事件來使所述第一節(jié)點(diǎn)的狀態(tài)進(jìn)展進(jìn)行排隊(duì);以及 在所述被延遲確定的時(shí)間執(zhí)行所排隊(duì)的進(jìn)展。
144. 如權(quán)利要求132所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于,進(jìn)一步包括可執(zhí)行以用于 以下操作的指令: 在所述進(jìn)展之前存儲(chǔ)所述接收到的第一輸入事件;以及 在所述第一節(jié)點(diǎn)處接收第二輸入事件,其中所述第二輸入事件在所述第一輸入事件之 后發(fā)生,其中所述進(jìn)展包括一起處理所述接收到的第一輸入事件和所述接收到的第二輸入 事件。
145. 如權(quán)利要求132所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于,進(jìn)一步包括可執(zhí)行以用于 以下操作的指令: 根據(jù)所述確定來輸出來自所述第一節(jié)點(diǎn)的第一輸出事件; 接收所述第一輸出事件作為對第二節(jié)點(diǎn)的第二輸入事件; 基于接收到的第二輸入事件來使所述第二節(jié)點(diǎn)的狀態(tài)進(jìn)展;以及 基于所述第二節(jié)點(diǎn)的進(jìn)展后狀態(tài)來確定所述第二節(jié)點(diǎn)的第二輸出事件(在發(fā)生過的 情況下)預(yù)期在何時(shí)發(fā)生。
146. 如權(quán)利要求132所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于,所述第一節(jié)點(diǎn)包括突觸,并 且其中所述確定指示所述第一輸出事件將永不發(fā)生。
147. 如權(quán)利要求146所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于,進(jìn)一步包括可執(zhí)行以基于 將永不發(fā)生的所述第一輸出事件來使所述突觸的狀態(tài)進(jìn)展的指令,其中使所述突觸的狀態(tài) 進(jìn)展包括將當(dāng)前時(shí)間用作將永不發(fā)生的所述第一輸出事件的時(shí)間。
148. 如權(quán)利要求132所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于,所述第一輸入事件包括所 述第一節(jié)點(diǎn)的人工事件。
149. 如權(quán)利要求148所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于,進(jìn)一步包括可執(zhí)行以將所 述人工事件調(diào)度為周期性地發(fā)生的指令。
150. 如權(quán)利要求148所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于,進(jìn)一步包括可執(zhí)行以用于 以下操作的指令:如果在沒有所述第一節(jié)點(diǎn)的事件的情況下已逝去一時(shí)間量,則調(diào)度所述 人工事件發(fā)生。
151. 如權(quán)利要求148所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于,進(jìn)一步包括可執(zhí)行以用于 以下操作的指令:將所述人工事件調(diào)度為在每一輸入或輸出事件發(fā)生后的一延遲之后發(fā) 生,以使得如果沒有輸入或輸出事件在所述延遲內(nèi)發(fā)生,則發(fā)生所述人工事件。
152. 如權(quán)利要求151所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于,進(jìn)一步包括可執(zhí)行以將另 一人工事件調(diào)度為在所述人工事件發(fā)生后以另一延遲發(fā)生的指令。
153. -種用于神經(jīng)網(wǎng)絡(luò)的方法,包括: 生成引用神經(jīng)網(wǎng)絡(luò)中的多個(gè)節(jié)點(diǎn)的事件列表的向量,其中所述列表按時(shí)間從最早事件 到最晚事件排序;以及 在不遍歷所述列表的情況下使用所述向量來在所述列表中查找最接近目標(biāo)的一個(gè)或 多個(gè)事件。
154. 如權(quán)利要求153所述的方法,其特征在于,所述列表包括所述多個(gè)節(jié)點(diǎn)中的每一 個(gè)節(jié)點(diǎn)的最早事件(從最早事件到最晚事件排列)。
155. 如權(quán)利要求153所述的方法,其特征在于,所述向量中的第i個(gè)條目引用所述列表 中的第i個(gè)條目。
156. 如權(quán)利要求153所述的方法,其特征在于,所述列表包括鏈表,并且其中所述向量 實(shí)現(xiàn)為具有指向所述鏈表的條目的指針。
157. 如權(quán)利要求153所述的方法,其特征在于,使用所述向量包括執(zhí)行對所述向量的 索引二元搜索。
158. 如權(quán)利要求153所述的方法,其特征在于,使用所述向量包括基于所述向量中的 時(shí)間條目來執(zhí)行內(nèi)插或外推。
159. 如權(quán)利要求153所述的方法,其特征在于,進(jìn)一步包括: 在所述目標(biāo)處從所述列表中刪除事件或者在最接近所述目標(biāo)的一個(gè)或多個(gè)事件之間 將事件插入所述列表;以及 基于所刪除或插入的事件來更新所述向量。
160. 如權(quán)利要求159所述的方法,其特征在于,基于所刪除的事件來更新所述向量包 括引用所述列表中的在所刪除的事件之前或之后的條目。
161. 如權(quán)利要求160所述的方法,其特征在于,進(jìn)一步包括在滿足閾值的情況下重新 生成所述向量。
162. 如權(quán)利要求161所述的方法,其特征在于,進(jìn)一步包括動(dòng)態(tài)調(diào)整所述閾值。
163. 如權(quán)利要求161所述的方法,其特征在于,所述閾值包括對所述目標(biāo)的搜索次數(shù)、 對所述向量的更新次數(shù)、從所述列表中的刪除次數(shù)、在找到所述最接近的一個(gè)或多個(gè)事件 后搜索所述列表的成本或者虛擬向量的稀疏性,所述虛擬向量反映所生成的向量并且通過 移除所述虛擬向量中的對應(yīng)于從所述列表中刪除的事件的條目來形成。
164. -種用于神經(jīng)網(wǎng)絡(luò)的裝置,包括: 處理系統(tǒng),其被配置成: 生成引用神經(jīng)網(wǎng)絡(luò)中的多個(gè)節(jié)點(diǎn)的事件列表的向量,其中所述列表按時(shí)間從最早事件 到最晚事件排序;以及 在不遍歷所述列表的情況下使用所述向量來在所述列表中查找最接近目標(biāo)的一個(gè)或 多個(gè)事件。
165. 如權(quán)利要求164所述的裝置,其特征在于,所述列表包括所述多個(gè)節(jié)點(diǎn)中的每一 個(gè)節(jié)點(diǎn)的最早事件(從最早事件到最晚事件排列)。
166. 如權(quán)利要求164所述的裝置,其特征在于,所述向量中的第i個(gè)條目引用所述列表 中的第i個(gè)條目。
167. 如權(quán)利要求164所述的裝置,其特征在于,所述列表包括鏈表,并且其中所述向量 被實(shí)現(xiàn)為具有指向所述鏈表的條目的指針。
168. 如權(quán)利要求164所述的裝置,其特征在于,使用所述向量包括執(zhí)行對所述向量的 索引二元搜索。
169. 如權(quán)利要求164所述的裝置,其特征在于,使用所述向量包括基于所述向量中的 時(shí)間條目來執(zhí)行內(nèi)插或外推。
170. 如權(quán)利要求164所述的裝置,其特征在于,所述處理系統(tǒng)被進(jìn)一步配置成: 在所述目標(biāo)處從所述列表中刪除事件或者在最接近所述目標(biāo)的一個(gè)或多個(gè)事件之間 將事件插入所述列表;以及 基于所刪除或插入的事件來更新所述向量。
171. 如權(quán)利要求170所述的裝置,其特征在于,所述處理系統(tǒng)被配置成通過引用所述 列表中的在所刪除的事件之前或之后的條目,基于所刪除的事件來更新所述向量。
172. 如權(quán)利要求171所述的裝置,其特征在于,所述處理系統(tǒng)被進(jìn)一步配置成在滿足 閾值的情況下重新生成所述向量。
173. 如權(quán)利要求172所述的裝置,其特征在于,所述處理系統(tǒng)被進(jìn)一步配置成動(dòng)態(tài)地 調(diào)整所述閾值。
174. 如權(quán)利要求172所述的裝置,其特征在于,所述閾值包括對所述目標(biāo)的搜索次數(shù)、 對所述向量的更新次數(shù)、從所述列表中的刪除次數(shù)、在找到所述最接近的一個(gè)或多個(gè)事件 后搜索所述列表的成本或者虛擬向量的稀疏性,所述虛擬向量反映所生成的向量并且通過 移除所述虛擬向量中的對應(yīng)于從所述列表中刪除的事件的條目來形成。
175. -種用于神經(jīng)網(wǎng)絡(luò)的設(shè)備,包括: 用于生成引用神經(jīng)網(wǎng)絡(luò)中的多個(gè)節(jié)點(diǎn)的事件列表的向量的裝置,其中所述列表按時(shí)間 從最早事件到最晚事件排序;以及 用于在不遍歷所述列表的情況下使用所述向量來在所述列表中查找最接近目標(biāo)的一 個(gè)或多個(gè)事件的裝置。
176. 如權(quán)利要求175所述的設(shè)備,其特征在于,所述列表包括所述多個(gè)節(jié)點(diǎn)中的每一 個(gè)節(jié)點(diǎn)的最早事件(從最早事件到最晚事件排列)。
177. 如權(quán)利要求175所述的設(shè)備,其特征在于,所述向量中的第i個(gè)條目引用所述列表 中的第i個(gè)條目。
178. 如權(quán)利要求175所述的設(shè)備,其特征在于,所述列表包括鏈表,并且其中所述向量 被實(shí)現(xiàn)為具有指向所述鏈表的條目的指針。
179. 如權(quán)利要求175所述的設(shè)備,其特征在于,使用所述向量包括執(zhí)行對所述向量的 索引二元搜索。
180. 如權(quán)利要求175所述的設(shè)備,其特征在于,使用所述向量包括基于所述向量中的 時(shí)間條目來執(zhí)行內(nèi)插或外推。
181. 如權(quán)利要求175所述的設(shè)備,其特征在于,進(jìn)一步包括: 用于在所述目標(biāo)處從所述列表中刪除事件或者用于在最接近所述目標(biāo)的一個(gè)或多個(gè) 事件之間將事件插入所述列表的裝置;以及 用于基于所刪除或插入的事件來更新所述向量的裝置。
182. 如權(quán)利要求181所述的設(shè)備,其特征在于,所述用于基于所刪除的事件來更新所 述向量的裝置被配置成引用所述列表中的在所刪除的事件之前或之后的條目。
183. 如權(quán)利要求182所述的設(shè)備,其特征在于,進(jìn)一步包括用于在滿足閾值的情況下 重新生成所述向量的裝置。
184. 如權(quán)利要求183所述的設(shè)備,其特征在于,進(jìn)一步包括用于動(dòng)態(tài)地調(diào)整所述閾值 的裝置。
185. 如權(quán)利要求183所述的設(shè)備,其特征在于,所述閾值包括對所述目標(biāo)的搜索次數(shù)、 對所述向量的更新次數(shù)、從所述列表中的刪除次數(shù)、在找到所述最接近的一個(gè)或多個(gè)事件 后搜索所述列表的成本或者虛擬向量的稀疏性,所述虛擬向量反映所生成的向量并且通過 移除所述虛擬向量中的對應(yīng)于從所述列表中刪除的事件的條目來形成。
186. -種用于神經(jīng)網(wǎng)絡(luò)的計(jì)算機(jī)程序產(chǎn)品,包括包含可執(zhí)行用于以下操作的指令的計(jì) 算機(jī)可讀介質(zhì): 生成引用神經(jīng)網(wǎng)絡(luò)中的多個(gè)節(jié)點(diǎn)的事件列表的向量,其中所述列表按時(shí)間從最早事件 到最晚事件排序;以及 在不遍歷所述列表的情況下使用所述向量來在所述列表中查找最接近目標(biāo)的一個(gè)或 多個(gè)事件。
187. 如權(quán)利要求186所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于,所述列表包括所述多個(gè)節(jié) 點(diǎn)中的每一個(gè)節(jié)點(diǎn)的最早事件(從最早事件到最晚事件排列)。
188. 如權(quán)利要求186所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于,所述向量中的第i個(gè)條目引 用所述列表中的第i個(gè)條目。
189. 如權(quán)利要求186所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于,所述列表包括鏈表,并且其 中所述向量實(shí)現(xiàn)有指向所述鏈表的條目的指針。
190. 如權(quán)利要求186所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于,使用所述向量包括執(zhí)行對 所述向量的索引二元搜索。
191. 如權(quán)利要求186所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于,使用所述向量包括基于所 述向量中的時(shí)間條目來執(zhí)行內(nèi)插或外推。
192. 如權(quán)利要求186所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于,進(jìn)一步包括可執(zhí)行以用于 以下操作的指令: 在所述目標(biāo)處從所述列表中刪除事件或者在最接近所述目標(biāo)的一個(gè)或多個(gè)事件之間 將事件插入所述列表;以及 基于所刪除或插入的事件來更新所述向量。
193. 如權(quán)利要求192所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于,基于所刪除的事件來更新 所述向量包括引用所述列表中的在所刪除的事件之前或之后的條目。
194. 如權(quán)利要求193所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于,進(jìn)一步包括可執(zhí)行以在滿 足閾值的情況下重新生成所述向量的指令。
195. 如權(quán)利要求194所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于,進(jìn)一步包括可執(zhí)行以動(dòng)態(tài) 地調(diào)整所述閾值的指令。
196. 如權(quán)利要求194所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于,所述閾值包括對所述目標(biāo) 的搜索次數(shù)、對所述向量的更新次數(shù)、從所述列表中的刪除次數(shù)、在找到所述最接近的一個(gè) 或多個(gè)事件后搜索所述列表的成本或者虛擬向量的稀疏性,所述虛擬向量反映所生成的向 量并且通過移除所述虛擬向量中的對應(yīng)于從所述列表中刪除的事件的條目來形成。
【文檔編號(hào)】G06N3/04GK104335232SQ201380028613
【公開日】2015年2月4日 申請日期:2013年5月30日 優(yōu)先權(quán)日:2012年5月30日
【發(fā)明者】J·F·亨澤格 申請人:高通股份有限公司