TW201743245A - 人造神經網路之簡化裝置和簡化方法以及應用於簡化人造神經網路之非暫態電腦可讀取儲存媒體 - Google Patents
人造神經網路之簡化裝置和簡化方法以及應用於簡化人造神經網路之非暫態電腦可讀取儲存媒體 Download PDFInfo
- Publication number
- TW201743245A TW201743245A TW105123365A TW105123365A TW201743245A TW 201743245 A TW201743245 A TW 201743245A TW 105123365 A TW105123365 A TW 105123365A TW 105123365 A TW105123365 A TW 105123365A TW 201743245 A TW201743245 A TW 201743245A
- Authority
- TW
- Taiwan
- Prior art keywords
- neural network
- simplified
- original
- neuron
- neurons
- Prior art date
Links
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 188
- 238000000034 method Methods 0.000 title claims description 26
- 210000002569 neuron Anatomy 0.000 claims abstract description 165
- 238000012549 training Methods 0.000 claims abstract description 23
- 230000009471 action Effects 0.000 claims description 14
- 238000000921 elemental analysis Methods 0.000 claims description 6
- 238000004458 analytical method Methods 0.000 claims 9
- 230000006870 function Effects 0.000 description 14
- 238000013507 mapping Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 230000001537 neural effect Effects 0.000 description 6
- 239000000523 sample Substances 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 238000012886 linear function Methods 0.000 description 4
- 238000010801 machine learning Methods 0.000 description 4
- 238000009795 derivation Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 210000001787 dendrite Anatomy 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 238000012880 independent component analysis Methods 0.000 description 2
- 238000000513 principal component analysis Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 210000003050 axon Anatomy 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Image Analysis (AREA)
Abstract
本發明提供一種人造神經網路之簡化裝置,其中包含複數個神經元、一接收電路、一記憶體與一簡化模組。該複數個神經元被組態為構成一原始神經網路。該記憶體接收用以訓練該原始神經網路之一組樣本。該記憶體係用以記錄該原始神經網路之多個可學習參數。在該原始神經網路經過該組樣本之訓練後,該簡化模組根據該記憶體所記錄之該多個可學習參數捨棄該原始神經網路中一部份的神經元連結,以據此決定一簡化後神經網路之架構。
Description
本發明與人造神經網路(artificial neural network)相關,並且尤其與可重新組態的人造神經網路相關。
以人造神經網路進行機器學習的概念存在已久,但先前受限於處理器運算能力,相關研究始終無法順利推進。近十年來,隨著處理器運算速度、記憶體存取速度以及機器學習演算法等各方面技術的長足進步,能產出正確判斷結果的人造神經網路逐漸成為可能,因而在自動駕駛、影像辨識、自然語言辨識、資料探勘等領域中重新受到高度重視。
大腦中最基本的運算單位—神經元,是透過多個樹突(dendrite)收集多個輸入信號,並透過軸突(axon)傳遞輸出信號(通常是傳遞至另一個神經元的樹突做為輸入信號)。單一人造神經元的典型運作可被數學化表示如下:,(式一)
其中符號x
表示輸入信號,y
表示輸出信號;每一個樹突各自加諸於其輸入信號x
的權重w
係模擬該樹突所連接的前一個神經元對於此神經元的影響程度;符號b
表示此神經元本身貢獻的偏移量(bias)。符號f
代表一特定非線性函數,在人造神經網路中常用Σ函數(sigmoid function)、雙曲正切(hyperbolic tangent, tanh)函數或是整流後線性函數(rectified linear function)進行實際運算。
一個人造神經網路所採行的判斷規則可說是由該網路中所有神經元的權重w
與偏移量b共同定義。採用監督式學習(supervised learning)的人造神經網路會在學習過程中將訓練樣本輸入人造神經網路,並根據最後產出的判斷結果調整各個神經元的權重w與偏移量b,以期找出令判斷結果與訓練樣本相符的對映規則。採用非監督式學習(unsupervised learning)的人造神經網路則是在不知道判斷結果與訓練樣本是否相符的情況下,自行調整各個神經元的權重w與偏移量b,設法找出潛在規則。無論是採用哪一種學習策略,目標皆是為網路中的每一個神經元找出適當的參數(權重w、偏移量b)供日後使用。
現行的人造神經網路通常被設計為具有多層(multi-layer)結構。除了最前端的輸入層與最後端的輸出層,其他串接在輸入層與輸出層之間的稱為隱藏層(hidden layer)。輸入層係用以接收外部資料,不進行運算。隱藏層與輸出層則是各自以前一層的輸出信號做為當層的輸入信號,並且各自包含多個根據式一進行運算的神經元。若以神經元連接方式區分,每一個隱藏層與輸出層可以各自是一卷積層(convolutional layer)或一全連接層(fully-connected layer)。卷積層與全連接層的主要差別在於:全連接層中的每一個神經元都會被各自連接到其相鄰前後層中的所有神經元,而卷積層中的每一個神經元只會被連接到前一層中的部分神經元。為了減少可學習參數(learnable parameter)的數量,卷積層中的多個神經元會共用同一組權重w與偏移量b。目前有多種人造神經網路架構,對於卷積層與全連接層的配置組合各有不同的規劃。以Alex Krizhevsky等學者於2012年提出的AlexNet架構為例,其中總共包含六十五萬個神經元,構成依序串接的五個卷積層以及三個全連接層。
一般而言,人造神經網路中的層數與其學習能力成正比。低層數的人造神經網路學習能力有限,面對性質較複雜的訓練樣本,即使進行大量的訓練,往往仍然無法找出令判斷結果與訓練樣本相符的對映規則(或稱無法收斂於可靠的對映規則)。因此,在需要進行較複雜的判斷時,目前的做法是利用運算資源無虞的超級電腦來實現具有高層數結構(例如二十九個運算層)、高學習能力的人造神經網路。
相對於超級電腦,消費性電子產品(尤其是行動裝置)中的硬體規模與電力等運算資源大多非常有限(例如只足以實現具有五個運算層的人造神經網路)。當消費性電子產品執行與人造神經網路相關的應用程式且需要進行較複雜的判斷時,通常是透過網際網路連接到服務供應商的伺服器,請求遠端的超級電腦協助運算並回傳判斷結果。然而,這種做法有幾個缺點。首先,網路連線的穩定性極易受到環境影響。在網路連線不穩定的情況下,遠端的超級電腦可能無法即時將判斷結果提供給消費性電子產品。對於自動駕駛這類涉及人身安全且亟需即時判斷的應用,無法即時得到判斷結果的後果相當嚴重。再者,行動網路傳輸常常是以流量計費。此因素無疑會對許多使用者造成負擔。
為解決上述問題,本發明提出一種人造神經網路之簡化裝置與簡化方法。
根據本發明之一具體實施例為一種人造神經網路之簡化裝置,其中包含複數個神經元、一接收電路、一記憶體與一簡化模組。該複數個神經元被組態為構成一原始神經網路。該接收電路接收用以訓練該原始神經網路之一組樣本。該記憶體係用以記錄該原始神經網路之多個可學習參數。在該原始神經網路經過該組樣本之訓練後,該簡化模組根據該記憶體記錄之該多個可學習參數,捨棄該原始神經網路中一部份的神經元連結,並據此決定一簡化後神經網路之架構。
根據本發明之另一具體實施例為一種人造神經網路之簡化方法。首先,一組樣本被用來訓練由複數個神經元構成之一原始神經網路,藉此為該原始神經網路決定多個可學習參數。接著,根據前一步驟為該原始神經網路決定之該多個可學習參數,該原始神經網路中一部份的神經元連結被捨棄,且一簡化後神經網路之架構據此被決定。
根據本發明之另一具體實施例為一種應用於簡化人造神經網路之非暫態電腦可讀取儲存媒體,其中儲存有能由一個或多個電腦讀取並執行之一程式碼。當該程式碼被執行,該一個或多個電腦所進行之動作包含:(a)利用一組樣本來訓練由複數個神經元構成之一原始神經網路,藉此為該原始神經網路決定多個可學習參數;以及(b)根據動作(a)為該原始神經網路決定之該多個可學習參數,捨棄該原始神經網路中一部份的神經元連結,並據此決定一簡化後神經網路之架構。
關於本發明的優點與精神可以藉由以下發明詳述及所附圖式得到進一步的瞭解。
根據本發明之一具體實施例為一種人造神經網路之簡化裝置,其中包含複數個神經元、一接收電路、一記憶體與一簡化模組,且該複數個神經元被組態為構成一原始神經網路。圖一呈現一個具有三層結構的人造神經網路做為該原始神經網路的範例。須說明的是,雖然實務中,人造神經網路所包含的運算層數量、神經元數量和連接複雜度皆遠高於此範例所示者,但本發明所屬技術領域中具有通常知識者透過後續介紹可理解,本發明的範疇不限於特定網路結構複雜度。
請參閱圖一。接收電路(或稱輸入層)110係用以接收外部資料D1
至D3
。隱藏層120、130為全連接層,且分別包含四個神經元(121至124)與兩個神經元(131至132)。輸出層140則是僅包含一個神經元(141)。記憶體150耦接至各個運算層中的神經元。簡化模組160則是耦接至記憶體150。
首先,一組樣本會被送入接收電路110,藉此訓練原始神經網路100。本發明的範疇並未限定於該組樣本的型態或樣本數量。舉例而言,該組樣本可為多個圖片檔、多個音訊檔或多段文字,但不以此為限。如先前所述,每個神經元係根據各自的可學習參數(權重w
、偏移量b
)針對其輸入信號進行運算。在進行機器學習的過程中,無論其學習策略是僅有前向傳播,或兼有前向傳播與反向傳播(backpropagation),這些可學習參數都會被不斷地修改調整。須說明的是,可學習參數在機器學習過程中的調整方式為本發明所屬技術領域中具有通常知識者所知,於此不贅述,亦不對本發明的範疇構成限制。
記憶體150負責在學習過程中與學習完成後,為隱藏層120、130與輸出層140中的每一個神經元記錄目前最新的可學習參數。舉例而言,神經元121的運算結果可表示如下:。(式二)
因此,記憶體150為神經元121所記錄的可學習參數包含一個偏移量b
與分別對應於外部資料D1
至D3
的三個權重w
(即、與)。依此類推。記憶體150所記錄的每個權重w
實際上也是對應於原始神經網路100中的一個特定神經元連結。由記憶體150的記錄中亦可看出每一個神經元連結的起點與終點。
本發明的範疇並未限定於特定儲存機制。實務上,記憶體150可包含一個或多個揮發性或非揮發性記憶體裝置,例如動態隨機存取半導體記憶體、磁性記憶體、光學記憶體、快閃記憶體等等。此外,記憶體150在實體上可以是單一裝置,也可以被分散為多個較小的儲存單元,分別配置在原始神經網路100中各個神經元的鄰近區域。
實務上,簡化模組160可利用多種控制和處理平台實現,包含固定式的和可程式化的邏輯電路,例如可程式化邏輯閘陣列、針對特定應用的積體電路、微記憶體、微處理器、數位信號處理器。此外,簡化模組160亦可被設計為透過執行記憶體150中所儲存之處理器指令來完成多種任務。在利用該組樣本完成對原始神經網路100的訓練後,簡化模組160會根據記憶體150所記錄的可學習參數,捨棄原始神經網路100中一部份的神經元連結,據此決定一簡化後神經網路之架構。以下分述簡化模組160於捨棄神經元連結時可採用的幾種簡化策略與相對應的簡化效果。
於一實施例中,簡化模組160包含一比較器電路。自記憶體150取得原始神經網路100中部份或所有神經元連結對應的權重w
後,簡化模組160利用比較器電路逐一判斷每個權重w
的絕對值|w
|是否低於一門檻值T。若一權重的絕對值|w
|低於門檻值T,簡化模組160即判定應捨棄對應於此權重w
的神經元連結,並將各個神經元連結應被捨棄或保留的判斷結果寫入記憶體150。舉例而言,電路設計者可為每一個神經元連結在記憶體150中設置一個儲存單元,用以儲存一旗標(flag)。該旗標的預設狀態為一第一狀態(例如二進位數值1)。當一神經元連結被判定為應捨棄,簡化模組160便將相對應的旗標由第一狀態改為第二狀態(例如二進位數值0)。
實務上,簡化模組160採用的門檻值T可以是一個根據經驗或數學推演產生的絕對數值(例如0.05),也可以是一個相對數值(例如原始神經網路100中所有權重w
之平均絕對值的二十分之一)。圖二(A)至圖二(C)為對應於此簡化策略的一組範例,呈現捨棄部分神經元連結前後的網路架構差異。圖二(A)中以虛線繪製的神經元連結為權重絕對值|w
|低於門檻值T的神經元連結(以下簡稱較弱神經元連結)。圖二(B)為簡化模組160將該等較弱神經元連結全部捨棄的結果。由圖二(B)可看出,在捨棄該等較弱神經元連結之後,外部資料D3
、神經元123兩者與其他神經元間皆已完全不存在任何神經元連結,成為無效的外部資料/神經元。因此,如圖二(C)所示,外部資料D3
與神經元123也可以被捨棄。
如先前所述,權重w
係模擬一神經元連結所連接之前級神經元對於後級神經元的影響程度。權重絕對值|w
|愈小,表示前級神經元之輸出信號對於後級神經元的影響愈低。捨棄原始神經網路100中權重絕對值較低的神經元連結,等同於捨棄運算過程中對最終判斷結果(於此範例中為神經元141之運算結果)影響較低的計算項次。值得注意的是,在圖二(B)中,雖然神經元132與其前級神經元(124)之間仍存在神經元連結,但神經元132與其後級神經元(141)間已無神經元連結。這表示神經元132的運算結果對於神經元141的影響可忽略。因此在圖二(C)中,神經元132也被捨棄。
比較圖二(A)與圖二(C)可看出,簡化後神經網路200中的運算量比原始神經網路100低許多,顯然達成簡化原始神經網路100的效果。電路設計者可依實際需求決定門檻值T的高低。可理解的是,門檻值T較高時,被簡化模組160省略的神經元連結數量會較多,因而使簡化後神經網路200與原始神經網路100的最終判斷結果()差異較大。相對地,若設定一個較低的門檻值T,會使得簡化後神經網路與原始神經網路100差異較小、兩個最終判斷結果較相近。藉由適當選擇門檻值T,電路設計者可將最終判斷結果之差異控制在可容忍的範圍內,同時達到減少人造神經網路中運算量的效果。實務上,誤差容許範圍可能因簡化後神經網路的應用場合而異,因此不以特定數值為限。
於另一實施例中,簡化模組160根據該多個可學習參數,判斷是否能將原本由一第一神經元負責之運算併入一第二神經元負責之運算。若該第一神經元被整併,連接至第一神經元的一個或多個神經元連結自然被捨棄。圖二(C)中的簡化後神經網路200被重繪於圖三(A)做為說明範例。首先,根據記憶體150中的記錄,簡化模組160試著找出符合下列兩個條件的至少兩個權重參數:(1)對應於同一個後級神經元,以及(2)數值相近(例如差異在一預設範圍內)。以圖三(A)為例,權重、、符合條件(1),亦即對應於同一個後級神經元(神經元131)。簡化模組160可利用比較器電路,判斷權重、、中是否有至少兩個權重參數符合條件(2)。
假設比較器電路的結果指出權重、大小相近,則簡化模組160會進一步利用比較器電路,判斷權重、各自對應的前級神經元(121、122)於進行運算時所使用的權重參數之絕對值是否都低於一門檻值T’。在圖三(A)的範例中,神經元121進行運算時使用到的權重參數為,而神經元122進行運算時使用到的權重參數為。如果比較器電路的結果指出,絕對值小於門檻值T’,且絕對值亦小於門檻值T’,則簡化模組160便可將神經元121負責的運算併入神經元122負責之運算。以下詳述可執行此合併的理由及方式。
若採用雙曲正切(tanh)函數做為神經元131的運算函數f
,則神經元131的運算結果可被表示為:。(式三)
由於權重、大小相近,式三中、兩個項次可被合併,且透過線性疊加(linear superposition)近似如下: 。(式四)
圖四呈現一雙曲正切函數之示意圖。在橫軸範圍410內,大致為一直線,可被近似為函數,其中符號a
為該線段的斜率。
雖然式四中的外部資料、為未知數,但先前經過比較後已知絕對值小於門檻值T’,絕對值亦小於門檻值T’,因此可推論式四中的、、三個數值落在範圍410內的機率相當高。若這三個項次都落在範圍410內,則線性疊加幾乎不會對整體運算結果造成影響。換句話說,只要選定適當的門檻值T’來限制絕對值||、||,式四中的簡化可以在多數情況下是合理的。實務上,此門檻值T’可由電路設計者根據推導或經驗決定,不以特定數值為限。
值得注意的是,由於絕對值、不會太高(至少皆小於門檻值T’),即使並非、、都落在範圍410內,使用線性疊加造成的誤差通常不會太大。
圖三(B)呈現對應於式四的簡化後神經網路300。由圖三(B)可看出,原本在外部資料D1
與神經元121間的神經元連結被轉移至神經元122,而原本在神經元121、131間的神經元連結被捨棄。在這個情況下,權重不再被需要,而其他權重w
的大小保持不變。在簡化後神經網路300中,神經元131的運算結果可被表示為:,(式五)
其中,。原本神經元121的偏移量被合併至神經元122,為神經元122產生新的偏移量。實務上,簡化模組160可將這些經修改後的神經元連結關係與可學習參數記錄於記憶體150。
依此類推,如果權重、、三者大小相近,簡化模組160甚至可能將神經元121、122、124的運算併入其中單一個神經元。更廣泛地說,簡化模組160可根據記憶體150所記錄的多個可學習參數,考慮應合併哪些神經元較為適當,例如能夠達到較大幅度的運算量簡化,或是能令簡化前後的最終判斷結果差異較小。
根據本發明的概念,能被簡化模組160合併的神經元並不限於同一個運算層中的神經元。簡化模組160還可根據該多個可學習參數,判斷是否能將原本由一第一運算層負責之運算併入一第二運算層負責之運算。若該第一運算層被整併,連接至第一運算層的一個或多個神經元連結自然被捨棄。於一實施例中,簡化模組160捨棄符合下列條件的運算層:以該運算層為後級運算層的全部神經元連結所對應之權重參數的絕對值都低於一門檻值T”。
以圖三(B)為例,以隱藏層130為後級運算層的全部神經元連結所對應之權重參數有和。簡化模組160可利用比較器電路,判斷是否絕對值、皆低於門檻值T”。若經由比較發現,絕對值、皆低於門檻值T”,則簡化模組160可將原本由隱藏層130負責之運算併入輸出層140負責之運算。以下詳述可執行此合併的理由及方式。
若採用雙曲正切函數做為神經元141的運算函數f
,則神經元141的運算結果可被表示為: 。(式六)
若以線性函數取代神經元131中的非線性函數,則式六可被改寫為: 。(式七)
雖然式七中的運算結果、為未知數,但先前經過比較後已知絕對值、皆低於門檻值T”,因此可推論這個數值落在範圍410內的機率相當高。若恰好落在範圍410內,以線性函數取代非線性函數幾乎不會令式七的運算結果不同於式六的運算結果。換句話說,只要選定適當的門檻值T”來確保絕對值、夠低,式七中的簡化可以在多數情況下是合理的。實務上,此門檻值T”可由電路設計者根據推導或經驗決定,不以特定數值為限。
值得注意的是,由於絕對值、不會太高(至少皆小於門檻值T”),即使並未落在範圍410內,使用線性函數來替換非線性函數造成的誤差通常不會太大。
式七所對應的簡化結果被呈現於圖三(C)。在這個範例中,原本由神經元131負責的運算被併入下一個運算層140中的神經元141。原本在神經元131、141間的神經元連結被捨棄。神經元122、131間的神經元連結被取代為神經元122、141間的神經元連結,且對應於一個新的權重,也就是等於式七中加諸於運算結果的權重。相似地,神經元124、131間的神經元連結被取代為神經元124、141間的神經元連結,且對應於一個新的權重,也就是等於式七中加諸於運算結果的權重。此外,簡化模組160會將神經元141的偏移量由修改為式七中的數值。實務上,簡化模組160可將這些經修改後的神經元連結關係與可學習參數記錄於記憶體150。
在這個範例中,原本的運算層130被捨棄。相較於原始神經網路100,簡化後神經網路320不僅運算量較低,其運算層總數量亦較少。由此可看出,若原始神經網路100的可學習參數恰好符合適於簡化的條件,簡化模組160在簡化過程中有機會能夠降低神經網路的運算層數量。
須說明的是,簡化模組160可僅採用前述幾種簡化策略中的一種,亦可採用數種,加以組合使用。此外,每個簡化策略可被重複執行不只一次。舉例而言,簡化模組160可以設定另一個門檻值,在簡化後神經網路320建立之後,捨棄簡化後神經網路320中相對應權重絕對值低於此門檻值的神經元連結,對簡化後神經網路320施以進一步的簡化。或者,簡化模組160亦可不捨棄權重絕對值較低的神經元連結,直接考慮要合併原始神經網路100中哪些神經元的運算。
前述幾種簡化策略可以應用在全連接層,亦可應用在卷積層。此外,除了圖一中的神經元、接收電路、記憶體與簡化模組,根據本發明之簡化裝置可包含其他電路,例如但不限於連接在某些卷積層後的池化層(pooling layer)及負責產生時脈信號的振盪器。本發明所屬技術領域中具有通常知識者可理解,本發明的範疇不限於以某種特定組態或架構來實現。根據本發明之簡化裝置可應用於但不限於以下幾種此領域中常被使用的網路架構:由Yann LeCun提出的LeNet、由Alex Krizhevsky等人提出的AlexNet、由Matthew Zeiler等人提出的ZF Net、由Szegedy等人提出的GoogLeNet、由Karen Simonyan等人提出的VGGNet,以及由Kaiming He等人提出的ResNet。
於一實施例中,原始神經網路100為一可重新組態的神經網路,可以透過重新調整神經元間的佈線來改變神經網路的架構。在決定一簡化後神經網路的架構之後,簡化模組160可進一步根據先前儲存在記憶體150中的神經元連結關係與可學習參數之修改結果,將原始神經網路100中的神經元重新組態為構成該簡化後神經網路。舉例而言,若決定採用簡化後神經網路320,簡化模組160可自原始神經網路100的七個神經元中選出三個神經元(例如神經元121至123),並調整佈線,將這三個神經元與接收電路110間的連結方式組態為如圖三(C)所示。相較於訓練過程中的原始神經網路100,簡化後神經網路320被用以進行後續判斷運算時,可以減省電力消耗、記憶體存取量等運算資源,亦可能縮短運算時間(由於運算層數量減少)。
於另一實施例中,在決定一簡化後神經網路之後,簡化模組160將簡化後神經網路之架構提供給另外複數個神經元使用。實務上,原始神經網路100可以是具有高層數結構(例如二十九個運算層)、高學習能力的超級電腦。在簡化模組160配合原始神經網路100決定出簡化後神經網路的架構後,這套架構便可被應用在其他利用消費性電子產品之運算處理器實現的低層數人造神經網路。舉例而言,消費性電子產品的製造商可以根據簡化模組160決定的架構來設計具有固定硬體架構的人造神經網路晶片。或者,若一消費性電子產品中設置有可重新組態的人造神經網路,則可令該消費性電子產品根據簡化模組160找出的簡化後神經網路架構與可學習參數來組態其人造神經網路。於實際應用中,簡化模組160找出的簡化後神經網路架構及其可學習參數可被寫入一組態檔案(configuration file),做為消費性電子產品的組態依據。簡化模組160甚至可以針對多組不同的樣本,適性產生多套簡化後神經網路架構,並編寫為多個組態檔案,交由消費性電子產品依需要選用。
如先前所述,低層數的人造神經網路學習能力有限,面對性質較複雜的訓練樣本,即使進行大量的訓練,往往仍然無法找出令判斷結果與訓練樣本相符的對映規則。利用本發明的概念,一開始找出對映規則的訓練過程可以交由學習能力較強的超級電腦負責;消費性電子產品中的低層數人造神經網路無須自行學習,只要直接套用超級電腦的學習結果即可。雖然簡化後神經網路的判斷結果可能會與原始神經網路的判斷結果略有差異,但簡化後的對映規則不會有無法收斂的問題。若簡化模組160採用的簡化策略得當,簡化後神經網路甚至有可能產出近似於原始神經網路的最終判斷結果。
請參閱圖五。於此實施例中,根據本發明之人造神經網路簡化裝置進一步包含一輸入分析器170。輸入分析器170係用以接收一組原始樣本,並對該組原始樣本施以一元素分析。實務上,該元素分析可為但不限於一主元素分析(principle component analysis, PCA)或是一獨立元素分析(independent component analysis, ICA)。輸入分析器170藉此提取出該組原始樣本之至少一基本元素。舉例而言,該組原始樣本可能包含一萬筆原始數據(例如一萬張主題為人類臉部的照片),而輸入分析器170產生的基本元素之數量可能僅有五十筆(例如人類臉部五官等共通的特徵)。
輸入分析器170會將該至少一基本元素提供給接收電路110,做為一開始用以訓練原始神經網路100之該組樣本。這種做法的好處在於,相較於將一萬筆數據送入原始神經網路100進行訓練,僅利用五十筆基本元素對原始神經網路100施以訓練所耗用的時間會縮短很多。由於被輸入分析器170提取出的基本元素能相當程度地代表該組原始樣本,因此利用該等基本元素亦能達到相當程度的訓練效果。須說明的是,元素分析的實施細節為本發明所屬技術領域中具有通常知識者所知,於此不贅述,亦不對本發明的範疇構成限制。
於一實施例中,在一簡化後神經網路構成之後,輸入分析器170所分析的該組原始樣本也被提供至該簡化後神經網路,並且用來訓練該簡化後神經網路。由於簡化後神經網路的運算量較少、運算時間較短,且一開始即有已收斂的對映規則可使用,利用較大量的原始樣本對簡化後神經網路施以訓練是可行的。藉此,該簡化後神經網路中的可學習參數可被進一步優化。
根據本發明之另一具體實施例為一種人造神經網路之簡化方法。請參閱圖六呈現之流程圖。首先,步驟S601為利用一組樣本來訓練由複數個神經元構成之一原始神經網路,藉此為該原始神經網路決定多個可學習參數。接著,步驟S602為根據步驟S601為該原始神經網路決定之該多個可學習參數,捨棄該原始神經網路中一部份的神經元連結,並據此決定一簡化後神經網路之架構。
本發明所屬技術領域中具有通常知識者可理解,先前在介紹簡化裝置之實施例時描述的各種操作變化亦可應用至圖六中的簡化方法,其細節不再贅述。
根據本發明之另一具體實施例為一種應用於簡化人造神經網路之非暫態電腦可讀取儲存媒體,其中儲存有能由一個或多個電腦讀取並執行之一程式碼。當該程式碼被執行,該一個或多個電腦所進行之動作包含:(a)利用一組樣本來訓練由複數個神經元構成之一原始神經網路,藉此為該原始神經網路決定多個可學習參數;以及(b)根據動作(a)為該原始神經網路決定之該多個可學習參數,捨棄該原始神經網路中一部份的神經元連結,並據此決定一簡化後神經網路之架構。
實務上,上述電腦可讀取媒體可為任何一種非暫態媒體,儲存有能被處理器讀取、解碼並執行的指令。非暫態媒體包含電子、磁性及光學儲存裝置。非暫態電腦可讀取媒體包含但不限於:唯讀記憶體(ROM)、隨機存取記憶體(RAM)和其他電子儲存裝置、CD-ROM、DVD和其他光學儲存裝置、磁帶、軟碟、硬碟及其他磁性儲存裝置。該等處理器指令可利用各種程式語言實現本發明。另一方面,先前在介紹簡化裝置之實施例時描述的各種操作變化亦可應用至上述電腦可讀取媒體,其細節不再贅述。
藉由以上較佳具體實施例之詳述,係希望能更加清楚描述本發明之特徵與精神,而並非以上述所揭露的較佳具體實施例來對本發明之範疇加以限制。相反地,其目的是希望能涵蓋各種改變及具相等性的安排於本發明所欲申請之專利範圍的範疇內。此外,本揭露書中的數學表示式係用以說明與本發明之實施例相關的原理和邏輯,除非有特別指明的情況,否則不對本發明之範疇構成限制。本發明所屬技術領域中具有通常知識者可理解,有多種技術可實現該等數學式所對應的物理表現形式。 以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
100‧‧‧原始神經網路
110‧‧‧接收電路
120、130‧‧‧隱藏層
121至124、131至132、141‧‧‧神經元
140‧‧‧輸出層
150‧‧‧記憶體
160‧‧‧簡化模組
170‧‧‧輸入分析器
200、300、320‧‧‧簡化後神經網路
410‧‧‧範圍
D1至D3‧‧‧外部資料
S601至S602‧‧‧流程步驟
至‧‧‧權重
110‧‧‧接收電路
120、130‧‧‧隱藏層
121至124、131至132、141‧‧‧神經元
140‧‧‧輸出層
150‧‧‧記憶體
160‧‧‧簡化模組
170‧‧‧輸入分析器
200、300、320‧‧‧簡化後神經網路
410‧‧‧範圍
D1至D3‧‧‧外部資料
S601至S602‧‧‧流程步驟
至‧‧‧權重
圖一呈現一個具有三層結構的人造神經網路做為一原始神經網路的範例,並呈現根據本發明之簡化裝置與該原始神經網路的相對關係。 圖二(A)至圖二(C)呈現一組捨棄部分神經元連結前後的網路架構對照範例。 圖三(A)至圖三(C)呈現另一組捨棄部分神經元連結前後的網路架構對照範例。 圖四呈現一雙曲正切函數之示意圖。 圖五呈現根據本發明之簡化裝置進一步包含一輸入分析器的實施例。 圖六為根據本發明之一實施例中的人造神經網路簡化方法之流程圖。 須說明的是,本發明的圖式包含呈現多種彼此關聯之功能性模組的功能方塊圖。該等圖式並非細部電路圖,且其中的連接線僅用以表示信號流。功能性元件及/或程序間的多種互動關係不一定要透過直接的電性連結始能達成。此外,個別元件的功能不一定要如圖式中繪示的方式分配,且分散式的區塊不一定要以分散式的電子元件實現。
S601至S602‧‧‧流程步驟
Claims (27)
- 一種人造神經網路之簡化裝置,包含: 複數個神經元,被組態為構成一原始神經網路; 一接收電路,耦接至該複數個神經元,接收用以訓練該原始神經網路之一組樣本; 一記憶體,耦接至該複數個神經元,用以記錄該原始神經網路之多個可學習參數;以及 一簡化模組,耦接至該記憶體,用以在該原始神經網路經過該組樣本之訓練後,根據該記憶體記錄之該多個可學習參數,捨棄該原始神經網路中一部份的神經元連結,並據此決定一簡化後神經網路之架構。
- 如申請專利範圍第1項所述之簡化裝置,其中該多個可學習參數包含一權重參數,該簡化模組判斷該權重參數之絕對值是否低於一門檻值;若判斷結果為是,該簡化模組即捨棄對應於此權重參數之一神經元連結。
- 如申請專利範圍第1項所述之簡化裝置,其中該原始神經網路包含一第一神經元與一第二神經元,該簡化模組根據該多個可學習參數判斷是否將原本由該第一神經元負責之運算併入該第二神經元負責之運算。
- 如申請專利範圍第1項所述之簡化裝置,其中該原始神經網路包含一第一運算層與一第二運算層,該簡化模組根據該多個可學習參數判斷是否將原本由該第一運算層負責之運算併入該第二運算層負責之運算。
- 如申請專利範圍第1項所述之簡化裝置,進一步包含: 一輸入分析器,用以接收一組原始樣本,並對該組原始樣本施以一元素分析,以提取出該組原始樣本之至少一基本元素,該輸入分析器將該至少一基本元素提供給該接收電路,做為用以訓練該原始神經網路之該組樣本。
- 如申請專利範圍第5項所述之簡化裝置,其中該元素分析為一主元素分析或一獨立元素分析。
- 如申請專利範圍第5項所述之簡化裝置,其中在該簡化後神經網路構成之後,該組原始樣本被用來訓練該簡化後神經網路,藉此優化該簡化後神經網路中之多個可學習參數。
- 如申請專利範圍第1項所述之簡化裝置,其中在該簡化模組決定該簡化後神經網路之架構後,該簡化模組將該複數個神經元重新組態為構成該簡化後神經網路。
- 如申請專利範圍第1項所述之簡化裝置,其中該簡化模組將該簡化後神經網路之架構提供給另外複數個神經元使用。
- 一種人造神經網路之簡化方法,包含: (a)利用一組樣本來訓練由複數個神經元構成之一原始神經網路,藉此為該原始神經網路決定多個可學習參數;以及 (b)根據步驟(a)為該原始神經網路決定之該多個可學習參數,捨棄該原始神經網路中一部份的神經元連結,並據此決定一簡化後神經網路之架構。
- 如申請專利範圍第10項所述之簡化方法,其中該多個可學習參數包含一權重參數,且步驟(b)包含: 判斷該權重參數之絕對值是否低於一門檻值;以及 若判斷結果為是,捨棄對應於該權重參數之一神經元連結。
- 如申請專利範圍第10項所述之簡化方法,其中該原始神經網路包含一第一神經元與一第二神經元,且步驟(b)包含: 根據該多個可學習參數,判斷是否將原本由該第一神經元負責之運算併入該第二神經元負責之運算;以及 捨棄連接至該第一神經元之一個或多個神經元連結。
- 如申請專利範圍第10項所述之簡化方法,其中該原始神經網路包含一第一運算層與一第二運算層,且步驟(b)包含: 根據該多個可學習參數,判斷是否將原本由該第一運算層負責之運算併入該第二運算層負責之運算;以及 捨棄連接至該第一運算層之一個或多個神經元連結。
- 如申請專利範圍第10項所述之簡化方法,進一步包含: 接收一組原始樣本; 對該組原始樣本施以一元素分析,以提取出該組原始樣本之至少一基本元素;以及 以該至少一基本元素做為用以訓練該原始神經網路之該組樣本。
- 如申請專利範圍第14項所述之簡化方法,其中該元素分析為一主元素分析或一獨立元素分析。
- 如申請專利範圍第14項所述之簡化方法,進一步包含: 在該簡化後神經網路構成之後,利用該組原始樣本來訓練該簡化後神經網路,藉此優化該簡化後神經網路之多個可學習參數。
- 如申請專利範圍第10項所述之簡化方法,進一步包含: 在步驟(b)後,將該複數個神經元重新組態為構成該簡化後神經網路。
- 如申請專利範圍第10項所述之簡化方法,進一步包含: 在步驟(b)後,將該簡化後神經網路之架構提供給另外複數個神經元使用。
- 一種應用於簡化人造神經網路之非暫態電腦可讀取儲存媒體,其中儲存有能由一個或多個電腦讀取並執行之一程式碼,當該程式碼被執行,該一個或多個電腦所進行之動作包含: (a)利用一組樣本來訓練由複數個神經元構成之一原始神經網路,藉此為該原始神經網路決定多個可學習參數;以及 (b)根據動作(a)為該原始神經網路決定之該多個可學習參數,捨棄該原始神經網路中一部份的神經元連結,並據此決定一簡化後神經網路之架構。
- 如申請專利範圍第19項所述之非暫態電腦可讀取儲存媒體,其中該多個可學習參數包含一權重參數,且動作(b)包含: 判斷該權重參數之絕對值是否低於一門檻值;以及 若判斷結果為是,捨棄對應於該權重參數之一神經元連結。
- 如申請專利範圍第19項所述之非暫態電腦可讀取儲存媒體,其中該原始神經網路包含一第一神經元與一第二神經元,且動作(b)包含: 根據該多個可學習參數,判斷是否將原本由該第一神經元負責之運算併入該第二神經元負責之運算;以及 捨棄連接至該第一神經元之一個或多個神經元連結。
- 如申請專利範圍第19項所述之非暫態電腦可讀取儲存媒體,其中該原始神經網路包含一第一運算層與一第二運算層,且動作(b)包含: 根據該多個可學習參數與一門檻值,判斷是否將原本由該第一運算層負責之運算併入該第二運算層負責之運算;以及 捨棄連接至該第一運算層之一個或多個神經元連結。
- 如申請專利範圍第19項所述之非暫態電腦可讀取儲存媒體,其中,當該程式碼被執行,該一個或多個電腦所進行之動作進一步包含: 接收一組原始樣本; 對該組原始樣本施以一元素分析,以提取出該組原始樣本之至少一基本元素;以及 以該至少一基本元素做為用以訓練該原始神經網路之該組樣本。
- 如申請專利範圍第23項所述之非暫態電腦可讀取儲存媒體,其中該元素分析為一主元素分析或一獨立元素分析。
- 如申請專利範圍第23項所述之非暫態電腦可讀取儲存媒體,其中,當該程式碼被執行,該一個或多個電腦所進行之動作進一步包含: 在該簡化後神經網路構成之後,利用該組原始樣本來訓練該簡化後神經網路,藉此優化該簡化後神經網路之多個可學習參數。
- 如申請專利範圍第19項所述之非暫態電腦可讀取儲存媒體,其中,當該程式碼被執行,該一個或多個電腦所進行之動作進一步包含: 在動作(b)後,將該複數個神經元重新組態為構成該簡化後神經網路。
- 如申請專利範圍第19項所述之非暫態電腦可讀取儲存媒體,其中,當該程式碼被執行,該一個或多個電腦所進行之動作進一步包含: 在動作(b)後,將該簡化後神經網路之架構提供給另外複數個神經元使用。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/182,616 US20170364799A1 (en) | 2016-06-15 | 2016-06-15 | Simplifying apparatus and simplifying method for neural network |
US15/182,616 | 2016-06-15 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201743245A true TW201743245A (zh) | 2017-12-16 |
TWI634488B TWI634488B (zh) | 2018-09-01 |
Family
ID=60659673
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW105123365A TWI634488B (zh) | 2016-06-15 | 2016-07-25 | 人造神經網路之簡化裝置和簡化方法以及應用於簡化人造神經網路之非暫態電腦可讀取儲存媒體 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20170364799A1 (zh) |
CN (1) | CN107516132A (zh) |
TW (1) | TWI634488B (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3564866A4 (en) * | 2016-12-28 | 2020-03-25 | Shanghai Cambricon Information Technology Co., Ltd | CALCULATION PROCEDURE |
CN107862380A (zh) * | 2017-10-19 | 2018-03-30 | 珠海格力电器股份有限公司 | 人工神经网络运算电路 |
DE102018200878B3 (de) * | 2018-01-19 | 2019-02-21 | Zf Friedrichshafen Ag | Detektion von Gefahrengeräuschen |
JP7054645B2 (ja) * | 2018-05-18 | 2022-04-14 | ヤフー株式会社 | 生成装置、生成方法、生成プログラムおよびプログラムパラメータ |
US11698930B2 (en) * | 2018-06-21 | 2023-07-11 | Intel Corporation | Techniques for determining artificial neural network topologies |
JP6986503B2 (ja) * | 2018-09-10 | 2021-12-22 | 日立Astemo株式会社 | 電子制御装置、ニューラルネットワーク更新システム |
WO2020054402A1 (ja) * | 2018-09-11 | 2020-03-19 | 国立大学法人 和歌山大学 | ニューラルネットワーク処理装置、コンピュータプログラム、ニューラルネットワーク製造方法、ニューラルネットワークデータの製造方法、ニューラルネットワーク利用装置、及びニューラルネットワーク小規模化方法 |
EP3847584A4 (en) * | 2018-09-18 | 2022-06-29 | The Trustees of Princeton University | System and method for synthesis of compact and accurate neural networks (scann) |
CN111695683B (zh) * | 2019-03-15 | 2023-09-01 | 华邦电子股份有限公司 | 可执行人工智能运算的存储器芯片及其运算方法 |
CN109978142B (zh) * | 2019-03-29 | 2022-11-29 | 腾讯科技(深圳)有限公司 | 神经网络模型的压缩方法和装置 |
JP7244468B2 (ja) * | 2020-09-16 | 2023-03-22 | ヤフー株式会社 | 情報処理装置、情報処理方法、情報処理プログラム、端末装置、推論方法、及び推論プログラム |
TWI778493B (zh) * | 2021-01-12 | 2022-09-21 | 鴻海精密工業股份有限公司 | 多神經網路模型載入方法、裝置、電子設備及電腦可讀取記錄媒體 |
CN118708979A (zh) * | 2024-08-30 | 2024-09-27 | 国网浙江省电力有限公司电力科学研究院 | 基于残差网络的电压灵敏度计算方法、装置、设备及介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5288645A (en) * | 1992-09-04 | 1994-02-22 | Mtm Engineering, Inc. | Hydrogen evolution analyzer |
AU2001283397A1 (en) * | 2000-08-16 | 2002-02-25 | Research Foundation Of State University Of New York | Neural network device for evolving appropriate connections |
DE102012009502A1 (de) * | 2012-05-14 | 2013-11-14 | Kisters Ag | Verfahren zum Trainieren eines künstlichen neuronalen Netzes |
CN104751228B (zh) * | 2013-12-31 | 2018-04-27 | 科大讯飞股份有限公司 | 用于语音识别的深度神经网络的构建方法及系统 |
CN105373830A (zh) * | 2015-12-11 | 2016-03-02 | 中国科学院上海高等研究院 | 误差反向传播神经网络的预测方法、系统及服务器 |
-
2016
- 2016-06-15 US US15/182,616 patent/US20170364799A1/en not_active Abandoned
- 2016-07-25 TW TW105123365A patent/TWI634488B/zh not_active IP Right Cessation
- 2016-07-28 CN CN201610608615.1A patent/CN107516132A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
TWI634488B (zh) | 2018-09-01 |
CN107516132A (zh) | 2017-12-26 |
US20170364799A1 (en) | 2017-12-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI634488B (zh) | 人造神經網路之簡化裝置和簡化方法以及應用於簡化人造神經網路之非暫態電腦可讀取儲存媒體 | |
Kim et al. | Bitwise neural networks | |
US20230102087A1 (en) | Method and apparatus with neural network | |
TWI601078B (zh) | 多層人造神經網路及其控制方法 | |
JP7240657B2 (ja) | ニューラルネットワーク回路装置、ニューラルネットワーク、ニューラルネットワーク処理方法およびニューラルネットワークの実行プログラム | |
US11443514B2 (en) | Recognizing minutes-long activities in videos | |
US11087086B2 (en) | Named-entity recognition through sequence of classification using a deep learning neural network | |
JP2020091922A (ja) | 畳み込みニューラルネットワークにおける構造学習 | |
Zheng et al. | Learning in energy-efficient neuromorphic computing: algorithm and architecture co-design | |
US20170091619A1 (en) | Selective backpropagation | |
JP6933367B2 (ja) | ニューラルネットワーク回路装置、システム、処理方法および実行プログラム | |
JP6891626B2 (ja) | 情報処理装置、情報処理システム、情報処理プログラムおよび情報処理方法 | |
KR20160112186A (ko) | 뉴럴 네트워크에서 이벤트에 기반한 학습 방법 및 장치 | |
WO2021042857A1 (zh) | 图像分割模型的处理方法和处理装置 | |
JP2018085063A (ja) | 情報処理装置、情報処理システム、情報処理プログラムおよび情報処理方法 | |
JP2022548547A (ja) | ニューラルネットワークのアナログハードウェア実現 | |
US20230162034A1 (en) | Method and apparatus with neural network data input and output control | |
Hendy et al. | Review of spike-based neuromorphic computing for brain-inspired vision: biology, algorithms, and hardware | |
CN112560639A (zh) | 人脸关键点数目转换方法、系统、电子设备及存储介质 | |
JP7047778B2 (ja) | ニューラルネットワーク学習装置、ニューラルネットワーク学習方法、及び、ニューラルネットワーク学習プログラム | |
US20240135708A1 (en) | Permutation invariant convolution (pic) for recognizing long-range activities | |
Sboev et al. | A Non-fully-Connected Spiking Neural Network with STDP for Solving a Classification Task | |
JP7525065B2 (ja) | 学習装置、方法及びプログラム | |
JP7577728B2 (ja) | 継続学習のための機械学習方法および電子機器 | |
JP7054645B2 (ja) | 生成装置、生成方法、生成プログラムおよびプログラムパラメータ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |