本發(fā)明實施例涉及人工神經(jīng)網(wǎng)絡技術領域,尤其涉及一種神經(jīng)網(wǎng)絡的優(yōu)化方法及裝置。
背景技術:
目前,通?;谟柧毢玫纳窠?jīng)網(wǎng)絡模型(如深度卷積神經(jīng)網(wǎng)絡模型)進行人臉識別。在使用神經(jīng)網(wǎng)絡模型進行人臉識別時,存在的問題如下:1、對圖像數(shù)據(jù)處理計算的復雜度較高,影響運算時間(如,在配置有酷睿i7處理器的電子設備上處理人臉圖像時往往要耗費1秒以上的時間);2、在處理過程中需要占用較大的內存空間或顯卡顯存空間;3、還需要占用較大存儲空間來存放整個神經(jīng)網(wǎng)絡模型。
現(xiàn)有的神經(jīng)網(wǎng)絡模型的優(yōu)化方法,并不能完全解決上述存在的問題,如,采用霍夫曼編碼的形式進行的優(yōu)化,能夠保證優(yōu)化后神經(jīng)網(wǎng)絡模型的處理計算精度,并有效的降低深度神經(jīng)網(wǎng)絡模型的存儲空間,但不能降低處理運算的復雜度,縮短運行時間,同時也不能降低處理過程中對內存或顯存的空間占用。
技術實現(xiàn)要素:
本發(fā)明實施例提供了一種神經(jīng)網(wǎng)絡的優(yōu)化方法及裝置,能夠實現(xiàn)神經(jīng)網(wǎng)絡的優(yōu)化,達到縮短運行時間、降低裝置資源空間占用的目的。
一方面,本發(fā)明實施例提供了一種神經(jīng)網(wǎng)絡的優(yōu)化方法,包括:
獲取符合設定精度條件的初始神經(jīng)網(wǎng)絡,確定所述初始神經(jīng)網(wǎng)絡中相鄰兩層單元節(jié)點間的權重參數(shù)矩陣;
根據(jù)設定的刪除閾值處理所述權重參數(shù)矩陣,確定所述初始神經(jīng)網(wǎng)絡中待刪除的單元節(jié)點;
刪除所述單元節(jié)點形成優(yōu)化后的目標神經(jīng)網(wǎng)絡。
另一方面,本發(fā)明實施例提供了一種神經(jīng)網(wǎng)絡的優(yōu)化裝置,包括:
參數(shù)矩陣確定模塊,用于獲取符合設定精度條件的初始神經(jīng)網(wǎng)絡,確定所述初始神經(jīng)網(wǎng)絡中相鄰兩層單元節(jié)點間的權重參數(shù)矩陣;
待刪除節(jié)點確定模塊,用于根據(jù)設定的刪除閾值處理所述權重參數(shù)矩陣,確定所述初始神經(jīng)網(wǎng)絡中待刪除的單元節(jié)點;
目標網(wǎng)絡確定模塊,用于刪除所述單元節(jié)點形成優(yōu)化后的目標神經(jīng)網(wǎng)絡。
本發(fā)明實施例中提供了一種神經(jīng)網(wǎng)絡的優(yōu)化方法及裝置,該方法首先獲取符合設定精度條件的初始神經(jīng)網(wǎng)絡,并確定初始神經(jīng)網(wǎng)絡中相鄰兩層節(jié)點間的權重參數(shù)矩陣;之后根據(jù)設定的刪除閾值處于所確定的權重參數(shù)矩陣,由此確定初始神經(jīng)網(wǎng)絡中待刪除的單元節(jié)點;最終在初始神經(jīng)網(wǎng)絡中刪除所確定的單元節(jié)點形成優(yōu)化后的目標神經(jīng)網(wǎng)絡。利用該方法,能夠簡單高效的對神經(jīng)網(wǎng)絡進行壓縮,實現(xiàn)神經(jīng)網(wǎng)絡的優(yōu)化,由此在基于優(yōu)化的后神經(jīng)網(wǎng)絡進行人臉識別時,能夠達到加快識別處理速度,縮短識別處理時間,降低存儲、運行內存以及顯存等空間占用的目的。
附圖說明
圖1為本發(fā)明實施例一提供的一種神經(jīng)網(wǎng)絡的優(yōu)化方法的流程示意圖;
圖2a為本發(fā)明實施例二提供的一種神經(jīng)網(wǎng)絡的優(yōu)化方法的流程示意圖;
圖2b為本發(fā)明實施例二提供的一個訓練后的初始神經(jīng)網(wǎng)絡的結構圖;
圖2c為本發(fā)明實施例二中對初始神經(jīng)網(wǎng)絡優(yōu)化后所形成目標神經(jīng)網(wǎng)絡的結構圖;
圖3a為本發(fā)明實施例三提供的一種神經(jīng)網(wǎng)絡的優(yōu)化方法的流程示意圖;
圖3b為本發(fā)明實施例三中對原目標神經(jīng)網(wǎng)絡深度優(yōu)化形成的目標神經(jīng)網(wǎng)絡的結構圖;
圖4為本發(fā)明實施例四提供的一種神經(jīng)網(wǎng)絡的優(yōu)化裝置的結構框圖。
具體實施方式
下面結合附圖和實施例對本發(fā)明作進一步的詳細說明??梢岳斫獾氖?,此處所描述的具體實施例僅僅用于解釋本發(fā)明,而非對本發(fā)明的限定。另外還需要說明的是,為了便于描述,附圖中僅示出了與本發(fā)明相關的部分而非全部結構。
實施例一
圖1為本發(fā)明實施例一提供的一種神經(jīng)網(wǎng)絡的優(yōu)化方法的流程示意圖,該方法適用于對訓練學習后的神經(jīng)網(wǎng)絡進行壓縮優(yōu)化的情況,該方法可以由神經(jīng)網(wǎng)絡的優(yōu)化裝置執(zhí)行,其中該裝置可由軟件和/或硬件實現(xiàn),并一般集成在神經(jīng)網(wǎng)絡模型所在的終端設備或服務器平臺上。
一般地,神經(jīng)網(wǎng)絡主要指人工神經(jīng)網(wǎng)絡,具體可看作一種模仿動物神經(jīng)網(wǎng)絡行為特征,進行分布式并行信息處理的算法數(shù)學模型。神經(jīng)網(wǎng)絡中所具有的單元節(jié)點至少分為三層,包括了輸入層、隱藏層以及輸出層,其中,輸入層以及輸出層均只包含一層單元節(jié)點,而隱藏層則至少包含一層單元節(jié)點,此外,各層所包含單元節(jié)點的個數(shù)都可根據(jù)不同應用情況設定。具體而言,神經(jīng)網(wǎng)絡的輸入層負責接收輸入的數(shù)據(jù)并分發(fā)到隱藏層,隱藏層負責對所接收的數(shù)據(jù)進行計算并將計算結果傳遞給輸出層,輸出層負責計算結果的輸出,可以理解的是,神經(jīng)網(wǎng)絡中數(shù)據(jù)的傳遞及處理主要基于相鄰兩層單元節(jié)點間的連線及連線對應的權重參數(shù)值實現(xiàn)。
目前,可以基于神經(jīng)網(wǎng)絡進行模式識別(如人臉識別)處理,而在進行模式識別前需要對所創(chuàng)建的神經(jīng)網(wǎng)絡進行訓練學習,只有確定神經(jīng)網(wǎng)絡所具有的處理精度滿足應用需求時,才可以進行模式識別。需要說明的是,在實際的模式識別處理中,所采用的訓練好的神經(jīng)網(wǎng)絡所具有規(guī)模一般都很大,由此不僅影響識別處理的運行時間,還占用了更多的存儲空間、運行內存以及顯存空間,因此可以基于本實施例提供的神經(jīng)網(wǎng)絡的優(yōu)化方法對訓練好的神經(jīng)網(wǎng)絡進行優(yōu)化,來解決上述問題。
如圖1所示,本發(fā)明實施例一提供的一種神經(jīng)網(wǎng)絡的優(yōu)化方法,包括如下操作:
S101、獲取符合設定精度條件的初始神經(jīng)網(wǎng)絡,確定初始神經(jīng)網(wǎng)絡中相鄰兩層單元節(jié)點間的權重參數(shù)矩陣。
在本實施例中,設定精度條件具體可理解為對神經(jīng)網(wǎng)絡進行訓練學習后,實際進行應用處理時,神經(jīng)網(wǎng)絡需要達到的處理精度范圍。一般地,該設定精度條件可以是系統(tǒng)默認的范圍,也可以是人為設置的范圍。在本實施例中,被訓練學習的神經(jīng)網(wǎng)絡可以通過對標準測試集中所包含樣本數(shù)據(jù)的處理來確定當前能夠達到的處理精度,并在當前確定的處理精度符合設定精度條件時,認為神經(jīng)網(wǎng)絡可以進行實際應用處理,同時可將該神經(jīng)網(wǎng)絡稱為初始神經(jīng)網(wǎng)絡。
一般地,對神經(jīng)網(wǎng)絡的訓練學習主要通過設定的訓練學習算法實現(xiàn),由于訓練學習算法已經(jīng)是成熟的技術,這里不再詳述??梢岳斫獾氖?,神經(jīng)網(wǎng)絡的訓練學習過程,實際就是神經(jīng)網(wǎng)絡中相鄰兩層單元節(jié)點連線對應的權重參數(shù)值不斷變更并最終確定的過程。在本實施例中,在獲取初始神經(jīng)網(wǎng)絡后,可以根據(jù)相鄰兩層單元節(jié)點連線對應的權重參數(shù)值來確定相鄰兩層單元節(jié)點間的權重參數(shù)矩陣。
在本實施例中,對于相鄰兩層的單元節(jié)點而言,如果其中一層的任一單元節(jié)點到另一層的任一單元節(jié)點間只存在一條連線,則可認為兩單元節(jié)點間只存在一個權重參數(shù)值,此時相鄰兩層單元節(jié)點間可以確定一個二維權重參數(shù)矩陣;如果其中一層的任一單元節(jié)點到另一層的任一單元節(jié)點間至少存在兩條連線,或兩單元節(jié)點間的連線關系需要用函數(shù)表示,則可認為兩單元節(jié)點間對應存在一個權重參數(shù)數(shù)組(可能是一維數(shù)組或二維數(shù)組),此時相鄰兩層單元節(jié)點間可以確定一個多維權重參數(shù)矩陣。
S102、根據(jù)設定的刪除閾值處理權重參數(shù)矩陣,確定初始神經(jīng)網(wǎng)絡中待刪除的單元節(jié)點。
在本實施例中,可以采用刪除初始神經(jīng)網(wǎng)絡中單元節(jié)點的方式來實現(xiàn)初始神經(jīng)網(wǎng)絡的優(yōu)化,由此需要確定初始神經(jīng)網(wǎng)絡中待刪除的單元節(jié)點。具體地,首先獲取設定的刪除閾值,然后確定權重參數(shù)矩陣中各元素值的絕對值與刪除閾值的大小關系;最終可根據(jù)元素值的絕對值與刪除閾值的大小關系來確定初始神經(jīng)網(wǎng)絡中待刪除的單元節(jié)點。
在本實施例中,可以基于權重參數(shù)矩陣中元素值的基本分布規(guī)律來設定刪除閾值,且所設定的刪除閾值為大于0的實數(shù)。示例性地,經(jīng)實際分析發(fā)現(xiàn),權重參數(shù)矩陣中的元素值基本分布在數(shù)值0的左右兩側,并且值域范圍一般為(-0.05,0.05),此時可優(yōu)選的將刪除閾值設置為0.001。需要說明的是,本實施例只需在首次進行神經(jīng)網(wǎng)絡優(yōu)化時進行刪除閾值的設定,當循環(huán)進行神經(jīng)網(wǎng)絡優(yōu)化時,可保持設定的刪除閾值不變或基于其他規(guī)則自動變更刪除閾值的值;此外,對于不同維度的權重參數(shù)矩陣而言,其刪除閾值的設定存在不同,由此刪除閾值還需基于具體情況進行具體設定。
S103、刪除所述單元節(jié)點形成優(yōu)化后的目標神經(jīng)網(wǎng)絡。
在本實施例中,確定待刪除的單元節(jié)點后,可以在初始神經(jīng)網(wǎng)絡中刪除該單元節(jié)點,此外,在刪除該單元節(jié)點的同時,與該單元節(jié)點存在的關系或連線也一并刪除,最終形成優(yōu)化后的神經(jīng)網(wǎng)絡,稱為目標神經(jīng)網(wǎng)絡。
本發(fā)明實施例一提供的一種神經(jīng)網(wǎng)絡的優(yōu)化方法,首先獲取符合設定精度條件的初始神經(jīng)網(wǎng)絡,并確定初始神經(jīng)網(wǎng)絡中相鄰兩層節(jié)點間的權重參數(shù)矩陣;之后根據(jù)設定的刪除閾值處于所確定的權重參數(shù)矩陣,由此確定初始神經(jīng)網(wǎng)絡中待刪除的單元節(jié)點;最終在初始神經(jīng)網(wǎng)絡中刪除所確定的單元節(jié)點形成優(yōu)化后的目標神經(jīng)網(wǎng)絡。利用該方法,能夠簡單高效的對神經(jīng)網(wǎng)絡進行壓縮,實現(xiàn)神經(jīng)網(wǎng)絡的優(yōu)化,由此在基于優(yōu)化的后神經(jīng)網(wǎng)絡進行人臉識別時,能夠達到加快識別處理速度,縮短識別處理時間,降低存儲、運行內存以及顯存等空間占用的目的。
實施例二
圖2為本發(fā)明實施例二提供的一種神經(jīng)網(wǎng)絡的優(yōu)化方法的流程示意圖。本發(fā)明實施例以上述實施例為基礎進行優(yōu)化,在本實施例中,將確定所述初始神經(jīng)網(wǎng)絡中相鄰兩層單元節(jié)點間的權重參數(shù)矩陣,進一步優(yōu)化為:如果所述初始神經(jīng)網(wǎng)絡中相鄰兩層單元節(jié)點間的連接為全連接,則基于單元節(jié)點間連線對應的權重參數(shù)值形成二維權重參數(shù)矩陣;如果所述初始神經(jīng)網(wǎng)絡中相鄰兩層單元節(jié)點間的連接為卷積連接,則基于單元節(jié)點間連線對應的權重參數(shù)數(shù)組形成多維權重參數(shù)矩陣。
進一步地,將根據(jù)設定的刪除閾值處理所述權重參數(shù)矩陣,確定所述初始神經(jīng)網(wǎng)絡中待刪除的單元節(jié)點,具體優(yōu)化為:如果所述權重參數(shù)矩陣為二維權重參數(shù)矩陣,則基于所述二維權重參數(shù)矩陣中的列向量確定所述初始神經(jīng)網(wǎng)絡中待刪除的單元節(jié)點;如果所述權重參數(shù)矩陣為多維權重參數(shù)矩陣,則基于降維后的多維權重參數(shù)矩陣確定所述初始神經(jīng)網(wǎng)絡中待刪除的單元節(jié)點。
如圖2a所示,本發(fā)明實施例二提供的一種神經(jīng)網(wǎng)絡的優(yōu)化方法,具體包括如下操作:
S201、獲取符合設定精度條件的初始神經(jīng)網(wǎng)絡。
示例性地,在對所創(chuàng)建的神經(jīng)網(wǎng)絡進行訓練學習后,如果神經(jīng)網(wǎng)絡的當前處理精度符合設定精度條件,則可將該神經(jīng)網(wǎng)絡確定為待獲取的初始神經(jīng)網(wǎng)絡。
S202、如果初始神經(jīng)網(wǎng)絡中相鄰兩層單元節(jié)點間的連接為全連接,則基于單元節(jié)點間連線對應的權重參數(shù)值形成二維權重參數(shù)矩陣,之后執(zhí)行步驟S204。
在本實施例中,當相鄰兩層單元節(jié)點間的連接僅為單線連接時,可將該相鄰兩層單元節(jié)點間的連接稱為全連接,此時,其中一層的任一單元節(jié)點到另一層的任一單元節(jié)點間只存在一個權重參數(shù)值,由此可以根據(jù)相鄰兩層單元節(jié)點間連線對應的權重參數(shù)值來構建二維權重參數(shù)矩陣。
示例性地,圖2b為本發(fā)明實施例二提供的一個訓練后的初始神經(jīng)網(wǎng)絡的結構圖,如圖2b所示,該初始神經(jīng)網(wǎng)絡共有4層單元節(jié)點,其中,第1層作為輸入層,第2層和第3層作為隱藏層,第4層作為輸出層,同時可以確定該初始神經(jīng)網(wǎng)絡中相鄰兩層單元節(jié)點間的連接為全連接。以第1層和第2層單元節(jié)點間的連接為例,首先將第1層中第m個單元節(jié)點與第2層中第n個單元節(jié)點的連線對應的權重參數(shù)值用wmn表示,其中,1≤m≤5,1≤n≤4;則第1層和第2層中單元節(jié)點間可以形成一個5×4階的二維權重參數(shù)矩陣,該二維權重參數(shù)矩陣W5×4可以表示為:
S203、如果初始神經(jīng)網(wǎng)絡中相鄰兩層單元節(jié)點間的連接為卷積連接,則基于單元節(jié)點間連線對應的權重參數(shù)數(shù)組形成多維權重參數(shù)矩陣,之后執(zhí)行步驟S205。
在本實施例中,當相鄰兩層單元節(jié)點間的連接為多線連接(至少存在兩條連線)或用函數(shù)表示連接關系時,可將該相鄰兩層單元節(jié)點間的連接稱為卷積連接。此時,其中一層的任一單元節(jié)點到另一層的任一單元節(jié)點間可能存在一個權重參數(shù)數(shù)組(一般為一維數(shù)組或二維數(shù)組),由此可以根據(jù)相鄰兩層單元節(jié)點間連線對應的權重參數(shù)數(shù)組來構建多維權重參數(shù)矩陣,其中,當權重參數(shù)數(shù)組為一維數(shù)組時,可以形成一個三維權重參數(shù)矩陣,當權重參數(shù)數(shù)組為二維數(shù)組時,可以形成一個四維權重參數(shù)矩陣。
S204、基于二維權重參數(shù)矩陣中的列向量確定初始神經(jīng)網(wǎng)絡中待刪除的單元節(jié)點。
具體地,基于所述二維權重參數(shù)矩陣中的列向量確定所述初始神經(jīng)網(wǎng)絡中待刪除的單元節(jié)點包括:獲取所述二維權重參數(shù)矩陣中第i列的列向量;如果所述第i列的列向量中包括的權重參數(shù)值均小于設定的第一刪除閾值,則將相鄰兩層中第二層的第i個單元節(jié)點確定為所述初始神經(jīng)網(wǎng)絡中待刪除的單元節(jié)點。
在本實施例中,對于全連接的相鄰兩層單元節(jié)點而言,假設所形成的二維權重參數(shù)矩陣為g×h階,則可確定該二維權重參數(shù)矩陣共有h列的列向量,且可確定該二維權重參數(shù)矩陣中的第i列中的權重參數(shù)值均與該相鄰兩層中第二層的第i個單元節(jié)點相關。具體地,待刪除的單元節(jié)點的確定過程可表述為:獲取所設定的第一刪除閾值,在該二維權重參數(shù)矩陣中選取第i列的列向量,并確定第i列列向量中所包含的g個權重參數(shù)值是否均小于第一設定閾值,如果全部小于第一設定閾值,則可以將相鄰兩層中第二層的第i個單元節(jié)點確定為所述初始神經(jīng)網(wǎng)絡中待刪除的單元節(jié)點。
在本實施例中,假設g×h階的二維權重參數(shù)矩陣中的權重參數(shù)值表示為wai,所獲取的第一刪除閾值為t1,其中,1≤a≤g,1≤i≤h,則判定第i列列向量中所包含的g個權重參數(shù)值是否均小于第一設定閾值t1的過程可以具體描述為:如果第i列列向量中的權重參數(shù)值wai小于第一刪除閾值t1,則確定函數(shù)f(wai)=0,否則,確定函數(shù)f(wai)=1,之后判定的值是否等于0,如果等于0,則可認為第i列列向量中所包含的g個權重參數(shù)值均小于第一設定閾值t1。需要說明的是,在首次設定第一刪除閾值時,該第一刪除閾值可以優(yōu)選的基于二維權重參數(shù)矩陣中權重參數(shù)值的基本分布規(guī)律設定。
S205、基于降維后的多維權重參數(shù)矩陣確定初始神經(jīng)網(wǎng)絡中待刪除的單元節(jié)點。
在本實施例中,對于卷積連接的相鄰兩層單元節(jié)點而言,則可以形成一個多維權重參數(shù)矩陣,此時需要對該多維權重參數(shù)矩陣進行降維處理,且在降維處理后形成一個二維的目標權重參數(shù)矩陣,之后可以根據(jù)該目標權重參數(shù)矩陣來確定待刪除的單元節(jié)點。
進一步地,基于降維后的多維權重參數(shù)矩陣確定所述初始神經(jīng)網(wǎng)絡中待刪除的單元節(jié)點包括:對所述多維權重參數(shù)矩陣進行降維處理,形成二維的目標權重參數(shù)矩陣;獲取所述目標權重參數(shù)矩陣中第j列的列向量;如果所述第j列的列向量中包括的元素值均小于設定的第二刪除閾值,則將相鄰兩層中第二層的第j個單元節(jié)點確定為所述初始神經(jīng)網(wǎng)絡中待刪除的單元節(jié)點。
在本實施例中,對多維權重參數(shù)矩陣進行降維處理,形成二維的目標權重參數(shù)矩陣的過程可描述為:確定多維權重參數(shù)矩陣的維度以及矩陣中的元素值,如果多維權重參數(shù)矩陣為三維權重參數(shù)矩陣,則該矩陣中每個元素值通常為一維數(shù)組,此時可直接對一維數(shù)組中的數(shù)據(jù)進行求和計算,最終可以將計算所得的數(shù)據(jù)和或數(shù)據(jù)和的平均值作為降維后目標權重參數(shù)矩陣對應的元素值;如果多維權重參數(shù)矩陣為四維權重參數(shù)矩陣,則該矩陣中每個元素值通常為二維數(shù)組,此時先對二維數(shù)組中各列的列數(shù)據(jù)進行求和計算,得到相應的列數(shù)據(jù)和,然后再對列數(shù)據(jù)和進行求和計算,最終可以將計算所得的數(shù)據(jù)和或數(shù)據(jù)和的平均值作為降維后目標權重參數(shù)矩陣對應的元素值。
在本實施例中,對多維權重參數(shù)矩陣進行降維處理獲得目標權重參數(shù)矩陣后,可以在所形成目標權重參數(shù)矩陣中進行待刪除的單元節(jié)點的確定,由于后續(xù)確定待刪除的單元節(jié)點的操作過程與基于步驟S204進行單元節(jié)點確定的操作過程相同,這里不再贅述。需要說明的是,在首次設定第二刪除閾值時,該第二刪除閾值可以優(yōu)選的基于目標權重參數(shù)矩陣中元素值的基本分布規(guī)律設定。
S206、刪除神經(jīng)網(wǎng)絡中確定的單元節(jié)點,形成優(yōu)化后的目標神經(jīng)網(wǎng)絡。
在本實施例中,基于上述步驟S201至步驟S205的操作,可以確定出初始神經(jīng)網(wǎng)絡中所有待刪除的單元節(jié)點,由此可以在初始神經(jīng)網(wǎng)絡中刪除所有確定出的單元節(jié)點,并同時刪除與該單元節(jié)點存在關系的連線。
示例性地,圖2c為本發(fā)明實施例二中對初始神經(jīng)網(wǎng)絡優(yōu)化后所形成目標神經(jīng)網(wǎng)絡的結構圖。接上述步驟S202中的示例,如圖2c所示,與圖2b中的初始神經(jīng)網(wǎng)絡相比,在第2層中減少了一個單元節(jié)點,由此可知,基于本發(fā)明實施例二提供的神經(jīng)網(wǎng)絡的優(yōu)化方法,實現(xiàn)了對圖2b中初始神經(jīng)網(wǎng)絡第2層的第2個單元節(jié)點進行刪除的優(yōu)化。
本發(fā)明實施例二提供的一種神經(jīng)網(wǎng)絡的優(yōu)化方法,具體描述了神經(jīng)網(wǎng)絡中相鄰兩層單元節(jié)點間具有不同連接方式時所對應權重參數(shù)矩陣的確定過程;還具體描述了不同權重參數(shù)矩陣下對待刪除的單元節(jié)點的確定過程。利用該方法,能夠對具有不同單元節(jié)點連接方式的神經(jīng)網(wǎng)絡進行壓縮優(yōu)化,由此在基于優(yōu)化的后神經(jīng)網(wǎng)絡進行人臉識別時,能夠達到加快識別處理速度,縮短識別處理時間,降低存儲、運行內存以及顯存等空間占用的目的。
實施例三
圖3a為本發(fā)明實施例三提供的一種神經(jīng)網(wǎng)絡的優(yōu)化方法的流程示意圖。本發(fā)明實施例以上述實施例為基礎進行優(yōu)化,在本實施例中,還優(yōu)化增加了:確定所述目標神經(jīng)網(wǎng)絡的當前處理精度是否符合所述設定精度條件,基于確定結果對所述目標神經(jīng)網(wǎng)絡進行訓練學習或深度優(yōu)化。
在上述優(yōu)化的基礎上,將基于確定結果對所述目標神經(jīng)網(wǎng)絡進行訓練學習或深度優(yōu)化,進一步優(yōu)化為:如果所述當前處理精度不符合所述設定精度條件,則對所述目標神經(jīng)網(wǎng)絡進行訓練學習直至符合所述設定精度條件或達到設定訓練次數(shù);否則,對所述刪除閾值進行自增加操作,并將所述目標神經(jīng)網(wǎng)絡作為新的初始神經(jīng)網(wǎng)絡,重新執(zhí)行神經(jīng)網(wǎng)絡的優(yōu)化操作,其中,所述刪除閾值為第一刪除閾值或第二刪除閾值。
在上述優(yōu)化的基礎上,還優(yōu)化包括了另一種情況的操作,即,如果訓練學習后的目標神經(jīng)網(wǎng)絡符合所述設定精度條件且訓練次數(shù)不大于所述設定訓練次數(shù),則對所述刪除閾值進行自增加操作,并將所述目標神經(jīng)網(wǎng)絡作為新的初始神經(jīng)網(wǎng)絡,重新執(zhí)行神經(jīng)網(wǎng)絡的優(yōu)化操作。
如圖3所示,本發(fā)明實施例三提供的一種神經(jīng)網(wǎng)絡的優(yōu)化方法,具體包括如下操作:
S301、獲取符合設定精度條件的初始神經(jīng)網(wǎng)絡,確定所述初始神經(jīng)網(wǎng)絡中相鄰兩層單元節(jié)點間的權重參數(shù)矩陣。
在本實施例中,可以認為所獲取的初始神經(jīng)網(wǎng)絡具體用來進行人臉識別,則設定精度條件就可認為是人臉識別時神經(jīng)網(wǎng)絡所要求達到的處理精度。
S302、根據(jù)設定的刪除閾值處理所述權重參數(shù)矩陣,確定所述初始神經(jīng)網(wǎng)絡中待刪除的單元節(jié)點。
S303、刪除所述單元節(jié)點形成優(yōu)化后的目標神經(jīng)網(wǎng)絡。
S304、確定目標神經(jīng)網(wǎng)絡的當前處理精度是否符合設定精度條件,若否,則執(zhí)行步驟S305;若是,則執(zhí)行步驟S307。
在本實施例中,還可以認為優(yōu)化后的目標神經(jīng)網(wǎng)絡也具體用于進行人臉識別,因此,也需要測試目標神經(jīng)網(wǎng)絡的當前處理精度是否符合設定精度條件。
具體地,對目標神經(jīng)網(wǎng)絡的當前處理精度的測試過程可描述為:首先依據(jù)國際標準人臉驗證測試集的規(guī)則來選取目標神經(jīng)網(wǎng)絡測試所需的樣本圖像,優(yōu)選地,可選取3000對正樣本圖像(一對正樣本圖像為兩張具有相同人臉的圖像)和3000對負樣本圖像(一對負樣本圖像為兩張具有不同人臉的圖像);然后,分別將正樣本圖像對和負樣本圖像對作為目標神經(jīng)網(wǎng)絡的輸入數(shù)據(jù);最終,可根據(jù)人臉識別的輸出結果X的值以及當前處理精度的計算公式,來確定目標神經(jīng)網(wǎng)絡的當前處理精度。
示例性地,當目標神經(jīng)網(wǎng)絡將正樣本圖像對中的兩個圖像判定為同一人時,輸出結果X的值為1,否則輸出結果X的值為0;當目標神經(jīng)網(wǎng)絡將負樣本圖像對中的兩個圖像判定為非同一人時,輸出結果X的值為1,否則輸出結果X的值為0。其中,當前處理精度的計算公式可表示為:
在本實施例中,如果所確定的當前處理精度符合了設定精度條件,則可直接執(zhí)行步驟S307的操作,否則,需要執(zhí)行步驟S305的操作。
S305、對目標神經(jīng)網(wǎng)絡進行訓練學習,之后執(zhí)行步驟S306。
在本實施例中,當所確定的當前處理精度不符合設定精度條件,可以基于設定的訓練學習方法對目標神經(jīng)網(wǎng)絡進行訓練學習。這里不再詳述訓練學習所采用的訓練學習方法。
S306、確定對目標神經(jīng)網(wǎng)絡進行訓練學習的訓練次數(shù)是否達到設定訓練次數(shù),若否,則返回執(zhí)行步驟S304;若是,則執(zhí)行步驟S308。
在本實施例中,對目標神經(jīng)網(wǎng)絡進行訓練學習后,需要判定對其進行訓練學習的訓練次數(shù)是否達到設定訓練次數(shù),然后基于判定結果執(zhí)行不同的操作步驟。
S307、對刪除閾值進行自增加操作,并將目標神經(jīng)網(wǎng)絡作為新的初始神經(jīng)網(wǎng)絡,返回執(zhí)行步驟S301。
在本實施例中,如果目標神經(jīng)網(wǎng)絡的當前處理精度符合了設定精度條件,則可對當前的目標神經(jīng)網(wǎng)絡繼續(xù)基于步驟S301至步驟S303進行深度優(yōu)化。
在對目標神經(jīng)網(wǎng)絡進行深度優(yōu)化之前,可以對刪除閾值進行自增加操作,然后再將目標神經(jīng)網(wǎng)絡作為初始神經(jīng)網(wǎng)絡,之后返回步驟S301重新開始進行神經(jīng)網(wǎng)絡的優(yōu)化。需要說明的是,由于本實施例中刪除閾值為為第一刪除閾值或第二刪除閾值,因此,刪除閾值自增加操作所依據(jù)的增量值主要基于具體情況設定??梢岳斫獾氖?,基于增加后的刪除閾值進行神經(jīng)網(wǎng)絡優(yōu)化時,可以確定出更多的待刪除的單元節(jié)點,從而可以更快的確定出最終適合人臉識別的目標神經(jīng)網(wǎng)絡。
示例性地,圖3b為本發(fā)明實施例三中對原目標神經(jīng)網(wǎng)絡深度優(yōu)化形成的目標神經(jīng)網(wǎng)絡的結構圖,接上述實施例二中步驟S206中的示例,可以認為圖3b中所示的目標神經(jīng)網(wǎng)絡是對圖2c中所示目標神經(jīng)網(wǎng)絡的進一步深度優(yōu)化,如圖3b所示,與圖2c中提供的目標神經(jīng)網(wǎng)絡相比,在第3層中有減少了一個單元節(jié)點,由此可知,基于本發(fā)明實施例三提供的神經(jīng)網(wǎng)絡的優(yōu)化方法,實現(xiàn)了對圖2c中提供的目標神經(jīng)網(wǎng)絡第3層的第2個單元節(jié)點進行刪除的深度優(yōu)化。
S308、結束對目標神經(jīng)網(wǎng)絡的訓練學習。
在本實施例中,如果對目標神經(jīng)網(wǎng)絡進行訓練學習的訓練次數(shù)達到了設定訓練次數(shù),且此時對應的當前處理精度仍不符合設定精度條件,則可以結束對目標神經(jīng)網(wǎng)絡的訓練學習,同時,可以優(yōu)選的確定上一次作為初始神經(jīng)網(wǎng)絡進行深度優(yōu)化的目標神經(jīng)網(wǎng)絡為人臉識別所需的神經(jīng)網(wǎng)絡。
本發(fā)明實施例三提供的一種神經(jīng)網(wǎng)絡的優(yōu)化方法,進一步增加了對優(yōu)化后神經(jīng)網(wǎng)絡再次進行訓練學習或深度優(yōu)化的操作,由此來保持優(yōu)化后神經(jīng)網(wǎng)絡的處理計算精度,與現(xiàn)有優(yōu)化方法相比,能夠在不降低神經(jīng)網(wǎng)絡處理計算精度的情況下,實現(xiàn)神經(jīng)網(wǎng)絡的壓縮優(yōu)化,從而在基于優(yōu)化的后神經(jīng)網(wǎng)絡進行人臉識別時,達到加快人臉識別處理速度,縮短人臉識別處理時間,降低存儲、運行內存以及顯存等空間占用的目的。
實施例四
圖4為本發(fā)明實施例四提供的一種神經(jīng)網(wǎng)絡的優(yōu)化裝置的結構框圖。該裝置適用于對訓練學習后的神經(jīng)網(wǎng)絡進行壓縮優(yōu)化的情況,其中該裝置可由軟件和/或硬件實現(xiàn),并一般集成在神經(jīng)網(wǎng)絡模型所在的終端設備或服務器平臺上。如圖4所示,該優(yōu)化裝置包括:參數(shù)矩陣確定模塊41、待刪除節(jié)點確定模塊42以及目標網(wǎng)絡確定模塊43。
其中,參數(shù)矩陣確定模塊41,用于獲取符合設定精度條件的初始神經(jīng)網(wǎng)絡,確定所述初始神經(jīng)網(wǎng)絡中相鄰兩層單元節(jié)點間的權重參數(shù)矩陣;
待刪除節(jié)點確定模塊42,用于根據(jù)設定的刪除閾值處理所述權重參數(shù)矩陣,確定所述初始神經(jīng)網(wǎng)絡中待刪除的單元節(jié)點;
目標網(wǎng)絡確定模塊43,用于刪除所述單元節(jié)點形成優(yōu)化后的目標神經(jīng)網(wǎng)絡。
在本實施例中,該優(yōu)化裝置首先通過參數(shù)矩陣確定模塊41獲取符合設定精度條件的初始神經(jīng)網(wǎng)絡,確定所述初始神經(jīng)網(wǎng)絡中相鄰兩層單元節(jié)點間的權重參數(shù)矩陣;然后通過待刪除節(jié)點確定模塊42根據(jù)設定的刪除閾值處理所述權重參數(shù)矩陣,確定所述初始神經(jīng)網(wǎng)絡中待刪除的單元節(jié)點;最終通過目標網(wǎng)絡確定模塊43刪除所述單元節(jié)點形成優(yōu)化后的目標神經(jīng)網(wǎng)絡。
本發(fā)明實施例四提供的一種神經(jīng)網(wǎng)絡的優(yōu)化裝置,能夠簡單高效的對神經(jīng)網(wǎng)絡進行壓縮,實現(xiàn)神經(jīng)網(wǎng)絡的優(yōu)化,由此在基于優(yōu)化的后神經(jīng)網(wǎng)絡進行人臉識別時,能夠達到加快識別處理速度,縮短識別處理時間,降低存儲、運行內存以及顯存等空間占用的目的。
進一步地,參數(shù)矩陣確定模塊41具體用于:
在獲取符合設定精度條件的初始神經(jīng)網(wǎng)絡后,如果所述初始神經(jīng)網(wǎng)絡中相鄰兩層單元節(jié)點間的連接為全連接,則基于單元節(jié)點間連線對應的權重參數(shù)值形成二維權重參數(shù)矩陣;如果所述初始神經(jīng)網(wǎng)絡中相鄰兩層單元節(jié)點間的連接為卷積連接,則基于單元節(jié)點間連線對應的權重參數(shù)數(shù)組形成多維權重參數(shù)矩陣。
進一步地,待刪除節(jié)點確定模塊42包括:
第一確定單元,用于當所述權重參數(shù)矩陣為二維權重參數(shù)矩陣時,基于所述二維權重參數(shù)矩陣中的列向量確定所述初始神經(jīng)網(wǎng)絡中待刪除的單元節(jié)點;
第二確定單元,用于當所述權重參數(shù)矩陣為多維權重參數(shù)矩陣時,基于降維后的多維權重參數(shù)矩陣確定所述初始神經(jīng)網(wǎng)絡中待刪除的單元節(jié)點。
在上述優(yōu)化的基礎上,第一確定單元具體用于:
當所述權重參數(shù)矩陣為二維權重參數(shù)矩陣時,獲取所述二維權重參數(shù)矩陣中第i列的列向量;如果所述第i列的列向量中包括的權重參數(shù)值均小于設定的第一刪除閾值,則將相鄰兩層中第二層的第i個單元節(jié)點確定為所述初始神經(jīng)網(wǎng)絡中待刪除的單元節(jié)點。
進一步地,第二確定單元具體用于:
當所述權重參數(shù)矩陣為二維權重參數(shù)矩陣時,對所述多維權重參數(shù)矩陣進行降維處理,形成二維的目標權重參數(shù)矩陣;獲取所述目標權重參數(shù)矩陣中第j列的列向量;如果所述第j列的列向量中包括的元素值均小于設定的第二刪除閾值,則將相鄰兩層中第二層的第j個單元節(jié)點確定為所述初始神經(jīng)網(wǎng)絡中待刪除的單元節(jié)點。
進一步地,該優(yōu)化裝置還包括:目標網(wǎng)絡處理模塊44,用于確定所述目標神經(jīng)網(wǎng)絡的當前處理精度是否符合所述設定精度條件,基于確定結果對所述目標神經(jīng)網(wǎng)絡進行訓練學習或深度優(yōu)化。
在上述優(yōu)化的基礎上,目標網(wǎng)絡處理模塊44具體用于:
確定所述目標神經(jīng)網(wǎng)絡的當前處理精度是否符合所述設定精度條件;如果所述當前處理精度不符合所述設定精度條件,則對所述目標神經(jīng)網(wǎng)絡進行訓練學習直至符合所述設定精度條件或達到設定訓練次數(shù);否則,對所述刪除閾值進行自增加操作,并將所述目標神經(jīng)網(wǎng)絡作為新的初始神經(jīng)網(wǎng)絡,重新執(zhí)行神經(jīng)網(wǎng)絡的優(yōu)化操作,其中,所述刪除閾值為第一刪除閾值或第二刪除閾值。
進一步地,如果訓練學習后的目標神經(jīng)網(wǎng)絡符合所述設定精度條件且訓練次數(shù)不大于所述設定訓練次數(shù),則對所述刪除閾值進行自增加操作,并將所述目標神經(jīng)網(wǎng)絡作為新的初始神經(jīng)網(wǎng)絡,重新執(zhí)行神經(jīng)網(wǎng)絡的優(yōu)化操作。
注意,上述僅為本發(fā)明的較佳實施例及所運用技術原理。本領域技術人員會理解,本發(fā)明不限于這里所述的特定實施例,對本領域技術人員來說能夠進行各種明顯的變化、重新調整和替代而不會脫離本發(fā)明的保護范圍。因此,雖然通過以上實施例對本發(fā)明進行了較為詳細的說明,但是本發(fā)明不僅僅限于以上實施例,在不脫離本發(fā)明構思的情況下,還可以包括更多其他等效實施例,而本發(fā)明的范圍由所附的權利要求范圍決定。