神經網絡系統及該神經網絡系統的訓練方法
【專利摘要】本發明涉及一種神經網絡系統及該神經網絡系統的訓練方法。該神經網絡系統包括:輸入層;隱含層;以及每個隱含層之后的輸出層,其中,輸出層包括分類器和重構器。本發明的神經網絡系統能夠同時優化分類誤差和重構誤差,從而更好地從一個數據集中學習特征并更完整地提取該數據集的信息,以用于輔助訓練另一個相似的數據集上的神經網絡系統。
【專利說明】
神經網絡系統及該神經網絡系統的訓練方法
技術領域
[0001] 本發明涉及信息處理領域,更具體地涉及一種神經網絡系統及該神經網絡系統的 訓練方法。
【背景技術】
[0002] 近來,基于深度神經網絡的方法在字符識別領域取得一些發展。許多研究表明,傳 統的深度神經網絡(DNN)在一個數據集A上訓練的模型A_M,可以用于輔助訓練在另一個數 據集B上的模型B_M,使得B_M比直接用數據集B訓練出的模型具有更好的性能。也就是 說,深度神經網絡具有一定的迀移學習的能力。
[0003] 傳統的深度神經網絡是一種層級模型,由一個輸入層,若干個隱含層和一個輸出 層組成。圖1是傳統的深度神經網絡模型的示意圖。其中,輸入層一般為待處理的數據,隱 含層的類型包括:卷積層、池化層、全連接層等等。對于分類問題而言,輸出層一般為一個線 性分類器,如sof tmax,SVM (支持向量機)等等。
[0004] 傳統的用神經網絡進行迀移學習的過程為:給定兩個帶標注的數據集A和B,先用 神經網絡在數據集A上訓練一個模型M_A (稱為迀移學習的第一階段),然后,用數據集B對 M_A進行微調,得到數據集B上對應的模型M_B (稱為迀移學習的第二階段);或者,將M_A 中最后的若干個隱含層(一般為1~3個)替換成新的結構,然后用數據集B訓練時保持 M_A中前幾層不變,只訓練新加入的幾個隱含層,得到數據集B上對應的模型M_B (也稱作迀 移學習的第二階段)。
[0005] 傳統的深度神經網絡的優化目標是使得分類誤差最小,優化方法為后向傳播算 法。圖2示出了后向傳播算法的示意圖。首先,輸入層的信息隨著DNN網絡做前向傳播,到 輸出層之后與真值比較,得到一個誤差;然后,這個誤差逐層往回傳,從而修正每一層的參 數。如此迭代地進行,直到得到一個算法收斂。
[0006] 傳統的后向傳播算法面臨著誤差彌散的問題,即誤差在逐層往回傳的過程中越來 越小,使得深度神經網絡的前幾個隱含層得不到充分的訓練。參考文獻【1】提出,直接優化 隱含層可以解決誤差彌散問題,其方法如圖3所示,前向傳播時,輸入層的信息通過隱含層 傳遞至每一個輸出層;后向傳播時,每一個輸出層所產生的誤差逐層回傳至輸入層,并修改 每一層的參數,直到算法收斂。這里,圖3中分類器相當于圖1和圖2中的輸出層。
[0007] 不管是傳統的算法還是參考文獻【1】中的算法,其優化的目標是使得分類誤差最 小。然而,對于迀移學習而言,在數據集A上的分類誤差最小并不能保證該模型對數據集B 是最優的。
[0008] 因此,需要一種能夠同時優化分類誤差和重構誤差的改進的DNN,能更好的從數據 集A上學習特征以用于數據集B中,以及該神經網絡系統的訓練方法。
[0009] 參考文獻【I 】:CY Lee, S Xie, P Gallagher, Z Zhang, Z Tu. Deeply-Supervised Nets. arXiv 2014.
【發明內容】
[0010] 在下文中給出關于本發明的簡要概述,以便提供關于本發明的某些方面的基本理 解。應當理解,這個概述并不是關于本發明的窮舉性概述。它并不是意圖確定本發明的關 鍵或重要部分,也不是意圖限定本發明的范圍。其目的僅僅是以簡化的形式給出某些概念, 以此作為稍后論述的更詳細描述的前序。
[0011] 本發明的一個主要目的在于,提供一種神經網絡系統,包括:輸入層;隱含層;以 及每個隱含層之后的輸出層,其中,輸出層包括分類器和重構器。
[0012] 根據本發明的一個方面,提供了對上述神經網絡系統進行訓練的訓練方法,該神 經網絡系統包括N個隱含層和N個輸出層,該訓練方法包括:用第1個輸出層訓練第1個隱 含層;用第2個輸出層訓練第2個隱含層,并微調第2個隱含層;用第3個輸出層訓練第3 個隱含層,并微調第1個和第2個隱含層;依次對后面各層進行訓練,直至用第N個輸出層 訓練第N個隱含層,并微調第1個至第N-I個隱含層。
[0013] 另外,本發明的實施例還提供了用于實現上述方法的計算機程序。
[0014] 此外,本發明的實施例還提供了至少計算機可讀介質形式的計算機程序產品,其 上記錄有用于實現上述方法的計算機程序代碼。
[0015] 通過以下結合附圖對本發明的最佳實施例的詳細說明,本發明的這些以及其他優 點將更加明顯。
【附圖說明】
[0016] 參照下面結合附圖對本發明實施例的說明,會更加容易地理解本發明的以上和其 它目的、特點和優點。附圖中的部件只是為了示出本發明的原理。在附圖中,相同的或類似 的技術特征或部件將采用相同或類似的附圖標記來表示。
[0017] 圖1示出了傳統的深度神經網絡模型的示意圖;
[0018] 圖2示出了后向傳播算法的示意圖;
[0019] 圖3示出了另一種深度神經網絡模型的示意圖;
[0020] 圖4示出了根據本發明的一個實施例的神經網絡系統的示意圖400 ;
[0021] 圖5示出了根據本發明的一個實施例的對神經網絡系統進行訓練的方法500的流 程圖;
[0022] 圖6示出了根據本發明的層級累進訓練法用第一個輸出層訓練第一個隱含層的 示意圖;
[0023] 圖7示出了根據本發明的層級累進訓練法用第二個輸出層訓練前兩個隱含層的 不意圖;以及
[0024] 圖8是示出可以用于實施本發明的對神經網絡系統進行訓練的方法的計算設備 的示例性結構圖。
【具體實施方式】
[0025] 下面參照附圖來說明本發明的實施例。在本發明的一個附圖或一種實施方式中描 述的元素和特征可以與一個或更多個其它附圖或實施方式中示出的元素和特征相結合。應 當注意,為了清楚的目的,附圖和說明中省略了與本發明無關的、本領域普通技術人員已知 的部件和處理的表示和描述。
[0026] 本發明提出了一種改進的神經網絡系統,該神經網絡系統能夠同時優化分類誤差 和重構誤差,從而能夠更好地從一個數據集中學習特征并更完整地提取該數據集的信息, 以用于輔助訓練另一個相似的數據集上的神經網絡系統。
[0027] 圖4示出了根據本發明的一個實施例的神經網絡系統的示意圖400。如圖4所示, 根據本發明的一個實施例的神經網絡系統,包括輸入層402,隱含層404,以及在每一個隱 含層后面的輸出層,該輸出層包括一個分類器406和一個重構器408,共同構成了一個輸出 層。
[0028] 分類器406的類型可以與圖3中的神經網絡系統中的分類器的類型一致。對于含 有卷積層的神經網絡系統而言,重構器可以為反卷積層;對于不含卷積層的神經網絡系統 而言,重構器可以是諸多自編碼器(Autoencoder)中的一種,如稀疏自編碼器,去噪自編碼 器等等。
[0029] 對于圖4中所示的神經網絡系統的每一層輸出層(分類器+重構器),優選地,該 輸出層的優化函數為:
[0030] min λ Ec+(I-A)Er (I)
[0031] 其中E。為分類器所產生的分類誤差,E1^為重構器所產生的重構誤差,λ為平衡因 子。平衡因子λ隨著輸出層的深度(輸出層的深度定義為該輸出層前一隱含層距離輸入 層的層數)而增大。
[0032] 設k為某一輸出層的深度,N為神經網絡系統的深度,則優選地,平衡因子λ需要 滿足:
[0033] λ = f(k) e [0, 1]單調遞增,且 f(N) = 1 (2)
[0034] 依據以上⑵式的條件,在一個示例中,平衡因子λ可以取:
[003!
[003<
[003:
[0038] 可以看到,根據本發明的一個實施例的神經網絡系統的輸出層除了包括分類器以 外,還包括重構器,在對該神經網絡系統進行訓練的過程中,重構器可以用于重構輸入層。 當利用神經網絡系統進行迀移學習的過程中,在迀移學習的第一階段,在數據集A上訓練 得到根據本發明的一個實施例的神經網絡系統,可以更完整地提取數據集A上的信息,從 而可以在迀移學習的第二階段更好地用于輔助訓練數據集B上的神經網絡系統。
[0039] 此外,通過采用既包含分類器所產生的分類誤差,又包含重構器所產生的重構誤 差的優化函數,可以同時優化分類誤差和重構誤差,使得能夠更好地從數據集A學習特征 并更完整地提取數據集A上的信息,以用于輔助數據集B的訓練。
[0040] 下面,將結合附圖,說明根據本發明的一個實施例對上述神經網絡系統進行訓練 的方法。
[0041] 圖5示出了根據本發明的一個實施例的對神經網絡系統進行訓練的方法500的流 程圖。
[0042] 根據本發明的一個實施例的神經網絡系統可以采用傳統的逐層訓練法或者參考 文獻【1】中的一起訓練法進行訓練。另外,也可以采用本發明提出的層級累進訓練法進行 訓練。
[0043] 具體來說,對于圖4所示的神經網絡系統模型,首先在步驟S502中,利用第一個輸 出層訓練第一個隱含層。圖6示出了根據本發明的層級累進訓練法用第一個輸出層訓練第 一個隱含層的示意圖。
[0044] 待第一個隱含層訓練完成以后,在步驟S504中,再用第二個輸出層訓練前兩個隱 含層。要注意地是,這里不僅是訓練第二個隱含層,同時還要微調第一個隱含層。圖7示出 了根據本發明的層級累進訓練法用第二個輸出層訓練前兩個隱含層的示意圖。在圖6和圖 7中,實線框表示正在進行訓練的相關層,虛線框表示訓練已完成或待進行訓練的相關層。
[0045] 待第二個隱含層訓練完成之后,在步驟S506中,開始用第三個輸出層訓練前三個 隱含層。即,訓練第三個隱含層,同時微調前兩個隱含層。
[0046] 在步驟S508中,對于后面各層的訓練方法可以以此類推,假設神經網絡系統的深 度為N,則最后用第N個輸出層訓練第N個隱含層,并微調第1個至第N-I個隱含層,然后完 成了對神經網絡系統的訓練。
[0047] 通過上述訓練方法500,可以得到根據本發明的一個實施例的神經網絡系統。
[0048] 在一個實施例中,在上述訓練過程中,可以逐步降低已訓練好的隱含層的學習速 率。假設,當前訓練的輸出層的深度為k,當前的學習速率為II,則第p個隱含層的學習速 率定義為公式(5):
[0049] n P= n *ak ρ (5)
[0050] 其中,a e (〇, I)為衰減系數。
[0051] 在傳統的神經網絡系統訓練過程中,每一個權重w按照如下公式(6)進行調整:
[0052] w(l+1) = w η *grad (w1) (6)
[0053] 其中w1為訓練第i輪時w的值,grad(w D表示訓練第i輪時w的梯度,這里的n 即為上文所述的學習速率。
[0054] 在一個具體實施例中,當采用深度神經網絡模型進行迀移學習時,首先在迀移學 習的第一階段,對數據集A中采用以上所述的根據本發明的一個實施例的方法進行訓練, 得到神經網絡模型A_M以后,將中間隱含層的所對應的輸出層全部移除。這時改進的深度 神經網絡模型模型退化成傳統的深度神經網絡模型模型。然后可以用傳統的方法來對數據 集B對應的深度神經網絡模型模型進行訓練。
[0055] 本發明提出一種改進的神經網絡系統以及對其進行訓練的訓練方法。該神經網絡 系統能夠同時優化分類誤差和重構誤差,從而能夠更好地從數據集A上學習特征并更完整 地提取數據集A上的信息,以用于輔助訓練數據集B上的神經網絡系統。
[0056] 以上結合具體實施例描述了本發明的基本原理,但是,需要指出的是,對本領域的 普通技術人員而言,能夠理解本發明的方法和裝置的全部或者任何步驟或者部件,可以在 任何計算裝置(包括處理器、存儲介質等)或者計算裝置的網絡中,以硬件、固件、軟件或者 它們的組合加以實現,這是本領域普通技術人員在閱讀了本發明的說明的情況下運用他們 的基本編程技能就能實現的。
[0057] 因此,本發明的目的還可以通過在任何計算裝置上運行一個程序或者一組程序來 實現。所述計算裝置可以是公知的通用裝置。因此,本發明的目的也可以僅僅通過提供包 含實現所述方法或者裝置的程序代碼的程序產品來實現。也就是說,這樣的程序產品也構 成本發明,并且存儲有這樣的程序產品的存儲介質也構成本發明。顯然,所述存儲介質可以 是任何公知的存儲介質或者將來所開發出來的任何存儲介質。
[0058] 在通過軟件和/或固件實現本發明的實施例的情況下,從存儲介質或網絡向具有 專用硬件結構的計算機,例如圖8所示的通用計算機800安裝構成該軟件的程序,該計算機 在安裝有各種程序時,能夠執行各種功能等等。
[0059] 在圖8中,中央處理單元(CPU)801根據只讀存儲器(ROM)802中存儲的程序或從 存儲部分808加載到隨機存取存儲器(RAM) 803的程序執行各種處理。在RAM 803中,也根 據需要存儲當CPU 801執行各種處理等等時所需的數據。CPU 801、R0M 802和RAM 803經 由總線804彼此鏈路。輸入/輸出接口 805也鏈路到總線804。
[0060] 下述部件鏈路到輸入/輸出接口 805 :輸入部分806 (包括鍵盤、鼠標等等)、輸出 部分807 (包括顯示器,比如陰極射線管(CRT)、液晶顯示器(IXD)等,和揚聲器等)、存儲部 分808 (包括硬盤等)、通信部分809 (包括網絡接口卡比如LAN卡、調制解調器等)。通信 部分809經由網絡比如因特網執行通信處理。根據需要,驅動器810也可鏈路到輸入/輸 出接口 805。可拆卸介質811比如磁盤、光盤、磁光盤、半導體存儲器等等根據需要被安裝在 驅動器810上,使得從中讀出的計算機程序根據需要被安裝到存儲部分808中。
[0061] 在通過軟件實現上述系列處理的情況下,從網絡比如因特網或存儲介質比如可拆 卸介質811安裝構成軟件的程序。
[0062] 本領域的技術人員應當理解,這種存儲介質不局限于圖8所示的其中存儲有程 序、與設備相分離地分發以向用戶提供程序的可拆卸介質811。可拆卸介質811的例子 包含磁盤(包含軟盤(注冊商標))、光盤(包含光盤只讀存儲器(⑶-ROM)和數字通用盤 (DVD))、磁光盤(包含迷你盤(MD)(注冊商標))和半導體存儲器。或者,存儲介質可以是 ROM 802、存儲部分808中包含的硬盤等等,其中存有程序,并且與包含它們的設備一起被 分發給用戶。
[0063] 本發明還提出一種存儲有機器可讀取的指令代碼的程序產品。指令代碼由機器讀 取并執行時,可執行上述根據本發明實施例的方法。
[0064] 相應地,用于承載上述存儲有機器可讀取的指令代碼的程序產品的存儲介質也包 括在本發明的公開中。存儲介質包括但不限于軟盤、光盤、磁光盤、存儲卡、存儲棒等。
[0065] 本領域的普通技術人員應理解,在此所例舉的是示例性的,本發明并不局限于此。
[0066] 在本說明書中,"第一"、"第二"以及"第N個"等表述是為了將所描述的特征在文 字上區分開,以清楚地描述本發明。因此,不應將其視為具有任何限定性的含義。
[0067] 作為一個示例,上述方法的各個步驟以及上述設備的各個組成模塊和/或單元可 以實施為軟件、固件、硬件或其組合,并作為相應設備中的一部分。上述裝置中各個組成模 塊、單元通過軟件、固件、硬件或其組合的方式進行配置時可使用的具體手段或方式為本領 域技術人員所熟知,在此不再贅述。
[0068] 作為一個示例,在通過軟件或固件實現的情況下,可以從存儲介質或網絡向具有 專用硬件結構的計算機(例如圖8所示的通用計算機800)安裝構成該軟件的程序,該計算 機在安裝有各種程序時,能夠執行各種功能等。
[0069] 在上面對本發明具體實施例的描述中,針對一種實施方式描述和/或示出的特征 可以以相同或類似的方式在一個或更多個其他實施方式中使用,與其他實施方式中的特征 相組合,或替代其他實施方式中的特征。
[0070] 應該強調,術語"包括/包含"在本文使用時指特征、要素、步驟或組件的存在,但 并不排除一個或更多個其他特征、要素、步驟或組件的存在或附加。
[0071] 此外,本發明的方法不限于按照說明書中描述的時間順序來執行,也可以按照其 他的時間順序地、并行地或獨立地執行。因此,本說明書中描述的方法的執行順序不對本發 明的技術范圍構成限制。
[0072] 本發明及其優點,但是應當理解在不超出由所附的權利要求所限定的本發明的精 神和范圍的情況下可以進行各種改變、替代和變換。而且,本發明的范圍不僅限于說明書 所描述的過程、設備、手段、方法和步驟的具體實施例。本領域內的普通技術人員從本發明 的公開內容將容易理解,根據本發明可以使用執行與在此的相應實施例基本相同的功能或 者獲得與其基本相同的結果的、現有和將來要被開發的過程、設備、手段、方法或者步驟。因 此,所附的權利要求旨在在它們的范圍內包括這樣的過程、設備、手段、方法或者步驟。
[0073] 基于以上的說明,可知公開至少公開了以下技術方案:
[0074] 附記1、一種神經網絡系統,包括:
[0075] 輸入層;
[0076] 隱含層;以及
[0077] 每個隱含層之后的輸出層,其中,所述輸出層包括分類器和重構器。
[0078] 附記2、根據附記1所述的神經網絡系統,其中,所述輸出層的優化函數為:
[0079] 所述分類器所產生的分類誤差和所述重構器所產生的重構誤差利用平衡因子進 行線性求和的最小值。
[0080] 附記3、根據附記2所述的神經網絡系統,其中,所述平衡因子滿足所述輸出層的 深度的單調遞增函數,并且所述函數在所述神經網絡系統的深度處的函數值為1。
[0081] 附記4、根據附記3所述的神經網絡系統,其中,所述平衡因子滿足以下函數之一:
,其中λ為平衡因子,k為某一輸出層的深 度,N為所還神經IWJ絡糸統的深度,p為仕蒽正整數。
[0082] 附記5、根據附記1所述的神經網絡系統,其中,所述重構器為以下中的至少一項: 反卷積層、稀疏自編碼器、去噪自編碼器。
[0083] 附記6、根據附記1所述的神經網絡系統,其中,在對所述神經網絡系統進行訓練 的過程中,所述重構器用于重構所述輸入層。
[0084] 附記7、根據附記1所述的神經網絡系統,其中,所述神經網絡系統用于迀移學習 的第一階段。
[0085] 附記8、一種對根據附記1-7所述的神經網絡系統進行訓練的訓練方法,所述神經 網絡系統包括N個隱含層和N個輸出層,所述訓練方法包括:
[0086] 用第1個輸出層訓練第1個隱含層;
[0087] 用第2個輸出層訓練第2個隱含層,并微調第2個隱含層;
[0088] 用第3個輸出層訓練第3個隱含層,并微調第1個和第2個隱含層;
[0089] 依次對后面各層進行訓練,直至用第N個輸出層訓練第N個隱含層,并微調第1個 至第N-I個隱含層。
[0090] 附記9、根據附記8所述的神經網絡系統的訓練方法,其中,在訓練過程中,逐步降 低已訓練好的隱含層的學習速率,所述學習速率為如下這樣的參數:該參數與當前訓練得 到的權重的梯度相乘再與當前權重求差以得到下一次訓練的權重。
[0091] 附記10、根據附記9所述的神經網絡系統的訓練方法,其中,通過將當前層的學習 速率乘以衰減系數的m次冪來得到降低的指定層的學習速率,所述衰減系數取值在0到1 之間,m為所述當前層的深度減去所述指定層的深度。
【主權項】
1. 一種神經網絡系統,包括: 輸入層; 隱含層;W及 每個隱含層之后的輸出層,其中,所述輸出層包括分類器和重構器。2. 根據權利要求1所述的神經網絡系統,其中,所述輸出層的優化函數為: 所述分類器所產生的分類誤差和所述重構器所產生的重構誤差利用平衡因子進行線 性求和的最小值。3. 根據權利要求2所述的神經網絡系統,其中,所述平衡因子滿足所述輸出層的深度 的單調遞增函數,并且所述函數在所述神經網絡系統的深度處的函數值為1。4. 根據權利要求3所述的神經網絡系統,其中,所述平衡因子滿足W下函數之一:其中λ為平衡因子,k為某一輸出層的深度, N為所述神經網絡系統的深度,P為任意正整數。5. 根據權利要求1所述的神經網絡系統,其中,所述重構器為W下中的至少一項:反卷 積層、稀疏自編碼器、去噪自編碼器。6. 根據權利要求1所述的神經網絡系統,其中,在對所述神經網絡系統進行訓練的過 程中,所述重構器用于重構所述輸入層。7. 根據權利要求1所述的神經網絡系統,其中,所述神經網絡系統用于遷移學習的第 一階段。8. -種對根據權利要求1-7所述的神經網絡系統進行訓練的訓練方法,所述神經網絡 系統包括N個隱含層和N個輸出層,所述訓練方法包括: 用第1個輸出層訓練第1個隱含層; 用第2個輸出層訓練第2個隱含層,并微調第2個隱含層; 用第3個輸出層訓練第3個隱含層,并微調第1個和第2個隱含層; 依次對后面各層進行訓練,直至用第N個輸出層訓練第N個隱含層,并微調第1個至第 N-1個隱含層。9. 根據權利要求8所述的神經網絡系統的訓練方法,其中,在訓練過程中,逐步降低已 訓練好的隱含層的學習速率,所述學習速率為如下運樣的參數:該參數與當前訓練得到的 權重的梯度相乘再與當前權重求差W得到下一次訓練的權重。10. 根據權利要求9所述的神經網絡系統的訓練方法,其中,通過將當前層的學習速率 乘W衰減系數的m次幕來得到降低的指定層的學習速率,所述衰減系數取值在0到1之間, m為所述當前層的深度減去所述指定層的深度。
【文檔編號】G06N3/08GK105844331SQ201510020691
【公開日】2016年8月10日
【申請日】2015年1月15日
【發明人】陳理, 王淞, 范偉, 孫俊, 直井聰
【申請人】富士通株式會社