1. <rt id="e600n"></rt>
      1. <pre id="e600n"><strong id="e600n"><pre id="e600n"></pre></strong></pre>
      2. 岛国免费AV,无码人妻精品一区二区三区夜夜嗨,又大又粗又硬又爽黄毛少妇,精品国产AV二区,91视频最新网址,久操无码,久久无码人妻一区二区三区午夜,国产精品视频中文字幕

        用于提高神經網絡推斷準確度的流水線技術的制作方法

        文檔序號:19675761發布日期:2020-01-10 23:18閱讀:258來源:國知局

        相關申請

        本專利申請據此要求2018年7月3日提交的題為“useofpipeliningtoimproveneuralnetworkinferenceaccuracy”的美國臨時專利申請62/693,615的權益和優先權,該美國臨時專利申請據此全文以引用方式并入。

        本公開的各方面涉及人工神經網絡中的人工神經元電路領域。



        背景技術:

        人工神經網絡(ann)可以由使用軟件、集成硬件或其他分立元件模擬的單獨人工神經元形成。神經形態計算可以采用ann,其致力于在集成系統中使用電子部件諸如模擬/數字電路,以模擬人類大腦并試圖更多地理解神經系統的神經生物學架構。神經形態計算注重實現神經系統模型,以理解單獨神經元、突觸、電路和架構的形態如何導致實現期望計算。這種生物啟發式計算為超低功率消耗和高并行性提供了巨大潛力。

        已經開展了許多神經形態計算項目,這些項目包括brainscales、spinnaker和ibmtruenorth,它們使用基于半導體的隨機存取存儲器來模擬生物神經元的行為。最近,還提出了使用新興的非易失性存儲器設備(包括相變存儲器、電阻式存儲器和磁隨機存取存儲器)來模擬生物神經元。特別是,使用具有可變電阻或電導特性的新材料使電阻式存儲器技術成為可能,該可變電阻或電導特性在施加電壓或電流之后持續存在。

        遺憾的是,在針對采用非易失性存儲器設備來模擬生物神經元的神經形態計算系統的神經網絡操作期間可能出現各種噪聲影響。在設計用于機器學習以及其他ann應用的硬件部件時,這些噪聲影響可能非常顯著。另外,這些噪聲源可能會對ann推斷和訓練操作產生不利影響。

        概述

        本文呈現了用于人工神經網絡的增強技術和電路。這些人工神經網絡由人工神經元形成,在本文的具體實施中,該人工神經元包括具有非易失性存儲器元件的存儲器陣列。人工神經元之間的神經連接件由互連電路形成,該互連電路耦接到存儲器陣列的控制線以將存儲器陣列細分為人工神經網絡的多個層。控制電路被配置為在人工神經網絡的第一層的輸入控制線上傳送輸入值的多次迭代,以通過至少一個或多個附加層進行推斷操作。控制電路還被配置為對來自輸入值的每次迭代的在人工神經網絡的最后一層的輸出控制線上連續呈現的輸出值應用平均函數。

        附圖說明

        參考以下附圖可以更好地理解本公開的許多方面。盡管結合這些附圖描述了幾種具體實施,但本公開并不限于本文所公開的具體實施。相反,其旨在涵蓋所有另選方案、修改和等同物。

        圖1示出了具體實施中的人工神經網絡系統。

        圖2示出了具體實施中的人工神經網絡系統的操作。

        圖3示出了具體實施中的人工神經網絡系統。

        圖4示出了具體實施中的人工神經網絡系統。

        圖5示出了具體實施中的人工神經網絡系統的操作。

        圖6示出了具體實施中的人工神經網絡系統的性能。

        圖7示出了根據具體實施的用于托管或控制人工神經網絡的計算系統。

        具體實施方式

        已經開發了人工神經網絡(ann)以使用被認為類似于生物神經元的技術來處理復雜數據集。生物神經元響應于對神經元細胞體的各種突觸輸入而典型地產生輸出,并且一些形式的人工神經元試圖模擬這種行為。因此,可以利用人工神經元之間的人工神經連接以及這些人工神經元的特性來形成人工神經元的復雜網絡,以處理大量數據集或者執行對于常規數據處理器而言過于復雜的任務諸如機器學習。

        ann可以由使用軟件模擬的單獨人工神經元形成,或者由集成硬件和分立電路元件形成。如本文所討論,人工神經元可以包括單獨存儲器元件(諸如,非易失性存儲器元件),或者可以使用其他類型的存儲器元件或軟件元件來表示。人工神經元利用人工神經連接來互連,為了清楚起見,在本文中將人工神經連接稱為神經連接。這些神經連接被設計成模擬使生物神經元互連的生物神經突觸和軸突。這些神經連接可以包括電互連器,諸如線、跡線、電路以及各種分立或集成的邏輯或光學互連器。當采用存儲器元件來形成人工神經元時,這些神經連接可以部分地由任何相關聯的存儲器陣列的控制線形成。這些控制線可以包括:將數據引入人工神經元的輸入控制線;以及從人工神經元接收數據的輸出控制線。在特定具體實施中,控制線可以包括存儲器陣列的字線和位線。

        已經開發了各種類型的ann,其通常涉及用于連接人工神經元的拓撲結構以及如何通過ann處理或傳播數據。例如,前饋ann以“向前”方式通過人工神經元的順序層傳播數據,這排除了反向傳播和循環。完全連接的ann具有多層人工神經元,并且每個人工神經元各自連接到后續層的所有人工神經元。卷積神經網絡(cnn)由多層人工神經元形成,這些人工神經元完全連接并以前饋方式傳播數據。

        通常將通過ann傳播和處理數據以產生結果的過程稱為推斷。然而,在通過ann處理數據集之前,必須首先訓練許多ann。該訓練過程可以建立單獨人工神經元之間的連通性以及每個人工神經元的數據處理特性。可以將人工神經元的數據處理特性稱為權重或突觸權重。突觸權重指示兩個人工神經元之間的連接的強度或幅度。這可以與擊發第一人工神經元對另一個人工神經元的影響程度相對應。

        已經開發了用于形成執行機器學習任務以及ann框架內的其他數據處理任務的ann的各種具體實施。例如,常規的中央處理單元(cpu)通常可以有效地處理非常復雜的指令,但所實現的并行度的量可能有限。然而,在機器學習計算中,尤其是在訓練任務中,基本操作是向量矩陣乘法,這是一項執行了非常多次的簡單任務。已經開始受到cpu青睞的圖形處理單元(gpu)使用并行架構,并且可以處理許多組非常簡單的指令。另一個新興的具體實施使用專用集成電路(asic),其可以實現在執行一個特定任務時有效的張量處理單元(tpu)。由于機器學習越來越多地集成到更多應用程序中,人們越來越關注制造能夠有效處理機器學習任務的專用電路。

        實現機器學習的另一個問題是電功率消耗。執行機器學習任務可能消耗gpu或tpu高達數百瓦特的功率。相比之下,人類大腦可以通過僅使用約20瓦特的功率來執行類似的認知任務。這種高耗能的缺點激發了對生物啟發式或大腦啟發式方法(諸如神經形態計算)的研究,以應對機器學習的局限性。

        神經形態計算可以采用ann,并且致力于在超大規模集成(vlsi)系統中使用電子部件諸如模擬/數字電路,以試圖模擬人類大腦,尤其是試圖理解神經系統的神經生物學架構并從中學習。神經形態計算注重實現神經系統模型,并且理解單獨神經元、突觸、電路和架構的形態如何導致實現期望計算。這種生物啟發式計算為超低功率消耗和高并行性提供了巨大潛力。已經進行了相關研究以研究脈沖神經網絡以及突觸學習規則(諸如,脈沖時間依賴的可塑性)。許多神經形態計算項目已經進行了好幾年,這些項目包括brainscales、spinnaker和ibmtruenorth,它們使用sram或sdram來保持突觸權重。

        最近,還提出了使用新興的非易失性存儲器設備(包括相變存儲器(pcm)、電阻式隨機存取存儲器(rram或reram)以及由磁隧道結(mtj)形成的磁隨機存取存儲器(mram))來模擬突觸權重。這些設備屬于憶阻器技術的廣泛類別,并且因其對應的小占用空間而可以提供非常高的密度和連通性。使用具有可變電阻狀態或電導狀態的新材料使電阻式存儲器技術(諸如,前述憶阻器類別中的那些技術)成為可能,該可變電阻或電導狀態在施加電壓或電流之后持續存在。憶阻器和其他相關的電阻式存儲器設備通常包括將電荷與磁通鏈相關聯的電子部件,其中,憶阻器的電阻取決于憶阻器先前傳遞的電流或電壓。

        下文將考慮表示人工神經網絡的突觸權重的非易失性存儲器(nvm)元件,但增強的電路和技術可以應用于其他電路類型和ann拓撲結構。單獨的nvm元件可以形成為經由耦接到nvm元件的控制線互連的大陣列。在一些示例中,這些控制線可以包括位線和字線布置,但在其他實施方案中,控制線可以包括其他元件并且與其他存儲器陣列布置交接。在本文的示例中,采用非易失性存儲器(nvm)陣列來實現各種類型的ann。具體地講,電阻式存儲器元件被組織成用于形成ann的可尋址人工神經元陣列。控制線連接件不僅可以用于在陣列中寫入和讀取nvm元件,還可以用于將nvm陣列邏輯地細分為ann的邏輯子單元(將其稱為層)。這些層可以各自包括任意數量的nvm元件,該數量通常由每層的人工神經元或節點的期望數量來確定。通常,每層中nvm元件的該任意數量是相同的,但其他實施方案可以在每層中使用不同數量的nvm元件。在一些示例中,每層的節點可以包括nvm陣列的整個存儲頁面,或者可以跨越多個存儲頁面。此外,層的節點可以替代性地僅將nvm元件的子集用于特定存儲頁面,因此可以在層之間共享單個存儲頁面。在另外的示例中,nvm元件可能未采用傳統的存儲頁面組織,而是包括列/行可尋址元件的“平坦”陣列。

        如上所述,可以使用組織成不同層的人造神經元的大量人工神經元來形成人工神經網絡。可以將這些層組合成被稱為深層神經網絡的布置以及其他布置。深層神經網絡通常包括輸入層和輸出層以及輸入層與輸出層之間的一個或多個中間層。將這些中間層稱為隱藏層。在機器學習方面,特別是在圖像分類、對象檢測或語音識別應用方面,深層神經網絡非常受歡迎。深層神經網絡是最廣泛使用的深度學習技術之一。深層前饋神經網絡(如,卷積神經網絡(cnn)或多層感知器(mlp))適用于處理靜態圖案(諸如圖像)。遞歸深層神經網絡(如長短期存儲器(lstm))擅長于處理時態數據如語音。

        在用于神經形態計算以及其他ann操作的深層神經網絡訓練和推斷期間可能出現各種噪聲影響。在設計用于機器學習的硬件部件時,這些噪聲影響可能非常顯著。兩種類型的噪聲包括前向傳播噪聲和權重更新噪聲,并且將在下文更詳細地討論。然而,這些噪聲源可能對推斷操作產生不利影響,并且在某些情況下還可能對訓練操作產生不利影響。在本文提出的增強的電路和技術中,流水線方法可以至少減少人工神經網絡中的前向傳播噪聲。有利地,這些增強的流水線ann可以提高推斷操作的分類準確度,并且潛在地接近與當不存在噪聲時執行的經修改的美國國家標準和技術研究院數據庫(mnist)測試相當的理想水平。

        現在討論各種電路中的噪聲源,諸如前向傳播噪聲和權重更新噪聲。深層前饋神經網絡(諸如多層感知器)的基本訓練操作可以分為幾個類別:前向傳播、計算成本、后向傳播和參數更新。基本推斷操作包括:前向傳播、將所得logit向量饋送到“softmax”層、以及確定具有最高概率的預測作為結果。在人工神經網絡中采用softmax層以呈現在目標數值范圍內歸一化的結果。例如,可以將概率呈現為0到1的值,并且softmax層可以解譯來自人工神經網絡的輸出值,并且可以以0至1的比例尺將這些輸出值歸一化。可以在softmax層中應用其他比例尺和歸一化函數。

        噪聲的一個源是權重更新噪聲。該噪聲源可以來自在nvm陣列中存儲突觸權重的人工神經元。這些人工神經元可以由在進行突觸權重更新時具有變化效果的存儲器設備形成。在訓練期間,在每個訓練時期期間更新突觸權重。在推斷期間,當我們將先前訓練的突觸權重從軟件或存儲設備編程到初始陣列中時,僅更新突觸權重一次。用于減輕權重更新噪聲的解決方案超出了本討論的范圍。

        另一個噪聲源是前向傳播噪聲。在電路和設備級別下可能出現前向傳播噪聲,這可能影響操作人工神經網絡的訓練和推斷階段兩者。具體地講,在具有幾個完全連接的層的深層神經網絡中,通過對輸入到層的值進行向量矩陣乘法計算來在每個層中進行前向傳播。輸入值可以包括輸入圖像、或來自先前層的激活、及存儲的權重。在本文的nvm陣列示例中,輸入值由饋送到包括nvm陣列的字線的輸入控制線中的電壓表示,并且存儲的權重由nvm陣列中的nvm元件的當前電導值或電導狀態表示。可以將以這種方式使用的nvm陣列稱為權重存儲器陣列。然后,以電流值形式從包括nvm陣列的輸出控制線的相關聯輸出控制線中讀出每層的向量矩陣乘法結果。前向傳播噪聲可以來自模數轉換器(adc)過程以及其他源。在本文所討論的ann中,adc可以連接到輸出控制線的電流輸出端,并且將模擬電流輸出轉換成數字表示,以便傳輸到數字外圍電路。

        前向傳播噪聲包括在前向傳播操作期間產生的信號噪聲,其通常是高斯噪聲類型等。該噪聲可以包括由ann的各種電路元件(諸如,層互連電路、adc電路元件和其他電路元件)引入的模擬和數字噪聲。前向傳播噪聲可以在以下激活函數的輸入處以數學方式表示:wx+b,也將其稱為預激活參數。w是權重矩陣,x是來自先前層的激活(或第一層的輸入數據),并且b是偏置向量。在沒有噪聲的情況下,層前向傳播的線性部分的激活函數應該是:

        f(wx+b)。

        在添加前向傳播噪聲之后,激活函數變為:

        f(wx+b+z),z~n(0,σ2),其中,σ=β(wx+b)

        β是前向傳播噪聲的百分比。

        在圖6的曲線圖600中可以看出前向傳播噪聲對訓練和推斷的影響。當在訓練階段期間或者在推斷階段期間添加不同水平的前向傳播噪聲時,測試使用包括mnist手寫數字數據庫的測試數據的預測準確度。如曲線圖600所示,隨著前向傳播噪聲(水平軸線)增大,預測準確度(垂直軸線)快速降低。因此,減小了針對ann所期望的前向傳播噪聲。曲線圖600預測,前向傳播噪聲對訓練操作的影響小于其對推斷操作的影響。在訓練操作期間,來自最后一層迭代的錯誤將在當前層迭代處得到補償。對于推斷操作而言,包括非標準化預測的最終logit向量在被送入softmax函數之前在最后一層中獲得,以生成用于分類的標準化概率。由于來自先前層的前向傳播噪聲累積,該最終logit向量將具有誤差。并且這些誤差將導致分類準確度下降,如圖600中可以看出。

        在一些情況下,可以通過修改相關聯的神經網絡訓練方法來減小前向傳播噪聲。然而,在本文的示例中,未修改神經網絡訓練,并且采用增強的流水線技術進行推斷。該示例性流水線技術可以通過減少深層神經網絡內的前向傳播噪聲來提高推斷準確度。由于人工智能領域是非易失性存儲器(nvm)的新興應用,本文的這些流水線技術示例可以改善相關聯神經網絡的性能。流水線技術還可以減少總運行時間,如下文所討論。

        現在轉向可用于實現增強人工神經網絡的電路結構,呈現了圖1。圖1示出了示意圖100,其中,存儲器陣列110用作基于nvm陣列的突觸權重陣列,并且外圍電路用于實現深層神經網絡中的一個或多個層。外圍電路可以包括互連電路120和控制電路130,其包括示例性電路以至少互連并操作用于深層神經網絡中的一個或多個層的突觸權重陣列。在一個示例中,ann的單個層可以包括由兩個層形成且具有784×10的權重陣列大小的完全連接網絡。該示例性權重陣列大小與輸入神經元的784行和輸出神經元的10列相對應。

        圖1中還示出了輸入控制線163和輸出控制線164,其包括用于訪問存儲器陣列110的控制線。采用輸入控制線163來將數據引入到ann的由存儲器陣列110的人工神經元形成的每個層。采用輸出控制線164來從ann的每個層中讀出結果數據。互連電路120包括各種互連電路,這些互連電路包括線驅動器、線、開關、感測放大器、模擬或數字累加器、模數轉換電路、或用于驅動輸入控制線163并且監視/讀取輸出控制線164上呈現的值的其他電路。互連電路120之間的互連電路包括在存儲器陣列110的控制線之間制造的電連接件,以在對應nvm元件之間創建一個或多個ann層,以及其他配置。互連電路120采用這些控制線來訪問單獨nvm元件,這些nvm元件可以進一步組織成存儲頁面等。在一些示例中,可以使用由互連電路120建立的邏輯或物理連接件來形成ann的層之間的互連。在其他示例中,該互連可以替代性地發生在控制電路130中。在特定示例中,輸入控制線可以包括nvm陣列的字線,并且輸出控制線可以包括nvm陣列的位線。然而,當采用不同的存儲器技術或不同于行/列配置的物理布置時,控制線163至164可以與其他布置相對應。例如,當采用人工神經元的非陣列配置時,或者當采用分立的存儲器單元時,控制線可以耦接到單獨的存儲器單元。

        控制電路130包括用于將輸入數據引入到存儲器陣列110并解譯由存儲器陣列110呈現的輸出數據的各種電路和處理元件。電路和處理元件可以包括激活函數、softmax處理元件、logit向量平均電路、前向傳播噪聲降低函數電路和存儲電路。控制電路130可以通過控制線161向互連電路120提供指令、命令或數據。控制電路130可以通過線162接收由存儲器陣列110確定的結果數據。互連電路120可以對由輸出控制線164呈現的信令應用任何調整或信號解譯,然后將其傳輸到控制電路130。輸出數據可以通過鏈路160傳送至一個或多個外部系統,諸如主機系統。此外,輸入數據可以在ann的訓練或推斷之前通過鏈路160從一個或多個外部系統得到。

        控制電路還可以包括一個或多個存儲器元件或存儲元件,在圖1中由存儲器131指示。存儲器131可以包括易失性或非易失性存儲器設備或存儲器空間。在一個示例中,存儲器131用作輸出緩沖器以存儲用于ann的人工神經元的突觸權重。在將輸入數據引入到ann層之前,控制系統130可以將這些突觸權重加載到存儲器陣列110的nvm元件中。存儲器131還可以被配置為存儲輸入數據和輸出數據。該輸出數據可以包括由ann的輸出層產生的引入到softmax過程之前的單獨logit向量。此外,在通過softmax過程對logit向量進行歸一化處理之后,存儲器131可以存儲輸出概率。在下文的示例中,討論了ann流水線技術,并且存儲器131可以存儲用于ann流水線的中間值和最終值。

        存儲器陣列110包括存儲器設備(具體地講,非易失性存儲器設備)的陣列。在該示例中,這些nvm設備包括憶阻器類存儲器設備,諸如憶阻器、reram、mram、pcm或其他設備技術。存儲器設備可以連接到可使用所選字線和位線訪問的存儲器設備的行和列的陣列中。然而,可以使用輸入控制線163和輸出控制線164來采用并訪問其他存儲器單元布置。存儲器陣列110可以用于實現人工神經網絡的單層,或者相反可以實現多層ann。ann的每一層均由多個節點或人工神經元構成。每個人工神經元與存儲器陣列110中的至少一個nvm元件相對應。在操作中,存儲器陣列110中的單獨nvm元件存儲由控制電路130從存儲器131中加載的突觸權重,至少通過訓練操作建立該突觸權重值。

        圖1還包括在存儲器陣列110內形成的示例性多層ann140,如配置101中所示。ann140的每一層均由多個節點或人工神經元構成。每個人工神經元與存儲器陣列110中的至少一個nvm元件相對應。ann140包括輸入層141、一個或多個隱藏層142至144、以及輸出層145。將輸入值呈現給輸入層141,以用于通過一個或多個隱藏層142至144進行傳播和處理,并且最終由輸出層145將其呈現為輸出值。可以將傳播和處理操作稱為推斷操作,其通常在訓練過程建立將由每層的人工神經元存儲的突觸權重之后發生。

        如本文所用,層是指在ann互連方案中共享類似數據傳播時期或階段的任何節點集合或組。例如,層的節點通常關于前層和后續層共享類似的連接特性。然而,在某些實施方案中,ann中的分層可以是ann的節點的邏輯組織,其中,層可以根據ann的拓撲結構、大小和具體實施的變化而變化。輸入層包括人工神經網絡的第一層,該第一層接收輸入數據、輸入值、或用于引入到ann的輸入向量。通常,輸入層將具有與輸入值/向量的大小或長度相對應的輸入節點數量。然后,這些輸入節點將根據連接樣式(諸如,完全連接或部分連接等)連接到后續層。將位于輸入層和輸出層之間的層稱為中間層或“隱藏”層。由于隱藏層和隱藏節點相對于外部系統是隱藏的,或者無法從外部系統中直接訪問隱藏層和隱藏節點以獲得輸入或輸出,因此將隱藏層和隱藏節點稱為是“隱藏的”。各種互連樣式(諸如,完全連接或部分連接)也可以用于隱藏層中的節點。最后,輸出層包括ann的節點的最終層或最后一層,其從最后的隱藏層或最后的中間層接收值并且將這些值呈現為來自ann的輸出。輸出層中的節點的數量通常與輸出值的大小或長度相對應。通常將這些輸出值稱為logit或logit向量,并且這些輸出值與在推斷過程已經通過各種隱藏層傳播之后由ann進行的預測有關。可以在附加層中進一步處理logit向量,通常將該附加層稱為softmax層,該層根據預定輸出比例尺(諸如,從0到1的概率比例尺等)來對logit向量進行縮放。

        在一個示例性操作中,可以以非流水線方式操作ann140。在該非流水線示例中,將單個輸入數據實例引入到輸入層141處,并且在輸出層145處呈現輸出值之前通過隱藏層對其進行傳播。輸出層145可以將該輸出值傳遞給任選的softmax過程或softmax層,該softmax過程或softmax層對輸出值進行歸一化處理,然后將其作為預測結果傳輸到外部系統。通過ann140傳播該單個輸入數據實例的總時間花費“m”個時間步長,ann140的每個層一個時間步長。然而,通過ann140傳播單個輸入實例可能導致來自每個ann140層的輸出值中的前向傳播噪聲的影響增大。

        還可以以增強的流水線方式操作ann140。配置101示出了ann140的流水線操作。在配置101中,已經建立了幾個層,這些層包含一個或多個人工神經元。這些層可以包括輸入層141、一個或多個隱藏層142至144、以及輸出層145。這些層之間的互連可以根據具體實施而變化,并且流水線技術可以適用于各種量的層互連。

        在流水線操作中,可以作為推斷操作的一部分通過ann140的各個層傳播特定輸入值。然而,可以將該輸入值的一個以上的實例迭代地引入到輸入層141。具體地講,控制電路130不止一次地向輸入層141呈現輸入值。ann140針對通過ann140傳播的輸入值的每個實例或迭代生成輸出值。如配置101中所示,輸出值t1、t2和tn可以來自向ann140引入目標次數的相同輸入值。然而,即使輸出值t1、t2和tn來自相同的輸入值,輸出值t1、t2和tn通常也會變化。這種變化部分地歸因于可出現在ann140的各層之間的電路中的前向傳播噪聲引起。

        盡管控制系統130或一個或多個外部系統可以采用每個輸出值,但在本示例中,采用了降噪函數150。降噪函數150存儲或緩沖根據特定輸入值產生的每個輸出值,其可能跨越相同輸入數據的幾個實例或迭代。在目標量的迭代完成之后,降噪函數150執行降噪過程,以至少減少輸出值中的前向傳播噪聲。因此,降噪函數150產生針對ann140的降噪結果。

        如本文所用,降噪函數是指執行降噪功能的數字、光學或模擬電信號噪聲降低過程、函數或特征以及相關聯電路、電路元件、軟件元件等的樣式、形式或類型。在一個示例中,降噪函數包括跨多于一個的輸出值或多于一組的輸出值應用的平均函數。在某些示例性降噪函數中,可以對輸出值應用各種加權或縮放以隨時間推移優先考慮一個或多個輸出值。其他降噪函數可以包括但不限于各種噪聲濾波器、“壓擴”(壓縮/擴展)函數、噪聲限制器函數、線性或非線性濾波器、平滑濾波器、高通或低通濾波器、高斯濾波器、平滑濾波器、小波濾波器、統計濾波器、基于機器學習的濾波函數或非等向性擴散等。

        現在轉向對圖1的元件的操作的附加討論,呈現了圖2。圖2是示出操作人工神經網絡的方法的流程圖200。在圖2中,操作與圖1的元件相關。然而,圖2的操作可以適用于本文所討論的任何具體實施等。

        在操作中,控制電路130將輸入值傳送(201)到人工神經網絡(ann)140的輸入層141。輸入值可以包括圖像數據或圖像數據的一部分以及待由ann140處理的其他數據的數字表示。ann140可以根據突觸權重以及在被稱為推斷的過程中形成ann140的多個層的神經連接來處理該輸入值。為了發起該推斷過程,控制電路130通過鏈路161傳輸輸入值,以呈現給包括形成在存儲器陣列140中的輸入層141的人工神經元。互連電路120在輸入控制線163的與輸入層141中的nvm元件相對應的至少一部分上將輸入值呈現為輸入電壓的向量。輸入電壓可以根據存儲器陣列技術的要求而變化,但通常包括輸入值的二進制表示。

        控制電路130和互連器繼續呈現(202)輸入值用于目標量的迭代。每次迭代包括輸入數據通過輸入層141傳播到ann140的后續層(諸如,圖1中的隱藏層142)的時間段。因此,將以串行方式,向ann140呈現用于預定量的實例的相同輸入值。實例的數量可以基于應用、基于結果中的期望降噪量、或者基于ann140的各個層的預期噪聲水平而變化。下文將呈現對選擇輸入值實例量的進一步討論。

        ann140通過ann140的隱藏層傳播(203)連續的輸入值迭代。如圖1中所見,在ann140中在輸入層141和輸出層145之間包括至少一個隱藏層。輸入層141對輸入值進行操作,并將來自輸入層141的中間結果傳遞給第一隱藏層,諸如隱藏層142。如果包括多于一個的隱藏層,則每個隱藏層對來自先前層的中間結果進行操作,并且將進一步的中間結果傳播到另一后續層。一旦在傳播過程中到達輸出層145,則輸出層145可以呈現輸出值,該輸出值是通過ann140針對輸入值的特定實例進行操作和傳播而產生的。

        然而,圖1的配置101中的ann140的簡化視圖是ann140的操作的邏輯圖示。在示意圖100中,特定具體實施可以與配置101中所示的具體實施不同。具體地講,每層均由包括nvm存儲器元件的人工神經元的集合形成。每層將具有對應的一組輸入控制線和輸出控制線,以用于訪問該層的nvm存儲器元件。將輸入值或中間值呈現在每層的輸入控制線上,并且將中間結果或輸出值呈現在每層的輸出控制線上。互連電路120和控制電路130操作以向輸入控制線163中的層特定輸入控制線上的每個層呈現值,并且從輸出控制線164中的層特定輸出控制線上的每個層接收值。因此,可以使用單獨的nvm元件組以及相關聯的控制線來構建配置101中所見的結構。

        每個單獨的層將處理在相關聯輸入控制線上引入的層特定輸入值,以在相關聯的輸出控制線上產生層特定結果。層特定結果將在一定程度上取決于層之間的連通性,該連通性由互連電路120和控制電路130中的互連配置建立。層特定結果還將在一定程度上取決于存儲在單獨的nvm元件中的突觸權重。用于每層的突觸權重由控制電路130編程,例如來自存儲在存儲器131中的突觸權重。當采用電阻式存儲器元件時,可以將突觸權重存儲為電導值或電導狀態,其包括存儲在每個nvm存儲器元件中的存儲器值。每個nvm元件可以具有來自前層的多個輸入連接,其由對應輸入控制線上的輸入電壓表示。因此,通過對用于每個nvm元件的對應輸入控制線上的輸入電壓和存儲的突觸權重進行向量矩陣乘法計算來進行每層中的前向傳播操作。該向量矩陣乘法結果作為模擬電流值呈現在該層的輸出控制線上。

        互連電路120和控制電路130中的電路元件將接收到的模擬格式的輸出控制線電流轉換為數字表示。首先,輸出控制線可以耦接到感測放大器電路,以將電流轉換為電壓表示。然后,模數轉換器(adc)電路可以將電壓表示轉換為數字表示。諸如當當前數字表示包括來自輸出層145的用于ann140的輸出值時,可以對這些數字表示執行各種操作。另外,可以應用各種激活函數。如果數字表示與中間層(諸如,隱藏層)相對應,則數字表示可以呈現在后續層的輸入控制線上,以用于通過該后續層進行傳播操作。噪聲可由上文所討論的層互連和中間值感測/轉換過程中涉及的任何電路元件引入。該噪聲包括前向傳播噪聲,并且可能降低由ann140產生的最終結果的準確度。

        為了降低前向傳播噪聲的影響,采用配置101中所示的流水線方法。該流水線方法產生幾個輸出值(t1、t2、…tn),這些輸出值均可因輸入值的每個連續實例遭遇的前向傳播噪聲變化而變化。控制電路130接收這些輸出值,并且通過對由ann140的輸出層145呈現的值應用降噪函數150來確定(204)結果。該結果包括噪聲減少的結果,其對輸出值t1、t2…tn應用降噪函數。在一些示例中,降噪函數包括對根據特定輸入值得到的所有輸出值應用的平均函數。然而,降噪函數可以是根據各種因素(諸如,用于每個實例的估計噪聲、層之間采用的互連級別、用于每層的層神經元數量、adc電路中的預期噪聲水平、或其他因素,包括它們的組合)在不同輸出值實例之間分配權重或置信水平的另一函數。

        然后可以傳輸該噪聲減少的結果,以用于各種應用中。例如,在將圖像數據用作輸入值時,該結果可以用于機器學習應用、圖像處理或圖像識別應用、或者其他應用中。此外,結果可以是部分結果,其與來自通過ann140流水線化的其他輸入值的其他結果組合。

        在進一步的操作中,控制電路130可以針對輸入數據或輸入值的每個實例選擇通過人工神經網絡進行傳播的目標量。例如,控制電路130可以被配置為選擇用于平均函數的目標傳播量以使人工神經網絡的前向傳播噪聲低于閾值水平。控制電路130可以被配置為選擇連續實例的量以在結果中減少前向傳播噪聲并且至少達到目標推斷準確度,或者選擇目標量的迭代以在結果中減少人工神經網絡的前向傳播噪聲并且達到目標推斷準確度。在圖6的曲線圖601中可以看出與輸入值的連續實例的目標量有關的示例性目標推斷準確度,并且將在下文中更詳細地討論該示例性目標推斷準確度。

        現在轉到人工神經網絡的另一個具體實施,呈現了圖3。圖3,在ann架構300的上下文中討論了前向傳播噪聲的示例性源。ann架構300采用組織成陣列的nvm存儲器元件。該陣列采用可通過輸入控制線和輸出控制線訪問的行和列布置。在該示例中,輸入控制線包括字線341,并且輸出控制線包括位線342。盡管控制線的其他配置也是可能的,但出于本示例的目的,將討論字線/位線布置。

        如本文所討論,人工神經網絡可以在硬件中實現。該硬件可以生成來自用于實現人工神經網絡的相關聯電路或設備的噪聲。在具有幾個完全連接層的人工神經網絡中,通過對存儲的權重和輸入值進行向量矩陣乘法計算來在每個層中進行前向傳播,其中,輸入值來自呈現給輸入層的輸入值或者來自先前層的中間激活。

        前向傳播可以采用計算f(w*x+b)的數學形式,其中,f:包括以下項的激活函數:x:輸入;w:突觸權重;以及b:偏差。輸入值通常由饋送到層的字線中的電壓表示,并且存儲的權重由權重存儲器陣列中的電導狀態或電導值表示。權重存儲器陣列可以包括經由相關聯的字線和位線耦接的nvm設備諸如憶阻器的陣列。以電流值的形式從位線中讀出向量矩陣乘法。前向傳播噪聲可以至少由模數轉換器(adc)引入,該模數轉換器將來自位線的當前層輸出端連接到數字外圍電路以及其他電路元件。在上述向量矩陣乘法之后可能出現失真結果,這在一定程度上是由在前向傳遞期間引入的該電路和設備噪聲引起的。這種前向傳播噪聲可能損害ann的推斷準確度。

        現在轉到對圖3的元件的討論,架構300包括形成人工神經網絡的多個層((1)至(n)層)。層之間的互連可以由各種外圍電路實現,為了清楚起見,圖3中未示出這些外圍電路。這種互連包括耦接到層輸入線340和層輸出線346。在每一層上均發現對應的輸入線和輸出線。當耦接在一起時,這些層可以形成類似于圖1的配置101中所見的人工神經網絡,但各種變型也是可能的。

        圖3中示出了單獨示例性層的元件。具體地講,層301包括字線解碼器和驅動器數模轉換器(dac)311、非易失性存儲器(nvm)突觸權重陣列312、列多路復用器(mux)313、模擬或數字累加電路314、多位感測放大器或模數轉換器(adc)315、及激活函數316。圖3中示出了層內互連鏈路341至345,其可以根據數量和信號配置的具體實施而變化。

        字線解碼器和驅動器數模轉換器(dac)311當在輸入層上使用時通過鏈路340從ann的前層接收輸入數據,或者從控制系統接收輸入數據。當以模擬格式接收時,可以包括dac以將該模擬格式轉換為用于驅動字線341的數字電壓。可以包括字線解碼器元件以驅動與當前層相關聯的特定字線。當采用大存儲器陣列(諸如,nvm陣列)時,許多層可以共享相同的nvm陣列。nvm陣列的存儲器元件的子集可以與單獨的層相對應,因此,字線解碼器可以使用地址或控制信號來僅驅動在特定層的對應字線上的輸入值。

        非易失性存儲器(nvm)突觸權重陣列312包括存儲器元件(諸如,電阻式存儲器元件、憶阻器、mram元件、pcm元件等)的陣列。此外,nvm突觸權重陣列312的存儲器元件被配置為存儲與ann的特定層的突觸權重相對應的值。可以在控制系統進行推斷操作之前,預先加載這些值。突觸權重可以在由控制系統發起的針對相關聯ann的訓練過程期間確定,或者可以通過軟件模型或算法過程來建立。每個層可以具有對應的一組突觸權重。突觸權重是指兩個人工神經元(也稱為節點)之間的連接的強度或幅度。突觸權重與生物神經元對另一個生物神經元的激發的影響程度相對應。

        在讀取操作中采用列多路復用器(mux)313來為每一層選擇nvm突觸權重陣列312的位線。列多路復用器313可以在位線342中進行選擇,以呈現從鏈路343上的所選位線讀取的值。模擬或數字累加電路314從列多路復用器313接收鏈路343上的讀取值,并且可以在由多位感測放大器或模數轉換器(adc)315將值轉換成數字格式之前臨時緩沖或存儲該值。當采用感測放大器時,感測放大器可以感測在位線上呈現的讀取值并且將通過鏈路344接收到的這些讀取值調整或轉換為邏輯電平,執行電流到電壓轉換過程或調整讀取值,以及其他操作。adc可以將讀取值的模擬表示轉換為表示讀取值的數字表示,諸如,由感測放大器部分轉換的那些讀取值。adc可以通過鏈路345輸出數字表示以用于輸入到一個或多個激活函數316,或者在未采用激活函數316時,以用于輸入到一個或多個后續層。

        通常,激活函數為人工神經元(將其稱為節點)提供行為定義。通過鏈路345接收到的數字表示可以用作向激活函數的輸入,該輸入定義每個人工神經元的輸出。由于激活函數可以響應于輸入定義人工神經元之間的行為,來自激活函數的任何結果被認為是人工神經元的輸出。然后,激活函數的輸出用于通過鏈路346驅動另一層人造神經元。當激活函數在最后一層或輸出層上時,激活函數的輸出可以被認為是ann的輸出。

        在操作中,ann的層將根據層連接件而互連,并且數據將通過ann傳播并且根據每個層和相關聯節點的突觸權重和激活函數而變化。圖3的層可以根據圖4中所示的示例來互連,但其他配置也是可能的。

        圖4示出了用于呈現完全連接的前饋神經網絡的示例性過程。在前饋神經網絡中,信息僅在于輸入節點處開始的一個方向(前向方向)上移動,即,根據每個互連器/節點的權重和偏差通過任何隱藏節點傳播,并且最終作為結果呈現在輸出節點處。另外,在前饋神經網絡中未采用循環動作或循環。該前饋神經網絡的完全連接特性指示,每個前節點完全連接到所有后續節點,但其他配置也是可能的。每個節點可以表示神經元,并且可以包括如本文所討論的nvm元件,諸如,憶阻器元件。

        具體地講,圖4示出了示例性人工神經網絡400中的節點連接件。ann400包括輸入層410,隱藏層420、430和440,以及輸出層450。將輸入向量401傳送到輸入層410,以用于通過ann400進行傳播和計算。輸出層450呈現輸出logit向量455。logit向量455包括在通過ann400傳播和計算輸入向量401之后的未補償輸出值。logit向量455可以直接用于另外的外部系統,而無需進行進一步處理。然而,在許多具體實施中,添加了被稱為softmax層的另外處理層。softmax層480可以以期望輸出比例尺(諸如,從0到1的概率比例尺等)對logit向量455進行縮放。另外,在本文所述的示例中,可以采用平均函數470,并且將在下文中討論該平均函數。

        如本文所提及的,節點各自包括人工神經元,并且由圖4中的節點460表示。人工神經網絡400包括完全連接的人工神經網絡,其中,當前層中的每個節點經由層連接件461連接到前層中的每個節點并且連接到后續層中的每個節點。用于每個節點的突觸權重值指示節點相對于彼此應該接收到多大強度(或“權重”)的輸入連接。較強的權重值指示連接是節點中的較大考慮因素,較弱的權重值指示連接是節點中的較小考慮因素。因此,每個節點與相鄰層中的節點的連接具有強度譜,諸如,較強連接和較弱連接。然后,與每個節點相關聯的激活函數指示每個節點如何響應已根據對應突觸權重進行加權的輸入值。然后,每個節點將輸出呈現在其與后續層之間的連接件上。輸入節點的特殊之處在于,輸入節點接收用于ann的輸入數據,并且不接收其與前層之間的連接件上的輸出數據。同樣,輸出節點呈現來自ann的輸出,并且不在其與后續層之間的連接件上呈現該輸出數據。

        當在本文所述的流水線技術中使用時,相同輸入向量401可以被呈現給ann400,以用于進行多于一次的迭代。當ann400在輸出層450上生成輸出logit向量455時,平均函數470可以在相同輸入向量的迭代過程中緩沖每個logit向量455。一旦預定量的迭代完成通過ann400進行的傳播和計算,則可以將噪聲減少的結果呈現給softmax層480。在圖4中,將噪聲減少的結果計算為用于特定輸入向量的所有logit向量455的平均值。

        在ann400的推斷操作(其由圖4中的傳播和計算操作指示)之前,必須首先進行ann400的訓練。人工神經網絡的訓練包括確定用于每個節點的參數(權重、偏差)以最小化成本(預測誤差、損失)。前饋神經網絡的訓練操作可以包括前向傳播、成本計算、后向傳播、參數更新的操作。然后,推斷操作包括基于訓練參數(權重、偏差)使用人工神經網絡進行預測。推斷操作包括:前向傳播,然后將輸出logit饋送到“softmax”層,指示預測。本文所述示例集中于來自電路和設備級別的前向傳播噪聲,其可以影響訓練階段和推斷階段兩者。

        圖5示出了根據具體實施的用于人工神經網絡的流水線技術。在圖5中,分解的流水線配置500被示出為包括通過人工神經網絡(諸如,ann540)執行的時間實例。類似的技術可以應用于本文所討論的任何ann。

        在圖5中,首先將可包括輸入圖像的輸入數據呈現給輸入層541,以用于在推斷操作期間通過ann540傳播。以預定量的實例,將相同輸入圖像呈現給輸入層541,在該示例中為三個實例。當通過隱藏層542至545并最終通過輸出層546傳播數據時,發生推斷操作。由ann540將三個輸出值實例生成為logit向量,并且對這三個logit向量求取平均值以產生結果。在應用任何softmax函數或softmax層之前確定該結果。該結果還與噪聲減少的結果相對應,通常具有比任何單獨logit向量更低的前向傳播噪聲。

        在推斷過程中,本文所示示例針對每個輸入圖像運行深層神經網絡“k”(k>1)次,并且在將logit向量噪聲饋送到最終softmax層以獲得最終預測概率之前,針對“k”次輸出求取logit向量噪聲平均值。具體地講,求取輸出層(在最終softmax層之前)處的logit向量的平均值以獲得最終預測概率。因此,每個圖像輸入可以運行“k”次,而不是僅運行1次,以提高最終預測概率的準確度。

        為了減少總運行時間,在圖5中呈現了一種流水線方法。假設神經網絡中存在“n”個隱藏層,則需要n+1個時間步長來完成針對一個輸入圖像數據的一次運行。為了減少使用流水線方法將每個輸入圖像運行“k”次的總運行時間,該流水線方法在進行第m層的第r次運行時開始執行第(m-1)層的第(r+1)次運行。在這種流水線場景下,人工神經網絡只需要n+k個時間步長來在具有“n”個隱藏層的人工神經網絡上將輸入圖像運行“k”次。在不使用增強流水線技術的情況下,人工神經網絡將需要(n+2)*k個時間步長來運行輸入圖像。有利地,在使用增強流水線技術的情況下,神經網絡需要n+k+1個時間步長來運行輸入圖像,以產生噪聲減少的結果。

        繼續關于人工神經網絡中的流水線技術的討論,這種增強的流水線技術不同于其他計算流水線技術。經由輸入層將數據引入到人工神經網絡流水線。在神經網絡流水線內使用預定數量“n”個內部隱藏層,在這些隱藏層之后是輸出層。隱藏層的數量“n”可以基于神經網絡的應用、實現、復雜性和深度來選擇,并且可以與圖5中所示的層數量不同。當通過人工神經網絡流水線的每個隱藏層傳播輸入數據(諸如,輸入圖像)時,繼續將該相同數據重新引入到輸入層。針對所選運行時間,繼續將該相同數據引入到流水線的輸入層。

        所選運行時間或運行周期用于將相同輸入數據應用于神經網絡流水線以減少前向傳播噪聲。在本文的示例中,量“k”用于概括相同輸入數據在人工神經網絡流水線上的順序輸入或“運行”次數。可以基于期望準確度或者基于預期前向傳播噪聲水平來選擇數量“k”。

        圖6的曲線圖610示出了使用各種“k”值的示例運行,其中準確度通常隨“k”值增大而得到改善。然而,附加運行可以與附加總運行時間相對應。因此,可以選擇期望準確度水平,并且可以選擇運行次數“k”以產生該準確度水平。曲線圖610指示在不同前向傳播噪聲水平下使用流水線方法對mnist分類準確度的改善情況。在推斷階段添加不同水平的前向傳播噪聲時,并且在每個輸入圖像運行不同次數時,測試預測準確度。在曲線圖610中,示出了注射有不同百分比前向傳播噪聲的測試噪聲的示例性結果。可以看出,通過使用流水線方法可以降低各種前向傳播噪聲水平,其中,在所有情況下,大量次數的運行與更準確的結果相對應。

        曲線圖610的該特定測試場景在用于mnist分類的一層完全連接的神經網絡上運行。神經網絡運行“k”次,以在softmax層之前求取logit向量的平均值。通過使每個圖像僅運行一次,可以看出在大噪聲處推斷準確度大幅下降,這由曲線圖610的曲線中的第一數據點所指示。通過使用流水線方法使每個圖像運行更多次,準確度可以得到提高,如圖中可以看出。在通過將每個輸入圖像運行“k”(k>1)次來使用流水線方法之后,當“k”(運行次數)增大時,分類準確度快速提高。

        如上文針對曲線圖600所提及的,可以使用在推斷處的前向傳播期間添加的不同水平的高斯噪聲來進行測試預測。離線訓練權重,并在運行推斷之前已經將其編程到存儲器陣列中。曲線圖600示出了分類準確度隨噪聲水平升高的下降趨勢。在曲線圖600中,將針對特定輸入值運行的推斷數量固定為1。然而,曲線圖601示出了使用本文所討論的流水線方法得到的結果。在通過將每個輸入圖像運行k(k>1)次來使用流水線方法之后,當k(運行次數)增大時,分類準確度快速提高。曲線圖601指示,k=5足以使準確度提高到期望值,但可以使用更多的運行次數,以獲得更大的準確度。

        通過使用流水線方法,圖像數據的每個實例在網絡上運行“k”(k>1)次,并且可以通過對來自“k”次運行的結果求取平均值在統計學上最小化噪聲效果。該流水線方法可以提高分類準確度,同時將推斷運行時間保持為相對較短。作為流水線技術的另一個示例,針對每個輸入圖像在深層神經網絡上運行推斷過程“k”(k>1)次,以在將噪聲logit向量饋送到最終softmax層以獲得最終預測概率之前,對其求取平均值。

        例如,當將“k”選擇為6時,則針對相同輸入數據向輸入層進行六次循環的數據引入。在該示例中,可以采用四(4)個隱藏層,即,“n”值為4。在神經網絡流水線的連續循環中引入相同輸入數據,即,在該示例中,引入六次。當數據通過神經網絡流水線的四個隱藏層傳播時,最終在輸出層處獲得六個不同的輸出值。該時間幀約為6+4=10(即,約k+n)次循環或時間步長。

        即使向神經網絡流水線引入相同輸入數據,六個不同輸出值也可能彼此不同。這種變化可能是由神經網絡中固有的前向傳播噪聲以及其他噪聲源引起的。緩沖或以其他方式保持輸出值,直到通過神經網絡流水線完成10次循環。一旦完成所有10次循環,則對六個不同輸出值求取平均值以形成結果。該結果包括來自六個輸出值的平均輸出值,其來自引入到神經網絡流水線中的相同輸入數據。

        因此,本文所討論的神經網絡流水線組合通過所選“k”次運行得到的許多輸出值(諸如,上文提及的六個輸出值),而不是像許多計算流水線中所做的那樣,將單獨的輸出值作為獨立結果傳送。可以對用于相同輸入數據的所有輸出值應用平均函數或其他數學函數以建立結果。結果中的前向傳播噪聲有利地減少了。

        許多現代機器學習硬件應用專注于推斷或邊緣機,并且許多網絡在gpu或tpu中離線訓練。有利地,本文所示的示例可以使用流水線技術來在推斷期間容忍前向傳播噪聲。在推斷過程中,本文所示示例針對每個輸入圖像運行深層神經網絡“k”(k>1)次,以在將噪聲logit向量饋送到最終softmax層以獲得最終預測概率之前,對其求取平均值。為了減少總運行時間,呈現了一種流水線方法。假設我們的深層神經網絡中具有“n”個隱藏層,我們需要n+1個時間步長來完成一個輸入圖像的一次運行。因此,為了節約使用流水線方法將每個輸入圖像運行“k”次的總運行時間,我們在進行第m層的第r次運行時開始執行第(m-1)層的第(r+1)次運行。在這種流水線場景下,我們只需要n+k個時間步長來在具有“n”個隱藏層的深層神經網絡上將輸入圖像運行“k”次。

        如本文所討論的,在硬件中實現機器學習可以預料來自電路或設備的許多噪聲源。本文所示示例可以涉及可由外圍電路引起的前向傳播噪聲。對于神經網絡的訓練而言,相比于前向傳播噪聲,其可以更好地容忍權重更新噪聲。兩種噪聲類型均會很大程度地損害訓練性能。推斷包括使用經訓練的神經網絡來基于輸入數據確定預測。本文呈現了一種流水線方法,以針對至少推斷操作解決并轉發傳播噪聲問題。

        本文所示示例討論了用于增強的人工神經網絡以及相關聯的人工神經元電路的各種示例性結構、布置、配置和操作。一個示例性布置包括使用流水線技術來減少前向傳播噪聲。在推斷操作中,針對每個輸入圖像運行流水線神經網絡“k”次,以在將前向傳播噪聲饋送到最終層以獲得最終預測概率之前,對其求取平均值。具體地,求取出在神經網絡的輸出層處呈現的logit向量的平均值,以得到前向傳播噪聲減小的最終預測概率。

        另一個示例性布置包括使用流水線神經網絡來提高結果生成速度。在不使用增強流水線技術的情況下,具有“n”個隱藏層的完全連接的神經網絡可能需要(n+2)*k個時間步長來運行,其中針對每個輸入圖像運行神經網絡“k”次。有利地,在使用增強流水線技術的情況下,神經網絡僅需要約(n+k)個時間步長來運行。因此,本文所述的流水線神經網絡針對一個輸入圖像運行多次,并且使用流水線技術來減少總運行時間。

        在一個示例性具體實施中,提供了包括前饋人工神經網絡的電路。該前饋人工神經網絡包括輸入層、輸出層以及輸入層與輸出層之間的“n”個隱藏層。輸入電路被配置為將輸入數據引入到輸入層,以用于通過至少“n”個隱藏層傳播。輸出電路被配置為計算在輸出層處呈現的用于輸入數據的“k”logit向量的平均值,以產生結果。輸入電路可以被進一步配置為將輸入數據引入到輸入層進行“k”次迭代,其中,“k”次迭代中的每次迭代包括等待直到先前引入的輸入數據已經通過“n”個隱藏層中的至少一者傳播。此外,可以提供操作示例性電路的方法。該方法包括:運行前饋人工神經網絡以用輸入數據進行“k”次迭代;以及對來自輸入數據的在輸出層處呈現的“k”個logit向量求取平均值,以減少與利用前饋人工神經網絡處理輸入數據相關聯的前向傳播噪聲。

        在另一個示例性具體實施中,包括前饋人工神經網絡的電路包括輸入層、輸出層以及輸入層與輸出層之間的一個或多個隱藏層。輸入控制電路被配置為將輸入值的迭代引入到輸入層,以用于至少通過一個或多個隱藏層傳播。輸出控制電路被配置為計算來自輸入值的迭代的在輸出層處呈現的輸出值的平均值,以產生結果。包括輸入控制電路的電路可以被配置為將輸入值引入到輸入層進行目標量的迭代,其中,目標量迭代中的每次迭代包括等待直到先前引入的輸入值已經通過至少一個隱藏層傳播。

        示例性電路還可以包括耦接到輸出層的存儲器元件,該存儲器元件被配置為至少存儲來自目標量的迭代的輸出值以用于計算平均值。包括輸入控制電路的電路被配置為選擇目標量的迭代,以減少結果中的前向傳播噪聲,并在結果中達到目標推斷準確度。

        在又一個示例性具體實施中,呈現人工神經網絡。該人工神經網絡包括:用于通過人工神經網絡的至少一個隱藏層來實現目標量的相同輸入值的實例的流水線的裝置;用于產生從至少通過隱藏層傳播的目標量的相同輸入值的實例得到的一系列輸出值的裝置;以及用于對一系列輸出值應用傳播噪聲降低函數以確定結果的裝置。人工神經網絡還可以包括用于以下操作的裝置:選擇目標量,以減輕人工神經網絡的前向傳播噪聲并在結果中達到目標推斷準確度。傳播噪聲降低函數可以包括平均化函數。

        圖7示出了計算系統701,其表示在其中可以實現本文所公開的各種操作架構、場景和過程的任何系統或系統集合。例如,計算系統701可以用于實現:圖1的控制系統130、互連電路120、或主機系統;圖4的平均函數470或softmax層480;或本文所討論的控制電路或降噪函數的任何其他實例。此外,計算系統701可以用于將突觸權重存儲并加載到nvm陣列中,可以用于配置互連電路以建立人工神經網絡的一個或多個層,并且可以用于通過訓練操作確定突觸權重。在另外的示例中,計算系統701可以完全實現人工神經網絡(如圖4或圖5中所示),以創建具有減小的噪聲行為的至少比部分地由軟件實現的人工神經網絡。計算系統701可以實現本文所討論的任何流水線操作,其中,使用硬件部件、或軟件部件、或它們的任何組合來實現。

        計算系統701的示例包括但不限于計算機、智能電話、平板計算設備、膝上型電腦、臺式計算機、混合計算機、機架式服務器、web服務器、云計算平臺、云計算系統、分布式計算系統、軟件定義的聯網系統和數據中心裝備,以及任何其他類型的物理或虛擬機,以及其他計算系統和設備,以及它們的任何變型或組合。

        計算系統701可以被實現為單個裝置、系統或設備,或者可以以分布式方式實現為多個裝置、系統或設備。計算系統701包括但不限于處理系統702、存儲系統703、軟件705、通信接口系統707和用戶界面系統708。處理系統702與存儲系統703、通信接口系統707和用戶界面系統708操作地耦接。

        處理系統702從存儲系統703加載并執行軟件705。軟件705包括人工神經網絡(ann)環境720,其表示相對于前述附圖討論的過程。當被處理系統702執行以實現并增強ann操作時,軟件705指示處理系統702如本文至少針對前述具體實施中討論的各種過程、操作場景和序列所述的那樣進行操作。計算系統701可以任選地包括為簡潔起見而未討論的附加設備、特征或功能。

        仍參考圖7,處理系統702可以包括微處理器以及從存儲系統705檢索并執行軟件703的處理電路。處理系統702可以在單個處理設備內實現,但也可以分布在協作執行程序指令且協作執行本文所討論的操作的多個處理設備、子系統或專用電路中。處理系統702的示例包括通用中央處理單元、專用處理器和邏輯設備,以及任何其他類型的處理設備、它們的組合、或它們的變型。

        存儲系統703可以包括可由處理系統702讀取并且能夠存儲軟件705并且能夠任選地存儲突觸權重710的任何計算機可讀存儲介質。存儲系統703可以包括以用于存儲信息(諸如,計算機可讀指令、數據結構、程序模塊或其他數據)的任何方法或技術實現的易失性介質和非易失性介質、可移除介質和不可移除介質。存儲介質的示例包括隨機存取存儲器、只讀存儲器、磁盤、光盤、閃存存儲器、虛擬存儲器和非虛擬存儲器、磁帶盒、磁帶、磁盤存儲器或其他磁存儲設備、電阻式存儲設備、磁隨機存取存儲器設備、相變存儲器設備、或任何其他合適的非暫態存儲介質。

        除計算機可讀存儲介質之外,在一些具體實施中,存儲系統703還可以包括計算機可讀通信介質,軟件705中的至少一些可以通過該計算機可讀通信介質在內部或外部進行通信。存儲系統703可以被實現為單個存儲設備,但也可以被實現為相對于彼此協同定位或分布的多個存儲設備或子系統。存儲系統703可以包括能夠與處理系統702或可能的其他系統進行通信的附加元件,諸如控制器。

        軟件705可以在程序指令以及其他函數中實現,該程序指令以及其他函數被處理系統702執行時,指示處理系統702如相對于本文所示的各種操作場景、序列和過程所述的那樣進行操作。例如,軟件705可以包括用于以下操作的程序指令:用于使用輸入數據的多個實例的增強流水線ann操作,以減少ann結果中的噪聲;以及其他操作。

        具體地講,程序指令可以包括協作或以其他方式交互以執行本文所述的各種過程和操作場景的各種部件或模塊。可以以編譯或解譯的指令或者指令的一些其他變型或組合來體現各種部件或模塊。可以以同步或異步方式,串行或并行地,在單線程環境或多線程環境中,或者根據任何其他合適的執行范例、變型或它們的組合,來執行各種部件或模塊。除包括ann環境720之外,軟件705可以包括附加過程、程序或部件,諸如操作系統軟件或其他應用軟件。軟件705還可以包括固件或可由處理系統702執行的一些其他形式的機器可讀處理指令。

        一般來講,在被加載到處理系統702中并且被執行時,軟件705可以將合適的裝置、系統或設備(其中,計算系統701是代表性的)整體地從通用計算系統轉化為專用計算系統,該專用計算系統被定制成促進使用輸入數據的多個實例的增強的流水線ann操作,以減少ann結果中的噪聲。實際上,存儲系統703上的編碼軟件705可以轉化存儲系統703的物理結構。物理結構的特定轉化可以取決于本說明書的不同具體實施中的各種因素。這些因素的示例可以包括但不限于:用于實現存儲系統703的存儲介質的技術;計算機存儲介質是被表征為主存儲裝置還是被表征為輔助存儲裝置;以及其他因素。

        例如,如果計算機可讀存儲介質被實現為基于半導體的存儲器,則諸如通過轉化晶體管、電容器、或構成半導體存儲器的其他分立電路元件的狀態,軟件705可以在其中編碼程序指令時轉化半導體存儲器的物理狀態。對于磁介質或光學介質,可以發生類似的轉化。在不脫離本說明書的范圍的情況下,物理介質的其他轉化也是可能的,提供上述示例僅為了便于對本發明的討論。

        ann環境720包括一個或多個軟件元件,諸如os721和應用722。這些元件可以描述計算系統701的各種部分,人工神經網絡或外部系統的元件可以與其進行交互或相互作用。例如,os721可以提供其上執行應用722的軟件平臺,并且允許使用輸入數據的多個實例的增強流水線ann操作以減少ann結果中的噪聲。

        在一個示例中,nvm陣列服務724實現并執行ann的訓練操作,以確定用于人工神經元的突觸權重。nvm陣列服務724可以與nvm元件進行交互以加載并存儲用于在推斷操作中使用的突觸權重。此外,nvm陣列服務724可以在nvm元件之間建立層,以諸如通過控制互連電路來實現ann的層和節點。在其他的示例中,nvm陣列服務724從中間層或隱藏層接收中間值,并且將這些中間值提供給后續層。

        在另外的示例中,ann流水線服務725控制如本文所述的流水線ann的操作。例如,ann流水線服務725可以針對ann的層實施一個或多個激活函數。ann流水線服務725還可以在對輸入到流水線ann的單個值進行推斷之后緩沖輸出值。ann流水線服務725可以將一個或多個降噪函數(諸如,平均函數)應用于緩沖的輸出值,以產生噪聲減少的結果。ann流水線服務725還可以實現softmax層或softmax函數。此外,ann流水線服務725可以基于用于引入到ann的輸入值的目標量迭代來確定用于噪聲水平的閾值。ann流水線服務725還可以從一個或多個外部系統接收輸入值以用于引入到流水線ann,并且向一個或多個外部系統提供噪聲減少的結果。

        通信接口系統707可以包括通信連接件和設備,其允許通過通信網絡(未示出)與其他計算系統(未示出)進行通信。通信接口系統707還可以與硬件實現的ann的一部分進行通信,諸如,與ann的各層、nvm實現的權重陣列、或其他ann電路進行通信。一起允許系統間通信的連接件和設備的示例可以包括nvm存儲器接口、網絡接口卡、天線、功率放大器、rf電路、收發器、和其他通信電路。連接件和設備可以通過通信介質(諸如,金屬、玻璃、空氣、或任何其他合適的通信介質)進行通信,以與其他計算系統或系統網絡交換通信或數據。

        用戶界面系統708是任選的,并且可以包括鍵盤、鼠標、語音輸入設備、用于接收來自用戶的輸入的觸摸輸入設備。還可以將輸出設備(諸如,顯示器、揚聲器、web接口、終端接口以及其他類型的輸出設備)包括在用戶界面系統708中。用戶界面系統708可以通過數據接口或網絡接口(例如,通信接口系統707)提供輸出并接收輸入。用戶界面系統708還可以包括可由處理系統702執行的相關聯用戶界面軟件,以支持上文所討論的各種用戶輸入設備和輸出設備。單獨地,或者彼此結合和與其他硬件和軟件元件結合,用戶界面軟件和用戶界面設備可以支持圖形用戶界面、自然用戶界面或任何其他類型的用戶界面。

        計算系統701與其他計算系統(未示出)之間的通信可以發生在一個或多個通信網絡上,并且可以根據各種通信協議、協議的組合、或它們的變型發生。示例包括內聯網、因特網、互聯網、局域網、廣域網、無線網絡、有線網絡、虛擬網絡、軟件定義的網絡、數據中心總線、計算背板、或任何其他類型的網絡、網絡的組合、或它們的變型。前述通信網絡和協議是眾所周知的,這里不需要詳細討論。然而,可以使用的一些通信協議包括但不限于互聯網協議(ip、ipv4、ipv6等)、傳輸控制協議(tcp)和用戶數據報協議(udp),以及任何其他合適的通信協議、變型、或它們的組合。

        所包括的描述和附圖描繪了教導本領域技術人員如何制作和使用最佳模式的具體實施方案。出于教導發明性原理的目的,已經簡化或省略了一些常規的方面。本領域技術人員將理解來自落入本公開范圍內的這些實施方案的變型。本領域技術人員還將理解,上述特征可以以各種方式組合以形成多個實施方案。因此,本發明不受上述具體實施方案的限制,而是僅受權利要求及其等同物的限制。

        當前第1頁1 2 3 
        當前第1頁1 2 3 
        網友詢問留言 留言:0條
        • 還沒有人留言評論。精彩留言會獲得點贊!
        1
        主站蜘蛛池模板: 庐江县| 乱老年女人伦免费视频| 精品亚洲熟妇中文字幕| av在线播放国产一区| 国产成人精品无码专区| 熟妇人妻不卡中文字幕| 无码高潮爽到爆的喷水视频app| 亚洲综合AV一区二区三区不卡| 亚洲岛国成人免费av| 国产综合久久99久久| 精品国产美女av久久久久| 伊人精品成人久久综合欧美| 国产精品伦理久久一区| 在线国产你懂的| 91免费| 一本色婷婷| 国产精品点击进入在线影院高清| 中文字幕理伦午夜福利片| 日日夜夜影院| 天堂在线www官网| 中文字幕不卡在线HD女神喷水| 亚洲色最新高清AV网站| 国产成人精品一区二区无| 久久久久久久人妻无码中文字幕爆| 色欲国产精品一区成人精品| 国产区成人精品视频| 激情宗合网| 国产麻豆视频精品| 在线h片| 国产女人喷潮视频免费| 色88久久久久高潮综合影院| Y111111国产精品久久久| 国产制服丝袜无码视频| 和艳妇在厨房好爽在线观看| 日韩精品人妻中文字幕| 四虎成人精品在永久免费| 国产成人高清亚洲综合| 一区二区清无吗视频| 日韩黄色AV| 日本久久久久久久中文字幕| 免费看黄色片|