背景技術(shù):
1、本說明書涉及訓(xùn)練神經(jīng)網(wǎng)絡(luò)以執(zhí)行機器學(xué)習(xí)任務(wù)。
2、神經(jīng)網(wǎng)絡(luò)是采用非線性單元的一個或多個層來針對所接收的輸入預(yù)測輸出的機器學(xué)習(xí)模型。除了輸出層之外,一些神經(jīng)網(wǎng)絡(luò)還包括一個或多個隱藏層。每個隱藏層的輸出用作到網(wǎng)絡(luò)中的下一層(即,下一隱藏層或輸出層)的輸入。網(wǎng)絡(luò)的每個層根據(jù)相應(yīng)參數(shù)集的當(dāng)前值從所接收的輸入生成輸出。
技術(shù)實現(xiàn)思路
1、本說明書描述了一種實現(xiàn)為一個或多個位置中的一個或多個計算機上的計算機程序的系統(tǒng),該系統(tǒng)訓(xùn)練學(xué)生神經(jīng)網(wǎng)絡(luò)以執(zhí)行機器學(xué)習(xí)任務(wù)。
2、具體地,為了執(zhí)行該訓(xùn)練,系統(tǒng)利用了教師神經(jīng)網(wǎng)絡(luò)和生成神經(jīng)網(wǎng)絡(luò)。教師神經(jīng)網(wǎng)絡(luò)是被配置為與學(xué)生執(zhí)行相同的機器學(xué)習(xí)任務(wù)的神經(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ò)。
3、編碼器神經(jīng)網(wǎng)絡(luò)被配置為接收與到機器學(xué)習(xí)任務(wù)的輸入相同類型的輸入,并處理該輸入以生成該輸入的潛在表示?!皾撛诒硎尽笔穷A(yù)定義潛在空間中(即,具有預(yù)定義維數(shù))的數(shù)值的有序集合,例如,浮點數(shù)或其他數(shù)值的向量、矩陣或更高階張量。
4、通常,潛在空間的維數(shù)小于到機器學(xué)習(xí)任務(wù)的可能輸入的空間。解碼器神經(jīng)網(wǎng)絡(luò)被配置為接收輸入潛在表示并處理輸入潛在表示以生成與到機器學(xué)習(xí)任務(wù)的輸入相同類型的輸出。
5、根據(jù)第一方面,提供了一種由一個或多個計算機執(zhí)行的用于訓(xùn)練學(xué)生神經(jīng)網(wǎng)絡(luò)的方法。學(xué)生神經(jīng)網(wǎng)絡(luò)具有多個學(xué)生參數(shù)以執(zhí)行機器學(xué)習(xí)任務(wù)。該方法包括:獲得包括一個或多個訓(xùn)練輸入的批次;以及生成多個修改后的訓(xùn)練輸入,包括對于一個或多個訓(xùn)練輸入中的每一者:使用編碼器神經(jīng)網(wǎng)絡(luò)來處理訓(xùn)練輸入以生成訓(xùn)練輸入的潛在表示;以及使用潛在表示來生成一個或多個修改后的訓(xùn)練輸入。此外,生成修改后的訓(xùn)練輸入中的每一者包括:從訓(xùn)練輸入的潛在表示生成修改后的潛在表示;以及使用解碼器神經(jīng)網(wǎng)絡(luò)來處理修改后的潛在表示以生成修改后的訓(xùn)練輸入。
6、另外,該方法包括:使用學(xué)生神經(jīng)網(wǎng)絡(luò)來處理多個修改后的訓(xùn)練輸入中的每一者以針對修改后的訓(xùn)練輸入中的每一者生成用于機器學(xué)習(xí)任務(wù)的相應(yīng)學(xué)生輸出;使用教師神經(jīng)網(wǎng)絡(luò)來處理多個修改后的訓(xùn)練輸入中的每一者以針對修改后的訓(xùn)練輸入中的每一者生成用于機器學(xué)習(xí)任務(wù)的相應(yīng)教師輸出,其中教師神經(jīng)網(wǎng)絡(luò)已經(jīng)過預(yù)訓(xùn)練以執(zhí)行機器學(xué)習(xí)任務(wù);計算損失函數(shù)的關(guān)于學(xué)生參數(shù)的梯度,該損失函數(shù)包括第一項,該第一項對于修改后的訓(xùn)練輸入中的每一者,衡量針對修改后的訓(xùn)練輸入的學(xué)生輸出與針對修改后的訓(xùn)練輸入的教師輸出之間的損失;以及使用梯度來更新學(xué)生參數(shù)。
7、可實現(xiàn)本說明書中所描述的主題的特定實施例,以便實現(xiàn)以下優(yōu)點中的一者或多者。
8、在大量訓(xùn)練數(shù)據(jù)上訓(xùn)練的超大型神經(jīng)網(wǎng)絡(luò)在許多機器學(xué)習(xí)任務(wù)上表現(xiàn)出了最先進的性能。然而,這些神經(jīng)網(wǎng)絡(luò)不適合部署在受限的存儲器空間內(nèi),即,邊緣裝置上或計算資源量有限的其他計算環(huán)境中。因此,這些神經(jīng)網(wǎng)絡(luò)不能用于許多邊緣應(yīng)用所需的裝置上處理。
9、此外,嘗試將大型模型“提煉(distill)”為緊湊模型以實現(xiàn)有效率部署的現(xiàn)有技術(shù)通常需要大量(貼標(biāo)簽或未貼標(biāo)簽的)訓(xùn)練數(shù)據(jù)。然而,對于一些任務(wù),可能沒有如此大量的訓(xùn)練數(shù)據(jù)可用。即使有如此大量的訓(xùn)練數(shù)據(jù)可用,在如此大量的訓(xùn)練數(shù)據(jù)上訓(xùn)練緊湊的學(xué)生模型也可能是計算極為昂貴的。
10、該實現(xiàn)方式包括用于通過利用教師神經(jīng)網(wǎng)絡(luò)和生成神經(jīng)網(wǎng)絡(luò)來訓(xùn)練計算有效率的學(xué)生神經(jīng)網(wǎng)絡(luò)的提煉技術(shù)。因此,通過使用所描述的技術(shù),可被部署在受限的存儲器空間內(nèi)(即,在具有有限的計算資源的邊緣裝置上)的學(xué)生神經(jīng)網(wǎng)絡(luò)可被訓(xùn)練以具有與執(zhí)行相同任務(wù)但無法有效部署在受限的存儲器空間中的教師神經(jīng)網(wǎng)絡(luò)相當(dāng)或者甚至超過它的性能。應(yīng)當(dāng)理解,將學(xué)生神經(jīng)網(wǎng)絡(luò)部署在存儲器空間(例如,受限的存儲器空間)內(nèi)可以包括將學(xué)生神經(jīng)網(wǎng)絡(luò)存儲在存儲器空間中(例如,受限的存儲器空間中)。還應(yīng)當(dāng)理解,部署學(xué)生神經(jīng)網(wǎng)絡(luò)可以包括將學(xué)生神經(jīng)網(wǎng)絡(luò)存儲在除在訓(xùn)練學(xué)生神經(jīng)網(wǎng)絡(luò)所在的裝置之外的裝置的存儲器中。
11、另外,通過將已經(jīng)過訓(xùn)練的生成神經(jīng)網(wǎng)絡(luò)并入學(xué)生神經(jīng)網(wǎng)絡(luò)的訓(xùn)練中,所描述的技術(shù)消除了遍歷大量數(shù)據(jù)的需要。因此,所描述的技術(shù)對于其中訓(xùn)練數(shù)據(jù)量有限的機制、其中可供訓(xùn)練學(xué)生神經(jīng)網(wǎng)絡(luò)的計算資源有限的機制或者在其中類別集包括各自在訓(xùn)練數(shù)據(jù)中具有相對較少的訓(xùn)練輸入的多個長尾類別的長尾數(shù)據(jù)機制中可尤其有效。
12、在下文的附圖和描述中闡述本說明書的主題的一個或多個實施例的細(xì)節(jié)。根據(jù)描述、附圖和權(quán)利要求書,本主題的其他特征、方面和優(yōu)點將變得顯而易見。
1.一種由一個或多個計算機執(zhí)行并且用于訓(xùn)練具有多個學(xué)生參數(shù)的學(xué)生神經(jīng)網(wǎng)絡(luò)以執(zhí)行機器學(xué)習(xí)任務(wù)的方法,所述方法包括:
2.如權(quán)利要求1所述的方法,還包括:
3.如權(quán)利要求1或2中任一項所述的方法,還包括:
4.如權(quán)利要求1至3中任一項所述的方法,其中從所述訓(xùn)練輸入的所述潛在表示生成修改后的潛在表示包括:
5.如權(quán)利要求1至3中任一項所述的方法,其中從所述訓(xùn)練輸入的所述潛在表示生成修改后的潛在表示包括:
6.如權(quán)利要求5所述的方法,其中:
7.如權(quán)利要求5或6中任一項所述的方法,其中計算針對所述更新的修改后的訓(xùn)練輸入的所述學(xué)生輸出與針對所述更新的修改后的訓(xùn)練輸入的所述教師輸出之間的損失的關(guān)于所述當(dāng)前修改后的潛在表示的梯度包括:
8.如任一項前述權(quán)利要求所述的方法,其中所述編碼器神經(jīng)網(wǎng)絡(luò)和所述解碼器神經(jīng)網(wǎng)絡(luò)已在目標(biāo)上進行了聯(lián)合訓(xùn)練,所述目標(biāo)包括鼓勵所接收的輸入的重建與對應(yīng)的所接收的輸入相似的一個或多個項,其中每個重建都是通過使用所述編碼器神經(jīng)網(wǎng)絡(luò)處理所述所接收的輸入以生成所述所接收的輸入的潛在表示并使用所述解碼器神經(jīng)網(wǎng)絡(luò)處理所述所接收的輸入的所述潛在表示以生成所述所接收的輸入的所述重建而生成的。
9.如任一項前述權(quán)利要求所述的方法,還包括:
10.如權(quán)利要求9所述的方法,其中所述邊緣裝置是移動裝置。
11.如權(quán)利要求9所述的方法,其中所述邊緣裝置嵌入機器人或車輛內(nèi)。
12.如任一項前述權(quán)利要求所述的方法,其中所述學(xué)生神經(jīng)網(wǎng)絡(luò)具有比所述教師神經(jīng)網(wǎng)絡(luò)更少的參數(shù)。
13.一種系統(tǒng),包括:
14.一種或多種存儲指令的計算機可讀存儲介質(zhì),所述指令在由一個或多個計算機執(zhí)行時使所述一個或多個計算機執(zhí)行如權(quán)利要求1至12中任一項所述的方法的相應(yīng)操作。