配置有神經(jīng)網(wǎng)絡的客戶端設備、系統(tǒng)和服務器系統(tǒng)的制作方法
【專利說明】配置有神經(jīng)網(wǎng)絡的客戶端設備、系統(tǒng)和服務器系統(tǒng)
[0001]本申請要求于2014年9月22日提交的第62/053,692號美國臨時專利申請和2015年3月19日提交的第14/663,233號美國專利申請的優(yōu)先權,上述專利申請的公開內容通過引用包含于此。
技術領域
[0002]本發(fā)明涉及具有減小的神經(jīng)網(wǎng)絡權重精度的目標識別,更具體地,涉及配置有神經(jīng)網(wǎng)絡的客戶端設備、系統(tǒng)和服務器系統(tǒng)。
【背景技術】
[0003]機器(即,計算機)越來越多地用于提供機器視覺或目標識別。目標識別提供給用戶各種有益的工具。
[0004]在某些情況下,目標識別依賴于包括神經(jīng)網(wǎng)絡的算法。即,設備可以通過使用神經(jīng)網(wǎng)絡來識別目標在輸入圖像之內。通常,神經(jīng)網(wǎng)絡已經(jīng)被訓練為通過訓練圖像的預先使用來識別目標。如果對目標使用更多的訓練圖像,則該目標識別處理會變得更有辨識能力。
[0005]通常,神經(jīng)網(wǎng)絡包括互相連接的“神經(jīng)元”的系統(tǒng)。神經(jīng)網(wǎng)絡計算來自輸入的值,并且由于神經(jīng)網(wǎng)絡的自適應性(adaptive nature)而能夠進行機器學習以及模式識別。
[0006]用于圖像識別的神經(jīng)網(wǎng)絡需要用于學習和用于識別的數(shù)據(jù)處理,該數(shù)據(jù)處理是存儲器加強的和處理密集的,因此在計算上是昂貴的。的確,在計算處理期間,權重的值需要用于存儲和用于處理的存儲空間。
[0007]如可預期的,增大訓練數(shù)據(jù)集的大小提高神經(jīng)網(wǎng)絡的性能。遺憾的是在諸如智能電話等的移動設備中,存儲器和處理能力相對有限。因此,移動設備的越來越普遍的使用通常尚未受益于圖像識別技術。
[0008]需要的是,提供在具有有限資源的計算設備上提高神經(jīng)網(wǎng)絡的性能的方法和設備。
【發(fā)明內容】
[0009]本說明書給出了服務器系統(tǒng)、客戶端設備以及方法的實例,其中,所述服務器系統(tǒng)用于圖像識別訓練,所述圖像識別訓練可以生成用于神經(jīng)網(wǎng)絡的配置信息;所述客戶端設備基于下載的神經(jīng)網(wǎng)絡配置信息,利用神經(jīng)網(wǎng)絡來執(zhí)行圖像識別;所述方法的使用可以幫助克服現(xiàn)有技術的問題和限制。
[0010]在一個實施例中,客戶端設備被配置為具有神經(jīng)網(wǎng)絡。所述客戶端設備包括:處理器、存儲器、用戶接口、通信接口、電源和輸入設備,其中,存儲器包括從服務器系統(tǒng)接收的訓練神經(jīng)網(wǎng)絡,所述服務器系統(tǒng)已經(jīng)訓練并配置了用于客戶端設備的神經(jīng)網(wǎng)絡。
[0011]輸入設備被配置為捕獲圖像并且將圖像輸入數(shù)據(jù)存儲在存儲器中??蛻舳嗽O備還包括被配置為映射圖像輸入數(shù)據(jù)的多層感知器(MLP)分類器。神經(jīng)網(wǎng)絡可以包括卷積神經(jīng)網(wǎng)絡。神經(jīng)網(wǎng)絡被配置為生成特征映射;特征映射包括從輸入圖像得到的多個權重值;神經(jīng)網(wǎng)絡可以被配置為對所述特征映射進行量化操作。量化操作可以包括統(tǒng)一量化、自適應量化、均勻量化和監(jiān)督迭代量化中的一者。量化操作可以執(zhí)行圖像輸入數(shù)據(jù)的反向傳播(BP)。神經(jīng)網(wǎng)絡被配置為執(zhí)行目標識別??蛻舳嗽O備可以包括智能電話、平板電腦和便攜式電子設備。
[0012]在另一個實施例中,提供一種利用客戶端設備提供目標識別的系統(tǒng)。所述系統(tǒng)包括:服務器系統(tǒng),被配置為訓練神經(jīng)網(wǎng)絡以執(zhí)行目標識別,并且將神經(jīng)網(wǎng)絡輸出到客戶端設備。
[0013]系統(tǒng)還可以包括:客戶端設備,包括處理器、存儲器、用戶接口、通信接口、電源和輸入設備;并且存儲器包括從所述服務器系統(tǒng)接收的訓練神經(jīng)網(wǎng)絡。服務器系統(tǒng)包括訓練圖像的數(shù)據(jù)庫。神經(jīng)網(wǎng)絡包括卷積神經(jīng)網(wǎng)絡;卷積神經(jīng)網(wǎng)絡包括至少兩個層;卷積神經(jīng)網(wǎng)絡包括卷積層和子采樣層;服務器系統(tǒng)包括多層感知器(MLP)分類器。服務器系統(tǒng)還被配置為采用用于訓練的學習技術;學習技術可以包括反向傳播(BP)、限制玻爾茲曼機、自動編碼器解碼技術中的一者。
[0014]在另一個實施例中,提供一種服務器系統(tǒng),所述服務器系統(tǒng)包括:輸入設備,被配置為接收訓練圖像;神經(jīng)網(wǎng)絡,包括至少兩個層對,每個層對包括卷積層和子采樣層;多層感知器(MLP)分類器;其中,神經(jīng)網(wǎng)絡被配置為執(zhí)行卷積層中的中間權重的量化,神經(jīng)網(wǎng)絡還被配置為響應于應用到卷積層的輸入而在子采樣層中生成中間特征映射;神經(jīng)網(wǎng)絡被配置為執(zhí)行MLP分類器中的權重的量化,神經(jīng)網(wǎng)絡被配置為響應于被應用到量化的權重MLP的所述特征映射而在MLP分類器中生成分類輸出。
[0015]在另一個實施例中,包括用于訓練被配置為使用客戶端設備進行目標識別的神經(jīng)網(wǎng)絡的方法,所述方法可以包括以下步驟:利用神經(jīng)網(wǎng)絡接收輸入圖像;通過神經(jīng)網(wǎng)絡來執(zhí)行訓練通過,訓練通過包括量化操作;使用來自量化操作的權重值來配置神經(jīng)網(wǎng)絡;配置由客戶端設備使用的神經(jīng)網(wǎng)絡;以及將神經(jīng)網(wǎng)絡存儲在服務器系統(tǒng)中和將神經(jīng)網(wǎng)絡輸出到客戶端設備中的至少一者。
[0016]在又一個實施例中,包括存儲在非臨時機器可讀介質上的計算機程序產(chǎn)品。計算機程序產(chǎn)品可以包括用于通過執(zhí)行如下方法來訓練被配置為使用客戶端設備進行目標識別的神經(jīng)網(wǎng)絡的機器可執(zhí)行指令,其中,所述方法包括以下步驟:利用神經(jīng)網(wǎng)絡接收輸入圖像;通過神經(jīng)網(wǎng)絡執(zhí)行訓練通過,訓練通過包括量化操作;使用來自量化操作的權重值來配置神經(jīng)網(wǎng)絡;對由客戶端設備使用的神經(jīng)網(wǎng)絡進行配置;以及將神經(jīng)網(wǎng)絡存儲在服務器系統(tǒng)中和將神經(jīng)網(wǎng)絡輸出到客戶端設備中的至少一者。
[0017]比現(xiàn)有技術的優(yōu)勢包括:具有可接受的或者甚至未降低的性能為根據(jù)實施例制作的客戶端設備節(jié)約了成本。的確,用于存儲并且還對識別目標進行處理的存儲器需求可以是較低的,這使得區(qū)域需求較低、功耗較低,因此成本較低。
[0018]這些優(yōu)勢對移動設備而言會是重要的。的確,這種設備可以能實時執(zhí)行片上圖像識別,這在諸如情境感知的移動應用中會是有用的。
【附圖說明】
[0019]本發(fā)明的特征和優(yōu)點通過結合附圖進行的以下描述而明顯,其中:
[0020]圖1是根據(jù)實施例的樣本服務器系統(tǒng)和樣本客戶端設備的框圖、根據(jù)實施例的流程圖以及其他相關方面的組合圖。
[0021]圖2是圖1的服務器或客戶端的任一者的神經(jīng)網(wǎng)絡的樣本框圖的組合圖并且還示出了根據(jù)實施例的可能的操作。
[0022]圖3是示出根據(jù)實施例的用于解釋圖2的組件的操作的卷積層和子采樣層的樣本對的圖。
[0023]圖4是示出根據(jù)實施例在圖1的訓練流程圖中的神經(jīng)網(wǎng)絡訓練處理的流程圖。
[0024]圖5是用于服務器系統(tǒng)的神經(jīng)網(wǎng)絡的樣本框圖,其還示出了在何處可以根據(jù)實施例來應用圖4的流程圖的量化操作。
[0025]圖6是可以在一維自適應量化操作中使用的樣本方程表達式。
[0026]圖7是用于示出通過應用圖6的方程表達式得到的自適應量化操作的一維示例的樣本圖。
[0027]圖8是用于示出可以在圖4的流程圖中使用的自適應量化操作的二維示例的樣本圖。
[0028]圖9示出用于執(zhí)行自適應量化操作的實施例的樣本方程表達式。
[0029]圖10是可以在一維均勻量化操作中用于確定的量化值的樣本方程。
[0030]圖11是用于示出通過應用圖10的方程表達式的版本得到的均勻量化操作的一維示例的樣本圖。
[0031]圖12是用于客戶端設備的神經(jīng)網(wǎng)絡的樣本框圖,其還示出了在何處可以根據(jù)實施例來應用量化操作。
[0032]圖13是用于執(zhí)行模擬的針對手寫識別的一組樣本訓練圖像。
[0033]圖14是用于執(zhí)行模擬的樣本卷積神經(jīng)網(wǎng)絡中的樣本數(shù)據(jù)結構的概念圖。
[0034]圖15是示出將實施例的模擬性能與現(xiàn)有技術對比的模擬結果的表。
[0035]圖16是用于將實施例的模擬性能與現(xiàn)有技術對比的條形圖。
[0036]圖17是用于將實施例的模擬性能與現(xiàn)有技術對比的另一個條形圖。
[0037]圖18示出用于將實施例的模擬性能與現(xiàn)有技術對比的多組條形圖。
【具體實施方式】
[0038]這里公開的是提供在具有有限資源的客戶端上高效操作神經(jīng)網(wǎng)絡的方法和設備。通常,該方法和設備提供使用計算密集的學習處理在具有大量計算資源的設備(諸如服務器)上建立卷積神經(jīng)網(wǎng)絡(CNN)。一旦建立,該神經(jīng)網(wǎng)絡可以移植到具有相對有限計算資源的客戶端設備(諸如智能電話)。
[0039]神經(jīng)網(wǎng)絡對各種計算上復雜的任務是有用的。例如,神經(jīng)網(wǎng)絡可以用于目標識別。目標識別可以提供面部識別、環(huán)境監(jiān)視、控制產(chǎn)品和制造、協(xié)助醫(yī)療診斷以及各種其他類似的處理。
[0040]神經(jīng)網(wǎng)絡的類型包括:具有單向邏輯的僅單層或兩層的神經(jīng)網(wǎng)絡、具有復雜的多路輸入的神經(jīng)網(wǎng)絡、具有多方向反饋回路的神經(jīng)網(wǎng)絡以及具有多個層的神經(jīng)網(wǎng)絡。通常,這些系統(tǒng)在它們的編程中使用算法來確定它們的函數(shù)的控制和組織。大部分系統(tǒng)使用“權重”(可以表示為值)來改變吞吐量的參數(shù)以及改變至神經(jīng)元的連接。神經(jīng)網(wǎng)絡可以是自主的,并且從通過使用訓練數(shù)據(jù)的集完成的先前訓練學習。[0041 ] 為了給這里的教導提供一些內容,現(xiàn)在介紹一些方面。
[0042]如這里討論的,術語“服務器”通常指的是具有魯棒性計算資源的計算資源。示例性資源包括用于執(zhí)行這里描述的任務的那些重要的資源,并且可以包括大量的存儲器、處理能力和數(shù)據(jù)存儲等。在示例性實施例中,服務器包括傳統(tǒng)的服務器(諸如刀片式服務器)、大型計算機的主機、個人計算機的網(wǎng)絡、或者僅個人計算機(PC)。
[0043]如這里討論的,術語“客戶端”通常指的是具有計算資源的縮減集的計算資源。示例性資源包括用于執(zhí)行這里描述的任務的那些重要的資源,并且可以包括最小量的存儲器、處理能力和數(shù)據(jù)存儲等。在一些實施例中,客戶端包括成像能力以提供被輸入到神經(jīng)網(wǎng)絡中的輸入圖像的收集。
[0044]如這里討論的,術語“神經(jīng)網(wǎng)絡”通常指具有自適應性的統(tǒng)計學的學習算法,因此在機器學習中是有用的。神經(jīng)網(wǎng)絡可以包括多個人工節(jié)點,