一種神經網絡的訓練方法和設備的制造方法
【技術領域】
[0001 ]本發明的實施方式涉及數據處理技術領域,更具體地,本發明的實施方式涉及一種神經網絡的訓練方法和設備。
【背景技術】
[0002]本部分旨在為權利要求書中陳述的本發明的實施方式提供背景或上下文。此處的描述不因為包括在本部分中就承認是現有技術。
[0003]許多計算機應用、網絡服務應用都具有利用輸入對象計算輸出對象的數據處理需求。例如,在具有圖像識別功能的應用中,圖像作為輸入對象,圖像所屬的圖像標簽作為輸出對象,這些應用需要根據圖像計算出圖像所屬的圖像標簽,從而實現圖像識別。其中,圖像標簽表示圖像劃分的類別。
[0004]目前,在現有的數據處理技術中,利用輸入對象計算輸出對象的數據處理,可以采用神經網絡來實現。具體地,神經網絡可以為輸入對象提供多個可輸出對象,采用已知對應關系的輸入對象與輸出對象所組成的訓練數據,對神經網絡進行訓練,以使得訓練后的神經網絡能夠表示不同的輸入對象與各可輸出對象之間的對應關系,因此,將未知對應輸出對象的輸入對象輸入到訓練后的神經網絡之后,訓練后的神經網絡通過計算就可以輸出該輸入對象對應的輸出對象。
【發明內容】
[0005]發明人經過研究發現,現有技術中,神經網絡具有輸入層和輸出層,其中,輸出層上的每一個輸出節點對應于一個可輸出對象,即,輸出層上的節點數量與可輸出對象的數量是相同的。但是,在可輸出對象的數量過大的情況下,如果訓練數據較少或對應各可輸出對象的訓練數據不均衡,就可能導致神經網絡訓練的過程中總體誤差的上下波動,導致訓練無法收斂,從而造成訓練后的神經網絡無法為輸入對象計算出準確的輸出對象。
[0006]因此在現有技術中,神經網絡訓練經常出現無法收斂的問題,從而造成訓練后的神經網絡無法為輸入對象計算準確的輸出對象,這是非常令人煩惱的過程。
[0007]為此,非常需要一種改進的神經網絡訓練方法和設備,以避免神經網絡訓練無法收斂的問題,從而使得訓練后的神經網絡可以為輸入變量計算準確的輸出變量。
[0008]在本上下文中,本發明的實施方式期望提供一種神經網絡的訓練方法和設備。
[0009]在本發明實施方式的第一方面中,提供了一種訓練神經網絡的方法,包括:構建第一初始深度神經網絡;利用第一訓練數據對所述第一初始深度神經網絡進行訓練,以形成第一目標深度神經網絡;其中,所述第一初始深度神經網絡的輸出層上包括第一輸出節點和輔助節點,其中,每一所述第一輸出節點分別對應所述第一初始深度神經網絡的每一可輸出對象,所述第一輸出節點的數量等于所述第一初始深度神經網絡的可輸出對象的數量,所述輔助節點不對應所述第一初始深度網絡的任何可輸出對象。
[0010]在本發明第一方面的一個實施例中,所述方法還包括:對所述第一目標深度神經網絡上的節點進行改造,以形成第二初始深度神經網絡;利用第二訓練數據對所述第二初始深度神經網絡進行訓練,以形成第二目標深度神經網絡;其中,所述第二初始深度神經網絡的輸出層上包括第二輸出節點,每一所述第二輸出節點分別對應所述第二初始深度神經網絡的每一可輸出對象,所述第二輸出節點的數量等于所述第二初始深度神經網絡的可輸出對象的數量;所述第一初始深度神經網絡的可輸出對象為待識別對象的第一類別,所述第二初始深度神經網絡的可輸出對象為待識別對象的第二類別,所述第二類別為所述第一類別的細化分類。
[0011]在本發明第一方面的另一個實施例中,所述對所述第一目標深度神經網絡上的節點進行改造,以形成第二初始深度神經網絡,包括:在所述第一目標深度神經網絡中,將輸出層上的每一第一輸出節點擴展成至少一個所述第二輸出節點并刪除輸出層上的所述輔助節點,以形成所述第二初始深度神經網絡;其中,對于任意一個所述第一輸出節點,該第一輸出節點擴展出的第二輸出節點對應的第二類別為該第一輸出節點對應的第一類別的細化類別。
[0012]在本發明第一方面的又一個實施例中,所述對所述第一目標深度神經網絡上的節點進行改造,以形成第二初始深度神經網絡,包括:在所述第一目標深度神經網絡中,將輸出層上的每一所述第一輸出節點擴展成至少一個所述第二輸出節點并增加輸出層之前一層上的節點數量,以形成所述第二初始深度神經網絡;其中,對于任意一個所述第一輸出節點,該第一輸出節點擴展出的第二輸出節點對應的第二類別為該第一輸出節點對應的第一類別的細化類別。
[0013]在本發明第一方面的再一個實施例中,利用第一訓練數據對所述第一初始深度神經網絡進行訓練,以形成第一目標深度神經網絡,包括:將所述第一訓練數據的輸入值輸入所述第一初始深度神經網絡的輸入層,在所述第一初始深度神經網絡中對所述輸入值進行正向處理,以在所述第一初始深度神經網絡的輸出層得到正向處理輸出值;計算所述輸入值在第一訓練數據中對應的輸出值與所述正向處理輸出值之間的誤差值;以所述誤差值輸入所述第一初始深度神經網絡的輸出層,在所述第一初始深度神經網絡中對所述誤差值進行反向傳播,以修正所述第一初始深度神經網絡中的參數,從而形成所述第一目標深度神經網絡。
[0014]在本發明第一方面的又再一個實施例中,所述方法應用于圖像識別,所述待識別對象為圖像信息,所述第二類別為用于對圖像進行分類的圖像標簽,所述第一類別為用于對所述圖像標簽進行分類的類別。
[0015]在本發明實施方式的第二方面中,提供了一種訓練神經網絡的設備,包括:構建模塊,用于構建第一初始深度神經網絡;第一訓練模塊,用于利用第一訓練數據對所述第一初始深度神經網絡進行訓練,以形成第一目標深度神經網絡;其中,所述第一初始深度神經網絡的輸出層上包括第一輸出節點和輔助節點,其中,每一所述第一輸出節點分別對應所述第一初始深度神經網絡的每一可輸出對象,所述第一輸出節點的數量等于所述第一初始深度神經網絡的可輸出對象的數量,所述輔助節點不對應所述第一初始深度網絡的任何可輸出對象。
[0016]在本發明第二方面的一個實施例中,所述設備還包括:改造模塊,用于對所述第一目標深度神經網絡上的節點進行改造,以形成第二初始深度神經網絡;第二訓練模塊,用于利用第二訓練數據對所述第二初始深度神經網絡進行訓練,以形成第二目標深度神經網絡;其中,所述第二初始深度神經網絡的輸出層上包括第二輸出節點,每一所述第二輸出節點分別對應所述第二初始深度神經網絡的每一可輸出對象,所述第二輸出節點的數量等于所述第二初始深度神經網絡的可輸出對象的數量;
[0017]所述第一初始深度神經網絡的可輸出對象為待識別對象的第一類別,所述第二初始深度神經網絡的可輸出對象為待識別對象的第二類別,所述第二類別為所述第一類別的細化分類。
[0018]在本發明第二方面的另一個實施例中,所述改造模塊,具體用于在所述第一目標深度神經網絡中,將輸出層上的每一所述第一輸出節點擴展成至少一個所述第二輸出節點并刪除輸出層上的所述輔助節點,以形成所述第二初始深度神經網絡;其中,對于任意一個第一輸出節點,該第一輸出節點擴展出的第二輸出節點對應的第二類別為該第一輸出節點對應的第一類別的細化類別。
[0019]在本發明第二方面的又一個實施例中,所述改造模塊,具體用于在所述第一目標深度神經網絡中,將輸出層上的每一第一輸出節點擴展成至少一個第二輸出節點并增加輸出層之前一層上的節點數量,以形成所述第二初始深度神經網絡;其中,對于任意一個第一輸出節點,該第一輸出節點擴展出的第二輸出節點對應的第二類別為該第一輸出節點對應的第一類別的細化類別。
[0020]在本發明第二方面的再一個實施例中,所述第一訓練模塊包括:正向處理子模塊,用于將所述第一訓練數據的輸入值輸入所述第一初始深度神經網絡的輸入層,在所述第一初始深度神經網絡中對所述輸入值進行正向處理,以在所述第一初始深度神經網絡的輸出層得到正向處理輸出值;計算子模塊,用于計算所述輸入值在第一訓練數據中對應的輸出值與所述正向處理輸出值之間的誤差值;反向處理子模塊,用于以所述誤差值輸入所述第