本說明書涉及神經網絡系統架構。
背景技術:
神經網絡是采用一個或多個非線性單元的層來預測對于接收的輸入的輸出的機器學習模型。一些神經網絡除了輸出層之外還包括一個或多個隱藏層。每個隱藏層的輸出用作到網絡中下一層,即下一隱藏層或輸出層的輸入。網絡的每層根據相應參數集合的當前值從所接收的輸入生成輸出。
一些神經網絡是遞歸神經網絡。遞歸神經網絡是接收輸入序列并從輸入序列生成輸出序列的神經網絡。具體地,遞歸神經網絡可以在計算當前輸出時使用處理先前輸入的網絡的內部狀態(tài)的一些或全部。遞歸神經網絡的示例是長期短期存儲器(LSTM)神經網絡,包括一個或多個LSTM存儲器塊。每個LSTM存儲器塊可以包括一個或多個單體,每個單體包括輸入門、遺忘門和輸出門,其允許該單體存儲該單體的先前狀態(tài),例如用于生成當前激活或將被提供到LSTM神經網絡的其他組件。
技術實現要素:
本說明書描述了與增強神經網絡系統相關的技術。通常,增強神經網絡系統包括:神經網絡,被配置為接收神經網絡輸入并生成神經網絡輸出;外部存儲器,存儲從神經網絡輸出的部分導出的值;以及存儲器接口子系統,被配置為接收神經網絡輸出的部分并使用所接收的部分相對于外部存儲器擦除、寫入和讀取。
對于要被配置為執(zhí)行特定操作或動作的一個或多個計算機的系統表示系統已經在其上安裝了在操作中使系統執(zhí)行操作或動作的軟件、固件、硬件或它們的組合。對于要被配置為執(zhí)行特定操作或動作的一個或多個計算機程序表示一個或多個程序包括當由數據處理裝置執(zhí)行時使裝置執(zhí)行操作或動作的指令。
在本說明書中描述的主題可以在特定實施例中實現,以便實現以下優(yōu)點中的一個或多個。通過用外部存儲器增強神經網絡,增強神經網絡可以更精確地從各種機器學習任務的接收的輸入生成輸出。具體地,為了便于處理來自輸入序列的給定輸入,增強神經網絡可以有效地使用由增強神經網絡在處理序列中的許多先前輸入時通過從外部存儲器讀取而產生的信息。類似地,為了便于處理來自序列的后續(xù)輸入,增強神經網絡可以將在當前輸入的處理期間生成的信息存儲在外部存儲器中。另外,可以增加外部存儲器的大小,而不增加增強神經網絡的可訓練參數的數量。此外,增強神經網絡可以使用基于內容和位置的查找來訪問外部存儲器。另外,增強神經網絡可以利用在連續(xù)寫入之間具有較少干擾的長期存儲器存儲。此外,因為整個外部存儲器是可區(qū)分的,所以可以有效地訓練增強神經網絡系統。
在附圖和下面的描述中闡述了本說明書的主題的一個或多個實施例的細節(jié)。根據描述、附圖和權利要求,主題的其他特征、方面和優(yōu)點將變得顯而易見。
附圖說明
圖1示出了示例增強神經網絡系統。
圖2是用于從系統輸入生成系統輸出的示例過程的流程圖。
圖3是用于從神經網絡輸出的指定部分確定存儲器存取權重的示例過程的流程圖。
圖4是對于外部存儲器中的位置生成基于內容的權重的示例過程的流程圖。
圖5是用于將基于位置的調整應用于基于內容的權重的示例過程的流程圖。
圖6是根據擦除權重從外部存儲器擦除的示例過程的流程圖。
圖7是用于根據寫入權重寫入外部存儲器的示例過程的流程圖。
圖8是根據讀取權重從外部存儲器讀取的示例過程的流程圖。
各個附圖中相同的附圖標記和標記指示相同的元件。
具體實施方式
圖1示出了示例性增強神經網絡系統100。增強神經網絡系統100是實現為在一個或多個位置中的一個或多個計算機上的計算機程序的系統的示例,其中實現下面描述的系統、組件和技術。
增強神經網絡系統100是接收系統輸入序列并從系統輸入生成系統輸出序列的機器學習系統。例如,增強神經網絡系統100可以接收作為輸入序列的一部分的系統輸入x,并且從系統輸入x生成系統輸出y。增強神經網絡系統100可以在輸出數據存儲庫中存儲所生成的輸出序列或者提供輸出以用于某些其他即時目的。
增強神經網絡系統100可以被配置為接收任何種類的數字數據輸入并且基于該輸入生成任何種類的分數(score)或分類輸出。
例如,如果對增強神經網絡系統100的輸入是已經從圖像中提取的圖像或特征,則由增強神經網絡系統100針對給定圖像生成的輸出可以是對象類別集合中的每一個的分數,其中每個分數表示圖像包含屬于該類別的對象的圖像的估計的似然性。
作為另一示例,如果對增強神經網絡系統100的輸入是從因特網資源(例如,網頁)、文檔或文檔的部分提取的因特網資源、文檔或文檔的部分,則由增強神經網絡系統100對于給定因特網資源、文檔或文檔的部分生成的輸出可以是主題集合中的每一個的分數,每個分數表示因特網資源、文檔或文檔部分關于主題的估計的似然性。
作為另一示例,如果到增強神經網絡系統100的輸入是用于特定廣告的印象場境的特征,則由增強神經網絡系統100生成的輸出可以是表示特定廣告將被點擊的估計的似然性的分數。
作為另一示例,如果對增強神經網絡系統100的輸入是針對用戶的個性化推薦的特征,例如表征推薦的場境的特征,例如表征用戶所采取的先前動作的特征,則由增強神經網絡系統100生成的輸出可以是內容項集合中的每一個的分數,其中每個分數表示用戶將有利地響應于被推薦內容項的估計的似然性。
作為另一示例,如果對增強神經網絡系統100的輸入是一種語言的文本,則由增強神經網絡系統100生成的輸出可以是針對另一語言的文本集合中的每一個的分數,每個分數表示另一種語言的文本段是輸入文本到另一種語言的適當翻譯的估計的似然性。
作為另一個示例,如果對增強神經網絡系統100的輸入是口頭話語、口頭話語序列或從兩者之一導出的特征,則由增強神經網絡系統100產生的輸出可以是文本段集合的每個的分數,每個分數表示該文本段是用于話語或話語序列的正確轉錄的估計的似然性。
作為另一示例,增強神經網絡系統100可以是語音合成系統的一部分。
作為另一示例,增強神經網絡系統100可以是視頻處理系統的一部分。
作為另一示例,增強神經網絡系統100可以是對話系統的一部分。
作為另一示例,增強神經網絡系統100可以是自動補全系統的一部分。
作為另一示例,增強神經網絡系統100可以是文本處理系統的一部分。
作為另一示例,增強神經網絡系統100可以是強化學習系統的一部分。
特別地,增強神經網絡系統100包括神經網絡102和外部存儲器104。神經網絡102可以是前饋神經網絡或遞歸神經網絡,其被配置為接收神經網絡輸入并處理神經網絡輸入以產生神經網絡輸出。通常,神經網絡102接收的神經網絡輸入是當前系統輸入和通過存儲器接口子系統106從外部存儲器讀取的數據的組合。例如,神經網絡102可以被配置為從外部存儲器104接收當前系統輸入x和數據r,并且生成包括系統輸出y和提供給存儲器接口子系統106的附加輸出o的神經網絡輸出。
存儲器接口子系統106接收由神經網絡生成的輸出,例如神經網絡輸出o+y的部分o(+表示級聯),并將接收到的輸出轉換為要在外部存儲器104上執(zhí)行的擦除、讀取和寫入操作。也就是說,存儲器接口子系統106從神經網絡102接收輸出o,并且基于輸出o從外部存儲器104擦除數據e,將數據w寫入外部存儲器104,以及從外部存儲器104讀取數據r。然后可以將由存儲器接口子系統106讀取的數據作為稍后的神經網絡輸入的一部分,例如與系統輸入一起,提供給神經網絡102。
外部存儲器104存儲由存儲器接口子系統106寫入外部存儲器104的數據向量。在一些實施方式中,外部存儲器104是具有元素M(i,j,t)的實值矩陣存儲器,其中i索引位置,j索引向量元素,并且t索引時間。因此,M(i,j,t)將是在時間t存儲在外部存儲器104中位置i處的向量的元素j處的值。通過以這種方式配置外部存儲器104、存儲器接口子系統106和神經網絡102,增強神經網絡系統100的組件是完全可區(qū)分的,允許增強神經網絡系統100被有效地訓練。
圖2是用于從系統輸入生成系統輸出的示例過程200的流程圖。為了方便,過程200將被描述為由位于一個或多個位置的一個或多個計算機的系統執(zhí)行。例如,根據本說明書適當地編程的增強神經網絡系統,例如圖1的增強的神經網絡系統100,以執(zhí)行過程200。
系統接收系統輸入(步驟202)。系統輸入是系統接收的系統輸入序列之一。
系統獲得通過從外部存儲器,例如圖1的外部存儲器104,讀取而產生的讀取數據向量(步驟204)。通常,讀取數據向量由系統通過在系統輸入序列中的先前輸入的處理期間從外部存儲器讀取而生成。
系統通過組合系統輸入和從外部存儲器讀取的數據來產生神經網絡輸入(步驟206)。例如,系統可以級聯系統輸入和讀取數據向量以生成神經網絡輸入。對于第一系統輸入,系統可以將系統輸入與預定向量,例如,神經網絡的學習狀態(tài),級聯。
系統使用神經網絡,例如圖1的神經網絡102,處理神經網絡輸入,以從神經網絡輸入產生神經網絡輸出(步驟208)。根據實施方式,神經網絡可以是前饋神經網絡,例如卷積神經網絡,或另一種深度前饋神經網絡,或者是遞歸神經網絡,例如LSTM神經網絡。如果神經網絡是遞歸神經網絡,則遞歸神經網絡還在處理當前神經網絡輸入時使用來自序列中的前一神經網絡輸入的遞歸神經網絡的內部狀態(tài),以生成神經網絡輸出。在一些實施方式中,神經網絡包括遞歸層和前饋層。
系統從神經網絡輸出的系統輸出部分產生針對系統輸入的系統輸出(步驟210)。神經網絡輸出的系統輸出部分是神經網絡輸出的、已經由例如系統管理員指定為用于生成系統輸出的部分的預定部分,即,使得神經網絡輸出的相同部分用于為神經網絡產生的每個輸出生成系統輸出。
在一些實施方式中,系統將系統輸出部分提供為針對系統輸入的系統輸出。然而,在一些其它實施方式中,系統將一個或多個變換應用于系統輸出部分,以便生成系統輸出。例如,系統輸出部分可以被轉換為控制機器人或不同數字接口的命令。
系統使用神經網絡輸出的擦除部分從外部存儲器擦除(步驟212)。神經網絡輸出的擦除部分是神經網絡輸出的、已經被指定為要從外部存儲器擦除的部分的預定部分。具體地,為了從外部存儲器擦除,系統使用神經網絡輸出的擦除部分確定擦除權重。擦除權重是存儲器存取權重,其包括用于外部存儲器中每個位置的相應權重,并且定義外部存儲器中的位置上的分布。
然后,系統根據擦除權重從外部存儲器中的每個位置擦除。下面參照圖3更詳細地描述從神經網絡輸出的指定部分確定存儲器存取權重,例如擦除權重。下面參考圖6更詳細地描述根據擦除權重從外部存儲器擦除。
系統使用神經網絡輸出的寫入部分向外部存儲器寫入(步驟214)。神經網絡輸出的寫入部分是神經網絡輸出的、已經被指定為在寫入外部存儲器中使用的部分的預定部分。
具體地,為了寫入外部存儲器,系統使用神經網絡輸出的寫入部分的指定子部分來確定寫入權重。在一些實施方式中,寫入權重與擦除權重相同,即,寫入部分的指定子部分是神經網絡輸出的擦除部分。然而,在一些其它實施方式中,寫入部分的指定子部分不同于擦除部分。下面參照圖3更詳細地描述從神經網絡輸出的指定部分確定存儲器存取權重,例如寫入權重。
系統還從寫入部分的不同的指定子部分確定要寫入外部存儲器的寫入向量,然后根據寫入權重將寫入向量寫入外部存儲器。下面參照圖7描述確定寫入向量和將寫入向量向外部存儲器寫入。
系統使用神經網絡輸出的讀取部分從外部存儲器讀取(步驟216)。神經網絡輸出的讀取部分是神經網絡輸出的、已經被指定為在從外部存儲器讀取中使用的部分的預定部分。
具體地,為了從外部存儲器讀取,系統使用神經網絡輸出的讀取部分確定讀取權重,然后根據讀取權重從外部存儲器中的位置讀取。下面參考圖3更詳細地描述從神經網絡輸出的指定部分確定存儲器存取權重,例如讀取權重。下面參照圖8描述從外部存儲器的讀取。
在一些實施方式中,系統對給定系統輸入執(zhí)行多個擦除、讀取和寫入操作。例如,系統可以執(zhí)行多個集合,每個集合包括并行且獨立于操作的每個其他集合的擦除操作、讀取操作和寫入操作。另外,如下面將參照圖6-8更詳細地描述的,系統可以在執(zhí)行每個操作集合中使用不同的存儲器存取權重,例如,因為系統在計算存儲器存取權重的集合中的每個中使用神經網絡輸出的不同部分。
此外,系統可以以任何順序執(zhí)行擦除、讀取和寫入操作。例如,在一些實施方式中,系統擦除,然后寫入,然后從外部存儲器讀取。然而,在其他實施方式中,系統可以以不同的順序執(zhí)行這些操作。
可以對系統輸入序列中的每個系統輸入執(zhí)行過程200,以生成針對系統輸入序列的系統輸出序列。系統輸入序列可以是對于其而言期望的輸出,即,應該由系統針對輸入序列生成的輸出序列不是已知的序列。系統還可以對訓練數據集合——即,應該由系統預測的輸出是已知的輸入集合——的輸入執(zhí)行過程200,以便訓練系統,即確定用于神經網絡的參數和用于相對于外部存儲器擦除、寫入和讀取的過程的任何附加參數的訓練值。因為系統的組件是完全可區(qū)分的,所以作為用于訓練神經網絡的常規(guī)機器學習訓練技術——例如,如果神經網絡是遞歸神經網絡,則通過時間訓練技術的隨機梯度下降反向傳播——的一部分,可以對從訓練數據集合中選擇的輸入重復執(zhí)行過程200。
圖3是用于從神經網絡輸出的指定部分確定存儲器存取權重的示例過程300的流程圖。為了方便,過程300將被描述為由位于一個或多個位置的一個或多個計算機的系統執(zhí)行。例如,根據本說明書適當地編程的增強的神經網絡系統,例如圖1的增強的神經網絡系統100,可以執(zhí)行過程300。
系統接收神經網絡輸出的指定部分(步驟302)。也就是說,如果由系統確定的存儲器存取權重是擦除權重,則系統接收神經網絡輸出的擦除部分,如果系統確定的存儲器存取權重是寫入權重,則系統接收神經網絡輸出的寫入部分的指定的子部分,并且如果由系統確定的存儲器存取權重是讀取權重,則系統接收神經網絡輸出的讀取部分。
系統從指定部分的基于內容的子部分確定基于內容的權重(步驟304)。通常,為了確定基于內容的權重,系統從基于內容的子部分確定內容關鍵向量。然后,系統將內容關鍵向量與存儲在外部存儲器中的位置中的向量進行比較,以便確定位置的權重。下面參照圖4更詳細地描述確定基于內容的權重。
系統對基于內容的權重應用基于位置的調整以確定存儲器存取權重(步驟306)。通常,系統從指定部分的基于位置的子部分確定移位向量,然后使用移位向量來調整基于內容的權重,以便確定存儲器存取權重。下面參照圖5描述調整基于內容的權重。
圖4是對于外部存儲器中的位置生成基于內容的權重的示例過程400的流程圖。為了方便,過程400將被描述為由位于一個或多個位置的一個或多個計算機的系統執(zhí)行。例如,根據本說明書適當地編程的增強神經網絡系統,例如圖1的增強神經網絡系統100,可以執(zhí)行過程400。
系統接收神經網絡輸出的指定部分的基于內容的子部分(步驟402)。
系統從基于內容的子部分產生基于內容的關鍵向量(步驟404)。在一些實施方式中,系統可以使用基于內容的子部分作為基于內容的關鍵向量。在一些其它實施方式中,系統將一個或多個變換應用于基于內容的子部分,以便生成基于內容的關鍵向量。例如,系統可以使用神經網絡,例如多層感知器(MLP)神經網絡,處理基于內容的子部分,該神經網絡被配置為接收子部分并生成基于內容的關鍵向量。
系統計算在基于內容的關鍵向量與存儲在外部存儲器中的向量之間的相似性度量(步驟406)。也就是說,系統計算在基于內容的關鍵向量和存儲在外部存儲器中的每個向量之間的相應相似性度量。例如,相似性度量可以是余弦相似性度量,其中在基于內容的關鍵向量k(h,t)和位于外部存儲器M中的第i個位置的給定向量M(i,·,t)之間的相似性K滿足:
系統使用相似性度量來計算外部存儲器中的位置的基于內容的權重(步驟406)。通常,系統計算權重,使得與基于內容的關鍵向量具有較高相似性度量的位置被分配較高的權重。例如,用于外部存儲器M中的第i個位置的基于內容的權重可以滿足:
其中β(h,t)是“關鍵強度”值,其是從神經網絡輸出的指定部分導出的正值,并且求和是外部存儲器中的所有位置上的總和。
圖5是用于將基于位置的調整應用于基于內容的權重的示例過程500的流程圖。為了方便,過程500將被描述為由位于一個或多個位置的一個或多個計算機的系統執(zhí)行。例如,根據本說明書適當地編程的增強神經網絡系統,例如圖1的增強神經網絡系統100,可以執(zhí)行過程500。
系統接收神經網絡輸出的指定部分的基于位置的子部分(步驟502)。
系統從基于內容的權重和系統生成的先前的權重生成臨時權重(步驟504)。通常,由系統生成的先前權重是在前一系統輸入的處理期間由系統生成的存儲器存取權重。系統通過組合基于內容的權重和前面的權重來生成臨時權重。例如,臨時權重可以是基于內容的權重和先前權重的插值,其中對于第t+1系統輸入,外部存儲器中的給定位置i的臨時權重滿足:
其中gi(h,t+1)是在0和1之間并且從神經網絡輸出的指定部分導出的門輸出,wc(i,h,t+1)是第t+1個系統輸入的基于內容的權重,并且w(i,h,t)是來自第t個系統輸入的存儲器存取權重。
系統從基于位置的子部分產生移位向量(步驟506)。在一些實施方式中,系統可以使用基于位置的子部分作為移位向量。在一些其它實施方式中,系統將一個或多個變換應用于基于位置的子部分,以便生成位移向量。例如,系統可以使用神經網絡,例如MLP神經網絡,處理基于位置的子部分,該神經網絡被配置為接收子部分并產生移位向量。
系統使用移位向量移位臨時權重以生成存儲器存取權重(步驟508)。特別地,系統使用移位向量來對臨時權重應用卷積,例如循環(huán)卷積,以生成存儲器存取權重。例如,外部存儲器中的位置i的權重w(i,h,t+1)可以滿足:
其中所有索引算法被模N計算,并且其中s(i-j,h,t+1)是存儲器中位置i-j的移位向量。
圖6是用于根據擦除權重從外部存儲器擦除的示例過程600的流程圖。為了方便,過程600將被描述為由位于一個或多個位置的一個或多個計算機的系統執(zhí)行。例如,根據本說明書適當地編程的增強的神經網絡系統,例如圖1的增強的神經網絡系統100,可以執(zhí)行過程600。
系統生成擦除權重(步驟602)。系統可以產生如上參照圖3-5所述的擦除權重。
系統產生擦除向量(步驟604)。在一些實施方式中,系統可以使用神經網絡輸出的指定部分作為擦除向量。在一些其它實施方式中,系統將一個或一個以上變換應用于該部分以便產生擦除向量。例如,系統可以使用神經網絡(例如,多層感知器(MLP)神經網絡)處理該部分,該神經網絡被配置為接收該部分并生成擦除向量。
系統使用擦除權重和擦除門向量從外部存儲器擦除(步驟606)。具體地,對于在存儲在外部存儲器中的位置i處的向量的向量元素j處存儲的值M(i,,j,t),系統產生滿足以下條件的擦除值
其中we(i,h,t+1)是位置i的擦除權重,并且ge(j,h,t+1)是擦除向量。
在系統針對給定系統輸入執(zhí)行多個擦除操作的實施方式中,例如,如上所述并行地,可通過執(zhí)行具有用于擦除權重和擦除門向量的可選地不同值的技術600來獨立地執(zhí)行每一擦除操作。例如,每個擦除操作可以通過使用具有可能不同的參數值的不同的神經網絡來執(zhí)行,以生成擦除門向量。因此,并行執(zhí)行的多個擦除操作的累積效果是乘性的。
圖7是用于根據寫入權重寫入外部存儲器的示例過程700的流程圖。為了方便,過程700將被描述為由位于一個或多個位置的一個或多個計算機的系統執(zhí)行。例如,根據本說明書適當地編程的增強的神經網絡系統,例如圖1的增強的神經網絡系統100,可以執(zhí)行過程700。
系統生成寫入權重(步驟702)。系統可以從寫入輸出部分的指定的子部分生成寫入權重,如上面參考圖3-5所述。如上所述,在一些實施方式中,寫入權重與擦除權重相同。
系統從寫入輸出部分的不同的指定部分生成寫入向量(步驟704)。在一些實施方式中,系統可以使用不同的指定子部分作為寫入向量。在一些其他實施方式中,系統將一個或多個變換應用于不同的指定子部分,以便生成寫入向量。例如,系統可以使用神經網絡,例如MLP神經網絡,處理不同的指定子部分,該神經網絡被配置為接收子部分并生成寫入向量。
系統使用寫入權重將寫入向量寫入外部存儲器(步驟706)。具體地,對于在外部存儲器中的位置i處存儲的向量的向量元素j處存儲的值M(i,,j,t),系統生成滿足以下條件的值:
其中ww(i,h,t+1)是位置i的寫入權重,并且是寫入向量的元素h處的值。在寫操作在擦除操作之后執(zhí)行而不是修改值M(i,,j,t)的實施方式中,系統可以通過修改由上述擦除操作生成的值來生成值M(i,j,t+1)。
在系統對給定系統輸入執(zhí)行多個寫入操作的實施方式中,例如,如上所述并行地,可以通過執(zhí)行對寫入權重和寫入向量具有可選地不同值的技術700來獨立地執(zhí)行每個寫入操作。例如,每個寫入操作可以通過使用具有可能不同的參數值的不同的神經網絡來執(zhí)行,以生成寫入向量。因此,并行執(zhí)行的多個寫入操作的累積效果是加性的。
圖8是用于根據讀取權重從外部存儲器讀取的示例過程800的流程圖。為了方便,過程800將被描述為由位于一個或多個位置的一個或多個計算機的系統執(zhí)行。例如,根據本說明書適當地編程的增強的神經網絡系統,例如圖1的增強的神經網絡系統100,可以執(zhí)行過程800。
系統生成讀取權重(步驟802)。系統可以如上面參考圖3-5所述從讀取輸出部分產生讀取權重。
系統根據讀取權重從外部存儲器中的位置讀取(步驟804)。特別地,系統通過組合存儲在外部存儲器中的每個位置處的值來產生讀取數據向量。也就是說,對于讀取數據向量的給定元素,系統計算在該元素處存儲在外部存儲器中的每個值的加權平均,每個值的權重是對應位置的讀取權重。例如,元素j處的讀向量的值r(j,h,t+1)可以滿足:
其中wr(i,h,t+1)是位置i的讀取權重,并且M(i,j,t+1)是存儲在存儲器中位置i處的向量的元素j處的值。
在系統對于給定系統輸入(例如,如上所述并行)執(zhí)行多個讀取操作的實施方式中,可以通過執(zhí)行對于讀取權重具有可選地不同的讀取權重值的技術800來獨立地執(zhí)行每個讀取操作。在這些實施方式中,系統可以例如通過級聯向量組合由每個讀取操作生成的讀取數據向量,以形成作為神經網絡輸入的一部分提供給神經網絡的最終讀取數據向量。
根據實施方式,系統可以基于從神經網絡接收的輸出來維持存儲在外部存儲器中的數據的不同程度的持久性。例如,在一些實施方式中,在系統輸入的每個序列已被系統完全處理之后,系統重新設置外部存儲器。作為另一示例,在一些實施方式中,存儲在外部存儲器中的數據在輸入序列之間持續(xù)。也就是說,系統不會在系統輸入序列之間從外部存儲器中刪除任何數據。在這些實施方式中,系統可以在分配給系統的給定任務完成之后并且在系統開始不同的機器學習任務之前重新設置外部存儲器?;蛘撸到y可以保持外部存儲器,甚至在任務之間不刪除值。因此,在處理當前輸入序列時,系統可能能夠在處理先前輸入序列時或甚至在執(zhí)行先前機器學習任務時利用存儲在存儲器中的數據。
在本說明書中描述的主題和功能操作的實施例可以在數字電子電路中、在有形體現的計算機軟件或固件中、在計算機硬件(包括在本說明書中公開的結構及其結構等同物)中或者在它們的一個或多個的組合實現。在本說明書中描述的主題的實施例可以被實現為一個或多個計算機程序,即,編碼在有形非暫時性程序載體上的計算機程序指令的一個或多個模塊,用于由數據處理裝置執(zhí)行或控制數據處理裝置的操作。替代地或另外地,程序指令可以被編碼在人工生成的傳播信號上,例如機器生成的電、光或電磁信號,其被生成以編碼信息以用于傳輸到合適的接收機設備,以由數據處理裝置執(zhí)行。計算機存儲介質可以是機器可讀存儲設備、機器可讀存儲基板、隨機或串行存取存儲器設備或它們中的一個或多個的組合。
術語“數據處理裝置”是指數據處理硬件,并且包括用于處理數據的所有種類的裝置、設備和機器,例如包括可編程處理器、計算機或多個處理器或計算機。該裝置還可以是或進一步包括專用邏輯電路,例如FPGA(現場可編程門陣列)或ASIC(專用集成電路)。除硬件之外,該裝置可以可選地包括創(chuàng)建用于計算機程序的執(zhí)行環(huán)境的代碼,例如構成處理器固件、協議棧、數據庫管理系統、操作系統或它們中的一個或多個的組合的代碼。
也可被稱為或描述為程序、軟件、軟件應用、模塊、軟件模塊、腳本或代碼的計算機程序可以以任何形式的編程語言編寫,包括編譯或解釋語言或聲明性或過程性語言,并且其可以以任何形式部署,包括作為獨立程序或作為適于在計算環(huán)境中使用的模塊、組件、子例程或其他單元。計算機程序可以但不需要對應于文件系統中的文件。程序可以存儲在保存其他程序或數據的文件的一部分中,例如存儲在標記語言文檔中、存儲在專用于所述程序的單個文件中或者存儲在多個協同文件(例如存儲一個或多個模塊、子程序或代碼部分的文件)中的一個或多個腳本。計算機程序可以被部署為在一個計算機上或在位于一個地點或分布在多個地點并通過通信網絡互連的多個計算機上執(zhí)行。
本說明書中描述的過程和邏輯流程可以由執(zhí)行一個或多個計算機程序的一個或多個可編程計算機執(zhí)行,以通過對輸入數據進行操作并生成輸出來執(zhí)行功能。過程和邏輯流程也可以由專用邏輯電路(例如FPGA(現場可編程門陣列)或ASIC(專用集成電路))來執(zhí)行,并且裝置也可以實現為該專用邏輯電路。
適合于執(zhí)行計算機程序的計算機包括,例如可以基于通用或專用微處理器或兩者或任何其它類型的中央處理單元。通常,中央處理單元將從只讀存儲器或隨機存取存儲器或兩者接收指令和數據。計算機的基本元件是用于執(zhí)行或實施指令的中央處理單元和用于存儲指令和數據的一個或多個存儲器設備。通常,計算機還將包括用于存儲數據的一個或多個大容量存儲設備,例如磁盤、磁光盤或光盤,或者可操作地耦合以從其接收數據或向其傳送數據或兩者。然而,計算機不需要具有這樣的設備。此外,計算機可以嵌入在另一設備中,例如移動電話、個人數字助理(PDA)、移動音頻或視頻播放器、游戲控制臺、全球定位系統(GPS)接收器或便攜式存儲設備,例如,通用串行總線(USB)閃存驅動器,這里僅舉幾個例子。
適于存儲計算機程序指令和數據的計算機可讀介質包括所有形式的非易失性存儲器、介質和存儲器設備,包括例如半導體存儲器設備,例如EPROM、EEPROM和閃存設備;磁盤,例如內部硬盤或可移動盤;磁光盤;和CD-ROM和DVD-ROM盤。處理器和存儲器可以由專用邏輯電路補充或并入專用邏輯電路中。
為了提供與用戶的交互,本說明書中描述的主題的實施例可以實現在計算機上,該計算機具有:顯示設備(例如,CRT(陰極射線管)或LCD(液晶顯示器)監(jiān)視器),用于向用戶顯示信息和鍵盤;以及,指示設備,例如鼠標或軌跡球,用戶可以通過該指示設備向計算機提供輸入。其他類型的設備也可以用于提供與用戶的交互;例如,提供給用戶的反饋可以是任何形式的感覺反饋,例如視覺反饋、聽覺反饋或觸覺反饋;并且可以以任何形式接收來自用戶的輸入,該任何形式包括聲音、語音或觸覺輸入。另外,計算機可以通過下述方式與用戶交互:向用戶使用的設備發(fā)送文檔和從用戶使用的設備接收文檔;例如,通過響應于從用戶的客戶端設備上的web瀏覽器接收的請求,將網頁發(fā)送到該web瀏覽器。
在本說明書中描述的主題的實施例可以實現在計算系統中,該計算系統包括諸如作為數據服務器的后端組件,或者包括諸如應用服務器的中間件組件,或者包括諸如具有圖形用戶界面或Web瀏覽器的客戶端計算機的前端組件,或者包括一個或多個這樣的后端、中間件或前端組件的任何組合,用戶可以通過該Web瀏覽器與本說明書中描述的主題的實現交互。系統的組件可以通過任何形式或介質的數字數據通信(例如,通信網絡)互連。通信網絡的示例包括局域網(“LAN”)和廣域網(“WAN”),例如因特網。
計算系統可以包括客戶端和服務器。客戶端和服務器通常彼此遠離并且通常通過通信網絡交互??蛻舳撕头掌鞯年P系借助于在相應計算機上運行并且彼此具有客戶端-服務器關系的計算機程序而產生。
雖然本說明書包含許多具體實施細節(jié),但是這些不應被解釋為對任何發(fā)明的范圍或對所要求保護內容的范圍的限制,而是作為可以對特定發(fā)明的特定實施例特定的特征的描述。在本說明書中在單獨實施例的場境中描述的某些特征也可以在單個實施例中組合實現。相反,在單個實施例的場境中描述的各種特征也可以在多個實施例中單獨地或以任何合適的子組合來實現。此外,雖然特征可以在上面描述為在某些組合中起作用并且甚至最初如此要求保護,但是來自所要求保護的組合的一個或多個特征在一些情況下可以從組合中刪除,并且所要求保護的組合可以涉及子組合或子組合的變體。
類似地,雖然在附圖中以特定順序描繪了操作,但是這不應被理解為要求這些操作以所示的特定順序或以順序次序執(zhí)行,或者所有所示的操作被執(zhí)行,以實現期望的結果。在某些情況下,多任務和并行處理可能是有利的。此外,上述實施例中的各種系統模塊和組件的分離不應被理解為在所有實施例中都需要這樣的分離,并且應當理解,所描述的程序組件和系統通??梢砸黄鸺稍趩蝹€軟件產品中,或者封裝成多個軟件產品。
已經描述了主題的特定實施例。其他實施例在所附權利要求的范圍內。例如,權利要求中所述的動作可以以不同的順序執(zhí)行并且仍然實現期望的結果。作為一個示例,附圖中描繪的過程不一定需要所示的特定順序或順序,以實現期望的結果。在某些實施方式中,多任務和并行處理可以是有利的。