本發(fā)明涉及一種支持通用設(shè)備與神經(jīng)形態(tài)設(shè)備聯(lián)合訓(xùn)練的系統(tǒng)及方法,屬于聯(lián)邦學(xué)習(xí)。
背景技術(shù):
1、隨著移動互聯(lián)網(wǎng)技術(shù)和物聯(lián)網(wǎng)技術(shù)漸趨成熟,邊端數(shù)據(jù)量的爆炸性增長為邊緣人工智能的發(fā)展提供了有力的支持。目前,邊緣設(shè)備普遍具有算力低下的缺陷,在邊緣計算任務(wù)上有較大的局限。區(qū)別于傳統(tǒng)人工神經(jīng)網(wǎng)絡(luò)(ann)和通用計算設(shè)備,基于脈沖神經(jīng)網(wǎng)絡(luò)(snn)和神經(jīng)形態(tài)硬件的軟硬件解決方案在邊緣場景下已經(jīng)取得了顯著的進(jìn)展,更有希望在未來以低功耗,低延遲完成相應(yīng)的邊緣計算任務(wù)。然而,現(xiàn)有的主流邊緣設(shè)備由于搭載成熟的傳統(tǒng)人工神經(jīng)網(wǎng)絡(luò),在精度水平和網(wǎng)絡(luò)架構(gòu)上仍然領(lǐng)先于脈沖神經(jīng)網(wǎng)絡(luò)。這可能導(dǎo)致在未來很長一段時間內(nèi),通用計算設(shè)備和神經(jīng)形態(tài)硬件將同時應(yīng)用于實(shí)際的生產(chǎn)與部署中,而尚未有方法支持這種場景下跨設(shè)備的數(shù)據(jù)共享和模型訓(xùn)練。
2、在未來神經(jīng)形態(tài)硬件普及的過程中,組織大規(guī)模邊緣設(shè)備進(jìn)行聯(lián)合訓(xùn)練將面臨一系列困難,比如:(1)只對同質(zhì)的邊緣設(shè)備進(jìn)行聯(lián)邦學(xué)習(xí)的方案,如只在通用計算設(shè)備之間訓(xùn)練人工神經(jīng)網(wǎng)絡(luò),或只在神經(jīng)形態(tài)硬件之間訓(xùn)練脈沖神經(jīng)網(wǎng)絡(luò),不能使訓(xùn)練充分利用全部的邊端數(shù)據(jù);(2)聯(lián)合邊緣設(shè)備和通用計算設(shè)備進(jìn)行聯(lián)邦學(xué)習(xí),采用人工神經(jīng)網(wǎng)絡(luò)或者脈沖神經(jīng)網(wǎng)絡(luò),勢必?zé)o法發(fā)揮人工神經(jīng)網(wǎng)絡(luò)的高精度優(yōu)勢或者神經(jīng)形態(tài)硬件的低功耗特性,造成成本上的浪費(fèi)或者模型精度上的損失。
3、本發(fā)明面向邊緣計算場景下神經(jīng)形態(tài)硬件和傳統(tǒng)通用計算設(shè)備混雜所帶來的困難,第一次給出了可以支持兩種設(shè)備分別搭載snn與ann進(jìn)行協(xié)同訓(xùn)練的框架。通過ann-snn參數(shù)轉(zhuǎn)換方法,在克服兩種設(shè)備之間異構(gòu)性方面取得了突破,從而能夠以更低成本支持更廣泛的聯(lián)合訓(xùn)練和邊緣數(shù)據(jù)利用。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明為解決現(xiàn)有技術(shù)中不能實(shí)現(xiàn)在通用計算設(shè)備和神經(jīng)形態(tài)硬件同時應(yīng)用于實(shí)際的生產(chǎn)與部署場景下跨設(shè)備的數(shù)據(jù)共享和模型訓(xùn)練的技術(shù)問題,進(jìn)而提出一種支持通用設(shè)備與神經(jīng)形態(tài)設(shè)備聯(lián)合訓(xùn)練的系統(tǒng)及方法。
2、本發(fā)明為解決上述問題采取的技術(shù)方案是:本發(fā)明提出一種支持通用設(shè)備與神經(jīng)形態(tài)設(shè)備聯(lián)合訓(xùn)練的系統(tǒng),包括:
3、搭載ann模型的通用計算設(shè)備,搭載snn模型的神經(jīng)形態(tài)硬件設(shè)備、中央服務(wù)器;
4、搭載ann模型的通用計算設(shè)備、搭載snn模型的神經(jīng)形態(tài)硬件設(shè)備和ann-snn轉(zhuǎn)換模塊均與中央服務(wù)器無線通信連接。
5、可選的,中央服務(wù)器包括參數(shù)轉(zhuǎn)換子模塊和全局模型分配子模塊;
6、全局模型分配子模塊用于給搭載ann模型的通用計算設(shè)備和搭載snn模型的神經(jīng)形態(tài)硬件設(shè)備分配對應(yīng)的全局模型;
7、參數(shù)轉(zhuǎn)換子模塊用于對聯(lián)邦學(xué)習(xí)中央服務(wù)器上的ann或snn模型進(jìn)行相互轉(zhuǎn)換。
8、一種支持通用設(shè)備與神經(jīng)形態(tài)設(shè)備聯(lián)合訓(xùn)練的方法,包括:
9、步驟1:中央服務(wù)器獲取ann(人工神經(jīng)網(wǎng)絡(luò))初始模型結(jié)構(gòu),并初始化參數(shù);
10、步驟2:中央服務(wù)器將當(dāng)前全局ann模型分發(fā)給搭載ann模型的通用計算設(shè)備,再通過參數(shù)轉(zhuǎn)換模塊將當(dāng)前全局ann模型轉(zhuǎn)換為snn(脈沖神經(jīng)網(wǎng)絡(luò))模型,并將其分配給搭載snn模型的神經(jīng)形態(tài)硬件設(shè)備;
11、步驟3:搭載ann模型的通用計算設(shè)備與搭載snn模型的神經(jīng)形態(tài)硬件設(shè)備分別基于中央服務(wù)器分發(fā)的全局模型,使用各自本地數(shù)據(jù)集訓(xùn)練以獲取對應(yīng)的本地ann或snn模型參數(shù),訓(xùn)練結(jié)束后,向中央服務(wù)器上傳本地模型參數(shù);
12、步驟4:中央服務(wù)器將所接收的ann與snn網(wǎng)絡(luò)分別聚合,得到臨時全局ann模型參數(shù)和臨時全局snn模型參數(shù),再通過參數(shù)轉(zhuǎn)換模塊,將臨時全局snn模型轉(zhuǎn)換為ann模型,并與臨時全局ann模型聚合,得到本輪的全局ann模型參數(shù);
13、步驟5:重復(fù)步驟2-4,直至所有全局通信輪次結(jié)束,獲取ann全局模型。
14、進(jìn)一步的,步驟2中參數(shù)轉(zhuǎn)換模塊將當(dāng)前全局ann模型轉(zhuǎn)換為snn模型的步驟包括:將ann網(wǎng)絡(luò)中的激活層,轉(zhuǎn)換為脈沖神經(jīng)元,如integrate-and-fire或leaky?integrate-and-fire模型,并通過縮放因子將ann的權(quán)重以及偏置映射到snn中以及根據(jù)設(shè)備情況,設(shè)定時間步的數(shù)量。
15、進(jìn)一步的,步驟3所述更新本地ann模型與更新本地snn模型的步驟包括:搭載ann模型的通用計算設(shè)備通過基于梯度的優(yōu)化方法,結(jié)合從中央服務(wù)器獲取的ann全局模型參數(shù),對ann本地模型進(jìn)行訓(xùn)練,得到ann本地模型參數(shù);搭載snn模型的神經(jīng)形態(tài)硬件設(shè)備通過代理梯度的方法,結(jié)合從中央服務(wù)器獲取的snn全局模型參數(shù),對snn本地模型進(jìn)行訓(xùn)練,得到snn本地模型參數(shù);
16、進(jìn)一步的,步驟4所述得到臨時全局ann模型參數(shù)和臨時全局snn模型參數(shù)的步驟包括:中央服務(wù)器對接收到的本地ann模型與snn模型參數(shù)通過加權(quán)平均方法獲得臨時全局ann模型與臨時全局snn模型;
17、進(jìn)一步的,步驟4所述參數(shù)轉(zhuǎn)換模塊將臨時全局snn模型準(zhǔn)換為的步驟包括:將snn模型中的脈沖神經(jīng)元,轉(zhuǎn)換為ann模型中的激活函數(shù),根據(jù)臨時全局snn模型的時間步以及縮放因子將臨時全局snn的權(quán)重以及偏置映射到ann模型中,得到轉(zhuǎn)換后的ann模型。
18、本發(fā)明的有益效果是:
19、1.本發(fā)明提供的支持ann-snn異構(gòu)訓(xùn)練的聯(lián)邦學(xué)習(xí)方法,通過ann-snn轉(zhuǎn)換方法,首次克服了兩種設(shè)備之間的異構(gòu)性,能同時利用通用計算設(shè)備和神經(jīng)形態(tài)硬件,且第一次支持將snn和ann兩類不同的模型加入到聯(lián)邦學(xué)習(xí)過程中。這使得框架能夠充分利用兩類客戶端獲取的邊緣數(shù)據(jù)以支持訓(xùn)練,克服了設(shè)備異構(gòu)導(dǎo)致數(shù)據(jù)利用率較低的問題。
20、2.本發(fā)明在克服設(shè)備異構(gòu)問題,擴(kuò)大訓(xùn)練數(shù)據(jù)量的同時,還使得最終部署的snn模型在神經(jīng)形態(tài)硬件上能有相對傳統(tǒng)snn聯(lián)邦學(xué)習(xí)更高的精度水平,克服了snn在精度水平方面的短板。
21、3.本發(fā)明還因?yàn)椴捎昧松窠?jīng)形態(tài)硬件,在使用相同數(shù)量的客戶端進(jìn)行訓(xùn)練的情形下,相比傳統(tǒng)的ann聯(lián)邦學(xué)習(xí)框架有著更低的功耗水平和更廣泛的適用性,比純粹的ann方案更適用于邊緣人工智能場景。
22、4.本發(fā)明還使得訓(xùn)練開始之前,客戶端處能夠根據(jù)自身的環(huán)境條件選用設(shè)備,有選擇地搭載ann或snn參與訓(xùn)練,以權(quán)衡最終所部屬模型的高精度和低功耗,具有更高的靈活性。
1.一種支持通用設(shè)備與神經(jīng)形態(tài)設(shè)備聯(lián)合訓(xùn)練的系統(tǒng),其特征在于,所述、一種支持通用設(shè)備與神經(jīng)形態(tài)設(shè)備聯(lián)合訓(xùn)練的系統(tǒng)結(jié)構(gòu)包括:
2.根據(jù)權(quán)利要求1所述的一種支持通用設(shè)備與神經(jīng)形態(tài)設(shè)備聯(lián)合訓(xùn)練的系統(tǒng),其特征在于,所述中央服務(wù)器包括參數(shù)轉(zhuǎn)換子模塊和全局模型分配子模塊;
3.一種支持通用設(shè)備與神經(jīng)形態(tài)設(shè)備聯(lián)合訓(xùn)練的方法,應(yīng)用于權(quán)利要求1-2任意一項(xiàng)所述的一種支持通用設(shè)備與神經(jīng)形態(tài)設(shè)備聯(lián)合訓(xùn)練的系統(tǒng),其特征在于,所述一種支持通用設(shè)備與神經(jīng)形態(tài)設(shè)備聯(lián)合訓(xùn)練的方法的步驟包括:
4.根據(jù)權(quán)利要求3所述的一種支持通用設(shè)備與神經(jīng)形態(tài)設(shè)備聯(lián)合訓(xùn)練的方法,其特征在于,步驟2將當(dāng)前全局ann模型轉(zhuǎn)換為snn模型具體包括:
5.根據(jù)權(quán)利要求3所述的一種支持通用設(shè)備與神經(jīng)形態(tài)設(shè)備聯(lián)合訓(xùn)練的方法,其特征在于,步驟3所述更新本地ann模型與更新本地snn模型具體包括:
6.根據(jù)權(quán)利要求3所述的一種支持通用設(shè)備與神經(jīng)形態(tài)設(shè)備聯(lián)合訓(xùn)練的方法,其特征在于,步驟4所述得到臨時全局ann模型參數(shù)和臨時全局snn模型參數(shù)具體包括:
7.根據(jù)權(quán)利要求3所述的一種支持通用設(shè)備與神經(jīng)形態(tài)設(shè)備聯(lián)合訓(xùn)練的方法,其特征在于,步驟4所述參數(shù)轉(zhuǎn)換模塊將臨時全局snn模型準(zhǔn)換為ann模型具體包括: