TWI785227B - 深度神經網絡中批量標準化層修剪的方法 - Google Patents
深度神經網絡中批量標準化層修剪的方法 Download PDFInfo
- Publication number
- TWI785227B TWI785227B TW108112335A TW108112335A TWI785227B TW I785227 B TWI785227 B TW I785227B TW 108112335 A TW108112335 A TW 108112335A TW 108112335 A TW108112335 A TW 108112335A TW I785227 B TWI785227 B TW I785227B
- Authority
- TW
- Taiwan
- Prior art keywords
- batch normalization
- layer
- normalization layer
- candidate model
- model
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
- G06N3/0464—Convolutional networks [CNN, ConvNet]
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
- G06N3/0495—Quantised networks; Sparse networks; Compressed networks
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Molecular Biology (AREA)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Image Analysis (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Feedback Control In General (AREA)
Abstract
一種從預先訓練的深度神經網絡模型中修剪批量標準化層的方法。輸入預先訓練的深度神經網絡模型作為候選模型;僅當至少一批量標準化層連接及鄰接至對應的線性運算層時,從候選模型中移除至少一批量標準化層來修剪候選模型,以形成修剪之候選模型;調整線性運算層的權重以補償至少一批量標準化層的移除;並輸出修剪之候選模型。
Description
本發明係關於一種具有至少一批量標準化層的深度神經網絡,尤指一種從預先訓練的深度神經網絡修剪批量標準化層的方法。
大規模深度神經網絡(deep neural network,DNN)在機器視覺、圖像辨識和語音處裡領域有著顯著的功用。然而,這些現代深度神經網絡通常包含許多層數,並具有非常龐大的模型,且需要高的計算強度。這些特性使得在具在有低儲存和低運算能力的終端用戶設備(例如,行動電話)上使用深度神經網絡變得非常困難。如ResNet,MobileNet,GoogLeNet及Xception等現代深度神經網絡皆包含多個批量標準化層。這些批量標準化層通常放在卷積層,密集層或深度卷積層之前或之後,以幫助訓練神經網絡收斂。但是,在模型推論階段,這些批量標準化層會佔用大量的運算資源而導致裝置需要龐大的運算能力來處理神經網絡的訓練。因此將具有批量標準化層的深度神經網絡導入所有類型的硬體,如中央處理單元,圖形處理單元,數位訊號處理器等,仍然具有困難度。
本發明提供一種從一預先訓練的深度神經網絡模型中修剪批量標準
化層的方法,該深度神經網絡模型包括複數個層,該複數個層包括至少一批量標準化層,所述方法包括,輸入該預先訓練的深度神經網絡模型作為一候選模型;從該候選模型中移除該至少一批量標準化層來修剪該候選模型,以在當該至少一批量標準化層連接及鄰接至一對應的線性運算層時,形成一修剪之候選模型;調整該線性運算層的權重以補償該至少一批量標準化層的移除,使該修剪之候選模型的推論精準度與該預先訓練的深度神經網絡模型的推論精準度實質上相同;輸出該修剪之候選模型。
100:流程圖
110至160:方法
200:裝置
210:記憶體
220:處理器
230:深度神經網絡
240:程式碼
第1圖為批量標準化層修剪方法100的流程圖。
第2圖為實施第1圖之所示批量標準化層修剪方法的裝置。
為了解決在運算資源有限的裝置中實施使用批量標準化層(batch normalization layer)訓練深度神經網絡(deep neural network)的問題,我們提出了一種新的批量標準化層修剪技術,其通過修剪與線性運算層(linear operation layer)連接的任何批量標準化層以無損地壓縮深度神經網絡模型。線性運算層包括但不限於卷積層(convolution layers),密集層(dense layers),深度卷積層(depthwise convolution layers)及組卷積層(group convolution layers)。此外,批量標準化層修剪技術不會改變神經網絡模型中的其他層的結構,因此,批量標準化層修剪技術可以直接實施到現有的神經網絡模型平台中。
在揭露批量標準化層修剪技術的細節之前,這裡總結了本專利申請
的主要請求項(但不是所有請求項)。
實施例提供一種用於模型推論的新型批量標準化修剪技術。此批量標準化層修剪技術適用於具有批量標準化層的任何神經網絡。當批量標準化層連接到任何線性運算層(在其之前或之後)時,批量標準化層修剪技術可以修剪整個批量標準化層。具體而言,先將預先訓練的深度神經網絡模型輸入作為候選模型,接著從候選模型中移除至少一批量標準化層來修剪候選模型,以在當至少一批量標準化層連接及鄰接至對應的線性運算層時,形成修剪之候選模型,當至少一批量標準化層被移除時,調整線性運算層的權重,以使修剪之候選模型於線性組合時的一輸出特徵與至少一批量標準化層於線性組合時的輸出特徵相同,最後輸出修剪之候選模型。線性運算層包括但不限於卷積層,密集層,深度卷積層和組卷積層。批量標準化層修剪技術可以加速在任何類型的硬體平台上實施的神經網絡推論,特別是有限運算資源的平台,例如中央處理器,圖形處理器,數位訊號處理器等。批量標準化層修剪技術是無損的,若不考慮數值計算精準度,在應用批量標準化層修剪技術之前和之後神經網絡輸出結果完全相同。
E[x]是輸入特徵x的移動平均值,Var[x]為x的移動變異數,eps為一給定的數值,gamma和beta為訓練過的參數。在模型推論中,所有這些參數都為已知,因此,批量標準化過程可以簡化為:
y=x*a+b (2)
其中xi是表示為列向量(column vector)的第i個輸出特徵,zj是表示為列向量的第j個輸入特徵,bi是第i個輸出特徵的偏差,為一個標量(scalar),+bi是逐元素加法,Aij是第j個輸入特徵到第i個輸出特徵的線性核心(矩陣)。對於密集層,Aij是一個標量(1乘1矩陣),它正好是連接第j個輸入節點和第i個輸出節點的分支上的權重。對於卷積層,卷積運算可為線性矩陣乘法,其中Aij為卷積運算的矩陣。深度卷積層及組卷積層也具有與卷積層類似的表達方式,若第i個輸出特徵和第j個輸入特徵之間沒有連接,則除了一些Aij矩陣之外,基本上該矩陣為零矩陣。
線性運算層和批量標準化層組合的輸出為:yi=x i *a+b
(6)
等於
等於
這裡(b+b i *a)為標量,(b+b i *a)的加法是逐元素加法。該公式表明,若修剪批量標準化層並將線性運算層的權重調整為Aij→Aij*a和bi→b+bi*a,則權重調整後的線性運算層的輸出特徵與原始線性運算層和批量標準化層組合的輸出特徵實質上相同。這裡a和b是標量,因此,這些類型的權重調整可以應用於卷積層,密集層,深度卷積層和組卷積層。
當批量標準化層在線性運算層(例如,卷積層,密集層,深度卷積層和組卷積層)之後時,這裡所提出的方法可以修剪批量標準化層,調整線性運算層的權重,使調整後線性運算層的輸出特徵與原始線性運算層和批量標準化層組合的輸出特徵實質上相同。
其中zi為列向量的第i個輸出特徵,yj為列向量的第j個輸入特徵,bi為列向量第i個輸出要素的偏差。
等於
等於
其中t是一全為1的列向量。該公式表示若修剪批量標準化層並將線性運算層的權重調整為A ij →A ij *a和b i →(b i +Σ j A ij *t)*b,則權重調整後的線性運算層的輸出特徵與原始線性運算層和批量標準化層組合的輸出特徵實質上相同。這裡a,b,bi為標量。因此,這些權重調整可應用於卷積層,密集層,深
度卷積層和組卷積層。例如,對於卷積層,組卷積層和深度卷積層,b i →(b i +Σ j A ij *t)*b可以簡化為b i →b i +Σ j A ij *b。對於密集層,b i →(b i +Σ j A ij *t)*b可以簡化為b i →b i +A ij *b,其中A ij 是從第j個輸入節點到第i個輸出節點的分支上的權重。
當批量標準化層位在線性運算層(例如,卷積層,密集層,深度卷積層和組卷積層等)之前時,這裡所提出的方法可以修剪批量標準化層,調整線性運算層的權重,使調整後線性運算層的輸出特徵與原始線性運算層和批量標準化層組合的輸出特徵實質上相同。
第1圖為批量標準化修剪方法100的流程圖。步驟110開始該流程。接下來在步驟120中,逐項檢查每個批量標準化層,若沒有未處理的批量標準化層,則在步驟160中結束該流程,否則至步驟130,流程轉至未處理的批量標準化層,若下一個未處理的批量標準化層與線性運算層連接,則至步驟140,使用本專利中描述的批量標準化層修剪方法修剪該批量標準化層,更新對應的線性運算層的權重,並更新神經網絡模型結構。若該批量標準化層未與線性運算層連接,則不修剪該批量標準化層。在步驟150中,將未修剪的批量標準化層標記為已處理並返回步驟120。
批量標準化層的修剪方法100可以以如第2圖所示的裝置200中實施。裝置200可以包括一處理器220,耦接至一記憶體210及用於執行批量標準化層的修剪方法100的所有必要連接。記憶體210可為揮發性或非揮發性記憶體,並且可以包括深度神經網絡230及程式碼240。程式碼240可使處理器執行第1圖所示之步驟。裝置200還可用於實施已用上述方法修剪過深度神經網絡230。
本發明公開的批量標準化層修剪方法相較於神經網絡領域中之先前技術有著顯著的進步性。因該方法以預先訓練的深度神經網絡模型作為輸入,所以該模型已有一定的收斂度和準確性。通過修剪預先訓練的深度神經網絡模型中線性運算層連接的批量標準化層,使得神經網絡模型規模可以降低,減少了所需的硬體規格。此外,本方法可以提高模型推論的速度及降低其運算要求,並同時確保推論的準確性。
以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
100:流程圖
110至160:方法
Claims (10)
- 一種從一預先訓練的深度神經網絡模型中修剪批量標準化層的方法,該深度神經網絡模型包括複數個層,該複數個層包括至少一批量標準化層,所述方法包括:從一非揮發性記憶體輸入該預先訓練的深度神經網絡模型至一處理器作為一候選模型;該處理器從該候選模型中移除該至少一批量標準化層來修剪該候選模型,以在當該至少一批量標準化層連接及鄰接至一對應的線性運算層時,形成一修剪之候選模型;當該至少一批量標準化層被移除時,該處理器調整該線性運算層的權重,以使該修剪之候選模型於線性組合時的一輸出特徵與該至少一批量標準化層於線性組合時的一輸出特徵相同;及該處理器輸出該修剪之候選模型;其中該至少一批量標準化層用以執行標準化處理。
- 如請求項1所述的方法,其中該對應的線性運算層係為至少一卷積層,密集層,深度卷積層及組卷積層。
- 如請求項1所述的方法,其中該預先訓練的深度神經網絡模型包括複數個批量標準化層;所述方法另包括在該至少一批量標準化層連接及鄰接至對應的線性運算層時,從該候選模型中移除該複數個批量標準化層中的每一層以形成該修剪之候選模型。
- 如請求項3所述的方法,另包括調整從該候選模型中移除的每一批量標準化層所對應的該線性運算層的權重,以使該修剪之候選模型於線性組合時的該輸出特徵與該至少一批量標準化層於線性組合時的該輸出特徵相同。
- 如請求項3所述的方法,另包括從該候選模型中移除該至少一批量標準化層,而不改變該深度神經網絡中非批量標準化層的結構。
- 如請求項1所述的方法,另包括當該至少一批量標準化層連接及鄰接至一先前對應的線性運算層時,從該候選模型中移除該至少一批量標準化層以形成該修剪之候選模型。
- 如請求項1所述的方法,另包括當該至少一批量標準化層連接及鄰接至一後續對應的線性運算層時,從該候選模型中移除該至少一批量標準化層以形成該修剪之候選模型。
- 如請求項1所述的方法,另包括僅當該至少一批量標準化層連接及鄰接至一對應的線性運算層時,才從該候選模型中移除該至少一批量標準化層以形成該修剪的候選模型。
- 如請求項1所述的方法,另包括單獨處理每一批量標準化層,其中單獨處理每一批量標準化層包括:僅當該至少一批量標準化層連接及鄰接至一對應的線性運算層時,從該候選模型中移除該至少一批量標準化層及調整該對應的線性運算層的權重;及當該至少一批量標準化層未連接及鄰接至一對應的線性運算層時,保持該至少一批量標準化層及其相鄰層的權重。
- 一種用於從一預先訓練的深度神經網絡模型中修剪一批量標準化層的裝置,該深度神經網絡模型包括複數個層,該複數個層包括至少一批量標準化層,該裝置包括:一處理器;及一非揮發性記憶體,耦合至該處理器,該記憶體包括程式碼,該程式碼使該處理器執行以下步驟: 從該非揮發性記憶體輸入該預先訓練的深度神經網絡模型至該處理器作為一候選模型;該處理器從該候選模型中移除該至少一批量標準化層來修剪該候選模型,以在當該至少一批量標準化層連接及鄰接至對應的線性運算層時,形成一修剪之候選模型;當該至少一批量標準化層被移除時,該處理器調整該線性運算層的權重,以使該修剪之候選模型於線性組合時的一輸出特徵與該至少一批量標準化層於線性組合時的一輸出特徵相同;及該處理器輸出該修剪之候選模型;其中該至少一批量標準化層用以執行標準化處理。
Applications Claiming Priority (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US201862679971P | 2018-06-03 | 2018-06-03 | |
| US62/679,971 | 2018-06-03 | ||
| US16/255,850 | 2019-01-24 | ||
| US16/255,850 US11488019B2 (en) | 2018-06-03 | 2019-01-24 | Lossless model compression by batch normalization layer pruning in deep neural networks |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TW202004569A TW202004569A (zh) | 2020-01-16 |
| TWI785227B true TWI785227B (zh) | 2022-12-01 |
Family
ID=68693559
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW108112335A TWI785227B (zh) | 2018-06-03 | 2019-04-09 | 深度神經網絡中批量標準化層修剪的方法 |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US11488019B2 (zh) |
| CN (1) | CN110555509A (zh) |
| TW (1) | TWI785227B (zh) |
Families Citing this family (13)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US12165064B2 (en) * | 2018-08-23 | 2024-12-10 | Samsung Electronics Co., Ltd. | Method and system with deep learning model generation |
| US11681920B2 (en) * | 2019-09-27 | 2023-06-20 | Baidu Usa Llc | Method and apparatus for compressing deep learning model |
| KR102859454B1 (ko) | 2020-07-15 | 2025-09-12 | 삼성전자주식회사 | 뉴럴 네트워크 연산 처리 장치 및 방법 |
| CN116235184A (zh) * | 2020-08-26 | 2023-06-06 | 英特尔公司 | 在神经网络中动态地规范化数据的方法和装置 |
| CN111898591B (zh) * | 2020-08-28 | 2022-06-24 | 电子科技大学 | 一种基于剪枝残差网络的调制信号识别方法 |
| CN112288084B (zh) * | 2020-10-23 | 2022-09-02 | 武汉大学 | 基于特征图通道重要性的深度学习目标检测网络压缩方法 |
| CN114912569B (zh) * | 2021-02-10 | 2026-01-20 | 华为技术有限公司 | 一种模型训练方法及装置 |
| TWI774411B (zh) * | 2021-06-07 | 2022-08-11 | 威盛電子股份有限公司 | 模型壓縮方法以及模型壓縮系統 |
| CN117642751A (zh) * | 2021-09-10 | 2024-03-01 | 英特尔公司 | 样本自适应跨层范数校准和中继神经网络 |
| CN113837381B (zh) * | 2021-09-18 | 2024-01-05 | 杭州海康威视数字技术股份有限公司 | 深度神经网络模型的网络剪枝方法、装置、设备及介质 |
| CN114239826B (zh) * | 2021-12-21 | 2024-10-22 | 同济大学 | 神经网络剪枝方法、介质及电子设备 |
| TWI817591B (zh) * | 2022-06-30 | 2023-10-01 | 創鑫智慧股份有限公司 | 神經網路模型的簡化裝置與簡化方法 |
| CN116520256B (zh) * | 2023-07-03 | 2023-09-01 | 中国人民解放军空军预警学院 | 一种基于深度学习的机载预警雷达干扰识别方法和装置 |
Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TW201818302A (zh) * | 2016-10-19 | 2018-05-16 | 南韓商三星電子股份有限公司 | 網路量化的方法、設備、製造晶片組方法及測試設備方法 |
Family Cites Families (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN104049755B (zh) * | 2014-06-18 | 2017-01-18 | 中国科学院自动化研究所 | 信息处理方法及装置 |
| WO2018128741A1 (en) * | 2017-01-06 | 2018-07-12 | Board Of Regents, The University Of Texas System | Segmenting generic foreground objects in images and videos |
| CN107688850B (zh) * | 2017-08-08 | 2021-04-13 | 赛灵思公司 | 一种深度神经网络压缩方法 |
| CN109711528A (zh) * | 2017-10-26 | 2019-05-03 | 北京深鉴智能科技有限公司 | 基于特征图变化对卷积神经网络剪枝的方法 |
-
2019
- 2019-01-24 US US16/255,850 patent/US11488019B2/en active Active
- 2019-04-09 TW TW108112335A patent/TWI785227B/zh active
- 2019-05-17 CN CN201910414776.0A patent/CN110555509A/zh active Pending
Patent Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TW201818302A (zh) * | 2016-10-19 | 2018-05-16 | 南韓商三星電子股份有限公司 | 網路量化的方法、設備、製造晶片組方法及測試設備方法 |
Also Published As
| Publication number | Publication date |
|---|---|
| TW202004569A (zh) | 2020-01-16 |
| US11488019B2 (en) | 2022-11-01 |
| CN110555509A (zh) | 2019-12-10 |
| US20190370656A1 (en) | 2019-12-05 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| TWI785227B (zh) | 深度神經網絡中批量標準化層修剪的方法 | |
| CN111461322B (zh) | 一种深度神经网络模型压缩方法 | |
| US11049006B2 (en) | Computing system for training neural networks | |
| CN110717585B (zh) | 神经网络模型的训练方法、数据处理方法和相关产品 | |
| TWI794157B (zh) | 自動多閾值特徵過濾方法及裝置 | |
| CN111758104B (zh) | 适合于硬件实现的神经网络参数优化方法、神经网络计算方法和装置 | |
| CN111937011A (zh) | 一种神经网络模型权重参数的确定方法及设备 | |
| CN114020950A (zh) | 图像检索模型的训练方法、装置、设备以及存储介质 | |
| CN110874625B (zh) | 一种数据处理方法及装置 | |
| WO2020001401A1 (zh) | 深度神经网络中的网络层运算方法及装置 | |
| WO2020134828A1 (zh) | 一种神经网络推理结构优化方法及装置 | |
| CN111310888A (zh) | 处理卷积神经网络的方法 | |
| CN108038539A (zh) | 一种集成长短记忆循环神经网络与梯度提升决策树的方法 | |
| CN115860100A (zh) | 一种神经网络模型训练方法、装置及计算设备 | |
| CN115496207B (zh) | 神经网络模型压缩方法、装置和系统 | |
| CN118747513A (zh) | 一种模型压缩的电力图像识别轻量化应用方法 | |
| KR102494095B1 (ko) | 인공 신경망 학습 장치 및 방법 | |
| CN115129831A (zh) | 数据处理方法、装置、电子设备及计算机存储介质 | |
| JP2025522114A (ja) | モデル訓練方法及び関連デバイス | |
| WO2020134829A1 (zh) | 一种神经网络批归一化的优化方法及装置 | |
| CN114503122A (zh) | 深度神经网络的结构学习和简化方法 | |
| TW202044125A (zh) | 訓練稀疏連接神經網路的方法 | |
| CN114678011A (zh) | 语音识别方法、装置、电子设备、存储介质及程序产品 | |
| CN119376686A (zh) | 一种数据处理方法及相关设备 | |
| CN114118343A (zh) | 应用于Transformer神经网络的层归一化处理硬件加速器及方法 |