計(jì)算公式為
。然而,對(duì)于BDNN來(lái)說(shuō),如果也這樣進(jìn)行誤差 計(jì)算,則網(wǎng)絡(luò)將很難收斂。因此,可以使用如下的公式來(lái)進(jìn)行誤差計(jì)算:
[0100]
m
[0101] 上式(9)表明,如果y和其對(duì)應(yīng)的/正負(fù)相同,則其誤差e為0 ;否則,誤差計(jì)算符 合一般神經(jīng)網(wǎng)絡(luò)的通用的誤差計(jì)算。通過(guò)式(9),BDNN將會(huì)在訓(xùn)練過(guò)程中收斂。
[0102] 本領(lǐng)域技術(shù)人員可以理解,神經(jīng)網(wǎng)絡(luò)中通用的誤差計(jì)算不限于計(jì)算公式:
,也可以采用其它公式來(lái)計(jì)算誤差。
[0103] 通過(guò)上述的訓(xùn)練方法,能夠利用梯度下降算法來(lái)成功訓(xùn)練得到根據(jù)本發(fā)明的BDNN 以及混合BDNN。
[0104] 圖7示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的對(duì)神經(jīng)網(wǎng)絡(luò)系統(tǒng)進(jìn)行訓(xùn)練的訓(xùn)練裝置700 的示例性配置的框圖。
[0105] 如圖7所示,訓(xùn)練裝置700包括神經(jīng)網(wǎng)絡(luò)系統(tǒng)訓(xùn)練單元702和二值轉(zhuǎn)換單元704。
[0106] 神經(jīng)網(wǎng)絡(luò)系統(tǒng)訓(xùn)練單元702可以通過(guò)梯度下降算法使用浮點(diǎn)數(shù)據(jù)來(lái)訓(xùn)練神經(jīng)網(wǎng) 絡(luò)系統(tǒng),其中,在二值神經(jīng)網(wǎng)絡(luò)的訓(xùn)練過(guò)程中,將下一層節(jié)點(diǎn)值隨當(dāng)前層節(jié)點(diǎn)值變化的離散 函數(shù)近似為連續(xù)函數(shù),用連續(xù)函數(shù)分別對(duì)當(dāng)前層節(jié)點(diǎn)值以及對(duì)應(yīng)的權(quán)重求偏導(dǎo)數(shù)。
[0107] 二值轉(zhuǎn)換單元704可以在訓(xùn)練結(jié)束后將得到的浮點(diǎn)值的各個(gè)權(quán)重轉(zhuǎn)換為二值數(shù) 據(jù)。
[0108] 關(guān)于對(duì)神經(jīng)網(wǎng)絡(luò)系統(tǒng)進(jìn)行訓(xùn)練的訓(xùn)練裝置700的各個(gè)部分的操作和功能的細(xì)節(jié) 可以參照結(jié)合圖5-6描述的對(duì)神經(jīng)網(wǎng)絡(luò)系統(tǒng)進(jìn)行訓(xùn)練的訓(xùn)練方法的實(shí)施例,這里不再詳細(xì) 描述。
[0109] 在此需要說(shuō)明的是,圖7所示的對(duì)神經(jīng)網(wǎng)絡(luò)系統(tǒng)進(jìn)行訓(xùn)練的訓(xùn)練裝置及其組成單 元的結(jié)構(gòu)僅僅是示例性的,本領(lǐng)域技術(shù)人員可以根據(jù)需要對(duì)圖7所示的結(jié)構(gòu)框圖進(jìn)行修 改。
[0110] 本發(fā)明提出一種全新的二值化深度神經(jīng)網(wǎng)絡(luò)以及對(duì)其進(jìn)行訓(xùn)練的訓(xùn)練裝置和方 法。與傳統(tǒng)深度神經(jīng)網(wǎng)絡(luò)相比,本發(fā)明的方法更加快速,占用存儲(chǔ)空間更小。
[0111] 以上結(jié)合具體實(shí)施例描述了本發(fā)明的基本原理,但是,需要指出的是,對(duì)本領(lǐng)域的 普通技術(shù)人員而言,能夠理解本發(fā)明的方法和裝置的全部或者任何步驟或者部件,可以在 任何計(jì)算裝置(包括處理器、存儲(chǔ)介質(zhì)等)或者計(jì)算裝置的網(wǎng)絡(luò)中,以硬件、固件、軟件或者 它們的組合加以實(shí)現(xiàn),這是本領(lǐng)域普通技術(shù)人員在閱讀了本發(fā)明的說(shuō)明的情況下運(yùn)用他們 的基本編程技能就能實(shí)現(xiàn)的。
[0112] 因此,本發(fā)明的目的還可以通過(guò)在任何計(jì)算裝置上運(yùn)行一個(gè)程序或者一組程序來(lái) 實(shí)現(xiàn)。所述計(jì)算裝置可以是公知的通用裝置。因此,本發(fā)明的目的也可以僅僅通過(guò)提供包 含實(shí)現(xiàn)所述方法或者裝置的程序代碼的程序產(chǎn)品來(lái)實(shí)現(xiàn)。也就是說(shuō),這樣的程序產(chǎn)品也構(gòu) 成本發(fā)明,并且存儲(chǔ)有這樣的程序產(chǎn)品的存儲(chǔ)介質(zhì)也構(gòu)成本發(fā)明。顯然,所述存儲(chǔ)介質(zhì)可以 是任何公知的存儲(chǔ)介質(zhì)或者將來(lái)所開(kāi)發(fā)出來(lái)的任何存儲(chǔ)介質(zhì)。
[0113] 在通過(guò)軟件和/或固件實(shí)現(xiàn)本發(fā)明的實(shí)施例的情況下,從存儲(chǔ)介質(zhì)或網(wǎng)絡(luò)向具有 專用硬件結(jié)構(gòu)的計(jì)算機(jī),例如圖8所示的通用計(jì)算機(jī)800安裝構(gòu)成該軟件的程序,該計(jì)算機(jī) 在安裝有各種程序時(shí),能夠執(zhí)行各種功能等等。
[0114] 在圖8中,中央處理單元(CPU)801根據(jù)只讀存儲(chǔ)器(ROM)802中存儲(chǔ)的程序或從 存儲(chǔ)部分808加載到隨機(jī)存取存儲(chǔ)器(RAM) 803的程序執(zhí)行各種處理。在RAM 803中,也根 據(jù)需要存儲(chǔ)當(dāng)CPU 801執(zhí)行各種處理等等時(shí)所需的數(shù)據(jù)。CPU 801、R0M 802和RAM 803經(jīng) 由總線804彼此鏈路。輸入/輸出接口 805也鏈路到總線804。
[0115] 下述部件鏈路到輸入/輸出接口 805 :輸入部分806 (包括鍵盤(pán)、鼠標(biāo)等等)、輸出 部分807 (包括顯示器,比如陰極射線管(CRT)、液晶顯示器(LCD)等,和揚(yáng)聲器等)、存儲(chǔ)部 分808 (包括硬盤(pán)等)、通信部分809 (包括網(wǎng)絡(luò)接口卡比如LAN卡、調(diào)制解調(diào)器等)。通信 部分809經(jīng)由網(wǎng)絡(luò)比如因特網(wǎng)執(zhí)行通信處理。根據(jù)需要,驅(qū)動(dòng)器810也可鏈路到輸入/輸 出接口 805??刹鹦督橘|(zhì)811比如磁盤(pán)、光盤(pán)、磁光盤(pán)、半導(dǎo)體存儲(chǔ)器等等根據(jù)需要被安裝在 驅(qū)動(dòng)器810上,使得從中讀出的計(jì)算機(jī)程序根據(jù)需要被安裝到存儲(chǔ)部分808中。
[0116] 在通過(guò)軟件實(shí)現(xiàn)上述系列處理的情況下,從網(wǎng)絡(luò)比如因特網(wǎng)或存儲(chǔ)介質(zhì)比如可拆 卸介質(zhì)811安裝構(gòu)成軟件的程序。
[0117] 本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,這種存儲(chǔ)介質(zhì)不局限于圖8所示的其中存儲(chǔ)有程 序、與設(shè)備相分離地分發(fā)以向用戶提供程序的可拆卸介質(zhì)811??刹鹦督橘|(zhì)811的例子 包含磁盤(pán)(包含軟盤(pán)(注冊(cè)商標(biāo)))、光盤(pán)(包含光盤(pán)只讀存儲(chǔ)器(⑶-ROM)和數(shù)字通用盤(pán) (DVD))、磁光盤(pán)(包含迷你盤(pán)(MD)(注冊(cè)商標(biāo)))和半導(dǎo)體存儲(chǔ)器?;蛘?,存儲(chǔ)介質(zhì)可以是 ROM 802、存儲(chǔ)部分808中包含的硬盤(pán)等等,其中存有程序,并且與包含它們的設(shè)備一起被 分發(fā)給用戶。
[0118] 本發(fā)明還提出一種存儲(chǔ)有機(jī)器可讀取的指令代碼的程序產(chǎn)品。指令代碼由機(jī)器讀 取并執(zhí)行時(shí),可執(zhí)行上述根據(jù)本發(fā)明實(shí)施例的方法。
[0119] 相應(yīng)地,用于承載上述存儲(chǔ)有機(jī)器可讀取的指令代碼的程序產(chǎn)品的存儲(chǔ)介質(zhì)也包 括在本發(fā)明的公開(kāi)中。存儲(chǔ)介質(zhì)包括但不限于軟盤(pán)、光盤(pán)、磁光盤(pán)、存儲(chǔ)卡、存儲(chǔ)棒等。
[0120] 本領(lǐng)域的普通技術(shù)人員應(yīng)理解,在此所例舉的是示例性的,本發(fā)明并不局限于此。
[0121] 在本說(shuō)明書(shū)中,"第一"、"第二"以及"第N個(gè)"等表述是為了將所描述的特征在文 字上區(qū)分開(kāi),以清楚地描述本發(fā)明。因此,不應(yīng)將其視為具有任何限定性的含義。
[0122] 作為一個(gè)示例,上述方法的各個(gè)步驟以及上述設(shè)備的各個(gè)組成模塊和/或單元可 以實(shí)施為軟件、固件、硬件或其組合,并作為相應(yīng)設(shè)備中的一部分。上述裝置中各個(gè)組成模 塊、單元通過(guò)軟件、固件、硬件或其組合的方式進(jìn)行配置時(shí)可使用的具體手段或方式為本領(lǐng) 域技術(shù)人員所熟知,在此不再贅述。
[0123] 作為一個(gè)示例,在通過(guò)軟件或固件實(shí)現(xiàn)的情況下,可以從存儲(chǔ)介質(zhì)或網(wǎng)絡(luò)向具有 專用硬件結(jié)構(gòu)的計(jì)算機(jī)(例如圖8所示的通用計(jì)算機(jī)800)安裝構(gòu)成該軟件的程序,該計(jì)算 機(jī)在安裝有各種程序時(shí),能夠執(zhí)行各種功能等。
[0124] 在上面對(duì)本發(fā)明具體實(shí)施例的描述中,針對(duì)一種實(shí)施方式描述和/或示出的特征 可以以相同或類(lèi)似的方式在一個(gè)或更多個(gè)其他實(shí)施方式中使用,與其他實(shí)施方式中的特征 相組合,或替代其他實(shí)施方式中的特征。
[0125] 應(yīng)該強(qiáng)調(diào),術(shù)語(yǔ)"包括/包含"在本文使用時(shí)指特征、要素、步驟或組件的存在,但 并不排除一個(gè)或更多個(gè)其他特征、要素、步驟或組件的存在或附加。
[0126] 此外,本發(fā)明的方法不限于按照說(shuō)明書(shū)中描述的時(shí)間順序來(lái)執(zhí)行,也可以按照其 他的時(shí)間順序地、并行地或獨(dú)立地執(zhí)行。因此,本說(shuō)明書(shū)中描述的方法的執(zhí)行順序不對(duì)本發(fā) 明的技術(shù)范圍構(gòu)成限制。
[0127] 本發(fā)明及其優(yōu)點(diǎn),但是應(yīng)當(dāng)理解在不超出由所附的權(quán)利要求所限定的本發(fā)明的精 神和范圍的情況下可以進(jìn)行各種改變、替代和變換。而且,本發(fā)明的范圍不僅限于說(shuō)明書(shū) 所描述的過(guò)程、設(shè)備、手段、方法和步驟的具體實(shí)施例。本領(lǐng)域內(nèi)的普通技術(shù)人員從本發(fā)明 的公開(kāi)內(nèi)容將容易理解,根據(jù)本發(fā)明可以使用執(zhí)行與在此的相應(yīng)實(shí)施例基本相同的功能或 者獲得與其基本相同的結(jié)果的、現(xiàn)有和將來(lái)要被開(kāi)發(fā)的過(guò)程、設(shè)備、手段、方法或者步驟。因 此,所附的權(quán)利要求旨在在它們的范圍內(nèi)包括這樣的過(guò)程、設(shè)備、手段、方法或者步驟。
[0128] 基于以上的說(shuō)明,可知公開(kāi)至少公開(kāi)了以下技術(shù)方案:
[0129] 附記1、一種神經(jīng)網(wǎng)絡(luò)系統(tǒng),包括:
[0130] 二值神經(jīng)網(wǎng)絡(luò),所述二值神經(jīng)網(wǎng)絡(luò)被配置為當(dāng)輸入數(shù)據(jù)是二值數(shù)據(jù)時(shí),將其直接 輸入所述二值神經(jīng)網(wǎng)絡(luò),其中對(duì)于所述二值神經(jīng)網(wǎng)絡(luò)的每一層,通過(guò)對(duì)該層的節(jié)點(diǎn)的值和 其對(duì)應(yīng)的權(quán)重進(jìn)行二值運(yùn)算來(lái)得到下一層的節(jié)點(diǎn),其中所述二值神經(jīng)網(wǎng)絡(luò)每層節(jié)點(diǎn)的值和 其對(duì)應(yīng)的權(quán)重都是二值數(shù)據(jù)。
[0131] 附記2、根據(jù)附記1所述的神經(jīng)網(wǎng)絡(luò)系統(tǒng),還包括:
[0132] 普通神經(jīng)網(wǎng)絡(luò),被配置為當(dāng)所述輸入數(shù)據(jù)是非二值數(shù)據(jù)時(shí),首先將其輸入所述普 通神經(jīng)網(wǎng)絡(luò),其中對(duì)于所述普通神經(jīng)網(wǎng)絡(luò)的每一層,通過(guò)對(duì)該層的節(jié)點(diǎn)的值和其對(duì)應(yīng)的權(quán) 重進(jìn)行浮點(diǎn)運(yùn)算來(lái)得到