本說明書涉及神經(jīng)網(wǎng)絡(luò)系統(tǒng)架構(gòu)。
神經(jīng)網(wǎng)絡(luò)是采用非線性單元的一個(gè)或多個(gè)層來預(yù)測對所接收的輸入的輸出的機(jī)器學(xué)習(xí)模型。一些神經(jīng)網(wǎng)絡(luò)除輸出層外,還包括一個(gè)或多個(gè)隱藏層。每個(gè)隱藏層的輸出被用作網(wǎng)絡(luò)中的下一層的輸入,網(wǎng)絡(luò)中的下一層即為下一隱藏層或輸出層。網(wǎng)絡(luò)的每個(gè)層根據(jù)相應(yīng)的參數(shù)集的當(dāng)前值,根據(jù)接收的輸入來生成輸出。
一些神經(jīng)網(wǎng)絡(luò)是遞歸神經(jīng)網(wǎng)絡(luò)。遞歸神經(jīng)網(wǎng)絡(luò)是接收輸入序列并且根據(jù)該輸入序列生成輸出序列的神經(jīng)網(wǎng)絡(luò)。具體地,遞歸神經(jīng)網(wǎng)絡(luò)能夠在計(jì)算當(dāng)前時(shí)間步驟的輸出中,使用來自前一時(shí)間步驟的網(wǎng)絡(luò)的一些或全部內(nèi)部狀態(tài)。遞歸神經(jīng)網(wǎng)絡(luò)的示例是包括一個(gè)或多個(gè)長短期記憶(LSTM)的記憶塊的LSTM神經(jīng)網(wǎng)絡(luò)。每個(gè)LSTM記憶塊可以包括一個(gè)或多個(gè)單元,每個(gè)單元包括輸入門、遺忘門、和輸出門,這允許該單元存儲該單元的先前狀態(tài),例如用于生成當(dāng)前活動或被提供給LSTM神經(jīng)網(wǎng)絡(luò)的其它組件。
技術(shù)實(shí)現(xiàn)要素:
本說明書描述涉及增強(qiáng)的神經(jīng)網(wǎng)絡(luò)系統(tǒng)的技術(shù)。通常,增強(qiáng)的神經(jīng)網(wǎng)絡(luò)系統(tǒng)包括被配置為接收神經(jīng)網(wǎng)絡(luò)輸入并且對每個(gè)神經(jīng)網(wǎng)絡(luò)輸入生成相應(yīng)的神經(jīng)網(wǎng)絡(luò)輸出的神經(jīng)網(wǎng)絡(luò)。增強(qiáng)的神經(jīng)網(wǎng)絡(luò)系統(tǒng)還包括序列處理子系統(tǒng),其被配置為對系統(tǒng)輸入序列中的每個(gè)系統(tǒng)輸入,接收該系統(tǒng)輸入并且根據(jù)該系統(tǒng)輸入生成初始神經(jīng)網(wǎng)絡(luò)輸入。序列處理子系統(tǒng)還被配置為使神經(jīng)網(wǎng)絡(luò)處理該初始神經(jīng)網(wǎng)絡(luò)輸入以對該系統(tǒng)輸入生成初始神經(jīng)網(wǎng)絡(luò)輸出并且根據(jù)對于該系統(tǒng)輸入的初始神經(jīng)網(wǎng)絡(luò)輸入的第一部分,確定是否使神經(jīng)網(wǎng)絡(luò)生成對于該系統(tǒng)輸入的一個(gè)或多個(gè)附加神經(jīng)網(wǎng)絡(luò)輸出。
對被配置為執(zhí)行特定操作或動作的一個(gè)或多個(gè)計(jì)算機(jī)的系統(tǒng),是指該系統(tǒng)已經(jīng)在其上安裝軟件、固件、硬件或它們的組合,在操作中,軟件、固件、硬件或它們的組合使該系統(tǒng)執(zhí)行操作或動作。對被配置為執(zhí)行特定操作或動作的一個(gè)或多個(gè)計(jì)算機(jī)程序,是指該一個(gè)或多個(gè)程序包括指令,當(dāng)由數(shù)據(jù)處理裝置執(zhí)行該指令時(shí),該指令使該裝置執(zhí)行該操作或動作。
能夠在特定實(shí)施例中實(shí)施本說明書中所述的主題以便實(shí)現(xiàn)下述一個(gè)或多個(gè)優(yōu)點(diǎn)。通過允許增強(qiáng)的神經(jīng)網(wǎng)絡(luò)系統(tǒng)確定何時(shí)對給定的系統(tǒng)輸入生成最終系統(tǒng)輸出,通過允許神經(jīng)網(wǎng)絡(luò)對困難輸入生成更精確輸出,能夠提高神經(jīng)網(wǎng)絡(luò)的性能。另外,在訓(xùn)練期間,或訓(xùn)練后,在運(yùn)行時(shí),在不顯著地增加神經(jīng)網(wǎng)絡(luò)所需的處理時(shí)間或由其使用的計(jì)算資源的情況下,提高神經(jīng)網(wǎng)絡(luò)的性能。另外,增強(qiáng)的神經(jīng)網(wǎng)絡(luò)系統(tǒng)被配置為當(dāng)由該系統(tǒng)生成的輸出是最終系統(tǒng)輸出時(shí)進(jìn)行信號告知。通過這樣做,該系統(tǒng)被給予準(zhǔn)確地產(chǎn)生更復(fù)雜系統(tǒng)輸出的時(shí)間,例如,以確保當(dāng)還未完成時(shí),不會為進(jìn)一步處理而發(fā)出不完整的可變長度輸出,從而提高了系統(tǒng)的性能。
在附圖和下述描述中,闡述本說明書的主題的一個(gè)或多個(gè)實(shí)施例的細(xì)節(jié)。從說明書、附圖和權(quán)利要求,該主題的其他特征、方面和優(yōu)點(diǎn)將變得顯而易見。
附圖說明
圖1示出示例增強(qiáng)的神經(jīng)網(wǎng)絡(luò)系統(tǒng)。
圖2是用于根據(jù)系統(tǒng)輸入生成系統(tǒng)輸出的示例過程的流程圖。
圖3是用于對系統(tǒng)輸入生成一個(gè)或多個(gè)神經(jīng)網(wǎng)絡(luò)輸出的示例過程的流程圖。
圖4是用于根據(jù)系統(tǒng)輸入生成系統(tǒng)輸出的示例過程的流程圖。
圖5是用于根據(jù)神經(jīng)網(wǎng)絡(luò)輸出的指定部分確定存儲器存取權(quán)重的示例過程的流程圖。
圖6是用于對外部存儲器的位置生成基于內(nèi)容的權(quán)重的示例過程的流程圖。
圖7是用于將基于位置的調(diào)整應(yīng)用于基于內(nèi)容的權(quán)重的示例過程的流程圖。
圖8是根據(jù)擦除權(quán)重從外部存儲器擦除的示例過程的流程圖。
圖9是根據(jù)寫入權(quán)重寫入到外部存儲器的示例過程的流程圖。
圖10是根據(jù)讀取權(quán)重從外部存儲器讀取的示例過程的流程圖。
不同圖中相同的數(shù)字和名稱表示相同的元件。
具體實(shí)施方式
圖1示出示例增強(qiáng)的神經(jīng)網(wǎng)絡(luò)系統(tǒng)100。該增強(qiáng)的神經(jīng)網(wǎng)絡(luò)系統(tǒng)100是被實(shí)現(xiàn)為一個(gè)或多個(gè)位置中的一個(gè)或多個(gè)計(jì)算機(jī)上的計(jì)算機(jī)程序的系統(tǒng)的示例,其中,實(shí)現(xiàn)下文所述的系統(tǒng)、組件和技術(shù)。
增強(qiáng)的神經(jīng)網(wǎng)絡(luò)系統(tǒng)100是接收系統(tǒng)輸入序列并且根據(jù)該系統(tǒng)輸入生成系統(tǒng)輸出的序列的機(jī)器學(xué)習(xí)系統(tǒng)。例如,增強(qiáng)的神經(jīng)網(wǎng)絡(luò)系統(tǒng)100能夠?qū)⑾到y(tǒng)輸入x接收為輸入序列的一部分并且生成包括在該系統(tǒng)輸出的序列中的系統(tǒng)輸出y。增強(qiáng)的神經(jīng)網(wǎng)絡(luò)系統(tǒng)100能夠?qū)⑸傻妮敵鲂蛄写鎯υ谳敵鰯?shù)據(jù)庫中或提供輸出序列,以用于一些其他直接目。
增強(qiáng)的神經(jīng)網(wǎng)絡(luò)系統(tǒng)100能夠被配置成接收任何種類的數(shù)字?jǐn)?shù)據(jù)輸入,并且基于輸入生成任何種類的得分或分類輸出。例如,如果增強(qiáng)的神經(jīng)網(wǎng)絡(luò)系統(tǒng)100的輸入是已經(jīng)從圖像提取的圖像或特征,由增強(qiáng)的神經(jīng)網(wǎng)絡(luò)系統(tǒng)100對于給定圖像而生成的輸出可以是對象類別集中的每個(gè)的得分,其中每個(gè)得分表示圖像包含屬于該類別的對象的圖像的估計(jì)可能性。如另一示例,如果增強(qiáng)的神經(jīng)網(wǎng)絡(luò)系統(tǒng)100的輸入是互聯(lián)網(wǎng)資源(例如網(wǎng)頁)、文檔或文檔的一部分或從互聯(lián)網(wǎng)資源、文檔或文檔的一部分提取的特征,由增強(qiáng)的神經(jīng)網(wǎng)絡(luò)系統(tǒng)100對于給定的互聯(lián)網(wǎng)資源、文檔或文檔的一部分而生成的輸出可以是主題集中的每個(gè)的得分,其中每個(gè)得分表示互聯(lián)網(wǎng)資源、文檔或文檔部分是有關(guān)該主題的估計(jì)可能性。如另一示例,如果增強(qiáng)的神經(jīng)網(wǎng)絡(luò)系統(tǒng)100的輸入是用于特定廣告的印象場境的特征,由增強(qiáng)的神經(jīng)網(wǎng)絡(luò)系統(tǒng)100生成的輸出可以是表示將點(diǎn)擊特定廣告的估計(jì)可能性。如另一示例,如果增強(qiáng)的神經(jīng)網(wǎng)絡(luò)系統(tǒng)100的輸入是對于用戶的個(gè)性化推薦的特征,例如,特征化推薦場境的特征,例如,特征化由用戶采取的在前動作的特征,由增強(qiáng)的神經(jīng)網(wǎng)絡(luò)系統(tǒng)100生成的輸出可以是內(nèi)容項(xiàng)集中的每個(gè)的得分,其中每個(gè)得分表示用戶將順利地響應(yīng)被推薦的內(nèi)容項(xiàng)的估計(jì)可能性。如另一示例,如果增強(qiáng)的神經(jīng)網(wǎng)絡(luò)系統(tǒng)100的輸入是以一種語言的文本,由增強(qiáng)的神經(jīng)網(wǎng)絡(luò)系統(tǒng)100生成的輸出可以是以另一種語言的幾篇文本的集合中的每個(gè)的得分,其中每個(gè)得分表示以該另一語言的一篇文本是將輸入文本適當(dāng)翻譯成該另一語言的估計(jì)可能性。如另一示例,如果增強(qiáng)的神經(jīng)網(wǎng)絡(luò)系統(tǒng)100的輸入是說出的話語、說出的話語序列或由上述兩個(gè)中的一個(gè)導(dǎo)出的特征,由增強(qiáng)的神經(jīng)網(wǎng)絡(luò)系統(tǒng)100生成的輸出可以是幾篇文本的集合中的每個(gè)的得分,每個(gè)得分表示一篇文本是話語或話語序列的正確轉(zhuǎn)錄的估計(jì)可能性。如另一示例,增強(qiáng)的神經(jīng)網(wǎng)絡(luò)系統(tǒng)100能夠是語音合成系統(tǒng)的一部分。如另一示例,增強(qiáng)的神經(jīng)網(wǎng)絡(luò)系統(tǒng)100能夠是視頻處理系統(tǒng)的一部分。如另一示例,增強(qiáng)的神經(jīng)網(wǎng)絡(luò)系統(tǒng)100能夠是對話系統(tǒng)的一部分。如另一示例,增強(qiáng)的神經(jīng)網(wǎng)絡(luò)系統(tǒng)100能夠是自動完成系統(tǒng)的一部分。如另一示例,增強(qiáng)的神經(jīng)網(wǎng)絡(luò)系統(tǒng)100能夠是文本處理系統(tǒng)的一部分。如另一示例,增強(qiáng)的神經(jīng)網(wǎng)絡(luò)系統(tǒng)100能夠是強(qiáng)化學(xué)習(xí)系統(tǒng)的一部分。
具體地,增強(qiáng)的神經(jīng)網(wǎng)絡(luò)系統(tǒng)100包括神經(jīng)網(wǎng)絡(luò)102和序列處理子系統(tǒng)108。神經(jīng)網(wǎng)絡(luò)102可以是被配置為接收神經(jīng)網(wǎng)絡(luò)輸入并且處理該神經(jīng)網(wǎng)絡(luò)輸入以生成神經(jīng)網(wǎng)絡(luò)輸出的前饋神經(jīng)網(wǎng)絡(luò)或遞歸神經(jīng)網(wǎng)絡(luò)。
序列處理子系統(tǒng)108接收系統(tǒng)輸入x并且根據(jù)該系統(tǒng)輸入x生成神經(jīng)網(wǎng)絡(luò)輸入s。然后,序列處理子系統(tǒng)108使神經(jīng)網(wǎng)絡(luò)102處理該神經(jīng)網(wǎng)絡(luò)輸入s以生成對于該神經(jīng)網(wǎng)絡(luò)輸入的神經(jīng)網(wǎng)絡(luò)輸出o1。此外,根據(jù)神經(jīng)網(wǎng)絡(luò)102生成的每個(gè)神經(jīng)網(wǎng)絡(luò)輸入,序列處理子系統(tǒng)108確定是否使神經(jīng)網(wǎng)絡(luò)102生成對于當(dāng)前系統(tǒng)輸入的一個(gè)或多個(gè)附加神經(jīng)網(wǎng)絡(luò)輸出。然后,序列處理子系統(tǒng)108根據(jù)神經(jīng)網(wǎng)絡(luò)102對于該系統(tǒng)輸入x而生成的每個(gè)神經(jīng)網(wǎng)絡(luò)輸出,確定對于該系統(tǒng)輸入x的系統(tǒng)輸出y。
即,序列處理子系統(tǒng)108根據(jù)神經(jīng)網(wǎng)絡(luò)102對于給定系統(tǒng)輸入而生成的神經(jīng)網(wǎng)絡(luò)輸出,確定何時(shí)生成對于該給定系統(tǒng)輸入的最終系統(tǒng)輸出,并且何時(shí)將根據(jù)下一系統(tǒng)輸入生成的神經(jīng)網(wǎng)絡(luò)輸入提供給神經(jīng)網(wǎng)絡(luò)以進(jìn)行處理。在下文中,參考圖2,更詳細(xì)地描述了為生成系統(tǒng)輸出而處理系統(tǒng)輸入。在下文中,參考圖3,更詳細(xì)地描述了確定是否使神經(jīng)網(wǎng)絡(luò)生成對于給定系統(tǒng)輸入的附加神經(jīng)網(wǎng)絡(luò)輸出。
在一些實(shí)施方式中,還以外部存儲器104和存儲器接口子系統(tǒng)106來增強(qiáng)神經(jīng)網(wǎng)絡(luò)102。在這些實(shí)施方式中,神經(jīng)網(wǎng)絡(luò)102被配置為生成包括被提供給序列處理子系統(tǒng)108的輸出o1和被提供給存儲器接口子系統(tǒng)106的輸出o2的神經(jīng)網(wǎng)絡(luò)輸出。存儲器接口子系統(tǒng)106接收由神經(jīng)網(wǎng)絡(luò)102生成的輸出o2并且將接收到的輸出轉(zhuǎn)換成將在外部存儲器104上執(zhí)行的擦除、讀取和寫入操作。即,存儲器接口子系統(tǒng)106從神經(jīng)網(wǎng)絡(luò)102接收輸出o2,并且基于輸出o2,從外部存儲器104擦除數(shù)據(jù)e,將數(shù)據(jù)w寫入外部存儲器104以及從外部存儲器104讀取數(shù)據(jù)r。然后,將由存儲器接口子系統(tǒng)106讀取的數(shù)據(jù)r提供給序列處理子系統(tǒng)108,以用于被包括為后一神經(jīng)網(wǎng)絡(luò)輸入的一部分,例如與系統(tǒng)輸入一起作為后一神經(jīng)網(wǎng)絡(luò)輸入的一部分。在下文中,將參考圖4-10,更詳細(xì)地描述包括外部存儲器和存儲器接口子系統(tǒng)的神經(jīng)網(wǎng)絡(luò)102。
圖2是用于根據(jù)系統(tǒng)輸入生成系統(tǒng)輸出的示例過程200的流程圖。為了方便,過程200將被描述為由位于一個(gè)或多個(gè)位置中的一個(gè)或多個(gè)計(jì)算機(jī)的系統(tǒng)來執(zhí)行。例如,根據(jù)本說明書適當(dāng)編程的增強(qiáng)的神經(jīng)網(wǎng)絡(luò)系統(tǒng)——例如圖1的增強(qiáng)的神經(jīng)網(wǎng)絡(luò)系統(tǒng)100,能夠執(zhí)行過程200。
系統(tǒng)接收系統(tǒng)輸入序列(步驟202)。
系統(tǒng)對該序列中的每個(gè)系統(tǒng)輸入,生成一個(gè)或多個(gè)神經(jīng)網(wǎng)絡(luò)輸出(步驟204)。該系統(tǒng)通過使用例如圖1的神經(jīng)網(wǎng)絡(luò)102的神經(jīng)網(wǎng)絡(luò)處理相應(yīng)的神經(jīng)網(wǎng)絡(luò)輸入,生成每個(gè)神經(jīng)網(wǎng)絡(luò)輸出,該神經(jīng)網(wǎng)絡(luò)被配置為處理神經(jīng)網(wǎng)絡(luò)輸入以根據(jù)該神經(jīng)網(wǎng)絡(luò)輸入生成神經(jīng)網(wǎng)絡(luò)輸出。
通常,對每個(gè)系統(tǒng)輸入,該系統(tǒng)根據(jù)該系統(tǒng)輸入生成初始神經(jīng)網(wǎng)絡(luò)輸入并且使用該神經(jīng)網(wǎng)絡(luò),處理該初始神經(jīng)網(wǎng)絡(luò)輸入以生成初始神經(jīng)網(wǎng)絡(luò)輸出。
然后,該系統(tǒng)根據(jù)初始神經(jīng)網(wǎng)絡(luò)輸出的判定部分,確定對該系統(tǒng)輸入是否應(yīng)當(dāng)生成另一神經(jīng)網(wǎng)絡(luò)輸出。神經(jīng)網(wǎng)絡(luò)輸出的判定部分是神經(jīng)網(wǎng)絡(luò)輸出的預(yù)定部分,該預(yù)定部分已經(jīng)由例如系統(tǒng)管理員指定為用來決定是否應(yīng)當(dāng)生成另一神經(jīng)網(wǎng)絡(luò)輸出的神經(jīng)網(wǎng)絡(luò)輸出的一部分,即,使得使用神經(jīng)網(wǎng)絡(luò)輸出的同一部分來決定由神經(jīng)網(wǎng)絡(luò)生成的每個(gè)輸出。通常,給定神經(jīng)網(wǎng)絡(luò)輸出的判定部分是處于神經(jīng)網(wǎng)絡(luò)輸出中的預(yù)定位置的值。如下文進(jìn)一步所述,在一些實(shí)施方式中,神經(jīng)網(wǎng)絡(luò)被配置成使得該判定部分的可能值的范圍包含性或排他性地在0和1之間。在下文中,將參考圖3,更詳細(xì)地描述生成對于系統(tǒng)輸入的一個(gè)或多個(gè)神經(jīng)網(wǎng)絡(luò)輸出。
系統(tǒng)根據(jù)對于該系統(tǒng)輸入的神經(jīng)網(wǎng)絡(luò)輸出,生成對于每個(gè)系統(tǒng)輸入的相應(yīng)的系統(tǒng)輸出(步驟206)。當(dāng)對給定系統(tǒng)輸入,僅生成單個(gè)神經(jīng)網(wǎng)絡(luò)輸出時(shí),該系統(tǒng)根據(jù)該單個(gè)神經(jīng)網(wǎng)絡(luò)輸出的系統(tǒng)輸出部分,生成對于該系統(tǒng)輸入的系統(tǒng)輸出。神經(jīng)網(wǎng)絡(luò)輸出的系統(tǒng)輸出部分是不同于判定部分的神經(jīng)網(wǎng)絡(luò)輸出的預(yù)定部分,并且該預(yù)訂部分已經(jīng)由例如系統(tǒng)管理員指定為將用來生成系統(tǒng)輸出的部分,即,使得使用神經(jīng)網(wǎng)絡(luò)輸出的同一部分來生成對于由神經(jīng)網(wǎng)絡(luò)生成的每個(gè)輸出的系統(tǒng)輸出。
在一些實(shí)施方式中,該系統(tǒng)將系統(tǒng)輸出部分提供為用于系統(tǒng)輸入的系統(tǒng)輸出。然而,在一些其他實(shí)施方式中,該系統(tǒng)將一個(gè)或多個(gè)變換應(yīng)用于系統(tǒng)輸出部分以便生成系統(tǒng)輸出。例如,系統(tǒng)輸出部分可以被變換成控制機(jī)器人或不同數(shù)字接口的命令。
當(dāng)對給定系統(tǒng)輸入已經(jīng)生成多個(gè)神經(jīng)網(wǎng)絡(luò)輸出時(shí),該系統(tǒng)能夠以各種方式中的任何一個(gè)生成對于該系統(tǒng)輸入的系統(tǒng)輸出。
例如,該系統(tǒng)能夠僅根據(jù)對該系統(tǒng)輸入生成的最后一個(gè)神經(jīng)網(wǎng)絡(luò)輸出的系統(tǒng)輸出部分,生成系統(tǒng)輸出。即,該系統(tǒng)對于該系統(tǒng)輸入,刪除除最后一個(gè)神經(jīng)網(wǎng)絡(luò)輸出外的所有神經(jīng)網(wǎng)絡(luò)輸出,然后,根據(jù)該最后一個(gè)神經(jīng)網(wǎng)絡(luò)輸出生成系統(tǒng)輸出。
如另一示例,該系統(tǒng)能夠根據(jù)對于該系統(tǒng)輸入的所有神經(jīng)網(wǎng)絡(luò)輸出的系統(tǒng)輸出部分,生成系統(tǒng)輸出。具體地,該系統(tǒng)能夠組合所有神經(jīng)網(wǎng)絡(luò)輸入的系統(tǒng)輸出部分以生成系統(tǒng)輸出。在一些實(shí)施方式中,該系統(tǒng)計(jì)算系統(tǒng)輸出部分的加權(quán)和。即,該系統(tǒng)能夠?qū)⒚總€(gè)系統(tǒng)輸出部分乘以相應(yīng)判定部分的值來生成加權(quán)的系統(tǒng)輸出部分,然后對加權(quán)的系統(tǒng)輸出部分進(jìn)行求和以生成系統(tǒng)輸出??蛇x地,該系統(tǒng)例如通過將該總和除以判定部分的值的總和,對該加權(quán)和進(jìn)行歸一化。組合神經(jīng)網(wǎng)絡(luò)輸出以生成系統(tǒng)輸入的其他方式是可能的,例如通過計(jì)算神經(jīng)網(wǎng)絡(luò)輸出的集中趨勢的度量。
圖3是用于根據(jù)系統(tǒng)輸入生成一個(gè)或多個(gè)神經(jīng)網(wǎng)絡(luò)輸出的示例過程300的流程圖。為了方便,將過程300描述為由位于一個(gè)或多個(gè)位置中的一個(gè)或多個(gè)計(jì)算機(jī)的系統(tǒng)來執(zhí)行。例如,根據(jù)本說明書適當(dāng)編程的增強(qiáng)的神經(jīng)網(wǎng)絡(luò)系統(tǒng)——例如圖1的增強(qiáng)的神經(jīng)網(wǎng)絡(luò)系統(tǒng)100,能夠執(zhí)行該過程300。
該系統(tǒng)接收系統(tǒng)輸入(步驟302)。該系統(tǒng)輸入是由該系統(tǒng)接收的系統(tǒng)輸入序列中的一個(gè)輸入。
該系統(tǒng)根據(jù)該系統(tǒng)輸入生成初始神經(jīng)網(wǎng)絡(luò)輸入(步驟304)。在不以外部存儲器增強(qiáng)神經(jīng)網(wǎng)絡(luò)的實(shí)施方式中,該系統(tǒng)能夠?qū)⒃撓到y(tǒng)輸入提供為初始神經(jīng)網(wǎng)絡(luò)輸入。在以外部存儲器增強(qiáng)神經(jīng)網(wǎng)絡(luò)的實(shí)施方式中,該系統(tǒng)能夠?qū)⒂纱鎯ζ鹘涌谧酉到y(tǒng)已經(jīng)從外部存儲器讀取的當(dāng)前一個(gè)或多個(gè)讀取向量與系統(tǒng)輸入結(jié)合——例如連結(jié),來生成初始神經(jīng)網(wǎng)絡(luò)輸入。
系統(tǒng)使用神經(jīng)網(wǎng)絡(luò)處理該初始神經(jīng)網(wǎng)絡(luò)輸入,以根據(jù)該系統(tǒng)輸入生成初始神經(jīng)網(wǎng)絡(luò)輸出(步驟306)。取決于該實(shí)施方式,神經(jīng)網(wǎng)絡(luò)能夠是例如卷積神經(jīng)網(wǎng)絡(luò)或另一種深度前饋神經(jīng)網(wǎng)絡(luò)的前饋神經(jīng)網(wǎng)絡(luò),或例如LSTM神經(jīng)網(wǎng)絡(luò)的遞歸神經(jīng)網(wǎng)絡(luò)。如果神經(jīng)網(wǎng)絡(luò)是遞歸神經(jīng)網(wǎng)絡(luò),那么遞歸神經(jīng)網(wǎng)絡(luò)還將來自由神經(jīng)網(wǎng)絡(luò)處理的在前神經(jīng)網(wǎng)絡(luò)輸入的遞歸神經(jīng)網(wǎng)絡(luò)的內(nèi)部狀態(tài)用于處理當(dāng)前神經(jīng)網(wǎng)絡(luò)輸入,以生成神經(jīng)網(wǎng)絡(luò)輸出。在一些實(shí)施方式中,神經(jīng)網(wǎng)絡(luò)包括遞歸和前饋層。
在以外部存儲器增強(qiáng)神經(jīng)網(wǎng)絡(luò)的實(shí)施方式中,該系統(tǒng)還根據(jù)神經(jīng)網(wǎng)絡(luò)輸出的指定部分,從外部存儲器進(jìn)行讀取、寫入和擦除。在下文中,將參考圖4-10,描述從外部存儲器進(jìn)行讀取、寫入和擦除。
該系統(tǒng)根據(jù)神經(jīng)網(wǎng)絡(luò)輸出的判定部分,確定是否對該系統(tǒng)輸入生成附加神經(jīng)網(wǎng)絡(luò)輸出(步驟308)。該系統(tǒng)能夠以各種方式中的任何一個(gè),根據(jù)神經(jīng)網(wǎng)絡(luò)輸出的判定部分做出該決定。
例如,該系統(tǒng)能夠確定神經(jīng)網(wǎng)絡(luò)輸出的判定部分的值是否超出閾值,如果判定部分的值超出閾值,那么確定不應(yīng)當(dāng)對該系統(tǒng)輸入再生成附加神經(jīng)網(wǎng)絡(luò)輸出。
如另一示例,可以將判定部分的值配置為包含性或排他性地限定到0和1之間的范圍。在該示例中,該系統(tǒng)能夠?qū)⑴卸ú糠值闹狄暈楦怕?。即,該系統(tǒng)能夠以等于判定部分的值的概率,決定不再生成附加神經(jīng)網(wǎng)絡(luò)輸出,而以等于1減去判定部分的值的概率,決定生成附加神經(jīng)網(wǎng)絡(luò)輸出。如果該值不被限定到該范圍,那么該系統(tǒng)能夠?qū)υ撝颠M(jìn)行歸一化并且將歸一化值視為概率。
如果系統(tǒng)決定不再生成附加神經(jīng)網(wǎng)絡(luò)輸出,那么該系統(tǒng)前進(jìn)到處理序列中的下一系統(tǒng)輸入(步驟310)。如果該系統(tǒng)輸入是序列中的最后一個(gè)系統(tǒng)輸入,那么該系統(tǒng)輸出所生成的系統(tǒng)輸出序列以用于一些立即目的,或?qū)⑤敵鲂蛄写鎯υ谳敵鰯?shù)據(jù)庫中。
如果該系統(tǒng)確定生成附加神經(jīng)網(wǎng)絡(luò)輸出,那么該系統(tǒng)生成附加神經(jīng)網(wǎng)絡(luò)輸出(步驟312)。在不以外部存儲器增強(qiáng)神經(jīng)網(wǎng)絡(luò)的實(shí)施方式中,該系統(tǒng)能夠再次將該系統(tǒng)輸入提供為附加神經(jīng)網(wǎng)絡(luò)輸入。替選地,該系統(tǒng)能夠?qū)⒗珙A(yù)定缺省值的輸入向量的缺省輸入提供為附加神經(jīng)網(wǎng)絡(luò)輸入。
在以外部存儲器增強(qiáng)神經(jīng)網(wǎng)絡(luò)的實(shí)施方式中,該系統(tǒng)能夠?qū)⒁呀?jīng)從外部存儲器讀取的——例如基于根據(jù)當(dāng)前神經(jīng)網(wǎng)絡(luò)輸出的讀取部分從外部存儲器讀取的當(dāng)前讀取向量與系統(tǒng)輸入或缺省輸入相結(jié)合。
該系統(tǒng)能夠使用神經(jīng)網(wǎng)絡(luò)來處理附加神經(jīng)網(wǎng)絡(luò)輸入,以生成附加神經(jīng)網(wǎng)絡(luò)輸出(步驟314)。因?yàn)楫?dāng)處理每個(gè)神經(jīng)網(wǎng)絡(luò)輸入時(shí)神經(jīng)網(wǎng)絡(luò)的狀態(tài)將通常不同于當(dāng)處理初始神經(jīng)網(wǎng)絡(luò)輸入時(shí)或處理每個(gè)其他附加神經(jīng)網(wǎng)絡(luò)輸入時(shí)的神經(jīng)網(wǎng)絡(luò)的狀態(tài),因此,每個(gè)附加神經(jīng)網(wǎng)絡(luò)輸出通常不同于每個(gè)其他附加神經(jīng)網(wǎng)絡(luò)輸出和初始神經(jīng)網(wǎng)絡(luò)輸出。例如,在以外部存儲器增強(qiáng)神經(jīng)網(wǎng)絡(luò)的實(shí)施方式中,被提供給神經(jīng)網(wǎng)絡(luò)、作為每個(gè)神經(jīng)網(wǎng)絡(luò)輸入的一部分的當(dāng)前讀取向量通常不同。如另一示例,當(dāng)神經(jīng)網(wǎng)絡(luò)包括一個(gè)或多個(gè)遞歸層時(shí),當(dāng)處理每個(gè)神經(jīng)網(wǎng)絡(luò)輸入時(shí)的神經(jīng)網(wǎng)絡(luò)的內(nèi)部狀態(tài)通常是不同的。
該系統(tǒng)根據(jù)神經(jīng)網(wǎng)絡(luò)輸出的判定部分,確定是否對該系統(tǒng)輸入生成附加神經(jīng)網(wǎng)絡(luò)輸出(回到步驟308)。
在一些實(shí)施方式中,增強(qiáng)的神經(jīng)網(wǎng)絡(luò)系統(tǒng)能夠包括多個(gè)神經(jīng)網(wǎng)絡(luò),其中各自處理每個(gè)系統(tǒng)輸入以生成相應(yīng)的神經(jīng)網(wǎng)絡(luò)輸出,結(jié)合由每個(gè)網(wǎng)絡(luò)生成的神經(jīng)網(wǎng)絡(luò)輸出的適當(dāng)部分來生成對于該系統(tǒng)輸入的系統(tǒng)輸出。在這些情況下,該系統(tǒng)能夠根據(jù)每個(gè)神經(jīng)網(wǎng)絡(luò)輸入的判定部分確定是否生成對于該系統(tǒng)輸入的附加神經(jīng)網(wǎng)絡(luò)輸出,例如,如上所述,通過計(jì)算判定部分的集中趨勢的度量,然后根據(jù)該度量做出決定。
對系統(tǒng)輸入序列中的每個(gè)系統(tǒng)輸入,執(zhí)行過程200和300以生成對于該系統(tǒng)輸入序列的系統(tǒng)輸出序列。系統(tǒng)輸入序列能夠是對于其未知所需輸出的序列,所需輸出即為對該輸入序列應(yīng)當(dāng)由系統(tǒng)生成的輸出序列。該系統(tǒng)還能夠?qū)τ?xùn)練數(shù)據(jù)集的輸入執(zhí)行過程200和300,以便訓(xùn)練該系統(tǒng)——即,確定用于神經(jīng)網(wǎng)絡(luò)的參數(shù)的訓(xùn)練值,以及在以外部存儲器增強(qiáng)神經(jīng)網(wǎng)絡(luò)的實(shí)施方式中,確定用在從外部存儲器進(jìn)行擦除、寫入和讀取中的過程的任何附加參數(shù),訓(xùn)練數(shù)據(jù)集即為對于其已知應(yīng)當(dāng)由該系統(tǒng)預(yù)測的輸出的輸入集。在完全可區(qū)分系統(tǒng)的組件的實(shí)施方式中,例如,在系統(tǒng)通過將判定部分視為概率決定是否生成附加神經(jīng)網(wǎng)絡(luò)輸入的情況下,能夠?qū)τ趶挠?xùn)練數(shù)據(jù)集中選擇的輸入,重復(fù)地執(zhí)行過程200和300,以作為常規(guī)機(jī)器學(xué)習(xí)訓(xùn)練技術(shù)的一部分來訓(xùn)練該神經(jīng)網(wǎng)絡(luò),例如,如果神經(jīng)網(wǎng)絡(luò)為遞歸神經(jīng)網(wǎng)絡(luò),以沿時(shí)間反向傳播而造成隨機(jī)梯度下降的訓(xùn)練技術(shù)。
在一些實(shí)施方式中,優(yōu)化的目標(biāo)函數(shù)除懲罰生成不正確系統(tǒng)輸出的系統(tǒng)的一個(gè)或多個(gè)項(xiàng)外,還包括懲罰為生成系統(tǒng)輸出花費(fèi)太長時(shí)間進(jìn)行處理的系統(tǒng)的一個(gè)或多個(gè)項(xiàng)。即,目標(biāo)函數(shù)包括在系統(tǒng)花費(fèi)更長時(shí)間來對給定輸入序列生成輸出序列的情況下增加對該系統(tǒng)的懲罰的一個(gè)或多個(gè)項(xiàng)。能夠例如根據(jù)在處理輸入序列中生成的神經(jīng)網(wǎng)絡(luò)輸出的數(shù)量,測量該時(shí)間。由此,通過使用抵消對于不正確系統(tǒng)輸出的懲罰和對于花費(fèi)太長時(shí)間進(jìn)行處理的懲罰的目標(biāo)函數(shù)來訓(xùn)練該系統(tǒng),能夠訓(xùn)練該神經(jīng)網(wǎng)絡(luò)對任何給定的系統(tǒng)輸入,不生成過多的附加神經(jīng)網(wǎng)絡(luò)輸出,由此,減少該系統(tǒng)處理給定輸入序列所需的處理時(shí)間和計(jì)算資源的增加。
如上所述,在一些實(shí)施方式中,以外部存儲器增強(qiáng)神經(jīng)網(wǎng)絡(luò)。接下列描述從外部存儲器進(jìn)行讀取、寫入和擦除。
圖4是用于根據(jù)系統(tǒng)輸入生成系統(tǒng)輸出的示例性過程400的流程圖。為了方便,將過程400描述為由位于一個(gè)或多個(gè)位置中的一個(gè)或多個(gè)計(jì)算機(jī)的系統(tǒng)來執(zhí)行。例如,根據(jù)本說明書適當(dāng)編程的增強(qiáng)的神經(jīng)網(wǎng)絡(luò)系統(tǒng)——例如圖1的增強(qiáng)的神經(jīng)網(wǎng)絡(luò)系統(tǒng)100,能夠執(zhí)行該過程400。
系統(tǒng)接收系統(tǒng)輸入(步驟402)。系統(tǒng)輸入是由該系統(tǒng)接收的系統(tǒng)輸入的序列中的一個(gè)。
該系統(tǒng)獲得通過從,如圖1的外部存儲器104的外部存儲器進(jìn)行讀取而生成的讀取數(shù)據(jù)向量(步驟404)。通常,通過在處理系統(tǒng)輸入序列中的在前輸入期間從外部存儲器進(jìn)行讀取,由系統(tǒng)生成讀取數(shù)據(jù)向量。
該系統(tǒng)通過結(jié)合該系統(tǒng)輸入和從外部存儲器讀取的數(shù)據(jù),生成神經(jīng)網(wǎng)絡(luò)輸入(步驟406)。例如,該系統(tǒng)能夠連結(jié)系統(tǒng)輸入和讀取數(shù)據(jù)向量來生成神經(jīng)網(wǎng)絡(luò)輸入。對第一系統(tǒng)輸入,該系統(tǒng)能夠?qū)⒃撓到y(tǒng)輸入與例如神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)狀態(tài)的預(yù)定向量相連結(jié)。
該系統(tǒng)使用例如圖1的神經(jīng)網(wǎng)絡(luò)102的神經(jīng)網(wǎng)絡(luò)處理該神經(jīng)網(wǎng)絡(luò)輸入,以根據(jù)該神經(jīng)網(wǎng)絡(luò)輸入生成神經(jīng)網(wǎng)絡(luò)輸出(步驟408)。取決于該實(shí)施方式,神經(jīng)網(wǎng)絡(luò)能夠是例如卷積神經(jīng)網(wǎng)絡(luò)或另一種深度前饋神經(jīng)網(wǎng)絡(luò)的前饋神經(jīng)網(wǎng)絡(luò),或例如LSTM神經(jīng)網(wǎng)絡(luò)的遞歸神經(jīng)網(wǎng)絡(luò)。如果神經(jīng)網(wǎng)絡(luò)是遞歸神經(jīng)網(wǎng)絡(luò),遞歸神經(jīng)網(wǎng)絡(luò)還將來自序列中的前一神經(jīng)網(wǎng)絡(luò)輸入的遞歸神經(jīng)網(wǎng)絡(luò)的內(nèi)容狀態(tài)用于處理當(dāng)前神經(jīng)網(wǎng)絡(luò)輸入,以生成神經(jīng)網(wǎng)絡(luò)輸出。在一些實(shí)施方式中,神經(jīng)網(wǎng)絡(luò)包括遞歸和前饋層。
該系統(tǒng)根據(jù)神經(jīng)網(wǎng)絡(luò)輸出的系統(tǒng)輸出部分,生成對于該系統(tǒng)輸入的系統(tǒng)輸出(步驟410)。神經(jīng)網(wǎng)絡(luò)輸出的系統(tǒng)輸出部分例如是,由例如系統(tǒng)管理員已經(jīng)將其指定為將用來生成系統(tǒng)輸出的部分的神經(jīng)網(wǎng)絡(luò)輸出的預(yù)定部分,即,使得使用神經(jīng)網(wǎng)絡(luò)輸出的相同部分來生成對于由神經(jīng)網(wǎng)絡(luò)生成的每個(gè)輸出的系統(tǒng)輸出。
在一些實(shí)施方式中,該系統(tǒng)將系統(tǒng)輸出部分提供為對于系統(tǒng)輸入的系統(tǒng)輸出。然而,在一些其他實(shí)施方式中,該系統(tǒng)將一個(gè)或多個(gè)變換應(yīng)用于系統(tǒng)輸出部分以便生成系統(tǒng)輸出。例如,系統(tǒng)輸出部分可以被變換成控制機(jī)器人或不同數(shù)字接口的命令。
系統(tǒng)使用神經(jīng)網(wǎng)絡(luò)輸出的擦除部分,從外部存儲器進(jìn)行擦除(步驟412)。神經(jīng)網(wǎng)絡(luò)輸出的擦除部分是已經(jīng)將其指定為將用于從外部存儲器進(jìn)行擦除的部分的神經(jīng)網(wǎng)絡(luò)輸出的預(yù)定部分。具體地,為了從外部存儲器進(jìn)行擦除,該系統(tǒng)使用神經(jīng)網(wǎng)絡(luò)輸出的擦除部分,確定擦除權(quán)重。擦除權(quán)重是存儲器存取權(quán)重,包括用于外部存儲器中的每個(gè)位置的相應(yīng)的權(quán)重并且定義在外部存儲器中的位置上的分布。
然后,該系統(tǒng)根據(jù)擦除權(quán)重,從外部存儲器中的每個(gè)位置進(jìn)行擦除。在下文中,將參考圖4,更詳細(xì)地描述根據(jù)神經(jīng)網(wǎng)絡(luò)輸出的指定部分確定例如擦除權(quán)重的存儲器存取權(quán)重。在下文中,將參考圖8,更詳細(xì)地描述根據(jù)擦除權(quán)重從外部存儲器進(jìn)行擦除。
該系統(tǒng)使用神經(jīng)網(wǎng)絡(luò)輸出的寫入部分,寫入到外部存儲器(步驟414)。神經(jīng)網(wǎng)絡(luò)輸出的寫入部分是已經(jīng)將其指定為將用于寫入到外部存儲器的部分的神經(jīng)網(wǎng)絡(luò)輸出的預(yù)定部分。
具體地,為了寫入到外部存儲器,該系統(tǒng)使用神經(jīng)網(wǎng)絡(luò)輸出的寫入部分的指定子部分,確定寫入權(quán)重。在一些實(shí)施方式中,寫入權(quán)重與擦除權(quán)重相同,即,寫入部分的指定子部分是神經(jīng)網(wǎng)絡(luò)輸出的擦除部分。然而,在一些其他實(shí)施方式中,寫入部分的指定子部分不同于擦除部分。在下文中,參考圖5,更詳細(xì)地描述根據(jù)神經(jīng)網(wǎng)絡(luò)輸出的指定部分確定例如寫入權(quán)重的存儲器存取權(quán)重。該系統(tǒng)還根據(jù)寫入權(quán)重,根據(jù)寫入部分的不同指定子部分,確定將寫入到外部存儲器的寫入向量,然后將該寫入向量寫入到外部存儲器。在下文中,參考圖9,描述確定寫入向量和將寫入向量寫入到外部存儲器。
該系統(tǒng)使用神經(jīng)網(wǎng)絡(luò)輸出的讀取部分,從外部存儲器進(jìn)行讀取(步驟416)。神經(jīng)網(wǎng)絡(luò)輸出的讀取部分是已經(jīng)將其指定為將用于從外部存儲器進(jìn)行讀取的部分的神經(jīng)網(wǎng)絡(luò)輸出的預(yù)定部分。
具體地,為了從外部存儲器進(jìn)行讀取,該系統(tǒng)使用神經(jīng)網(wǎng)絡(luò)輸出的讀取部分確定讀取權(quán)重,然后根據(jù)讀取權(quán)重從外部存儲器中的位置進(jìn)行讀取。在下文中,參考圖5,更詳細(xì)地描述根據(jù)神經(jīng)網(wǎng)絡(luò)輸出的指定部分確定例如讀取權(quán)重的存儲器存取權(quán)重。在下文中,參考圖10,描述從外部存儲器進(jìn)行讀取。
在一些實(shí)施方式中,該系統(tǒng)對給定系統(tǒng)輸入,執(zhí)行多次擦除、讀取和寫入操作。例如,該系統(tǒng)能夠操作集并行地或相互獨(dú)立地執(zhí)行多個(gè)集合,多個(gè)集合中的每個(gè)包括擦除操作、讀取操作和寫入操作。另外,如下文參考圖8-10更詳細(xì)所述,該系統(tǒng)能夠?qū)⒉煌拇鎯ζ鞔嫒?quán)重用于執(zhí)行每個(gè)操作集,例如,這是因?yàn)樵撓到y(tǒng)將神經(jīng)網(wǎng)絡(luò)輸出的不同部分用于計(jì)算存儲器存取權(quán)重的集合中的每個(gè)。
另外,該系統(tǒng)能夠以任何順序執(zhí)行擦除、讀取和寫入操作。例如,在一些實(shí)施方式中,該系統(tǒng)先從外部存儲器進(jìn)行擦除,然后進(jìn)行寫入,然后再進(jìn)行讀取。然而,在其他實(shí)施方式中,該系統(tǒng)能夠以不同的順序執(zhí)行這些操作。
能夠?qū)ο到y(tǒng)輸入序列中的每個(gè)系統(tǒng)輸入執(zhí)行過程400以生成對于系統(tǒng)輸入序列的系統(tǒng)輸出序列。系統(tǒng)輸入序列能夠是對于其未知所需輸出的序列,所需輸出即為對該輸入序列,應(yīng)當(dāng)由該系統(tǒng)生成的輸出序列。該系統(tǒng)還能夠?qū)τ谟?xùn)練數(shù)據(jù)集的輸入執(zhí)行過程400,以便訓(xùn)練該系統(tǒng),即,確定用于神經(jīng)網(wǎng)絡(luò)的參數(shù)的訓(xùn)練值,以及用于從外部存儲器進(jìn)行擦除、寫入和讀取的過程的任何附加參數(shù),訓(xùn)練數(shù)據(jù)集即為對于其已知應(yīng)當(dāng)由該系統(tǒng)預(yù)測的輸出的輸入集。因?yàn)橥耆蓞^(qū)分系統(tǒng)的組件,能夠?qū)τ趶挠?xùn)練數(shù)據(jù)集中選擇的輸入,重復(fù)地執(zhí)行過程400,以作為常規(guī)機(jī)器學(xué)習(xí)訓(xùn)練技術(shù)的一部分來訓(xùn)練該神經(jīng)網(wǎng)絡(luò),例如,如果神經(jīng)網(wǎng)絡(luò)為遞歸神經(jīng)網(wǎng)絡(luò),隨機(jī)梯度下降反向傳播的訓(xùn)練技術(shù)。
圖5是用于根據(jù)神經(jīng)網(wǎng)絡(luò)輸出的指定部分,確定存儲器存取權(quán)重的示例過程500的流程圖。為了方便,過程500將被描述為由位于一個(gè)或多個(gè)位置中的一個(gè)或多個(gè)計(jì)算機(jī)的系統(tǒng)來執(zhí)行。例如,根據(jù)本說明書適當(dāng)編程的增強(qiáng)的神經(jīng)網(wǎng)絡(luò)系統(tǒng)——例如圖1的增強(qiáng)的神經(jīng)網(wǎng)絡(luò)系統(tǒng)100,能夠執(zhí)行過程500。
該系統(tǒng)接收神經(jīng)網(wǎng)絡(luò)輸出的指定部分(步驟502)。即,如果由系統(tǒng)確定的存儲器存取權(quán)重為擦除權(quán)重,那么該系統(tǒng)接收神經(jīng)網(wǎng)絡(luò)輸出的擦除部分,如果由該系統(tǒng)確定的存儲器存取權(quán)重為寫入權(quán)重,那么該系統(tǒng)接收神經(jīng)網(wǎng)絡(luò)輸出的寫入部分的指定子部分,以及如果由系統(tǒng)確定的存儲器存取權(quán)重為讀取權(quán)重,那么該系統(tǒng)接收神經(jīng)網(wǎng)絡(luò)輸出的讀取部分。
該系統(tǒng)根據(jù)指定部分的基于內(nèi)容的子部分,確定基于內(nèi)容的權(quán)重(步驟504)。通常,為了確定基于內(nèi)容的權(quán)重,該系統(tǒng)根據(jù)基于內(nèi)容的子部分確定內(nèi)容關(guān)鍵向量。然后,該系統(tǒng)將內(nèi)容關(guān)鍵向量與在外部存儲器的位置中存儲的向量進(jìn)行比較以便確定用于該位置的權(quán)重。在下文中,將參考圖6,更詳細(xì)地描述確定基于內(nèi)容的權(quán)重。
該系統(tǒng)將基于位置的調(diào)整應(yīng)用于基于內(nèi)容的權(quán)重,以確定存儲器存取權(quán)重(步驟506)。通常,該系統(tǒng)根據(jù)指定部分的基于位置的子部分確定移位向量,然后使用該移位向量來調(diào)整基于內(nèi)容的權(quán)重,以便確定存儲器存取權(quán)重。在下文中,參考圖7,描述對基于內(nèi)容的權(quán)重進(jìn)行調(diào)整。
圖6是用于對外部存儲器中的位置生成基于內(nèi)容的權(quán)重的示例過程600的流程圖。為了方便,過程600將被描述為由位于一個(gè)或多個(gè)位置中的一個(gè)或多個(gè)計(jì)算機(jī)的系統(tǒng)來執(zhí)行。例如,根據(jù)本說明書適當(dāng)編程的增強(qiáng)的神經(jīng)網(wǎng)絡(luò)系統(tǒng)——例如圖1的增強(qiáng)的神經(jīng)網(wǎng)絡(luò)系統(tǒng)100,能夠執(zhí)行過程600。
該系統(tǒng)接收神經(jīng)網(wǎng)絡(luò)輸出的指定部分的基于內(nèi)容的子部分(步驟602)。
該系統(tǒng)根據(jù)基于內(nèi)容的子部分,生成基于內(nèi)容的關(guān)鍵向量(步驟604)。在一些實(shí)施方式中,該系統(tǒng)可以將基于內(nèi)容的子部分用作基于內(nèi)容的關(guān)鍵向量。在一些其他實(shí)施方式中,該系統(tǒng)將一個(gè)或多個(gè)變換應(yīng)用于基于內(nèi)容的子部分以便生成基于內(nèi)容的關(guān)鍵向量。例如,該系統(tǒng)可以使用被配置為接收子部分并且生成基于內(nèi)容的關(guān)鍵向量的、例如多層感知器(MLP)神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò),處理基于內(nèi)容的子部分。
該系統(tǒng)計(jì)算基于內(nèi)容的關(guān)鍵向量和在外部存儲器中存儲的向量之間的相似性度量(步驟606)。即,該系統(tǒng)計(jì)算基于內(nèi)容的關(guān)鍵向量和在外部存儲器中存儲的每個(gè)向量之間的相應(yīng)的相似性度量。例如,相似性度量可以是余弦相似性度量,基于內(nèi)容的關(guān)鍵向量k(h,t)和位于外部存儲器M中的第i位置處的給定向量M(i,·,t)之間的相似性K滿足:
該系統(tǒng)使用相似性度量,計(jì)算對于外部存儲器中的位置的基于內(nèi)容的權(quán)重(步驟608)。通常,該系統(tǒng)計(jì)算該權(quán)重,使得具有與基于內(nèi)容的關(guān)鍵向量較高相似性度量的位置被分配較高權(quán)重。例如,對于外部存儲器M中的第i位置的基于內(nèi)容的權(quán)重可以滿足:
其中,β(h,t)是作為根據(jù)神經(jīng)網(wǎng)絡(luò)輸出的指定部分導(dǎo)出的正值的“關(guān)鍵強(qiáng)度”并且該總和為外部存儲器中的所有位置的總和。
圖7是用于將基于位置的調(diào)整應(yīng)用于基于內(nèi)容的權(quán)重的示例過程700的流程圖。為了方便,過程700將被描述為由位于一個(gè)或多個(gè)位置中的一個(gè)或多個(gè)計(jì)算機(jī)的系統(tǒng)來執(zhí)行。例如,根據(jù)本說明書適當(dāng)編程的增強(qiáng)的神經(jīng)網(wǎng)絡(luò)系統(tǒng)——例如圖1的增強(qiáng)的神經(jīng)網(wǎng)絡(luò)系統(tǒng)100,能夠執(zhí)行過程700。
該系統(tǒng)接收神經(jīng)網(wǎng)絡(luò)輸出的指定部分的基于位置的子部分(步驟702)。
該系統(tǒng)根據(jù)基于內(nèi)容的權(quán)重和由該系統(tǒng)生成的在前權(quán)重,生成臨時(shí)權(quán)重(步驟704)。通常,由該系統(tǒng)生成的在前權(quán)重是在前系統(tǒng)輸入的處理期間,由該系統(tǒng)生成的存儲器存取權(quán)重。該系統(tǒng)通過結(jié)合基于內(nèi)容的權(quán)重和在前權(quán)重,生成臨時(shí)權(quán)重。例如,該臨時(shí)權(quán)重可以是基于內(nèi)容的權(quán)重和在前權(quán)重的內(nèi)插,對第t+1系統(tǒng)輸入,對于該外部存儲器中的指定位置i的臨時(shí)權(quán)重滿足:
其中,gt(h,t+1)是0和1之間并且根據(jù)神經(jīng)網(wǎng)絡(luò)輸出的指定部分導(dǎo)出的門輸出,wc(i,h,t+1)是對于第t+1系統(tǒng)輸入的基于內(nèi)容的權(quán)重,以及w(i,h,t)是根據(jù)第t系統(tǒng)輸入的存儲器存取權(quán)重。
該系統(tǒng)根據(jù)基于位置的子部分,生成移位向量(步驟706)。在一些實(shí)施方式中,該系統(tǒng)可以將基于位置的子部分用作移位向量。在一些其他實(shí)施方式中,該系統(tǒng)將一個(gè)或多個(gè)變換應(yīng)用于基于位置的子部分以便生成移位向量。例如,該系統(tǒng)可以使用被配置為接收該子部分并且生成移位向量的、例如MLP神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò),處理基于位置的子部分。
該系統(tǒng)使用移位向量來對臨時(shí)權(quán)重進(jìn)行移位,以生成存儲器存取權(quán)重(步驟708)。具體地,該系統(tǒng)使用移位向量,將例如循環(huán)卷積的卷積應(yīng)用于臨時(shí)矢量,以生成存儲器存取權(quán)重。例如,對于外部存儲器中的位置i的權(quán)重w(i,h,t+1)可以滿足:
其中,所有索引算法是所計(jì)算的模數(shù)N,以及其中,s(i-j,h,t+1)是對于存儲器中的位置i-j的移位向量。
圖8是根據(jù)擦除權(quán)重從外部存儲器進(jìn)行擦除的示例過程800的流程圖。為了方便,過程800將被描述為由位于一個(gè)或多個(gè)位置中的一個(gè)或多個(gè)計(jì)算機(jī)的系統(tǒng)來執(zhí)行。例如,根據(jù)本說明書適當(dāng)編程的增強(qiáng)的神經(jīng)網(wǎng)絡(luò)系統(tǒng)——例如圖1的增強(qiáng)的神經(jīng)網(wǎng)絡(luò)系統(tǒng)100,能夠執(zhí)行過程800。
該系統(tǒng)生成擦除權(quán)重(步驟802)。該系統(tǒng)能夠如上參考圖4-6所述,生成擦除權(quán)重。
該系統(tǒng)生成擦除向量(步驟804)。在一些實(shí)施方式中,該系統(tǒng)可以將神經(jīng)網(wǎng)絡(luò)輸出的指定部分用作擦除向量。在一些其他實(shí)施方式中,該系統(tǒng)將一個(gè)或多個(gè)變換應(yīng)用于該部分以便生成擦除向量。例如,該系統(tǒng)可以使用被配置為接收該部分并且生成擦除向量的、例如多層感知器(MLP)神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò),處理該部分。
該系統(tǒng)使用擦除權(quán)重和擦除門向量,從外部存儲器進(jìn)行擦除(步驟806)。具體地,對存儲在位于外部存儲器中的位置i處的向量的向量元素j的值M(i,,j,t),該系統(tǒng)生成滿足下述公式的擦除值
其中,we(i,h,t+1)是對于位置i的擦除權(quán)重以及ge(j,h,t+1)是擦除向量。
在該系統(tǒng)對給定系統(tǒng)輸入例如如上所述并行地執(zhí)行多次擦除操作的實(shí)施方式中,通過以用于擦除權(quán)重和擦除門向量的可選不同值來執(zhí)行技術(shù)800,能夠獨(dú)立地執(zhí)行每個(gè)擦除操作。例如,通過使用具有可能不同參數(shù)值的不同神經(jīng)網(wǎng)絡(luò)來生成擦除門向量,能夠執(zhí)行每個(gè)擦除操作。由此,并行執(zhí)行的多個(gè)擦除操作的累積效果是倍增的。
圖9是根據(jù)寫入權(quán)重寫入外部存儲器的示例過程900的流程圖。為了方便,過程900將被描述為由位于一個(gè)或多個(gè)位置中的一個(gè)或多個(gè)計(jì)算機(jī)的系統(tǒng)來執(zhí)行。例如,根據(jù)本說明書適當(dāng)編程的增強(qiáng)的神經(jīng)網(wǎng)絡(luò)系統(tǒng)——例如圖1的增強(qiáng)的神經(jīng)網(wǎng)絡(luò)系統(tǒng)100,能夠執(zhí)行過程900。
該系統(tǒng)生成寫入權(quán)重(步驟902)。如上參考圖4-6所述,該系統(tǒng)能夠根據(jù)寫入輸出部分的指定子部分,生成寫入權(quán)重。如上所述,在一些實(shí)施方式中,寫入權(quán)重與擦除權(quán)重相同。
該系統(tǒng)根據(jù)寫輸入部分的不同指定部分生成寫入向量(步驟904)。在一些實(shí)施方式中,該系統(tǒng)可以將不同指定子部分用作寫入向量。在一些其他實(shí)施方式中,該系統(tǒng)將一個(gè)或多個(gè)變換應(yīng)用于不同的指定子部分以便生成寫入向量。例如,該系統(tǒng)可以使用被配置為接收該子部分并且生成寫入向量的、例如MLP神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò),處理不同指定的子部分。
該系統(tǒng)使用寫入權(quán)重,將寫入向量寫入到外部存儲器(步驟906)。具體地,對存儲在外部存儲器的位置i處的向量的向量元素j的值M(i,,j,t),該系統(tǒng)生成滿足下述公式的值M(i,j,t+1):
其中,ww(i,h,t+1)是對于位置i的寫入權(quán)重,以及v(j,h,t+1)是寫入向量的元素h處的值。在擦除操作后執(zhí)行寫入操作的實(shí)施方式中,并非修改值M(i,,j,t),而是該系統(tǒng)能夠通過修改由上述擦除操作生成的值來生成值M(i,j,t+1)。
在該系統(tǒng)對給定系統(tǒng)輸入例如如上所述并行地執(zhí)行多次寫入操作的實(shí)施方式中,通過以用于寫入權(quán)重和寫入向量的可選不同值來執(zhí)行技術(shù)900,能夠獨(dú)立地執(zhí)行每個(gè)寫入操作。例如,通過使用具有可能不同的參數(shù)值的不同神經(jīng)網(wǎng)絡(luò)來生成寫入向量,能夠執(zhí)行每個(gè)寫入操作。由此,并行執(zhí)行多次寫入操作的累積效果是累加的。
圖10是根據(jù)讀取權(quán)重從外部存儲器進(jìn)行讀取的示例過程1000的流程圖。為了方便,過程1000將被描述為由位于一個(gè)或多個(gè)位置中的一個(gè)或多個(gè)計(jì)算機(jī)的系統(tǒng)來執(zhí)行。例如,根據(jù)本說明書適當(dāng)編程的增強(qiáng)的神經(jīng)網(wǎng)絡(luò)系統(tǒng)——例如圖1的增強(qiáng)的神經(jīng)網(wǎng)絡(luò)系統(tǒng)100,能夠執(zhí)行過程1000。
該系統(tǒng)生成讀取權(quán)重(步驟1002)。該系統(tǒng)能夠如上參考圖5-7所述,根據(jù)讀取輸出部分生成讀取權(quán)重。
該系統(tǒng)根據(jù)讀取權(quán)重,從外部存儲器中的位置進(jìn)行讀取(步驟1004)。具體地,該系統(tǒng)通過結(jié)合在外部存儲器的每個(gè)位置處存儲的值,生成讀取數(shù)據(jù)向量。即,對讀取數(shù)據(jù)向量的給定元素,該系統(tǒng)計(jì)算在那一元素處,外部存儲器中存儲的每個(gè)值的加權(quán)平均,每個(gè)值的權(quán)重是對于相應(yīng)位置的讀取權(quán)重。例如,元素j處的讀取向量的值v(j,h,t+1)可以滿足:
其中,wr(i,h,t+1)是對于位置i的讀取權(quán)重,以及M(i,j,t+1)是存儲器的位置i處存儲的向量的元素j的值。
在該系統(tǒng)例對給定系統(tǒng)輸入例如如上所述并行地執(zhí)行多次讀取操作的實(shí)施方式中,通過以用于讀取權(quán)重的可選不同值來執(zhí)行技術(shù)1000,能夠獨(dú)立地執(zhí)行每個(gè)讀取操作。在這些實(shí)施方式中,該系統(tǒng)能夠例如通過連結(jié)向量,結(jié)合由每個(gè)讀取操作生成的讀取數(shù)據(jù)向量,以形成被提供為對神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)輸入的一部分的最終讀取數(shù)據(jù)向量。
取決于實(shí)施方式,該系統(tǒng)能夠基于從神經(jīng)網(wǎng)絡(luò)接收到的輸出,保持在外部存儲器中存儲的數(shù)據(jù)的各種永久度。例如,在一些實(shí)施方式中,在系統(tǒng)已經(jīng)完全處理每個(gè)系統(tǒng)輸入序列后,該系統(tǒng)重置外部存儲器。如另一示例,在一些實(shí)施方式中,在外部存儲器中存儲的數(shù)據(jù)持續(xù)存在于輸入序列之間。即,該系統(tǒng)不會從外部存儲器中刪除在系統(tǒng)輸入序列之間的任何數(shù)據(jù)。在這些實(shí)施方式中,在完成分配給該系統(tǒng)的任務(wù)后以及在該系統(tǒng)開始不同的機(jī)器學(xué)習(xí)任務(wù)前,該系統(tǒng)可以重置外部存儲器。替選地,該系統(tǒng)可以保持外部存儲器,而不是在任務(wù)之間刪除值。由此,當(dāng)處理當(dāng)前輸入序列時(shí),該系統(tǒng)可以能夠利用當(dāng)處理在前輸入序列時(shí)或甚至當(dāng)執(zhí)行在前機(jī)器學(xué)習(xí)任務(wù)時(shí),在存儲器中存儲的數(shù)據(jù)。
能夠在數(shù)字電子電路中,或者在有形地體現(xiàn)的計(jì)算機(jī)軟件、固件中,或者在包括在本說明書中公開的結(jié)構(gòu)及其結(jié)構(gòu)等效物的計(jì)算機(jī)硬件中,或者在它們中的一項(xiàng)或者多項(xiàng)的組合中實(shí)施在本說明書中描述的主題和功能操作的實(shí)施例。能夠?qū)⒃诒菊f明書中描述的主題的實(shí)施例實(shí)施為一個(gè)或者多個(gè)計(jì)算機(jī)程序,即編碼在有形非易失程序載體上的、用于由數(shù)據(jù)處理裝置執(zhí)行或者控制數(shù)據(jù)處理裝置的操作的計(jì)算機(jī)程序指令的一個(gè)或者多個(gè)模塊。備選地或者附加地,能夠在人為生成的傳播的信號——例如,機(jī)器生成的電、光或者電磁信號上對程序指令進(jìn)行編碼,該信號被生成以用于對向適當(dāng)接收器設(shè)備發(fā)送、以供數(shù)據(jù)處理裝置執(zhí)行的信息進(jìn)行編碼。計(jì)算機(jī)存儲介質(zhì)能夠是機(jī)器可讀存儲設(shè)備、機(jī)器可讀存儲襯底、隨機(jī)或者串行存取存儲器設(shè)備或者它們中的一項(xiàng)或者多項(xiàng)的組合。
術(shù)語“數(shù)據(jù)處理裝置”是指數(shù)據(jù)處理硬件并且涵蓋各種用于處理數(shù)據(jù)的裝置、設(shè)備和機(jī)器,舉例而言包括可編程處理器、計(jì)算機(jī)、多處理器或計(jì)算機(jī)。該設(shè)備還能夠是或進(jìn)一步包括專用邏輯電路,例如,F(xiàn)PGA(現(xiàn)場可編程門陣列)或者ASIC(專用集成電路)。該裝置除了硬件之外,可選地,也能夠包括為計(jì)算機(jī)程序創(chuàng)建執(zhí)行環(huán)境的代碼,例如,構(gòu)成處理器固件、協(xié)議棧、數(shù)據(jù)庫管理系統(tǒng)、操作系統(tǒng)或者它們中的一項(xiàng)或者多項(xiàng)的組合的代碼。
能夠用任何形式的編程語言來編寫計(jì)算機(jī)程序(也可以被稱為或描述為程序、軟件、軟件應(yīng)用、模塊、軟件模塊、腳本或者代碼),包括編譯或者解譯語言、或說明或者過程語言,并且能夠用任何形式部署計(jì)算機(jī)程序,包括部署為獨(dú)立程序或者部署為適合于在計(jì)算環(huán)境中使用的模塊、組件、子例程或者其他單元。計(jì)算機(jī)程序可以,但是無需對應(yīng)于文件系統(tǒng)中的文件。程序能夠被存儲于持有其他程序或者數(shù)據(jù)的文件的一部分中——例如存儲于標(biāo)記語言文檔中的一個(gè)或者多個(gè)腳本、專用于討論的程序的單個(gè)文件中,或者多個(gè)協(xié)同文件中——例如存儲一個(gè)或者多個(gè)模塊、子程序或者代碼部分的文件。能夠?qū)⒂?jì)算機(jī)程序部署為在一個(gè)計(jì)算機(jī)上被執(zhí)行,或者在位于一個(gè)站點(diǎn)或者跨多個(gè)站點(diǎn)分布并且由通信網(wǎng)絡(luò)互連的多個(gè)計(jì)算機(jī)上被執(zhí)行。
在本說明書中描述的過程和邏輯流程能夠由一個(gè)或者多個(gè)可編程處理器執(zhí)行,該一個(gè)或者多個(gè)可編程計(jì)算機(jī)執(zhí)行一個(gè)或者多個(gè)計(jì)算機(jī)程序以通過對輸入數(shù)據(jù)操作并且生成輸出來執(zhí)行功能。該過程和邏輯流也能夠由例如FPGA(現(xiàn)場可編程門陣列)或者ASIC(專用集成電路)的專用邏輯電路執(zhí)行,以及裝置還能夠被實(shí)現(xiàn)為該專用邏輯電路。
適合于執(zhí)行計(jì)算機(jī)程序的計(jì)算機(jī)例如包括能夠基于通用微處理器或者專用微處理器,或者其兩者,或者任何其他種類的中央處理器。通常,中央處理器將從只讀存儲器或者隨機(jī)存取存儲器或者二者接收指令和數(shù)據(jù)。計(jì)算機(jī)的必要元件是用于執(zhí)行指令的中央處理器單元以及用于存儲指令和數(shù)據(jù)的一個(gè)或者多個(gè)存儲器設(shè)備。通常,計(jì)算機(jī)還將包括用于存儲數(shù)據(jù)的一個(gè)或者多個(gè)海量存儲裝置——例如,磁盤、磁光盤或者光盤,或者被操作地耦合以從該一個(gè)或者多個(gè)海量存儲設(shè)備接收數(shù)據(jù)或者向該一個(gè)或者多個(gè)海量存儲設(shè)備發(fā)送數(shù)據(jù)或者接收和發(fā)送二者。然而,計(jì)算機(jī)無需具有這樣的設(shè)備。另外,計(jì)算機(jī)能夠被嵌入于另一設(shè)備中,聊舉數(shù)例,例如,移動電話、個(gè)人數(shù)字助理(PDA)、移動音頻或者視頻播放器、游戲控制臺、全球定位系統(tǒng)(GPS)接收器或者便攜式存儲設(shè)備,例如,通用串行總線(USB)閃存驅(qū)動。
適合于存儲計(jì)算機(jī)程序指令和數(shù)據(jù)的計(jì)算機(jī)可讀介質(zhì)包括所有形式的非易失性存儲器、介質(zhì)和存儲器設(shè)備,舉例而言包括半導(dǎo)體存儲器設(shè)備,例如,EPROM、EEPROM和閃速存儲器設(shè)備;磁盤,例如,內(nèi)部硬盤或者可去除盤;磁光盤;以及CD-ROM和DVD-ROM盤。處理器和存儲器能夠由專用邏輯電路補(bǔ)充或者并入于專用邏輯電路中。
為了提供與用戶的交互,能夠在計(jì)算機(jī)上實(shí)施在本說明書中描述的主題的實(shí)施例,該計(jì)算機(jī)具有用于向用戶顯示信息的例如CRT(陰極射線管)或者LCD(液晶顯示器)監(jiān)視器的顯示設(shè)備,以及用戶能夠用其向計(jì)算機(jī)提供輸入的例如鼠標(biāo)或者軌跡球的鍵盤和指向設(shè)備。其他種類的設(shè)備也能夠用來提供與用戶的交互;例如,向用戶提供的反饋能夠是任何形式的感官反饋,例如,視覺反饋、聽覺反饋或者觸覺反饋;并且能夠用包括聲音、語音或者觸覺輸入的任何形式接收來自用戶的輸入。此外,計(jì)算機(jī)能夠通過向用戶使用的設(shè)備發(fā)送文檔和從該設(shè)備接收文檔來與用戶交互,例如,通過在用戶的客戶端設(shè)備上響應(yīng)于從web瀏覽器接收到的請求向web瀏覽器發(fā)送網(wǎng)頁來與用戶交互。
能夠在計(jì)算系統(tǒng)中實(shí)施在本說明書中描述的主題的實(shí)施例,該計(jì)算系統(tǒng)包括例如作為數(shù)據(jù)服務(wù)器的后端組件,或者包括例如應(yīng)用服務(wù)器的中間件組件,或者包括例如具有關(guān)系圖形用戶界面或者Web瀏覽器的客戶端計(jì)算機(jī)的前端組件,或者包括一個(gè)或多個(gè)這樣的后端、中間件或者前端部件的任何組合,其中用戶能夠通過該客戶端計(jì)算機(jī)與在本說明書中描述的主題的實(shí)現(xiàn)方式進(jìn)行交互。能夠通過任何數(shù)字?jǐn)?shù)據(jù)通信形式或者介質(zhì)(例如,通信網(wǎng)絡(luò))互連系統(tǒng)的組件。通信網(wǎng)絡(luò)的示例包括局域網(wǎng)(LAN)和廣域網(wǎng)(WAN),例如,因特網(wǎng)。
計(jì)算系統(tǒng)能夠包括客戶端和服務(wù)器。客戶端和服務(wù)器一般相互遠(yuǎn)離并且通常通過通信網(wǎng)絡(luò)交互。客戶端和服務(wù)器的關(guān)系借助在相應(yīng)計(jì)算機(jī)上運(yùn)行并且相互具有客戶端-服務(wù)器關(guān)系的計(jì)算機(jī)程序而產(chǎn)生。
盡管本說明書包含許多具體實(shí)現(xiàn)方式細(xì)節(jié),但是不應(yīng)將這些解釋為限制任何發(fā)明的范圍或可以要求保護(hù)的內(nèi)容的范圍,而是解釋為對具體發(fā)明的具體實(shí)施例特有的特征的描述。在本說明書中在分開的實(shí)施例的場境中描述的某些特征也能夠在單個(gè)實(shí)施例中以組合的方式被實(shí)施。相反地,在單個(gè)實(shí)施例的場境中描述的各種特征也能夠在多個(gè)實(shí)施例中分開地或者在任何適當(dāng)子組合中被實(shí)施。另外,雖然上文能夠?qū)⑻卣髅枋鰹樵谀承┙M合中的動作并且甚至起初這樣被要求保護(hù),但是來自要求保護(hù)的組合的一個(gè)或者多個(gè)特征能夠在一些情況下從該組合中被刪除,并且要求保護(hù)的組合能夠涉及子組合或者子組合的變型。
類似地,盡管在附圖中以特定順序描繪操作,但是這不應(yīng)被理解為要求以所示特定順序或者以依次的順序執(zhí)行這樣的操作,或者執(zhí)行所有所示操作以實(shí)現(xiàn)希望的結(jié)果。在某些境況中,多任務(wù)和并行處理會是有利的。另外,在上文描述的實(shí)施例中的各種系統(tǒng)模塊和部件的分離不應(yīng)被理解為在所有實(shí)施例中要求這樣的分離,并且應(yīng)當(dāng)理解描述的程序組件和系統(tǒng)通常能夠一起集成于單個(gè)軟件產(chǎn)品中或者被封裝到多個(gè)軟件產(chǎn)品中。
描述了主題的具體實(shí)施例。其他實(shí)現(xiàn)方式在所附權(quán)利要求的范圍內(nèi)。例如,在權(quán)利要求中記載的動作能夠按不同順序被執(zhí)行而仍然實(shí)現(xiàn)希望的結(jié)果。作為一個(gè)示例,在附圖中描繪的過程未必需要所示特定順序或者依次的順序以實(shí)現(xiàn)希望的結(jié)果。在某些實(shí)施方式中,多任務(wù)和并行處理會是有利的。