本發(fā)明涉及計(jì)算機(jī)領(lǐng)域,特別涉及一種構(gòu)建神經(jīng)網(wǎng)絡(luò)的方法及裝置。
背景技術(shù):
近幾年來,深度神經(jīng)網(wǎng)絡(luò)在諸多領(lǐng)域中取得了巨大的成功,如計(jì)算機(jī)視覺、自然語言處理等。然而,目前構(gòu)建深度神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)主要通過設(shè)計(jì)人員設(shè)計(jì)得到,若要設(shè)計(jì)出一個(gè)結(jié)構(gòu)緊湊、運(yùn)行速度快、效果好的深度神經(jīng)網(wǎng)絡(luò),不僅需要設(shè)計(jì)人員具有較強(qiáng)的專業(yè)知識(shí),而且還需要通過大量的實(shí)驗(yàn)來對(duì)深度神經(jīng)網(wǎng)絡(luò)進(jìn)行反復(fù)的調(diào)整,因此,現(xiàn)有的深度神經(jīng)網(wǎng)絡(luò)的構(gòu)建對(duì)設(shè)計(jì)人員的專業(yè)技能要求較高而且構(gòu)建效率低。
為解決現(xiàn)有技術(shù)構(gòu)建神經(jīng)網(wǎng)絡(luò)存在的前述問題,目前提出了一些如何構(gòu)建深度神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的解決方案:
方案1、haozhou在論文“l(fā)essismore:towardscompactcnns”中提出通過組稀疏約束來學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)中每層神經(jīng)元個(gè)數(shù)的方案,該方案在卷積神經(jīng)網(wǎng)絡(luò)的權(quán)重中加入組稀疏約束,即每一個(gè)神經(jīng)元的權(quán)重為一個(gè)組。由于組稀疏約束會(huì)將每個(gè)組內(nèi)的權(quán)重盡可能地全壓縮為0,因此當(dāng)一個(gè)神經(jīng)元的權(quán)重全為0時(shí),即可去掉該神經(jīng)元,由此即可學(xué)習(xí)得到神經(jīng)網(wǎng)絡(luò)的神經(jīng)元個(gè)數(shù)。
方案2、josem.alvarez在論文“l(fā)earningthenumberofneuronsindeepnetworks”中提出的解決方案與方案1基本一致,區(qū)別在于,該方案2中每一層神經(jīng)元用的組稀疏約束不同,即對(duì)不同層的神經(jīng)元其組約束的強(qiáng)度不同。
方案3、wenwei在論文“l(fā)earningstructuredsparsityindeepneuralnetworks”中提出的解決方案為利用組稀疏約束學(xué)習(xí)例如神經(jīng)元的個(gè)數(shù)、神經(jīng)元的形狀、跨層連接網(wǎng)絡(luò)層的深度等。
前述解決方案,均存在以下技術(shù)缺陷:
缺陷1、在權(quán)重上加組稀疏約束和權(quán)重衰減約束,后續(xù)的優(yōu)化過程較為困難,實(shí)現(xiàn)難度大;
缺陷2、需要在一個(gè)訓(xùn)練好的模型上進(jìn)行兩次重訓(xùn)練,一次重訓(xùn)練利用組稀疏約束確定不重要的結(jié)構(gòu),第二次重訓(xùn)練則將確定出的不重要的結(jié)構(gòu)去掉之后再次訓(xùn)練以恢復(fù)神經(jīng)網(wǎng)絡(luò)的精度,兩次重訓(xùn)練耗時(shí)較長,效率較低。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明提供一種構(gòu)建神經(jīng)網(wǎng)絡(luò)的方法及裝置,以解決現(xiàn)有技術(shù)構(gòu)建的神經(jīng)網(wǎng)絡(luò)訓(xùn)練難度大和效率低的技術(shù)問題。
本發(fā)明實(shí)施例,一方面提供一種構(gòu)建神經(jīng)網(wǎng)絡(luò)的方法,該方法包括:
構(gòu)建初始神經(jīng)網(wǎng)絡(luò),所述初始神經(jīng)網(wǎng)絡(luò)中預(yù)置的多個(gè)特定結(jié)構(gòu)分別設(shè)置有對(duì)應(yīng)的稀疏縮放算子,其中稀疏縮放算子用于對(duì)相應(yīng)特定結(jié)構(gòu)的輸出進(jìn)行縮放;
采用預(yù)置的訓(xùn)練樣本數(shù)據(jù)對(duì)所述初始神經(jīng)網(wǎng)絡(luò)的權(quán)重和特定結(jié)構(gòu)的稀疏縮放算子進(jìn)行訓(xùn)練,得到中間神經(jīng)網(wǎng)絡(luò);
將所述中間神經(jīng)網(wǎng)絡(luò)中稀疏縮放算子為零的特定結(jié)構(gòu)刪除,得到目標(biāo)神經(jīng)網(wǎng)絡(luò)。
本發(fā)明實(shí)施例,另一方面提供一種構(gòu)建神經(jīng)網(wǎng)絡(luò)的裝置,該裝置包括:
第一構(gòu)建單元,用于構(gòu)建初始神經(jīng)網(wǎng)絡(luò),所述初始神經(jīng)網(wǎng)絡(luò)中預(yù)置的多個(gè)特定結(jié)構(gòu)分別設(shè)置有對(duì)應(yīng)的稀疏縮放算子,其中稀疏縮放算子用于對(duì)相應(yīng)特定結(jié)構(gòu)的輸出進(jìn)行縮放;
訓(xùn)練單元,用于采用預(yù)置的訓(xùn)練樣本數(shù)據(jù)對(duì)所述初始神經(jīng)網(wǎng)絡(luò)的權(quán)重和特定結(jié)構(gòu)的稀疏縮放算子進(jìn)行訓(xùn)練,得到中間神經(jīng)網(wǎng)絡(luò);
第二構(gòu)建單元,用于將所述中間神經(jīng)網(wǎng)絡(luò)中稀疏縮放算子為零的特定結(jié)構(gòu)刪除,得到目標(biāo)神經(jīng)網(wǎng)絡(luò)。
本發(fā)明實(shí)施例提供的構(gòu)建神經(jīng)網(wǎng)絡(luò)的方法,首先,在構(gòu)建初始神經(jīng)網(wǎng)絡(luò)的過程中,預(yù)先為初始神經(jīng)網(wǎng)絡(luò)中的特定結(jié)構(gòu)設(shè)置稀疏縮放算子;其次,在訓(xùn)練過程中,通過訓(xùn)練樣本數(shù)據(jù)對(duì)初始神經(jīng)網(wǎng)絡(luò)中的權(quán)重和稀疏縮放算子一起訓(xùn)練以得到中間神經(jīng)網(wǎng)絡(luò);最后,將中間神經(jīng)網(wǎng)絡(luò)中稀疏縮放算子為零的特定結(jié)構(gòu)刪除以得到目標(biāo)神經(jīng)網(wǎng)絡(luò)。本發(fā)明技術(shù)方案,一方面,引入稀疏縮放算子來縮放不同特定結(jié)構(gòu)的輸出,不需要在權(quán)重上加入新的約束,權(quán)重和稀疏縮放算子可進(jìn)行獨(dú)立優(yōu)化,后續(xù)的優(yōu)化過程更加簡單,易于實(shí)現(xiàn);另一方面,稀疏縮放算子為零的特定結(jié)構(gòu)對(duì)神經(jīng)網(wǎng)絡(luò)的輸出結(jié)果沒有貢獻(xiàn),將稀疏縮放算子為零的特定結(jié)構(gòu)刪除,并不影響神經(jīng)網(wǎng)絡(luò)的精度,而且還能夠精簡神經(jīng)網(wǎng)絡(luò)以提高神經(jīng)網(wǎng)絡(luò)運(yùn)行速度,因此,本發(fā)明技術(shù)方案只需要采用訓(xùn)練樣本數(shù)據(jù)對(duì)初始神經(jīng)網(wǎng)絡(luò)進(jìn)行一次重訓(xùn)練即可得到目標(biāo)神經(jīng)網(wǎng)絡(luò),無需像現(xiàn)有技術(shù)需要進(jìn)行兩次重訓(xùn)練,因此,與現(xiàn)有技術(shù)相比,本方案能夠提高神經(jīng)網(wǎng)絡(luò)訓(xùn)練的效率。
附圖說明
附圖用來提供對(duì)本發(fā)明的進(jìn)一步理解,并且構(gòu)成說明書的一部分,與本發(fā)明的實(shí)施例一起用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的限制。
圖1為本發(fā)明實(shí)施例中構(gòu)建神經(jīng)網(wǎng)絡(luò)的方法流程圖;
圖2為本發(fā)明實(shí)施例中特定結(jié)構(gòu)為模塊的示意圖;
圖3為本發(fā)明實(shí)施例中特定結(jié)構(gòu)為殘差網(wǎng)絡(luò)中的殘差模塊的示意圖;
圖4為本發(fā)明實(shí)施例中特定結(jié)構(gòu)為模組的示意圖;
圖5為本發(fā)明實(shí)施例中特定結(jié)構(gòu)為神經(jīng)元的示意圖;
圖6為本發(fā)明實(shí)施例中構(gòu)建神經(jīng)網(wǎng)絡(luò)的裝置的結(jié)構(gòu)示意圖。
具體實(shí)施方式
為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明中的技術(shù)方案,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都應(yīng)當(dāng)屬于本發(fā)明保護(hù)的范圍。
實(shí)施例一
參見圖1,為本發(fā)明實(shí)施例中構(gòu)建神經(jīng)網(wǎng)絡(luò)的方法的流程圖,該方法包括:
步驟101、構(gòu)建初始神經(jīng)網(wǎng)絡(luò),所述初始神經(jīng)網(wǎng)絡(luò)中預(yù)置的多個(gè)特定結(jié)構(gòu)分別設(shè)置有對(duì)應(yīng)的稀疏縮放算子,其中稀疏縮放算子用于對(duì)相應(yīng)特定結(jié)構(gòu)的輸出進(jìn)行縮放。
步驟102、采用預(yù)置的訓(xùn)練樣本數(shù)據(jù)對(duì)所述初始神經(jīng)網(wǎng)絡(luò)的權(quán)重和特定結(jié)構(gòu)的稀疏縮放算子進(jìn)行訓(xùn)練,得到中間神經(jīng)網(wǎng)絡(luò)。
步驟103、將所述中間神經(jīng)網(wǎng)絡(luò)中稀疏縮放算子為零的特定結(jié)構(gòu)刪除,得到目標(biāo)神經(jīng)網(wǎng)絡(luò)。
優(yōu)選地,前述步驟101可通過以下步驟a1~步驟a3實(shí)現(xiàn):
步驟a1、選取神經(jīng)網(wǎng)絡(luò)模型。
本發(fā)明實(shí)施例,可從預(yù)置的神經(jīng)網(wǎng)絡(luò)模型集中選取一個(gè)與期望目標(biāo)神經(jīng)網(wǎng)絡(luò)所實(shí)現(xiàn)的功能(如圖像分割、物體檢測、人臉識(shí)別、自然語言處理等)對(duì)應(yīng)的神經(jīng)網(wǎng)絡(luò)模型,也可以根據(jù)期望目標(biāo)神經(jīng)網(wǎng)絡(luò)所實(shí)現(xiàn)的功能構(gòu)建一個(gè)對(duì)應(yīng)的神經(jīng)網(wǎng)絡(luò)模型。本申請(qǐng)不做嚴(yán)格的限定。
步驟a2、確定所述神經(jīng)網(wǎng)絡(luò)模型中需要設(shè)置稀疏縮放算子的特定結(jié)構(gòu)。
本發(fā)明實(shí)施例中,可由設(shè)計(jì)人員確定神經(jīng)網(wǎng)絡(luò)模型中的特定結(jié)構(gòu),例如:可將神經(jīng)網(wǎng)絡(luò)中的某一層或某些網(wǎng)絡(luò)層的全部或部分神經(jīng)元確定為特定結(jié)構(gòu)。和/或,將神經(jīng)網(wǎng)絡(luò)中具有以下特性的一個(gè)或多個(gè)模組確定為特定結(jié)構(gòu):特性1、包含一個(gè)以上網(wǎng)絡(luò)層(例如,該特定結(jié)構(gòu)包含兩個(gè)以上級(jí)聯(lián)的網(wǎng)絡(luò)層);特性2、與其他模組并聯(lián)或者該模組前后端具有跨層連接。和/或,將神經(jīng)網(wǎng)絡(luò)中具有以下特性的一個(gè)或多個(gè)模塊確定為特定結(jié)構(gòu):特性1、包含一個(gè)以上模組的模塊(例如,該特定結(jié)構(gòu)包含兩個(gè)以上并聯(lián)的模組);特性2、該模塊的前后端具有跨層連接。
步驟a3、對(duì)所述神經(jīng)網(wǎng)絡(luò)模型中的特定結(jié)構(gòu)設(shè)置初始稀疏縮放算子,得到所述初始神經(jīng)網(wǎng)絡(luò)。
本發(fā)明實(shí)施例中,各特定結(jié)構(gòu)的稀疏縮放算子的取值大于等于0。優(yōu)選地,初始稀疏縮放算子的取值接近1,例如可以直接取值為1。
優(yōu)選地,本發(fā)明實(shí)施例中,前述步驟102具體可通過以下步驟b1~步驟b3實(shí)現(xiàn):
步驟b1、構(gòu)建初始神經(jīng)網(wǎng)絡(luò)對(duì)應(yīng)的目標(biāo)函數(shù),所述目標(biāo)函數(shù)包含損失函數(shù)和稀疏正則函數(shù)。該目標(biāo)函數(shù)如式(1)所示:
式(1)中,所述w為神經(jīng)網(wǎng)絡(luò)的權(quán)重,λ為神經(jīng)網(wǎng)絡(luò)的稀疏縮放算子向量,n為訓(xùn)練樣本數(shù)據(jù)的數(shù)量,
步驟b2、采用所述訓(xùn)練樣本數(shù)據(jù)對(duì)所述初始神經(jīng)網(wǎng)絡(luò)進(jìn)行迭代訓(xùn)練。
步驟b3、當(dāng)?shù)?xùn)練次數(shù)達(dá)到閾值或者所述目標(biāo)函數(shù)滿足預(yù)置的收斂條件時(shí),得到所述中間神經(jīng)網(wǎng)絡(luò)。
優(yōu)選地,前述步驟b2具體實(shí)現(xiàn)可通過對(duì)初始神經(jīng)網(wǎng)絡(luò)進(jìn)行多次以下的迭代訓(xùn)練,以一次非首次迭代和非尾次迭代的迭代過程(以下稱為本次迭代訓(xùn)練)為例進(jìn)行描述,一次迭代訓(xùn)練包括以下步驟c1~步驟c3:
步驟c1、將前一次迭代訓(xùn)練得到的稀疏縮放算子作為所述目標(biāo)函數(shù)的常量,將所述權(quán)重作為所述目標(biāo)函數(shù)的變量,采用第一優(yōu)化算法對(duì)所述目標(biāo)函數(shù)進(jìn)行優(yōu)化,得到本次迭代訓(xùn)練的權(quán)重;
步驟c2、將本次迭代訓(xùn)練的權(quán)重作為所述目標(biāo)函數(shù)的常量,將稀疏縮放算子作為所述目標(biāo)函數(shù)的變量,采用第二優(yōu)化算法對(duì)所述目標(biāo)函數(shù)進(jìn)行優(yōu)化,得到本次迭代訓(xùn)練的稀疏縮放算子;
步驟c3、基于本次迭代訓(xùn)練的權(quán)重和稀疏縮放算子進(jìn)行下一次迭代訓(xùn)練。
首次迭代訓(xùn)練過程如下:將初始稀疏縮放算子作為所述目標(biāo)函數(shù)的常量,將所述權(quán)重作為所述目標(biāo)函數(shù)的變量,采用第一優(yōu)化算法對(duì)所述目標(biāo)函數(shù)進(jìn)行優(yōu)化,得到本次迭代訓(xùn)練的權(quán)重;將本次迭代訓(xùn)練的權(quán)重作為所述目標(biāo)函數(shù)的常量,將稀疏縮放算子作為所述目標(biāo)函數(shù)的變量,采用第二優(yōu)化算法對(duì)所述目標(biāo)函數(shù)進(jìn)行優(yōu)化,得到本次迭代訓(xùn)練的稀疏縮放算子;基于本次迭代訓(xùn)練的權(quán)重和稀疏縮放算子進(jìn)行第二次迭代訓(xùn)練。
尾次迭代訓(xùn)練過程如下:將前一次迭代訓(xùn)練得到的稀疏縮放算子作為所述目標(biāo)函數(shù)的常量,將所述權(quán)重作為所述目標(biāo)函數(shù)的變量,采用第一優(yōu)化算法對(duì)所述目標(biāo)函數(shù)進(jìn)行優(yōu)化,得到本次迭代訓(xùn)練的權(quán)重;將本次迭代訓(xùn)練的權(quán)重作為所述目標(biāo)函數(shù)的常量,將稀疏縮放算子作為所述目標(biāo)函數(shù)的變量,采用第二優(yōu)化算法對(duì)所述目標(biāo)函數(shù)進(jìn)行優(yōu)化,得到本次迭代訓(xùn)練的稀疏縮放算子;將包含本次迭代訓(xùn)練得到的稀疏縮放算子和權(quán)重的神經(jīng)網(wǎng)絡(luò)作為中間神經(jīng)網(wǎng)絡(luò)。
優(yōu)選地,本發(fā)明實(shí)施例中,所述第一優(yōu)化算法可以為但不僅限于為以下任意一種算法:隨機(jī)梯度下降算法、引入動(dòng)量的變種算法。
優(yōu)選地,本發(fā)明實(shí)施例中,所述第二優(yōu)化算法可以為但不僅限于為以下任意一種算法:加速鄰域梯度下降算法、鄰域梯度下降算法、交替方向乘子算法。
優(yōu)選地,在另一個(gè)實(shí)施例中,本發(fā)明實(shí)施例中目標(biāo)函數(shù)包含損失函數(shù)、權(quán)重正則函數(shù)和稀疏正則函數(shù),該目標(biāo)函數(shù)如式(2)所示:
式(2)中,所述w為神經(jīng)網(wǎng)絡(luò)的權(quán)重,λ為神經(jīng)網(wǎng)絡(luò)的稀疏縮放算子向量,n為訓(xùn)練樣本數(shù)據(jù)的數(shù)量,
優(yōu)選地,本發(fā)明實(shí)施例中
為進(jìn)一步對(duì)本發(fā)明實(shí)施例中如何求解出目標(biāo)函數(shù)中的w和λ進(jìn)行詳細(xì)的描述,下面以目標(biāo)函數(shù)為公式(2)、
將λ作為常量,將w作為變量,則目標(biāo)函數(shù)換轉(zhuǎn)為
將w作為常量,將λ作為變量,則目標(biāo)函數(shù)換轉(zhuǎn)為
方式1,采用下式(3)~式(5)得到λ:
其中ηt表示在第t次迭代訓(xùn)練時(shí)梯度下降的步長,
方式2、由于前述方式1求解λ需要額外的前向后向計(jì)算來得到
λt=λt-1+vt式(8)
方式3、本發(fā)明實(shí)施例為進(jìn)一步降低難度,提供更為簡單的下式(9)~(11)計(jì)算得到λ:
其中λ′t-1=λt-1+μt-1vt-1,μ為預(yù)設(shè)的固定值,并采用批量隨機(jī)梯度下降的形式來更新w和λ。
下面分別以特定結(jié)構(gòu)為模塊、模組和神經(jīng)元進(jìn)行詳細(xì)描述。
如圖2所示,假設(shè)神經(jīng)網(wǎng)絡(luò)包含n個(gè)模塊,每個(gè)模塊對(duì)應(yīng)一個(gè)稀疏縮放算子,且每個(gè)模塊的前后端具有跨層連接。
以一個(gè)具體為例,假設(shè)神經(jīng)網(wǎng)絡(luò)為殘差網(wǎng)絡(luò),設(shè)置特定結(jié)構(gòu)為殘差模塊,如上圖3所示,該殘差模塊前后端具有跨層連接,第i個(gè)殘差模塊對(duì)應(yīng)的稀疏縮放算子為λi,則:
若經(jīng)過訓(xùn)練之后,得到第三個(gè)殘差模塊的稀疏縮放算子λ3=0時(shí),則將殘差網(wǎng)絡(luò)中第3個(gè)殘差模塊
如圖4所示,假設(shè)神經(jīng)網(wǎng)絡(luò)包含n個(gè)模塊,每個(gè)模塊包含m個(gè)模組,每個(gè)模組包含多個(gè)級(jí)聯(lián)的網(wǎng)絡(luò)層,每個(gè)模組對(duì)應(yīng)一個(gè)稀疏縮放算子。
如圖5所示,假設(shè)神經(jīng)網(wǎng)絡(luò)包含l個(gè)網(wǎng)絡(luò)層,第l網(wǎng)絡(luò)層包含k神經(jīng)元,則該k個(gè)神經(jīng)元分別對(duì)應(yīng)一個(gè)稀疏縮放算子。
實(shí)施例二
基于前述實(shí)施例一提供的構(gòu)建神經(jīng)網(wǎng)絡(luò)方法相同的發(fā)明構(gòu)思,本發(fā)明實(shí)施例二提供一種構(gòu)建神經(jīng)網(wǎng)絡(luò)的裝置,該裝置的結(jié)構(gòu)如圖6所示,包括:
第一構(gòu)建單元61,用于構(gòu)建初始神經(jīng)網(wǎng)絡(luò),所述初始神經(jīng)網(wǎng)絡(luò)中預(yù)置的多個(gè)特定結(jié)構(gòu)分別設(shè)置有對(duì)應(yīng)的稀疏縮放算子,其中稀疏縮放算子用于對(duì)相應(yīng)特定結(jié)構(gòu)的輸出進(jìn)行縮放;
訓(xùn)練單元62,用于采用預(yù)置的訓(xùn)練樣本數(shù)據(jù)對(duì)所述初始神經(jīng)網(wǎng)絡(luò)的權(quán)重和特定結(jié)構(gòu)的稀疏縮放算子進(jìn)行訓(xùn)練,得到中間神經(jīng)網(wǎng)絡(luò);
第二構(gòu)建單元63,用于將所述中間神經(jīng)網(wǎng)絡(luò)中稀疏縮放算子為零的特定結(jié)構(gòu)刪除,得到目標(biāo)神經(jīng)網(wǎng)絡(luò)。
優(yōu)選地,所述第一構(gòu)建單元61,具體包括選取模塊、特定結(jié)構(gòu)確定模塊和構(gòu)建模塊,其中:
選取模塊,用于選取神經(jīng)網(wǎng)絡(luò)模型;
本發(fā)明實(shí)施例,選取模塊具體實(shí)現(xiàn)可如下:可從預(yù)置的神經(jīng)網(wǎng)絡(luò)模型集中選取一個(gè)與期望目標(biāo)神經(jīng)網(wǎng)絡(luò)所實(shí)現(xiàn)的功能(如圖像分割、物體檢測、人臉識(shí)別、自然語言處理等)對(duì)應(yīng)的神經(jīng)網(wǎng)絡(luò)模型,也可以根據(jù)期望目標(biāo)神經(jīng)網(wǎng)絡(luò)所實(shí)現(xiàn)的功能構(gòu)建一個(gè)對(duì)應(yīng)的神經(jīng)網(wǎng)絡(luò)模型。本申請(qǐng)不做嚴(yán)格的限定。
特定結(jié)構(gòu)確定模塊,用于確定所述神經(jīng)網(wǎng)絡(luò)模型中需要設(shè)置稀疏縮放算子的特定結(jié)構(gòu);
構(gòu)建模塊,用于對(duì)所述神經(jīng)網(wǎng)絡(luò)模型中的特定結(jié)構(gòu)設(shè)置初始稀疏縮放算子,得到所述初始神經(jīng)網(wǎng)絡(luò)。
本發(fā)明實(shí)施例中,各特定結(jié)構(gòu)的稀疏縮放算子的取值大于等于0且小于等于1。優(yōu)選地,初始稀疏縮放算子的取值接近1,例如可以直接取值為1。
優(yōu)選地,所述訓(xùn)練單元52,具體包括目標(biāo)函數(shù)構(gòu)建模塊、訓(xùn)練模塊和確定模塊,其中:
目標(biāo)函數(shù)構(gòu)建模塊,用于構(gòu)建初始神經(jīng)網(wǎng)絡(luò)對(duì)應(yīng)的目標(biāo)函數(shù),所述目標(biāo)函數(shù)包含損失函數(shù)和稀疏正則函數(shù);
訓(xùn)練模塊,用于采用所述訓(xùn)練樣本數(shù)據(jù)對(duì)所述初始神經(jīng)網(wǎng)絡(luò)進(jìn)行迭代訓(xùn)練;
確定模塊,用于當(dāng)?shù)?xùn)練次數(shù)達(dá)到閾值或者所述目標(biāo)函數(shù)滿足預(yù)置的收斂條件時(shí),得到所述中間神經(jīng)網(wǎng)絡(luò)。
優(yōu)選地,所述訓(xùn)練模塊具體用于:對(duì)所述初始神經(jīng)網(wǎng)絡(luò)進(jìn)行多次以下的迭代訓(xùn)練(該一次迭代訓(xùn)練為非首次和非尾次迭代訓(xùn)練):將前一次迭代訓(xùn)練得到的稀疏縮放算子作為所述目標(biāo)函數(shù)的常量,將所述權(quán)重作為所述目標(biāo)函數(shù)的變量,采用第一優(yōu)化算法對(duì)所述目標(biāo)函數(shù)進(jìn)行優(yōu)化,得到本次迭代訓(xùn)練的權(quán)重;將本次迭代訓(xùn)練的權(quán)重作為所述目標(biāo)函數(shù)的常量,將稀疏縮放算子作為所述目標(biāo)函數(shù)的變量,采用第二優(yōu)化算法對(duì)所述目標(biāo)函數(shù)進(jìn)行優(yōu)化,得到本次迭代訓(xùn)練的稀疏縮放算子;基于本次迭代訓(xùn)練的權(quán)重和稀疏縮放算子進(jìn)行下一次迭代訓(xùn)練。
首次迭代訓(xùn)練過程如下:將初始稀疏縮放算子作為所述目標(biāo)函數(shù)的常量,將所述權(quán)重作為所述目標(biāo)函數(shù)的變量,采用第一優(yōu)化算法對(duì)所述目標(biāo)函數(shù)進(jìn)行優(yōu)化,得到本次迭代訓(xùn)練的權(quán)重;將本次迭代訓(xùn)練的權(quán)重作為所述目標(biāo)函數(shù)的常量,將稀疏縮放算子作為所述目標(biāo)函數(shù)的變量,采用第二優(yōu)化算法對(duì)所述目標(biāo)函數(shù)進(jìn)行優(yōu)化,得到本次迭代訓(xùn)練的稀疏縮放算子;基于本次迭代訓(xùn)練的權(quán)重和稀疏縮放算子進(jìn)行第二次迭代訓(xùn)練。
尾次迭代訓(xùn)練過程如下:將前一次迭代訓(xùn)練得到的稀疏縮放算子作為所述目標(biāo)函數(shù)的常量,將所述權(quán)重作為所述目標(biāo)函數(shù)的變量,采用第一優(yōu)化算法對(duì)所述目標(biāo)函數(shù)進(jìn)行優(yōu)化,得到本次迭代訓(xùn)練的權(quán)重;將本次迭代訓(xùn)練的權(quán)重作為所述目標(biāo)函數(shù)的常量,將稀疏縮放算子作為所述目標(biāo)函數(shù)的變量,采用第二優(yōu)化算法對(duì)所述目標(biāo)函數(shù)進(jìn)行優(yōu)化,得到本次迭代訓(xùn)練的稀疏縮放算子;將包含本次迭代訓(xùn)練得到的稀疏縮放算子和權(quán)重的神經(jīng)網(wǎng)絡(luò)作為中間神經(jīng)網(wǎng)絡(luò)。
優(yōu)選地,所述第一優(yōu)化算法可以為但不僅限于為以下任意一種算法:隨機(jī)梯度下降算法、引入動(dòng)量的變種算法。
優(yōu)選地,所述第二優(yōu)化算法為加速鄰域梯度下降算法、鄰域梯度下降算法或者交替方向乘子算法。
優(yōu)選地,所述目標(biāo)函數(shù)為:
所述w為神經(jīng)網(wǎng)絡(luò)的權(quán)重,λ為神經(jīng)網(wǎng)絡(luò)的稀疏縮放算子向量,n為訓(xùn)練樣本數(shù)據(jù)的數(shù)量,
優(yōu)選地,在另一個(gè)實(shí)施例中,本發(fā)明實(shí)施例中目標(biāo)函數(shù)包含損失函數(shù)、權(quán)重正則函數(shù)和稀疏正則函數(shù),該目標(biāo)函數(shù)如下:
所述w為神經(jīng)網(wǎng)絡(luò)的權(quán)重,λ為神經(jīng)網(wǎng)絡(luò)的稀疏縮放算子向量,n為訓(xùn)練樣本數(shù)據(jù)的數(shù)量,
優(yōu)選地,本發(fā)明實(shí)施例中
優(yōu)選地,所述特定結(jié)構(gòu)為一個(gè)神經(jīng)元;或者,所述特定結(jié)構(gòu)為包含一個(gè)以上網(wǎng)絡(luò)層的模組(例如,特定結(jié)構(gòu)包含兩個(gè)以上級(jí)聯(lián)的網(wǎng)絡(luò)層),且該模組與其他模組并聯(lián);或者,所述特定結(jié)構(gòu)為包含一個(gè)以上并聯(lián)模組的模塊(例如,特定結(jié)構(gòu)包含兩個(gè)以上并聯(lián)的模組),且該模塊的前后端具有跨層連接。
以上是本發(fā)明的核心思想,為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明實(shí)施例中的技術(shù)方案,并使本發(fā)明實(shí)施例的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合附圖對(duì)本發(fā)明實(shí)施例中技術(shù)方案作進(jìn)一步詳細(xì)的說明。
顯然,本領(lǐng)域的技術(shù)人員可以對(duì)本發(fā)明進(jìn)行各種改動(dòng)和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動(dòng)和變型在內(nèi)。