[go: up one dir, main page]

TW201818302A - 網路量化的方法、設備、製造晶片組方法及測試設備方法 - Google Patents

網路量化的方法、設備、製造晶片組方法及測試設備方法 Download PDF

Info

Publication number
TW201818302A
TW201818302A TW106135833A TW106135833A TW201818302A TW 201818302 A TW201818302 A TW 201818302A TW 106135833 A TW106135833 A TW 106135833A TW 106135833 A TW106135833 A TW 106135833A TW 201818302 A TW201818302 A TW 201818302A
Authority
TW
Taiwan
Prior art keywords
quantization
vector
network
multidimensional
shared
Prior art date
Application number
TW106135833A
Other languages
English (en)
Other versions
TWI801356B (zh
Inventor
崔裕鎭
正元 李
莫斯塔法 伊爾-哈米
Original Assignee
南韓商三星電子股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US15/433,531 external-priority patent/US11321609B2/en
Application filed by 南韓商三星電子股份有限公司 filed Critical 南韓商三星電子股份有限公司
Publication of TW201818302A publication Critical patent/TW201818302A/zh
Application granted granted Critical
Publication of TWI801356B publication Critical patent/TWI801356B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/23Clustering techniques
    • G06F18/232Non-hierarchical techniques
    • G06F18/2321Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions
    • G06F18/23213Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions with fixed number of clusters, e.g. K-means clustering
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/582Pseudo-random number generators
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • G06N3/0455Auto-encoder networks; Encoder-decoder networks
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0464Convolutional networks [CNN, ConvNet]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/047Probabilistic or stochastic networks
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0495Quantised networks; Sparse networks; Compressed networks
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/09Supervised learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Mathematical Physics (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Neurology (AREA)
  • Probability & Statistics with Applications (AREA)
  • Computational Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Evolutionary Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Spectrometry And Color Measurement (AREA)
  • Analysing Materials By The Use Of Radiation (AREA)
  • Investigating, Analyzing Materials By Fluorescence Or Luminescence (AREA)
  • Image Analysis (AREA)

Abstract

本揭露內容描述用於在深度神經網路中執行網路參數量化的設備及其製造方法、系統及方法。在一個態樣中,自受訓練神經網路模型建構表示網路參數的多維向量。量化所述多維向量以獲得共用量化向量作為叢集中心,所述共用量化向量經微調。接著編碼所述經微調且共用的量化向量。解碼能將所述過程反轉。

Description

網路量化的方法、設備、製造晶片組方法及測試設備方法
本揭露內容大體上是關於深度神經網路(deep neural network),且更特定言之,是關於用於神經網路量化(neural network quantization)的方法以及設備。 [相關申請案] 本申請案主張於2016年10月19日申請的美國臨時專利申請案第62/409,961號,於2017年2月15日申請的美國專利申請案第15/433,531號,以及於2017年9月6日申請的美國專利申請案第15/697,035號的權益,且亦主張於2017年4月3日申請的美國臨時專利申請案第62/480,857號的權益,所述美國臨時專利申請案及所述美國專利申請案以全文引用的方式併入本文中。
機器學習技術正不斷地演進,且已開始支援現代社會的許多態樣,其範圍是網頁搜尋(web search)、內容篩選(content filtering)、商家網站上的自動化推薦(automated recommendation)、自動化競賽(automated game playing)、物件偵測(object detection)、影像分類(image classification)、語音辨識(speech recognition)、機器翻譯(machine translation)以及藥物探索(drug discovery)及染色體組(genomic)。機器學習領域中的當前先進技術為深度神經網路,深度神經網路使用由多個處理層構成的計算模型,所述處理層學習具有多個抽象層次的資料(通常為極大量資料)的表示--因此,為術語「深度學習」、「深度網路」等。參見 例如雅恩·樂昆(LeCun, Yann)、約書亞·本吉奧(Yoshua Bengio)以及傑弗里·辛頓(Geoffrey Hinton)的「深度學習(Deep learning)」(《自然(Nature)》,第521卷,第436頁至第444頁(2015年5月28日))其全文特此以引用方式併入本文中。
機器學習中第一且最重要的階段為訓練。考慮用於影像的分類的機器學習系統(machine learning system)。收集例如人、寵物、汽車以及房屋(各自被標註有對應種類)的影像的大資料集。在訓練期間,向機器展示影像且機器產生呈得分向量形式的輸出,針對每一種類產生一個得分。最終目標是為了使正確種類具有所有種類的最高得分,但此不可能在訓練之前發生。在訓練中使用量測輸出得分與所要得分型樣之間的誤差(或距離)的目標函數(objective function)。更具體言之,機器修改其內部可調整參數以減小自目標函數計算的誤差。常常被稱為權數的這些可調整參數為定義機器的輸入-輸出函數的參數。在典型的深度學習系統中,可存在數以億計的此類可調整權數/參數,以及數以億計的用來訓練機器的所標註實例。
為了適當地調整權數向量,學習演算法計算梯度向量,梯度向量針對各權數指示在權數增大微小量的情況下誤差將增大或減小的量。接著在與梯度向量相對的方向上調整權數向量。在權數值的高維空間中,遍及所有訓練實例而平均化的目標函數可被觀測為一種丘陵景觀。負梯度向量指示此景觀中的最陡下降方向而使其較接近於最小值,其中輸出誤差平均起來低。實務上,通常使用被稱為隨機梯度下降(stochastic gradient descent; SGD)的程序。此由以下各項組成:展示用於幾個實例的輸入向量、計算輸出以及誤差、計算用於彼等實例的平均梯度,以及相應地調整權數。針對來自訓練集的實例的許多小集合重複所述過程,直至目標函數的平均值停止減小為止。其之所以被稱為隨機的是因為實例的各小集合給出遍及所有實例的平均梯度的有干擾的估計值。此簡單程序相比於精細得多的最佳化技術通常以驚人的速度找到良好的權數集合。在訓練之後,在被稱為測試集的不同實例集合上量測系統的效能。此舉用以測試機器的一般化能力--其產生關於其從未在訓練期間看到的新輸入的可感測回答的能力。
如上文所提及,可存在數以億計的網路參數/權數,其要求儲存大量記憶體。因此,儘管深度神經網路極其強大,但其實施起來亦需要大量的資源,特別是在記憶體儲存方面。參見 (例如)阿萊克斯·克里澤夫斯基(Krizhevsky, Alex)、伊利亞·蘇茨科弗(Ilya Sutskever)以及傑弗里E·辛頓(Geoffrey E. Hinton)的「運用深度卷積神經網路的影像網路分類(Imagenet classification with deep convolutional neural networks)」(《神經資訊處理系統進展(Advances in neural information processing systems)》,2012(具有六千一百萬個網路參數))以及卡倫·西蒙恩(Simonyan, Karen)及安德魯·基澤曼(Andrew Zisserman)的「用於大規模影像辨識的極深度卷積網路(Very deep convolutional networks for large-scale image recognition)」(arXiv預印本arXiv:1409.1556(2014)(具有一億三千八百萬個網路參數)),以上兩者的全文特此以引用的方式併入本文中。
此情形使得難以在具有有限儲存的裝置(諸如行動/可攜式裝置)上部署深度神經網路。
因此,已進行本揭露內容以至少解決本文中所描述的問題及/或缺點且至少提供下文描述的優點。
根據本揭露內容的態樣,提供一種方法,所述方法判定神經網路的網路參數的損失函數的二階偏導數矩陣(漢森矩陣(Hessian matrix))的對角線且使用所述經判定對角線以對所述網路參數進行加權(漢森加權)而作為量化所述網路參數的部分。根據本揭露內容的態樣,提供一種方法,所述方法使用網路參數的梯度的一次矩以及二次矩估值計來訓練神經網路,且使用所述二次矩估計值以對所述網路參數進行加權而作為量化所述網路參數的部分。根據本揭露內容的態樣,提供一種在神經網路中的設備,包含:一或多個非暫時性電腦可讀媒體以及至少一個處理器,所述至少一個處理器在執行儲存於一或多個非暫時性電腦可讀媒體上的指令時執行以下步驟:判定神經網路的網路參數的損失函數的二階偏導數矩陣(漢森矩陣)的對角線;及使用所述經判定對角線以對所述網路參數進行加權(漢森加權)而作為量化所述網路參數的部分。
根據本揭露內容的態樣,提供一種用於使用多維向量進行網路量化的方法,包含:自受訓練神經網路模型建構表示網路參數的多維向量;量化所述多維向量以獲得共用量化向量作為叢集中心;微調所述共用量化向量/叢集中心;以及使用所述共用量化向量/叢集中心進行編碼。
根據本揭露內容的態樣,提供一種設備,包含一或多個非暫時性電腦可讀媒體;以及至少一個處理器,其在執行儲存於一或多個非暫時性電腦可讀媒體上的指令時執行以下步驟:自受訓練神經網路模型建構表示網路參數的多維向量;量化所述多維向量以獲得共用量化向量作為叢集中心;微調所述共用量化向量/叢集中心;以及使用所述共用量化向量/叢集中心進行編碼。
根據本揭露內容的態樣,提供一種製造晶片組的方法,所述晶片組包含:至少一個處理器,其在執行儲存於一或多個非暫時性電腦可讀媒體上的指令時執行以下步驟:自受訓練神經網路模型建構表示網路參數的多維向量;量化所述多維向量以獲得共用量化向量作為叢集中心;微調所述共用量化向量/叢集中心;以及使用所述共用量化向量/叢集中心進行編碼;以及儲存所述指令的所述一或多個非暫時性電腦可讀媒體。
根據本揭露內容的態樣,提供一種測試設備的方法,包含:測試所述設備是否具有在執行儲存於一或多個非暫時性電腦可讀媒體上的指令時執行以下步驟的至少一個處理器:自受訓練神經網路模型建構表示網路參數的多維向量;量化所述多維向量以獲得共用量化向量作為叢集中心;微調所述共用量化向量/叢集中心;以及使用所述共用量化向量/叢集中心進行編碼;以及測試所述設備是否具有儲存所述指令的所述一或多個非暫時性電腦可讀媒體。
在下文中,參考附圖詳細地描述本揭露內容的實施例。應注意,相同元件由相同參考數字指明,儘管其在不同圖式中展示。在以下描述中,提供諸如詳細組態以及組件的特定細節以僅僅輔助對本揭露內容的實施例的總體理解。因此,對於本領域具有知識者而言應顯而易見,可在不脫離本揭露內容的範疇的情況下對本文中描述的實施例進行各種改變以及修改。另外,為了清楚及簡明起見,省略對熟知功能及構造的描述。下文所描述的術語是考慮到本揭露內容中的功能所定義的術語,且可根據使用者、使用者的意圖或習慣而不同。因此,應基於整個說明書中的內容而判定術語的定義。
本揭露內容可具有各種修改以及各種實施例,下文參考隨附圖式來詳細地描述所述實施例當中的實施例。然而,應理解,本揭露內容並不限於所述實施例,而是包含在本揭露內容的範疇內的所有修改、等效者以及替代例。
儘管包含諸如第一以及第二的序數的術語可用於描述各種元件,但結構元件並不受所述術語限制。術語僅用以將一個元件與另一元件區分開來。舉例而言,在不脫離本揭露內容的範疇的情況下,可將第一結構元件稱作第二結構元件。相似地,亦可將第二結構元件稱作第一結構元件。如本文中所使用,術語「及/或」包含一或多個關聯項目中的任何以及所有組合。
本文中的術語僅僅用以描述本揭露內容的各種實施例,但並不意欲限制本揭露內容。除非上下文另有明確指示,否則單數形式意欲包含複數形式。在本揭露內容中,應理解,術語「包含」或「具有」指示特徵、數字、步驟、操作、結構元件、部件或其組合的存在,且不排除一或多個其他特徵、數字、步驟、操作、結構元件、部件或其組合的存在或增加的可能性。
除非不同地定義,否則本文中使用的所有術語皆具有與在本揭露內容所屬領域具有知識者所理解的含義相同的含義。諸如一般使用的辭典中定義的術語的術語應被解釋為具有與此項技術的相關領域中的內容相關含義相同的含義,且不應被解釋為具有理想或過度形式化含義,除非在本揭露內容中清楚地定義。
各種實施例可包含一或多個元件。元件可包含經配置以執行某些操作的任何結構。儘管實施例可作為實例在某一配置中用有限數目個元件來描述,但所述實施例可視給定實施需要而以替代配置包含更多或更少的元件。值得注意的是,對「一個實施例」或「實施例」的任何參考意謂結合實施例所描述的特定特徵、結構或特性包含於至少一個實施例中。片語「一個實施例」(或「一實施例」)在本說明書中的各種地方處的出現不必皆指同一實施例。
如上文所論述,對深度神經網路的記憶體要求限制其使用率-詳言之,其記憶體/儲存器要求排除具有有限記憶體資源的裝置。然而,存在用以減小神經網路的總尺寸的多種方式,有時被聯合地稱作「網路壓縮(network compression)」。參見 例如以下各者:邁克爾C莫澤爾(Michael C Mozer)以及保羅斯莫倫斯基(Paul Smolensky)的「骨架化:用於經由關聯性評估而自網路修整積餘的技術(Skeletonization: A technique for trimming the fat from a network via relevance assessment)」,在《神經資訊處理系統進展 》中,第107頁至第115頁,1989(「莫澤爾與斯莫倫斯基1989」); 雅恩·樂昆、約翰S登克爾(John S Denker)、薩拉A索拉(Sara A Solla)、李察E霍華德(Richard E Howard)以及勞倫斯D雅克爾(Lawrence D Jackel)的「最佳腦損傷(Optimal brain damage)」,在《神經資訊處理系統進展 》中,第598頁至第605頁,1990(「樂昆等人1990」); 巴巴克·哈斯比(Babak Hassibi)及戴維G斯道克(David G Stork)的「用於網路修剪的二階導數:最佳腦醫師(Second order derivatives for network pruning: Optimal brain surgeon)」,在《神經資訊處理系統進展 》中,第164頁至第171頁,1993(「哈斯比與斯道克1993」); 韓松(Song Han)、傑夫·普爾(Jeff Pool)、約翰·特蘭(John Tran)以及威廉·達利(William Dally)的「學習用於高效神經網路的權數以及連接兩者(Learning both weights and connections for efficient neural network)」,在《神經資訊處理系統進展 》中,第1135頁至第1143頁,2015(「韓等人2015a」); 文森特·範霍克(Vincent Vanhoucke)、安德魯·西尼爾(Andrew Senior)及馬克Z毛(Mark Z Mao)的「改良CPU上的神經網路速度(Improving the speed of neural networks on CPUs)」,在《深度學習及無監督特徵學習研討會Deep Learning and Unsupervised Feature Learning Workshop )》中,NIPS ,2011(「範霍克等人2011」); 黃圭沇(Kyuyeon Hwang)及孫文勇(Wonyong Sung)的「使用權數+1、0以及-1的定點前饋深度神經網路設計(Fixed-point feedforward deep neural network design using weights +1, 0, and -1)」,在《關於信號處理系統的 IEEE 研討會IEEE Workshop on Signal Processing Systems )》中,第1頁至第6頁,2014(「黃與孫2014」); 薩伊德·案瓦(Sajid Anwar)、黃圭沇以及孫文勇的「用於物件辨識的深度卷積神經網路的定點最佳化(Fixed point optimization of deep convolutional neural networks for object recognition)」,在《關於聲學、語音 以及 信號處理的 IEEE 國際會議IEEE International Conference on Acoustics , Speech and Signal Processing )》中,第1131頁至第1135頁,2015(「案瓦等人2015」); 馬修·庫爾巴里奧(Matthieu Courbariaux)、讓-皮埃爾·戴維(Jean-Pierre David)以及約書亞·本吉奧的「運用低精確度倍增來訓練深度神經網路(Training deep neural networks with low precision multiplications)」,arXiv 預印本 arXiv : 1412 . 7024 ,2014(「庫爾巴里奧等人2014」); 馬修·庫爾巴里奧、約書亞·本吉奧以及讓-皮埃爾·戴維的「二進位連接:在傳播期間運用二進位權數來訓練深度神經網路(Binaryconnect: Training deep neural networks with binary weights during propagations)」,在《神經資訊處理系統進展 》中,第3123頁至第3131頁,2015(「庫爾巴里奧等人2015」); 蘇約·笈多(Suyog Gupta)、安庫·阿格拉沃爾(Ankur Agrawal)、凱拉什·哥巴拉克里斯南(Kailash Gopalakrishnan)以及普利提什·納拉亞南(Pritish Narayanan)的「運用有限數值精確度的深度學習(Deep learning with limited numerical precision)」,在《 32 屆機器學習國際會議的會議記錄Proceedings of the 32nd International Conference on Machine Learning )》中,第1737頁至第1746頁,2015(「笈多等人2015」); 達瑞爾D林(Darryl D Lin)、薩欽S塔拉齊(Sachin S Talathi)以及V斯里坎斯·安娜普蕾蒂(V Sreekanth Annapureddy)的「深度卷積網路的定點量化(Fixed point quantization of deep convolutional networks)」,arXiv 預印本 arXiv : 1511 . 06393 ,2015(「林D等人2015」); 林周漢(Zhouhan Lin)、馬修·庫爾巴里奧、羅納德·美密瑟維奇(Roland Memisevic)以及約書亞·本吉奧的「運用極少倍增的神經網路(Neural networks with few multiplications)」,arXiv 預印本 arXiv : 1510 . 03009 ,2015(「林Z等人2015」); 穆罕默德·雷斯特嘉里(Mohammad Rastegari)、文森特·奧德內茲(Vicente Ordonez)、約瑟夫·雷德蒙(Joseph Redmon)以及阿里·法汗迪(Ali Farhadi)的「XNOR網路:使用二進位卷積神經網路的影像網路分類(XNOR-Net: Imagenet classification using binary convolutional neural networks)」,arXiv 預印本arXiv : 1603 . 05279 ,2016(「雷斯特嘉里等人2016」); 塔拉N賽乃夫(Tara N Sainath)、布萊恩·金布里(Brian Kingsbury)、維卡斯·辛德華尼(Vikas Sindhwani)、艾布魯·亞利索伊(Ebru Arisoy)以及部瓦納·巴馬巴德蘭(Bhuvana Ramabhadran)的「用於運用高維輸出目標的深度神經網路訓練的低秩矩陣因子分解(Low rank matrix factorization for deep neural network training with high-dimensional output targets)」,在《關於聲學、語音 以及 信號處理的 IEEE 國際會議 》中,第6655頁至第6659頁,2013(「賽乃夫等人2013」); 薛建(Jian Xue)、李金羽(Jinyu Li)以及龔一凡(Yifan Gong)的「運用奇異值分解來重構深度神經網路聲學模型(Restructuring of deep neural network acoustic models with singular value decomposition)」,在《語音間INTERSPEECH )》中,第2365頁至第2369頁,2013(「薛等人2013」);馬克思·捷達伯格(Max Jaderberg)、安德利·維達迪(Andrea Vedaldi)以及安德魯·基澤曼的「運用低秩擴展來加速卷積神經網路(Speeding up convolutional neural networks with low rank expansions)」,在《英國機器視覺會議的會議記錄Proceedings of the British Machine Vision Conference )》中,2014(「捷達伯格等人2014」);瓦蒂姆·列別捷夫(Vadim Lebedev)、雅羅斯拉夫·加寧(Yaroslav Ganin)、馬克西姆·拉卡巴(Maksim Rakhuba)、伊萬·歐瑟勒代茨(Ivan Oseledets)以及維克托·蘭普蒂斯基(Victor Lempitsky)的「使用微調的CP分解來加速卷積神經網路(Speeding-up convolutional neural networks using fine-tuned CP-decomposition)」,arXiv 預印本 arXiv : 1412 . 6553 ,2014(「列別捷夫等人2014」); 楊子超(Zichao Yang)、馬辛·莫祖爾斯基(Marcin Moczulski)、米沙·德尼爾(Misha Denil)、南度·德·費瑞塔斯(Nando de Freitas)、阿萊克斯·斯摩拉(Alex Smola)、宋樂(Le Song)以及王子瑜(Ziyu Wang)的「深度損壞convnet(Deep fried convnets)」,在《電腦視覺 IEEE 國際會議的會議記錄Proceedings of the IEEE International Conference on Computer Vision )》中,第1476頁至第1483頁,2015(「楊等人2015」); 金勇德(Yong-Deok Kim)、樸恩慧(Eunhyeok Park)、劉聖珠(Sungjoo Yoo)、崔泰霖(Taelim Choi)、楊露(Lu Yang)以及申東君(Dongjun Shin)的「用於快速以及低功率行動應用的深度卷積神經網路的壓縮(Compression of deep convolutional neural networks for fast and low power mobile applications)」,arXiv 預印本 arXiv : 1511 . 06530 ,2015(「金等人2015」); 以及邰成(Cheng Tai)、肖彤(Tong Xiao)、王小剛(Xiaogang Wang)等人的「運用低秩正則化的卷積神經網路(Convolutional neural networks with low-rank regularization)」,arXiv 預印本 arXiv : 1511 . 06067 ,2015(「邰等人2015」),以上各者的全文皆特此併入本文中。
圖1說明根據一個實施例的在完成神經網路訓練之後所實施的神經網路壓縮技術的例示性圖。圖1展示一些典型的網路壓縮方案,皆旨在減小待儲存的網路參數/權數的數目。圖1中的網路壓縮方案僅僅為實例,且本揭露內容不以任何方式受圖1中所展示內容或未展示內容限制。此外,在根據本揭露內容的實施例中,明確地包含網路壓縮技術的任何可能組合。
如圖1中所展示,首先在110處完成神經網路訓練,此意謂已產生全部網路參數/權數。網路壓縮包含網路修剪(network pruning)120、未經修剪網路參數微調130、網路量化140,以及量化值微調150。
網路修剪120藉由將網路參數的值設定為零而完全移除網路參數。對於經修剪網路,僅未經修剪網路參數以及其各別位置(索引)需要保持在原始模型中。為了獲得更多細節,參見例如 哈斯比與斯道克1993;韓等人2015a;以及樂昆等人1990。
接下來可執行未經修剪網路參數微調130,以部分地恢復歸因於修剪的精度損失。為了獲得更多細節,參見例如同前。
接下來,執行網路量化140。網路量化的基本構思為將網路參數分組成少數個叢集、量化各網路參數至網路參數所屬的叢集中心的值,以及儲存經二進位編碼的量化值而非實際參數值。因此,網路量化藉由以下操作減小表示(未經修剪)網路參數所需的位元數目:量化網路參數且將其量化值編碼成具有較小位元尺寸的二進位碼字。可藉由使用小尺寸的查找表(lookup table)而自所儲存的二進位碼字而非實際值擷取量化值。參見 例如圖3A及圖3B以及其在下文對於實例的描述。
同一叢集中的網路參數將在預測階段中具有相同量化值(亦即,叢集中心)。換言之,叢集的代表值(亦即,量化值)(叢集中心)經編碼且經儲存於記憶體中,且其基於所儲存的二進位碼字而非實際量化值被讀取並且用於預測。
最後,在150處微調量化值(亦即,叢集中心)。如上文所提及,存在不同的網路壓縮技術,且在彼方面,微調階段130以及150是選用的,但其隨著修剪及/或量化變得愈來愈積極而變得愈來愈有必要恢復原始效能。
下文參看圖2以及圖3A至圖3B論述網路量化的一種特定途徑,亦即, k 均值叢集,繼之以編碼。
圖2說明根據一個實施例的在完成神經網路訓練之後所實施的神經網路壓縮技術的另一例示性圖。在210處完成神經網路訓練之後,執行包含網路修剪220、未經修剪網路參數微調230、網路量化240以及量化值微調250的網路壓縮。
在圖2中,進一步描述網路量化途徑240的特定細節。網路量化240包含叢集243以及編碼245。叢集243包含 k 均值逐層叢集,其中網路參數分割成k個不相交集合(叢集),且接著各叢集中的網路參數經量化至同一值或「代表值」,亦即,在此狀況下為其叢集中心值。在叢集之後,無損二進位編碼245將經量化參數編碼成二進位碼字來代替實際參數值進行儲存。固定長度二進位編碼或可變長度二進位編碼(諸如霍夫曼(Huffman)或藍波-立夫-衛曲(Lempel-Ziv-Welch ; LZW)寫碼)可用於編碼245。為了獲得更多細節,參見例如以下各者:韓松等人的「深度壓縮:藉由修剪、訓練量化以及霍夫曼寫碼而壓縮深度神經網路(Deep compression: Compressing deep neural networks with pruning, trained quantization and Huffman coding)」arXiv 預印本arXiv : 1510 . 00149 (2015)(「韓等人2015b」); 以及龔雲超(Gong, Yunchao)等人的「使用向量量化來壓縮深度卷積網路(Compressing deep convolutional networks using vector quantization)」arXiv 預印本arXiv : 1412 . 6115 (2014)(「Gong等人2014」),以上各者的全文皆特此以引用方式併入本文中。
圖3A說明根據一個實施例的用於網路量化的叢集以及編碼的例示性圖。
在圖3A中,原始網路參數為32位元浮點數310。這些網路參數310分組成具有叢集索引320的叢集。舉例而言,在圖3A中存在四個叢集1、2、3以及4,所述叢集中的各者具有代表值(「經量化參數」)330,亦即,分別為-1.00、0.00、1.50以及2.00。如可看到,在此情況下的量化相比於原始32位元浮點數310引起準確度損失。
固定長度編碼或可變長度編碼(例如霍夫曼或藍波-立夫-衛曲)可用以將叢集索引1、2、3以及4映射成固定長度二進位碼字00、01、10、11(340F)或可變長度二進位碼字1、01、001、000(340V)(例如霍夫曼編碼碼字),如表350中所展示。
圖3B說明根據一個實施例的在解壓縮期間對二進位量化值進行解碼的例示性圖。圖3B說明使用來自圖3A的實例進行解碼。使由圖3A中的壓縮引起的可變長度二進位碼字340V解壓縮以擷取量化值。在此實例中,儲存於記憶體中的二進位碼字用以自映射表讀取量化值。具體言之,在圖3B中,在使用第一經壓縮叢集索引碼字341V(「000」)的情況下,映射表351展示匹配的經量化參數值為「2.00」,且因此第一經解碼網路參數為經解碼網路參數311中的「2.00」。經解碼值接著用於神經網路中以進行預測。
然而,諸如圖2及圖3A中所展示以及韓等人2015b及龔等人2014中所論述的k均值叢集具有其瑕疵,如下文進一步所論述。
首先,在下文中,使用數學模型以大體上描述神經網路且接著具體地描述k均值叢集。
方程式(1)表示結構執行函數的一般非線性神經網路,函數將輸入映射成輸出向量 其中為由可訓練網路參數 wi ( i =1, 2, …, N )中的各者組成的向量, 其中 N 為此類參數的總數目。
如上文所提及,目標函數用以在神經網路訓練期間使誤差最小化以適當地調整權數向量(網路參數)。方程式(2)中的函數被定義為需要藉由訓練而平均最小化的目標函數: 其中為針對輸入的神經網路的經預測輸出,且為針對輸入的預期輸出。如在本領域具有通常知識者將理解,存在可使用的許多類型的損失函數,包含例如交叉熵損失函數以及均方誤差損失函數。
針對任何輸入資料集的平均損失函數在方程式(3)(a)中被定義如下:
隨著輸入資料集變得愈來愈大,平均損失函數變得愈來愈接近預期損失函數,如方程式(3)(b)所展示:
在給出訓練集的情況下,藉由使用例如具有迷你批量的隨機梯度下降最佳化方法來求解方程式(4)而使網路參數最佳化():
如上文所論述,隨機梯度下降過程為如下過程:在各迭代中,針對幾個實例計算輸入向量、輸出以及誤差,計算平均梯度,且調整參數,直至目標函數的平均值停止減小為止。
在訓練/最佳化之後(或在修剪及/或微調之後),執行網路量化,在此狀況下藉由 k 均值逐層叢集來執行,其中網路參數叢集成 k 個不相交集合/叢集 k 均值叢集產生使量化誤差最小化的叢集,定義於方程式(5)(a)中: 其中為叢集中的網路參數/點的均值,如由方程式(5)(b)所定義:
k 均值叢集為非確定性的多項式時間難(non-deterministic polynomial time; NP難)問題;然而,如在本領域具有通常知識者將知曉,存在通常使用的迅速收斂至局部最佳解的數個高效試探演算法。最熟知演算法中的一者為勞埃德演算法。參見 斯圖爾特勞埃德(Stuart Lloyd)的「PCM中的最小平方量化(Least squares quantization in PCM)」,《關於資訊理論的 IEEE 會刊IEEE transactions on information theory )》,28(2):129-137,1982,其全文以引用方式併入本文中。
圖4說明根據一個實施例的用於使用勞埃德演算法執行 k 均值叢集的例示性流程圖。廣義地說,勞埃德演算法藉由重複指派及更新的兩個步驟而繼續進行,直至勞埃德演算法收斂或達到最大數目個迭代為止。
在圖4中,在410處,初始化k 個叢集中心的集合且將迭代索引n設定為1。在420處,將各網路參數指派至中心最接近參數值的叢集。此意謂根據使用叢集中心產生的沃羅諾伊(Voronoi)圖來分割點。在430處,在於420處已指派(再指派)所有網路參數之後,計算k 個叢集中心的新集合(x =迭代數目)。在440處,更新迭代的數目(「n=n+1」),且在445處,判定是否已結束迭代過程。更具體言之,判定迭代的數目是否已超出極限(「n>N」)或420處的指派是否無改變(此意謂演算法已有效地收斂)。若在445處判定過程已結束,則在450處產生用於經量化網路參數的碼簿(相似於例如圖3A中的表350)。若在445處判定過程尚未結束,則過程重複在420處進行指派。
接下來,計算藉由將 k 均值叢集用於網路量化所達成的壓縮比。為了執行這些計算,假定在量化之前各網路參數 wi ( i =1, 2, …, N )的長度為 b 個位元,其中 N 為此類參數的總數目。因此,需要 Nb 個位元以在量化之前儲存網路參數。
在假定 k 均值叢集與可變長度編碼一起使用的情況下,假設 Ci 為叢集 i 中的網路參數的數目,其中1 i k ,且 bi 為叢集 i 中的網路參數所指派的碼字(亦即,用於叢集 i 的碼字)的位元數目。因此,二進位碼字僅為個位元而非 Nb 個位元。對於儲存具有匹配的經量化網路參數值(各自為 b 個位元)的 k 個二進位碼字( bi 個位元,其中1 i k )的查找表,需要額外。因此,在方程式(6)(a)中:
如在上文所看到,在運用可變長度編碼的 k 均值叢集中,壓縮比不僅取決於叢集的數目,亦即 k ,而且取決於各種叢集的尺寸,亦即,以及用於各叢集碼字的位元的指派數目,亦即,其中。然而,對於所有碼字具有相同長度(亦即,針對所有 i )的固定長度碼,比率簡化為方程式(6)(b):
如在上文所看到,在運用固定長度編碼的 k 均值叢集中,在假定給出 N 以及 b 的情況下,壓縮比僅取決於叢集的數目,亦即 k 。此處,沒有必要對於固定長度碼將 k 個二進位碼字儲存於查找表中,此是因為所述二進位碼字例如在量化值以自0至 k - 1 的增大值被編碼成二進位數的情況下是隱含地已知的,且所述二進位碼字是以相同次序被儲存。
關於使用諸如上文所論述的用於網路量化的習知 k 均值叢集方法的問題中的一者為:所有網路參數被視為好像其具有相等重要性。然而,一些網路參數可對最終損失函數有較大影響且藉此對神經網路的效能有較大影響,而其他網路參數可對量化以及所得效能的影響可忽略。當使對損失函數及/或最終所得效能的影響最小化時,將所有網路參數視為具有相等權數(諸如在用於網路量化的習知 k 均值叢集方法中進行)並非最佳的。
關於習知 k 均值叢集的另一問題為:並未考慮編碼方案對壓縮比的影響。在假定使用固定長度編碼來編碼量化值的情況下,壓縮比僅僅藉由叢集的數目 k 來判定,參見例如以上方程式(6)(b)。然而,當使用可變長度無損編碼方案時,壓縮比不僅藉由叢集的數目 k 來判定,而且藉由叢集的尺寸以及碼字的經指派尺寸來判定,碼字的經指派尺寸是藉由所應用的寫碼來判定。參見 例如以上方程式(6)(a)。因此,當使用諸如霍夫曼或藍波-立夫-衛曲編碼的可變長度編碼時,在所述編碼中平均碼字長度漸近地接近熵極限,習知 k 均值叢集並不考量這些因子中的任一者,藉此導致更大的效能損失。
為了尤其求解關於習知 k 均值叢集的這些問題,本揭露內容描述 (1)利用關於網路參數的損失函數的二階偏導數(亦即,漢森矩陣的對角線)作為不同網路參數重要性的量度;以及(2)在由所使用的特定二進位編碼方案引起的實際壓縮比的約束下求解網路量化問題。因此,以下的描述分解為七個章節:I.使用漢森權數的網路量化;II.熵約束網路量化;III.純量量化的實驗/模擬結果;IV. 關於純量量化的結論;V.向量以及通用量化;VI.用於向量量化的實驗/模擬結果及;及VII.關於向量量化的結論。
本揭露內容描述尤其相比於習知 k 均值叢集提供較大效能結果的網路壓縮技術,包含網路量化方案,所述網路壓縮技術諸如: · 漢森加權 k 均值叢集 · 均勻量化(運用漢森加權叢集中心) · 用於熵約束純量量化(entropy-constrained scalar quantization; ECSQ)的迭代演算法 · 所有層一起量化
本揭露內容的實施例可用以量化神經網路的網路參數以便減小用於所述網路的儲存器(記憶體)尺寸,同時亦使效能降級最小化。本揭露內容中所描述的技術大體上適用於任何類型的神經網路。
圖5展示根據本揭露內容的實施例的運用網路量化技術的網路壓縮方案。在圖5中,網路修剪520、未經修剪網路參數微調530以及量化值微調550可相似於圖2中所展示的網路修剪220、未經修剪網路參數微調230以及量化值微調250。
圖5的網路量化540具有三個區塊:計算542、叢集544以及編碼546。如在本揭露內容中的別處所論述,計算542涉及計算漢森矩陣,所述計算可在網路訓練510之後在驗證階段期間進行。如在本揭露內容中的別處詳細描述的叢集540可涉及漢森加權k均值叢集、均勻量化以及用於熵約束純量量化(entropy-constrained scalar quantization; ECSQ)的迭代演算法中的一或多者。如在本揭露內容中的別處詳細描述的編碼546可涉及固定長度編碼以及可變長度編碼中的一或多者。在本揭露內容中的別處所識別以及描述的SGD最佳化器在圖5的底部上依據其對訓練510以及微調530的效應而提及。I . 使用漢森權數的網路量化
在此章節中,分析量化誤差對神經網路的損失函數的影響,且導出可用以量化不同網路參數在量化中的重要性的漢森權數。
漢森矩陣或「漢森」由二階偏導數組成。在樂昆等人1990以及哈斯比與斯道克1993中,漢森矩陣用於修剪網路參數。
在下文中,展示漢森(尤其是漢森對角線)亦可用於網路量化中以便向不同網路參數的量化誤差給出不同權數。描述用於網路量化的漢森加權 k 均值叢集方法,其中在用於網路參數叢集的加權 k 均值叢集中使用關於網路參數的網路損失函數的二階導數(亦稱為漢森)作為權數。
A. 漢森加權量化誤差
針對任何輸入資料集的平均損失函數可相對於 w 藉由泰勒級數(Taylor series)而展開,如方程式(7)(a)所展示: 其中,且如方程式(7)(b)所展示: 其中g(w)為梯度矩陣,且H(w)為由二階偏導數組成的漢森正方形矩陣。在假定已完成訓練/微調的情況下,網路參數經最佳化且損失函數已達到局部最小值()。在局部最小值下,梯度皆為零,亦即,,且因此方程式(7)(a)的右側的第一項可被忽略。相似地,依據平均損失函數在局部最小值下大致地為二次式的假定,方程式(7)(a)的右側的第三項亦可被忽略。最後,為了簡單起見,藉由將漢森矩陣H(w)的非對角線項設定為零而將漢森矩陣H(w)近似為對角線矩陣。方程式(7)(c)是自方程式(7)(b)得出: 其中為關於在下所評估的wi 的平均損失函數的二階偏導數,其為漢森矩陣的第 i 對角線元素。接下來,方程式(7)(c)藉由將視為在局部最佳下的網路參數wi 的量化誤差而與網路量化問題相關聯,亦即,,其中的量化值。因此,在下量化對平均損失函數的局部影響可大致地經量化為方程式(7)(d):
在局部最小值下,漢森矩陣的對角線元素(亦即) 皆為非負且因此方程式(7)(d)中的求和一直相加,此暗示平均損失函數增加或保持不變。
上文並未考慮再訓練與量化之間的互動。在本揭露內容中,在假定無另外再訓練的情況下分析歸因於所有網路參數的量化的預期損失,且致力於尋找在最大化壓縮比的同時使效能損失最小化的最佳網路量化方案。然而,在量化之後,在下文進一步論述的實驗中微調量化值(叢集中心)使得可稍微恢復歸因於量化的損失且進一步改良效能。
B. 漢森加權 k 均值叢集
在前一章節中,以方程式(7)(d)大致地量化在下漢森加權量化對平均損失函數的局部影響。在此章節中,由方程式(7)(d)指示的關係用以設計減少記憶體要求且使量化損失最小化的網路量化方案。為了記法簡單起見,自現在起假定以及。自方程式(7)(d),使漢森加權失真量度最小化的最佳叢集由方程式(8)(a)提供: 其中為關於網路參數的損失函數的二階偏導數,如方程式(8)(b)所展示: 為叢集中的網路參數的漢森加權均值,如方程式(8)(c)所展示: (8)(c)
與習知 k 均值叢集技術以及其在方程式(5)中的失真量度形成對比,失真量度方程式(8)(a)中的叢集中心現在為漢森加權叢集中心,亦即,方程式(8)(c)中的叢集成員的漢森加權均值。
另外,方程式(8)(a)在二階導數較大以便避免自其初始值的大偏差時給出計算量化誤差方面的較大懲罰,此是因為針對彼網路參數歸因於量化而對損失函數的影響被預期為較大。漢森加權 k 均值叢集在使用固定長度二進位碼以編碼量化值時在使量化損失最小化方面局部最佳,其中壓縮比僅僅取決於叢集的數目,如方程式(6)(b)所展示。
圖6說明根據一個實施例的用於使用勞埃德演算法執行漢森加權 k 均值叢集的例示性流程圖。
在圖6中,在610處,初始化個叢集中心的集合且將迭代索引n設定為1。在620處,將各網路參數指派至中心最接近參數值的叢集。此指派可藉由根據由叢集中心產生的沃羅諾伊圖來分割點來進行。在630處,在於620處已指派(再指派)所有網路參數之後,計算漢森加權叢集中心均值的新集合。在640處,更新迭代的數目(「n=n+1」),且在645處,判定是否已結束迭代過程。更具體言之,判定迭代的數目是否已超出極限(「n>N」)或620處的指派是否無改變(此意謂演算法已有效地收斂)。若在645處判定過程已結束,則在650處產生用於經量化網路參數的碼簿。若在645處判定過程尚未結束,則過程重複在620處進行指派。
C.漢森計算
為了執行漢森加權 k 均值叢集,需要評估關於網路參數中的各者的平均損失函數的二階偏導數,亦即,需要計算方程式(9):
漢森矩陣的僅對角線元素(亦即,)受到關注。如在本領域具有通常知識者將知曉,存在計算漢森矩陣的對角線元素的各種方式。計算漢森的對角線的高效方式在樂昆等人1990以及雅恩·樂昆的Mod ` eles connexionnistes de l ' apprentissage (博士論文,巴黎6,1987(「樂昆1987」))中導出。此計算技術是基於相似於用於計算一階偏導數(梯度)的反向傳播演算法的反向傳播方法。因此,計算漢森矩陣的對角線元素具有與計算梯度的複雜度相同的複雜度。
因此,儘管在本文中所描述的一個實施例中在完成網路訓練之後執行漢森計算以及網路量化,但在本揭露內容的其他實施例中,可甚至在計算梯度時在訓練階段期間執行漢森計算(或其他同等有效的計算,如下文在章節I.E中所論述)。
在一個實施例中用以計算漢森對角線的損失函數是遍及某一輸入集x的平均損失函數。為此目的,可再使用用於訓練的同一資料集(亦即,訓練資料集),或可使用另一資料集,例如,驗證資料集。在實驗中,觀測到,甚至使用訓練/驗證資料集的小子集仍足以得到漢森對角線的良好近似值,此產生良好量化結果。
D. 所有層的量化
根據本揭露內容的一實施例,藉由考量漢森權數而非執行逐層量化(如龔等人(2014)及韓等人(2015a)中的做法)來同時一起對神經網路的所有層的網路參數執行量化。同時針對所有層執行量化的動力是以下事實:量化誤差對效能的影響橫越各層顯著地變化--一些層(例如卷積層)相比於其他層可更重要。因此,對所有層執行量化連同使用本文中所揭露的漢森權數的網路量化方案可引起效能改良。
橫越所有層的量化的另一動力是深度神經網路的深度增大(亦即,變化層的數目增大)。參見例如何愷明(He, Kaiming)等人的「用於影像辨識的深度殘差學習(Deep residual learning for image recognition)」,arXiv 預印本arXiv : 1512 . 03385 (2015)(何等人2015)(其中描述ResNet),其全文是以引用方式併入本文中。在此類深度神經網路中,一起使所有層的網路參數量化是較高效的,此是因為用於逐層使叢集最佳化的時間相對於層的數目及/或複雜度按指數律成比例增大。
E. 漢森權數的替代方案
根據本揭露內容的實施例,使用梯度的二次矩估計值的函數作為使用漢森權數的替代方案。使用梯度的二次矩估計值的一個優點是可在訓練期間計算二次矩估計值且因此可儲存二次矩估計值以供稍後使用而無需額外計算。使用梯度的二次矩估計值的函數可在神經網路由進階隨機梯度下降最佳化器(諸如ADAM、Adagrad、Adadelta或RMSprop)訓練時特別有利。參見 (例如)以下各者:金馬(Kingma)、德里克(Diederik)及吉米·巴(Jimmy Ba)的「ADAM:隨機最佳化方法(ADAM: A method for stochastic optimization)」,arXiv預印本arXiv:1412.6980(2014)(「金馬等人2014」); 杜齊(Duchi)、約翰(John)、埃拉德·哈贊(Elad Hazan)以及尤倫·辛格(Yoram Singer)的「用於線上學習以及隨機最佳化的調適性次梯度方法(Adaptive subgradient methods for online learning and stochastic optimization)」,《機器學習研究期刊Journal of Machine Learning Research )》,7月12日(2011):2121-2159(「杜齊等人2011」);澤勒(Zeiler)、馬修D(Matthew D)的「ADADELTA:調適性學習速率方法(ADADELTA: an adaptive learning rate method)」,arXiv預印本arXiv:1212.5701(2012)(「澤勒2012」); 以及泰爾門(Tieleman)、帝門(Tijmen)及傑弗里·辛頓的「講演6.5-rmsprop:將梯度除以其最近量值的移動平均值(Lecture 6.5-rmsprop: Divide the gradient by a running average of its recent magnitude)」,《COURSERA:用於機器學習的神經網路(COURSERA: Neural Networks for Machine Learning)》,4.2(2012)(「講演6.5」),以上各者的全文以引用方式併入本文中。
作為實例,當使用ADAM隨機梯度下降最佳化器(金馬等人(2014))時,可使用梯度的二次矩估計值的平方根作為漢森權數的替代方案,如方程式(10)(a)中所展示: 用於的平方根的某一函數f ,梯度 i 的二次矩估計值。
ADAM方法自梯度的一次矩及二次矩的估計值計算不同網路參數的個別調適性學習速率;名稱ADAM自身是源於調適性矩估計(adaptive moment estimation)。ADAM演算法中的參數更新使用方程式(10)(b): 其中wi ( t ) 是迭代處更新的參數,是迭代處的動量(一次矩)的計算估計值,且是迭代處的二次矩的計算估計值。一次矩及二次矩藉由方程式(10)(c)被計算為迭代處的梯度的函數 其中如方程式(10)(d)中所展示而計算
此ADAM方法可與使用漢森權數的牛頓最佳化方法(Newton's optimization method)相比較。如方程式(11)中所展示而應用牛頓最佳化方法: 其中w(t)是迭代t 處更新的網路參數的向量,H - 1 (t)是迭代t 處計算的漢森矩陣的逆矩陣,且g(t)是迭代t處的梯度。
自方程式(10)(b)及(11),可看出,方程式(10)(b)中的分母作用就像方程式(11)中的H (t ),而方程式(10)(b)中的分子對應於方程式(11)中的梯度g(t)。此對應性指示可使用梯度的二次矩估計值的某一函數(比如平方根)作為漢森權數的替代方案。可在崔等人的「接近網路量化極限(Towards the Limit of Network Quantization)」(arXiv 預印本 arXiv : 1612 . 01543v1 ,2016年12月5日(「崔等人2016」),其全文是以引用的方式併入本文中)的附錄A.1中找到關於梯度的二次矩與二階導數之間的關係的進一步論述。
對於其他實施例,可找到二次矩估計值的相似函數且將其用於ADAM以及其他隨機梯度下降最佳化器中的任一者。如上文所提及,使用二次矩估計值的一個優點是在訓練期間計算二次矩估計值且可儲存二次矩估計值以供稍後使用而無需額外計算成本。II . 熵約束網路量化
在章節I中,已考慮用於使歸因於網路量化的效能損失量化以及最小化的方法。在此章節中,考慮用以使壓縮比最大化的方法,尤其是在使網路量化最佳化時適當地考量壓縮比方面。
A. 熵寫碼
在叢集且視情況修剪網路參數之後,可藉由將具有不同長度的二進位碼字指派至不同符號(亦即,量化值)而將可變長度二進位碼用於無損資料壓縮。舉例而言,霍夫曼寫碼將短的碼字指派至頻繁的符號且將長的碼字指派至較不頻繁的符號。
理論上,存在可對於給定源達成最小平均碼字長度的最佳碼的集合。熵是可藉由無損資料壓縮而達成的每符號平均碼字長度的理論極限,如由香儂(Shannon)所證實。參見 克勞德E香儂(Claude E. Shannon)的「通信數學理論A Mathematical Theory of Communication )」,《貝爾系統技術期刊(Bell System Technical Journal)》,第27卷,第379頁至第423頁、第623頁至第656頁,1948。由於此情形,達成最佳/近最佳壓縮的寫碼有時被稱為熵寫碼。已知的是,最佳碼可在僅允許整數長度碼字時以小於1個位元的某一額外負擔達成此極限。參見 例如托馬斯M庫佛(Thomas M Cover)及喬伊A托馬斯(Joy A Thomas)的「資訊理論的元素Elements of information theory )」,約翰·維利(John Wiley)與宋斯(Sons),2012,其全文是以引用方式併入本文中。
B. 熵約束純量量化(ECSQ)
當使用可變長度熵編碼時,壓縮比是由所使用的特定編碼方案達成的平均碼字長度的函數。在此類狀況下,可藉由在對平均碼字長度的約束下使量化損失最小化來使網路量化程序最佳化。當使用此類熵編碼方案時,可將網路量化的最佳化問題簡化為熵約束純量量化(ECSQ)問題,如下文所解釋。
對於量化值的固定長度編碼, k 均值叢集是至少用於使量化誤差最小化的最佳方案,此是因為壓縮速率僅取決於叢集的數目。然而,對於可變長度編碼(例如霍夫曼或藍波-立夫-衛曲編碼),壓縮速率不僅取決於叢集的數目,而且取決於叢集的尺寸以及碼字的長度。
因此,在此類狀況下,較佳的是在實際壓縮比的約束下使量化損失最小化,實際壓縮比是由最後所使用的特定編碼方案引起的平均碼字長度的函數。一種途徑是在對由方程式(12)(a)給出的壓縮比的約束下求解方程式(8)中的運用漢森權數的問題: 其中是平均碼字長度,亦即,方程式(12)(b):
在對任何任意可變長度二進位碼的壓縮比的約束的情況下求解此最佳化一般過於複雜,此是因為平均碼字長度可取決於叢集輸出而是任意的。然而,若假定在叢集之後使用最佳碼(諸如(例如)霍夫曼碼),則最佳化可被簡化。詳言之,因為最佳寫碼接近地達成源(亦即,熵)的平均碼字長度的下限,所以可如方程式(12)(c)中所展示而近似平均碼字長度 其中H 是叢集之後的經量化網路參數的熵(亦即,「源」),此是假定是叢集 Ci 中的網路參數的數目對所有網路參數的數目的比率(亦即,「源分佈(source distribution)」)。假定,則方程式(12)(a)的分母中的項接近於零,如方程式(12)(d)中所展示:
自方程式(12)(c)及(12)(d),可將方程式(12)(a)中的約束變更為由方程式(12)(e)給出的熵約束: 其中
概言之,假定在叢集之後使用最佳/熵寫碼,則對叢集輸出的熵的約束可大致地替換對壓縮比的約束。接著,將網路量化問題轉譯成運用熵約束的的量化問題,其在資訊理論中被稱為熵約束純量量化(ECSQ)。
在以下子章節中描述用於網路量化的熵約束純量量化的兩個高效試探解決方案,亦即,均勻量化、以及相似於用於k均值叢集的勞埃德演算法的迭代演算法。
C. 均勻量化
均勻量化是最佳高解析度熵約束純量量化器,而不論用於均方誤差準則的源分佈,此暗示:隨著解析度變得無限,亦即,當叢集的數目k → ∞時,均勻量化在使具有合理平滑密度函數的任何隨機源的均方量化誤差最小化的過程中是漸近地最佳的。參見 吉什(Gish)、赫波特(Herbert)以及約翰·皮爾斯(John Pierce)的「漸近高效量化(Asymptotically efficient quantizing)」,《關於資訊理論的 IEEE 會刊 》,14.5(1968):676-683(「吉什與皮爾斯1968」),其全文是以引用方式併入本文中。
均勻量化是極簡單的方案,此是因為叢集是由均勻間隔臨限值判定且其代表值(叢集中心)是藉由例如取得各叢集中的網路參數成員的均值(或漢森加權均值)而獲得。即使均勻量化是漸近地最佳的,但在模擬中觀測到其在用於網路量化時仍得到良好效能。因此,均勻量化在使用可變長度熵編碼(例如霍夫曼或藍波-立夫-衛曲編碼)以最後在叢集之後對量化值進行編碼時對於網路量化有效。
圖7說明根據一個實施例的用於執行均勻量化的例示性流程圖。
在圖7中,在710中設定均勻間隔叢集臨限值以便將網路參數劃分成叢集。接著,在720處,藉由對網路參數的值進行定限而將網路參數指派至其叢集中。在730中,針對各叢集計算代表值。在此實施例中,將各叢集的代表值設定為叢集的網路參數成員的所計算均值(或所計算漢森加權均值)。在均勻量化之後,一些叢集可為空的。在750中,藉由體現於所產生的碼簿中的寫碼而對網路參數進行編碼/壓縮。在此實施例中,使用霍夫曼編碼以將量化值編碼成用於所產生的碼簿的可變長度碼字。
可在崔等人2016的附錄A.3中找到具有非加權均值的均勻量化與具有漢森加權均值的均勻量化的效能比較,其全文是以引用的方式併入本文中。
D. 用以求解熵約束純量量化的迭代演算法
上文在章節II.B中所闡述的經提議以求解熵約束純量量化問題的另一方案是迭代演算法,迭代演算法相似於用於 k 均值叢集的勞埃德演算法。儘管此方案相比於先前子章節中的均勻量化更複雜,但此方案找到任何給定離散輸入源的熵約束純量量化問題的局部最佳點。
所述迭代演算法相似於用於求解周(Chou)、飛利浦A.(Philip A.)、湯姆·盧卡鮑(Tom Lookabaugh)以及羅伯特M.格雷(Robert M. Gray)的「熵約束向量量化(Entropy-constrained vector quantization)」(《關於聲學、語音 以及 信號處理的 IEEE 會刊IEEE Transactions on Acoustics , Speech , and Signal Processing )》,37.1(1989):31-42(「周等人1989」),其全文特此以引用方式併入本文中))中提供的一般熵約束純量量化問題的迭代演算法,且其是自史蒂芬·博伊德(Stephen Boyd)及列問·凡登伯格(Lieven Vandenberghe)的「凸面最佳化(Convex Optimization)」(劍橋大學出版社(Cambridge University Press)(2004),其全文亦特此以引用方式併入本文中)中的拉格朗日(Lagrangian)乘數的方法得出。
為了將此情形應用於網路量化問題,首先必須定義拉格朗日成本函數 Jλ ,如方程式(13)(a)中所展示: 其中失真量度 D 以及熵約束 H 是如方程式(13)(b)中所展示:
以上失真量度 D 可被正規化使得方程式(13)(a)中的拉格朗日成本函數可由網路參數的個別拉格朗日成本(由dλ ( i , j ) 表示)的平均值表示,如方程式(13)(c)中所展示: 其源自方程式(13)(d):
網路量化問題現在簡化為如下在方程式(13)(e)中找到使拉格朗日成本函數最小化的 k 個不相交叢集
在此最佳化問題中,存在待選擇的兩個選用參數,亦即,拉格朗日乘數λ以及(初始)叢集的數目k。
拉格朗日乘數λ控制熵約束;運用λ的不同值來求解此最佳化會在不同熵約束下引起最佳量化。舉例而言,在最佳化中使用λ的較大值的情況下,對於熵H有效地給出較多懲罰,且因此其在較小熵約束下導致最小化的失真。熵約束與壓縮比相關,而失真判定效能損失。因此,在對於λ的不同值求解此最佳化問題的情況下,可在壓縮比與效能之間獲得折衷曲線,折衷曲線展示針對給定效能極限的最佳壓縮比或針對給定壓縮比可達成的效能。λ的不同值在經最佳化且繼之以霍夫曼編碼時提供具有不同平均碼字長度的不同叢集。
方程式(13)(e)中的問題的定義中的叢集的數目k不等於最佳化之後的剩餘叢集的數目,此是因為一些叢集可歸因於熵約束而最終是空的。只要k足夠大,最佳化輸出就不會受到k大量地影響,此是因為求解運用熵約束的此問題亦會自動地使非空叢集的數目最佳化。
實務上,為k選擇足夠大的值,且為λ的不同值求解最佳化,此將提供展示可針對不同壓縮比達成的最大效能的曲線。自此曲線,可選擇滿足目標效能及/或目標壓縮比的點。
在給出λ及k的情況下,下文在演算法(1)中呈現用以求解網路量化的此熵約束純量量化問題的試探迭代演算法。應注意,演算法(1)相似於用於k均值叢集的勞埃德演算法;唯一主要差異是如何在指派步驟處分割網路參數。在勞埃德演算法中,使歐幾里得(Euclidean)距離(量化誤差)最小化。對於熵約束純量量化,代替地使方程式(13)(c)中的個別拉格朗日成本函數(亦即,dλ (i, j))最小化,所述成本函數包含量化誤差以及最佳編碼之後的預期碼字長度兩者。儘管如方程式(13)(b)中所展示的漢森加權量化誤差在此實施例中用於定義成本函數,但若漢森權數是不可用的或若其他量化誤差度量是較佳的,則可使用其他量化誤差度量。 演算法1 用於熵約束網路量化的迭代解 初始化: n ← 0 k 個叢集中心的初始化:各網路參數至其最接近的叢集的初始指派:遍及 k 個叢集計算網路參數的初始分佈:重複 指派: 對於所有叢集 j = 1 → k 進行循環結束 對於所有網路參數i = 1 N進行 wi 指派至使以下個別拉格朗日成本最小化的叢集j其中循環結束 更新: 對於所有叢集j = 1 → k 進行 更新叢集中心以及叢集j的分佈:循環結束 n ← n +1 直至拉格朗日成本函數 J λ 減小為小於某一臨限值為止
可在崔等人2016的附錄A.2中找到關於演算法(1)的更多細節,其全文是以引用方式併入本文中。
圖8說明根據一項實施例的用於執行迭代演算法來求解關於網路量化的熵約束純量量化問題的例示性流程圖。
在圖8中,在810中執行初始化。在此實施例中,初始化810包含個叢集中心的初始化:,各網路參數至叢集的初始指派,其漢森加權中心最接近於參數值,且計算初始分佈,亦即,。在820處執行指派。在此實施例中,在820中將每一網路參數指派至使個別拉格朗日成本最小化的叢集。參見 例如以上方程式(13)。
在830處,更新叢集中心以及分佈。換言之,重新計算新叢集中心,亦即,重新計算各叢集中的網路參數的均值(或漢森加權均值)、以及網路參數分佈。在840處,更新迭代的數目(「n=n+1」)。在845處,判定迭代過程是否已結束。更具體言之,判定迭代的數目是否已超出極限(「n>N」)或820處的指派是否無改變(此意謂演算法已有效地收斂)。若在845中判定過程已結束,則在850處產生用於經量化網路參數的碼簿。若在845中判定過程尚未結束,則過程重複在820處進行指派。III . 純量量化的實驗 / 模擬結果
使用具有CIFAR10資料集的預訓練的32層ResNet以測試根據本揭露內容的實施例的漢森加權k均值叢集方法以及均勻量化方法。CIFAR-10是具有8千萬個微小影像的資料集的經標註子集,其是由阿萊克斯·克里澤夫斯基、維諾德·奈爾(Vinod Nair)以及傑弗里·辛頓收集。CIFAR-10由10種類別的60,000個32×32彩色影像組成,每類別具有6000個影像。存在50,000個訓練影像以及10,000個測試影像。ResNet(何等人2015)是用於影像分類的目前先進技術深度卷積神經網路。其增大神經網路的深度,同時為較佳收斂添加一致路徑。預訓練的ResNet達成92.58%的準確度。網路參數的總數目是464,154。
圖9A說明根據一個實施例的用於各種網路量化方法的碼長的例示性標繪圖。圖9B說明根據一個實施例的用於各種網路量化方法的壓縮比的例示性標繪圖。圖9A以及圖9B中的網路量化方法包含k均值叢集、漢森加權k均值叢集以及均勻量化。圖9C說明根據一個實施例的用於各種網路量化方法的碼長的另一例示性標繪圖。圖9C中的網路量化方法包含k均值叢集、均勻量化以及運用迭代熵約束純量量化演算法的量化。IV . 關於純量量化的結論
如上文詳細地所描述,本揭露內容尤其提供以下兩者:(1)利用關於網路參數的損失函數的二階偏導數(亦即,漢森矩陣的對角線)作為網路參數的重要性的量度;以及(2)在由所使用的特定二進位編碼方案引起的實際壓縮比的約束下求解網路量化問題。
此外,在本揭露內容中,導出可藉由使歸因於量化的漢森加權失真最小化來局部地使歸因於網路量化的效能損失最小化。自此結果,揭露用於在使用固定長度二進位編碼時進行網路量化的漢森加權k均值叢集。此外,描述用於網路量化的漢森加權 k 均值叢集方法,其中在用於網路參數叢集的加權k均值叢集中使用關於網路參數的網路損失函數的二階導數作為權數。
使用漢森加權量化方法的一個缺陷是需要計算網路損失函數的二階導數(漢森矩陣的對角線元素)。然而,本揭露內容亦展示可在正計算梯度時在訓練階段期間計算漢森加權的替代方案。另外,論述計算漢森的對角線的高效方式,其具有與計算梯度的複雜度相同的複雜度。此外,模擬結果展示甚至使用小尺寸的資料集仍足以得到漢森的良好近似值且導致良好量化結果。
本揭露內容亦展示對壓縮比的約束下的網路量化的最佳化問題可在使用熵寫碼(亦即,最佳可變長度寫碼,其給定源的平均碼字長度接近於源的熵)時簡化為熵約束純量量化(ECSQ)問題。
揭露用於網路量化的兩個高效試探解決方案:均勻量化以及相似於勞埃德演算法的迭代演算法。對於均勻量化,設定均勻間隔臨限值以將網路參數劃分成叢集。在判定叢集之後,將各叢集的代表值設定為叢集的成員的均值或漢森加權均值。即使均勻量化是漸近地最佳的,但模擬指示其在用於網路量化時仍得到良好效能。除了相似於用以求解網路量化的熵約束純量量化問題的勞埃德演算法的迭代演算法以外,亦描述迭代演算法的漢森加權版本,其中使用漢森加權量化損失作為待在最佳化中最小化的目標函數。
本揭露內容亦描述使用網路參數的梯度的二次矩估計值的函數作為漢森加權的替代方案。此可與進階隨機梯度下降最佳化器一起使用。使用梯度的二次矩估計值與進階隨機梯度下降最佳化器的優點是在訓練/微調時計算二次矩估計值且因此可僅僅儲存二次矩估計值以供稍後使用(在網路量化期間)而無需額外計算。此使漢森加權對於深度神經網路更可行,深度神經網路具有數百萬個參數。
本揭露內容的網路量化方案可應用於同時一起使所有層的網路參數量化,而非執行逐層網路量化。因此,漢森加權可不僅在各層內而且橫越各層適當地處置量化誤差的不同影響。
在另一實施例中,可使用諸如藍波-立夫-衛曲的通用熵碼。藍波-立夫-衛曲壓縮的一個優點是其需要通過資料的單一遍次,且編碼器以及解碼器兩者可在運作中構建辭典,而霍夫曼編碼需要在資料上的兩個遍次,一個遍次用以計算符號頻率,且另一遍次用於編碼,且需要產生/發送辭典。在使用可變至固定熵編碼(諸如藍波-立夫-衛曲)而非固定至可變長度熵編碼(諸如霍夫曼碼)的實施例中,使用熵約束純量量化的所揭露的量化方案仍成立。
在其他實施例中,可使用抖動純量量化(參見 例如趙(Zhao)、錢(Qian)、馮漢英(Hanying Feng)以及米切爾·埃弗羅斯(Michelle Effros)的「使用熵約束抖動純量量化的多解析度源寫碼(Multiresolution source coding using entropy constrained dithered scalar quantization)」,《IEEE 資料壓縮會議 DCC 會議記錄 2004IEEE Data Compression Conference ( DCC ) Proceedings 2004 )》,其全文併入本文中),其中權數或網路參數在量化之前被抖動恆定因子,繼之以進行均勻純量量化且最後進行無損熵編碼,諸如藉由藍波-立夫-衛曲碼。V . 向量以及通用量化
一般而言,本揭露內容的實施例可用以量化神經網路的網路參數以便減小用於所述網路的儲存器(記憶體)尺寸,同時亦使效能降級最小化。本揭露內容中所描述的技術大體上適用於任何類型的神經網路。
上文論述用於網路量化的純量量化方法,且純量量化方法為相比於例如已用於逐層網路量化的習知k均值叢集的改良。參見 例如龔等人2014以及韓等人2015b。
在此章節中,描述用於網路量化的向量以及通用量化方案。已知向量量化器可需要比在資料壓縮中的純量量化器的碼率低的碼率。參見 例如格雷R.(Gray, R)「向量量化(Vector quantization)」《IEEE ASSP雜誌(IEEE ASSP Magazine)》,第1卷,第2號,第4頁至第29頁,1984(「格雷1984」),其全文特此以引用方式併入。對於神經網路,在龔等人2014中檢查向量量化,但彼檢查限於k均值叢集,繼之以固定長度二進位寫碼。
在此章節中,上文關於純量量化所論述的熵約束純量量化(ECSQ)解決方案經一般化至包含例如熵約束向量量化(ECVQ)的向量量化。
此章節中亦探索網路參數的通用量化。通用量化是運用抖動的經隨機化均勻量化。參見 例如齊夫J.(Ziv, J.)的「關於通用量化(On universal quantization)」(《關於資訊理論的IEEE會刊》,第31卷,第3號,第344頁至第347頁,1985(「齊夫1985」))以及紮米爾(Zamir)等人的「關於藉由經隨機化均勻/晶格量化器進行的通用量化(On universal quantization by randomized uniform/lattice quantizers)」(《關於資訊理論的IEEE會刊》,第38卷,第2號,第428頁至第436頁,1992(「紮米爾等人1992」)),其兩者的全文特此以引用方式併入。通常,最佳熵約束向量量化器相比於簡單通用量化器的優點普遍相當小,亦即,針對任何源以及速率。參見同前
然而,在本揭露內容的實施例中,將通用量化與通用源寫碼演算法組合,通用源寫碼演算法諸如例如藍波-立夫-衛曲(LZW)(參見 例如(衛曲, T.A.)的「用於高效能資料壓縮的技術(A technique for high-performance data compression)」,《電腦(Computer)》,第6卷,第17號,第8頁至第19頁,1984(「衛曲 1984」),其全文特此以引用方式併入),gzip(參見 http://www.gzip.org/)或bzip2(參見 http://www.bzip.org/)。
在本揭露內容中,描述通用網路壓縮方法,其被預期為普遍執行近最佳--亦即,針對任何神經網路以及任何壓縮比約束。
在本揭露內容中,揭露在網路參數的向量量化之後共用量化向量的微調方法。韓等人2015b中呈現共用量化值的微調方法,其使用純量均值叢集以用於網路量化。在韓等人2015b中,針對各叢集計算關於網路參數的網路損失函數的平均梯度且使用所述平均梯度以更新網路參數的共用量化值(叢集中心)。
相比之下,在本揭露內容的實施例中,當使用向量量化以用於網路量化時,量化向量的各維度元素被分離地微調。亦即,若存在n 維向量的k 個叢集,則網路參數可被有效地劃分成kn 個群組且其共用量化值可藉由使用各群組中的平均梯度而分離地微調。
本文中亦描述在通用量化之後的量化值或向量的微調演算法。在通用量化中,均勻或晶格量化輸出在消除隨機抖動值之前實際上被微調。相似於無抖動的系統,針對各叢集且在各維度中計算關於網路參數的平均梯度且使用所述平均梯度以更新量化輸出。在本文中所描述的實施例中,在消除隨機抖動之後關於經量化參數計算梯度,而微調值為在消除隨機抖動之前的微調值。
A. 向量量化
如上文所論述,熟知向量量化器可需要比在資料壓縮中的純量量化器低的碼率(參見 例如格雷1984),且針對龔等人2014中的神經網路檢查向量量化,但檢查僅限於k均值叢集,繼之以固定長度二進位寫碼。在本揭露內容中,諸如例如熵約束純量量化的純量量化解決方案經一般化至向量量化。
儘管向量量化理論上提供較佳的速率-失真折衷,但實務上向量量化一般實施起來比純量量化器更複雜。在本揭露內容的本實施例中,簡單晶格量化器(亦即,多維均勻量化器)不僅實施起來簡單,而且在實驗中展示良好效能。
針對向量量化,在給出個網路參數的集合的情況下,產生n 維向量的集合。此構造的實例是由方程式(14)給出: 其中,其中,其中
n 維向量分割成k 個叢集,其中為叢集i 中的向量的集合。將碼字指派至各向量,亦即,每n 個網路參數是由一碼字表示,其中是指派至叢集i (其中)中的向量的碼字中的位元數目。碼簿儲存k 個二進位碼字(各具有個位元)及對應n 維量化向量(各具有nb 個位元)。
在假定各網路參數在量化之前由個位元組成的情況下,用於向量量化的壓縮比是由方程式(15)給出:
碼簿尺寸(亦即,向量量化的維度數目)大約成比例,此暗示隨著維度增加,碼簿額外負擔變得相當大,且在某一點之後,維度變成使壓縮比降級的主要因子。因此,向量量化的益處隨著向量維度數目增加超過某一點(亦即,當碼簿額外負擔的增加變為使壓縮比降級的主要因子時)而降低。
B. 熵約束向量量化(ECVQ)
如上文依據純量量化(ECSQ)所論述,熵約束網路量化是給出壓縮比約束的繼之以熵寫碼的高效網路量化方法。相似於熵約束純量量化,給出熵約束的最佳向量量化可被稱為熵約束向量量化(ECVQ)。在本揭露內容中,上文所描述的熵約束純量量化解決方案經一般化且經展開而包含熵約束向量量化解決方案。
圖10說明根據本揭露內容的實施例的藉由熵約束向量量化以及熵寫碼進行網路壓縮以及解壓縮的例示性方塊圖。更具體言之,在1010、1020、1030、1040以及1050處發生壓縮,此後在1060以及1070處將經壓縮二進位碼字解壓縮。
在壓縮中,在1010處提供受訓練的原始或經修剪模型。在1020處,使用網路參數的集合以產生/建構維向量,諸如由以上方程式(14)中的經建構維向量的集合的實例所展示。在1030處,藉由晶格量化或藉由使用迭代演算法(其兩者在下文更詳細地加以論述)來執行ECVQ。在1040處微調共用量化向量(其對應於叢集中心),亦如下文更詳細地加以論述。在1050處,使用例如霍夫曼寫碼或通用寫碼(諸如藍波-立夫-衛曲、gzip或bzip(或其後續及/或改良版本中的任一者,諸如bzip2))來對量化向量進行熵寫碼。
接著將經壓縮、經熵寫碼且經向量量化的二進位碼字解壓縮。在解壓縮期間,在1060處首先對所接收二進位碼字進行解碼,且在1070處使用經量化網路參數以再建立經量化模型。
C. 晶格量化(多維均勻量化)
使均方量化誤差最小化的最佳高解析度熵約束向量量化隨著解析度變成無窮大而具有晶格狀碼簿。參見 例如吉什與皮爾斯1968;亦參見 葛森A.(Gersho, A.)的「漸近最佳區塊量化(Asymptotically optimal block quantization)」(《關於資訊理論的IEEE會刊》,第25卷,第4號,第373頁至第380頁,1979(「葛森1979」)),其全文特此以引用方式併入本文中。增大漸進性以及其他此類品質方面的此問題使此類最佳高解析度熵約束向量量化目前不適於實際廣泛使用(但其仍可與本揭露內容的態樣一起使用; 然而,未來改良可導致更大的適合性以及合意性來使用此類最佳高解析度熵約束向量量化方案與本揭露內容的態樣)。
在一個實施例中,相似於均勻量化器,向用於網路參數的向量量化的相對簡單晶格量化器提供以下過程: 1. 自網路參數建構維向量(使用例如方程式(14)); 2. 設定維歐幾里得空間的各維度中的均勻間隔臨限值; 3. 將維向量分組至叢集中;以及 4. 藉由取得各叢集中的向量的均值或漢森加權均值而獲得量化向量(亦即,叢集中心)。
D. 用以求解熵約束向量量化的迭代演算法
用於熵約束向量量化的迭代解藉由以下操作而簡單地自用於熵約束純量量化的迭代解得出(參見 例如上述章節II.D):用自純量網路參數建構的維向量替換純量網路參數。在給出上述用於熵約束純量量化的迭代解的情況下,一般化是直接的且因此在此處省略細節。
E. 共用量化向量的微調
如在網路參數的純量量化之後微調共用量化值的上述內容一樣,本文中在網路參數的向量量化之後微調共用量化向量。分離地微調共用量化向量的各維度元素。亦即,若存在維向量的個叢集,則網路參數被有效地劃分成個群組且其共用量化值被個別地微調。關於各群組中的網路參數的網路損失函數的平均梯度用於微調其共用量化值。
假設(其中)為叢集中的向量的第維度元素的網路參數的集合,如由方程式(16)(a)所定義:
此外,假設為用於叢集的共用量化向量(叢集中心)。中的所有網路參數經量化至相同值。此共用量化向量的各元素經微調,例如運用由方程式(16)(b)給出的隨機梯度下降(SGD)方法: 其中為迭代數目,為學習速率,且為關於中的網路參數的網路損失函數的平均梯度,亦即,如由方程式(16)(c)給出: 其中在由方程式16(d)以及16(e)給出的值下評估梯度 其中,其中
F. 通用量化(經隨機化均勻/晶格量化)
廣泛使用均勻量化器以及晶格量化器,此是因為其實施起來簡單且在資料壓縮的許多實例中亦展示為高效的。然而,其效能被證實為僅在量化解析度變成無窮大時(亦即,在叢集的數目時)才漸近性地接近於熵極限。對於有限解析度,亦即對於有限數目個叢集k ,均勻量化器以及晶格量化器並未被保證接近最佳地來執行,此是因為量化誤差取決於源分佈。
相比之下,「通用量化」藉由均勻分佈抖動使源隨機化,且最初被提議用於在自針對任何源分佈的熵率的保證界限內達成良好效能。參見 例如立夫1985。抖動是為了使量化誤差隨機化而故意施加雜訊,使量化誤差隨機化通常藉由使用均勻分佈且又為隨機的變數來進行,所述變數常常被標註為 z (或有時被標註為 u ,如下文所述)。參見例如同前,第345頁至第346頁。抖動造成大規模量化誤差的效應。
根據本揭露內容的實施例,藉由首先使網路參數依據均勻隨機化抖動隨機化而執行通用量化,且接著經抖動網路參數經歷均勻或晶格量化。最後,在均勻或晶格量化之後(在接收之後,用於解碼)自量化向量減去隨機抖動值。
在根據本揭露內容的用於通用量化的實施例中,發送器以及接收者兩者必須具有用於共用相同隨機抖動值的某一機制,使得用於編碼中的隨機抖動值可在由解碼器接收之後使用相同隨機抖動值來抵消。
在一個實施例中,隨機抖動值實際上並不藉由計算且接著在編碼器與解碼器之間發送所計算值來共用,而是由編碼器以及解碼器兩者使用同一虛擬亂數產生器以在編碼/解碼的兩端處產生相同的抖動值。參見例如下文所論述的圖11中的虛擬亂數產生器1100。
使用形式記法,通用量化可由方程式(17)表示: 其中:是由量化之前的原始網路參數組成的行向量;是由藉由均勻隨機抖動而隨機化的網路參數組成的行向量;是由來自通用量化的最終經量化網路參數組成的行向量;是由隨機抖動值組成的行向量,其中;以及表示n 維均勻量化器。
根據本揭露內容的一個實施例,提供以下用於網路參數的通用量化方法:
1. 在給出正整數m 的情況下,在方程式(18)中將網路參數隨機化如下: 其中為獨立並且恆等分佈的均勻隨機變數,且均勻分佈的間隔為,其中是接著的均勻或晶格量化的量化步長。基於上述內容,可看到,隨機抖動值按照每隔m 個網路參數改變。
2. 藉由以下操作對抖動網路參數執行均勻或晶格量化: (a) 在給出用於向量的維度n 的數目的情況下,針對歐幾里得空間的n 個維度中的各者設定均勻間隔臨限值; (b) 使用臨限值將n 維向量分組至叢集中;以及 (c) 藉由取得例如各叢集中的經分組n 維向量的均值或漢森加權均值而獲得各叢集的叢集中心。
3. 自均勻或晶格量化輸出消除隨機抖動值以獲得最終經量化網路參數。
圖11說明根據本揭露內容的實施例的藉由通用量化以及熵寫碼進行網路壓縮以及解壓縮的例示性方塊圖。更具體言之,在1110、1180、1135、1190以及1150處發生壓縮,此後在1160、1165以及1170處將經壓縮二進位碼字解壓縮。圖11中的相似於圖10中的參考數字的參考數字涉及實質上相似的功能,且在此處未必被再次描述或在相同程度上描述。
在圖11中的1180處,使用如關於上述方程式(18)所展示並描述且如由虛擬亂數產生器1100產生的獨立且恆等分佈的均勻隨機抖動變數來使來自1110處的受訓練原始/經修剪模型的網路參數隨機化。在1135處,對來自1180的抖動網路參數執行均勻或晶格量化。使用用於向量的維度n 的數目,針對歐幾里得空間的n 個維度中的各者設定均勻間隔臨限值且將n 維向量分組至叢集中,且藉由取得例如1135處的各叢集的向量的均值或漢森加權均值而獲得各叢集的叢集中心。
在1190處,微調來自1135的量化向量(叢集中心),如在接下來的章節中詳細描述。在1150處,執行熵寫碼以建立二進位碼字,所述二進位碼字在1160處被解碼。在1165處,解碼器使用同一虛擬亂數產生器1100以抵消在1180處施加至網路變數的獨立且恆等分佈的均勻隨機抖動變數。最後,使用來自1165的經量化網路參數以在1170處再建立經量化模型。
G. 在均勻量化之後微調量化值/向量
在通用量化中,微調歸因於在量化之前被添加且在量化結束時被抵消的隨機抖動值而並非直接的。
相似於無抖動的量化系統,針對各叢集且在各維度中計算關於網路參數的平均梯度,且接著使用所計算平均梯度以更新量化輸出。然而,相比之下,在消除隨機抖動之後計算關於經量化參數的梯度,而在消除隨機抖動之前微調值。
相似於上述方程式16(a)至(16)(d),是在n 維均勻量化之後(在此狀況下,在減去隨機抖動值之前獲得)的叢集i 的共用量化向量(叢集中心),且此量化向量的各元素運用例如由方程式(19)(a)給出的隨機梯度下降方法而微調: 其中是關於由方程式(19)(b)給出的關於集合中的網路參數的網路損失函數的平均梯度: 其在下被評估。
如上文所提及,在消除隨機抖動值之後評估平均梯度,而在減去隨機抖動值之前獲得更新的共用量化值/向量。
H. 通用源寫碼
根據本揭露內容的實施例,提供通用網路量化與通用源寫碼的組合,其提供被預期對任何神經網路以及對任何壓縮比約束有效的通用網路壓縮構架。
通用源寫碼的實例包含如上文所提及的藍波-立夫-衛曲(LZW)(參見 例如衛曲1984)gzip或bzip2,以及其他藍波及立夫演算法,諸如LZ77、LZ78、LZSS、LZMA,以及如在本領域具有通常知識者將知曉的其他者。
通用源寫碼被已知達成針對任何源的熵率,且其相比於霍夫曼寫碼更適宜,此是因為其無需源分佈的知識。此外,通用源寫碼演算法相比於霍夫曼寫碼可更佳地執行,此是因為通用源碼藉由將單一碼字用於多個符號而利用源符號之間的相依性(若存在)。霍夫曼寫碼並不考量源符號的相依性,而是有效地假定各源符號的獨立性,且不能將單一碼字用於多於一個源符號。
當在網路量化之後應用通用源寫碼時,在消除隨機抖動值之前考慮經量化網路參數。視情況可自經量化網路參數建構s 維量化向量。相異的量化值/向量被視為用於通用源寫碼的輸入字母表(源符號)。因此,量化值/向量經轉換成源符號清單,接著應用通用源寫碼。為了編碼以及解碼需要查找表。然而,對於此的額外負擔相當小。
圖12說明根據本揭露內容的實施例的在通用網路量化之後用於通用源寫碼的編碼器以及解碼器的例示性方塊圖。
在1210處,使用經量化網路參數以建構s 維量化向量(在消除隨機抖動值之前,在通用量化的狀況下)。如上文所論述且由形成方框1210的虛線所指示,1210是選用程序。在1220處,使用查找表1225將量化向量/值轉換成符號清單,所述查找表具有量化向量/值的對應符號。在1230中將通用寫碼應用至符號,且在1240處對經通用寫碼符號執行解碼。在1250處,使用查找表1255將來自1240的經解碼符號轉換回成量化向量/值,所述查找表具有符號的對應量化向量/值,藉此產生原始經量化網路參數。VI . 用於向量量化的實驗 / 模擬結果
熟知的資料集CIFAR-10用於模擬中。CIFAR-10是具有8千萬個微小影像的較大資料集的經標註子集,其是由阿萊克斯·克里澤夫斯基、維諾德·奈爾以及傑弗里·辛頓收集。CIFAR-10子集由10種不同類別/種類的60,000個32×32彩色影像組成,每類別具有6000個影像。存在50,000個訓練影像以及10,000個測試影像。ResNet是何等人2015中所描述的用於影像分類的目前先進技術深度卷積神經網路。神經網路的深度增大,同時為較佳收斂添加一致路徑。結果為預訓練的32層ResNet,其具有的網路參數的總數目為464,154,且針對CIFAR-10資料集達成92.58%的準確度。
運用32層ResNet來評估本文中所描述的晶格量化方案以及通用量化方案。詳言之,測試兩種狀況:其中各維度中的均勻邊界分別由以及設定。量化步長在兩種狀況下是相同的,但第一狀況具有叢集中間的原點,而第二狀況具有叢集的邊界上的原點。在量化之後使用霍夫曼寫碼以用於源寫碼。
大容量的網路參數集中於零周圍且因此在壓縮方面較高效以定位叢集中間的原點,如在第一測試中一樣,如以下圖式中所展示。
圖13A說明在微調之前各種晶格量化的準確度相對於其壓縮比的例示性標繪圖,而圖13B說明在微調量化向量之後各種晶格量化的準確度相對於其壓縮比的例示性標繪圖,其中均勻邊界在各維度中由設定。圖13C說明在微調之前各種晶格量化的準確度相對於其壓縮比的例示性標繪圖,而圖13D說明在微調量化向量之後各種晶格量化的準確度相對於其壓縮比的例示性標繪圖,其中均勻邊界在各維度中由設定。
圖14A說明在微調之前各種通用量化的準確度相對於其壓縮比的例示性標繪圖,而圖14B說明在微調量化向量之後各種通用量化的準確度相對於其壓縮比的例示性標繪圖,其中均勻邊界在各維度中由設定。圖14C說明在微調之前各種通用量化的準確度相對於其壓縮比的例示性標繪圖,而圖14D說明在微調量化向量之後各種通用量化的準確度相對於其壓縮比的例示性標繪圖,其中均勻邊界在各維度中由設定。
圖15說明根據本揭露內容的各種實施例的針對使用各種寫碼方案的均勻量化以及通用量化兩者的準確度相對於壓縮比的例示性標繪圖。VII . 關於 向量量化的結論
在上文關於向量量化的章節中,熵約束純量量化解決方案經一般化至向量量化(亦即,熵約束向量量化)。此外,提供簡單晶格量化器,亦即,多維均勻量化器,其不僅實施起來簡單,而且在實驗/模擬中展示良好效能。為了在自針對任何源分佈的熵率的保證界限內達成良好效能,亦提供用於運用均勻分佈抖動(亦即,通用量化)使源符號隨機化的方法以及系統。組合通用量化與通用源寫碼,揭露針對任何神經網路以及任何壓縮比約束可接近最佳地進行執行的通用網路壓縮系統以及方法。
在替代實施例中,代替多維均勻量化,可使用其他晶格量化器,其中沃羅諾伊單元可為某其他類型的n 維多面體(亦即,多面體是n 維歐幾里得空間中由有限數目個超平面圍封的的凸面區)。參見 例如康威J(Conway, J.)以及斯隆N(Sloane, N.)的「晶格的沃羅諾伊區、多面體的二次矩以及量化(Voronoi regions of lattices, second moments of polytopes, and quantization)」《關於資訊理論的IEEE會刊》,第28卷,第2號,第211頁至第226頁,1982(「康威與斯隆1982a」);以及康威J及斯隆N的「用於晶格量化器及碼的快速量化及解碼以及演算法(Fast quantizing and decoding and algorithms for lattice quantizers and codes)」《關於資訊理論的IEEE會刊》,第28卷,第2號,第227頁至第232頁,1982(「康威與斯隆1982b」)。舉例而言,在三維狀況下,晶格可具有八面體、六邊形稜鏡、菱形十二面體等的形狀。一些晶格比其他晶格更高效,且康威與斯隆1982a以及康威與斯隆1982b已判定針對維度n 的一些值最高效的晶格量化器。
儘管多維均勻量化器未必為最高效的晶格量化器,但其在本文中被描述,因為其針對維度n 的任何值實施起來簡單。然而,如在本領域具有通常知識者將理解,關於向量/通用量化的本揭露內容不限於本文中所描述的特定多維均勻量化器實施例,或限於本文中所描述的其他特定量化器實施例中的任一者。在其他實施例中,漢森加權仍在向量量化以及通用量化中適用。詳言之,當計算叢集中心時,可使用漢森加權均值來代替非加權正則均值。
圖16說明根據一個實施例的本設備的例示性圖。設備1600包含至少一個處理器1610以及一或多個非暫時性電腦可讀媒體1620。至少一個處理器1610在執行儲存於一或多個非暫時性電腦可讀媒體1620上的指令時執行以下步驟:自受訓練神經網路模型建構表示網路參數的多維向量;量化多維向量以獲得共用量化向量作為叢集中心;微調共用量化向量/叢集中心;以及使用共用量化向量/叢集中心進行編碼。此外,一或多個非暫時性電腦可讀媒體1620儲存用於使至少一個處理器1610執行彼等步驟的指令。
圖17說明根據一個實施例的用於製造以及測試本設備的例示性流程圖。
在1750處,製造設備(在此情況下為晶片組),包含至少一個處理器以及一或多個非暫時性電腦可讀媒體。至少一個處理器在執行儲存於一或多個非暫時性電腦可讀媒體上的指令時執行以下步驟:自受訓練神經網路模型建構表示網路參數的多維向量;量化多維向量以獲得共用量化向量作為叢集中心;微調共用量化向量/叢集中心;以及使用共用量化向量/叢集中心進行編碼。一或多個非暫時性電腦可讀媒體儲存用於使至少一個處理器執行彼等步驟的指令。
在1760處,測試設備(在此情況下為晶片組)。測試1760包含測試設備是否具有在執行儲存於一或多個非暫時性電腦可讀媒體上的指令時執行以下步驟的至少一個處理器:自受訓練神經網路模型建構表示網路參數的多維向量;量化多維向量以獲得作為叢集中心的共用量化向量;微調共用量化向量/叢集中心;以及使用共用量化向量/叢集中心進行編碼;以及測試設備是否具有儲存用於使至少一個處理器執行上述步驟的指令的一或多個非暫時性電腦可讀媒體。
上文關於本揭露內容的一實施例所描述的步驟及/或操作可取決於特定實施例及/或實施方案而以不同次序或歷時不同時期等等而並行地或同時地發生,此將為在本領域具有通常知識者所理解。不同實施例可以不同次序或藉由不同方式或手段執行動作。在本領域具有通常知識者將理解,一些圖式是所執行的動作的簡化表示,其在本文中的描述簡化概覽,且現實世界實施方案將複雜得多、需要更多階段及/或組件且亦將取決於特定實施方案的要求而變化。作為簡化表示,這些圖式可並不展示其他所需步驟,此是因為這些步驟可為在本領域具有通常知識者所知及理解,且可能不與本描述有關及/或對本描述有幫助。
相似地,一些圖式是僅展示有關組件的簡化方塊圖,且這些組件中的一些僅僅表示本領域中熟知的功能及/或操作,而非實際的硬體片件,此將為在本領域具有通常知識者所理解。在此類狀況下,組件/模組中的一些或全部可以多種方式及/或方式組合被實施或提供,諸如至少部分地以韌體及/或硬體,包含但不限於一或多個特殊應用積體電路(「application-specific integrated circuit;ASIC」)、標準積體電路、執行適當指令的控制器,且包含微控制器及/或嵌入式控制器、場可程式化閘陣列(「field-programmable gate array;FPGA」)、複雜可程式化邏輯裝置(「complex programmable logic device;CPLD」)及類似者。系統組件及/或資料結構中的一些或全部亦可作為內容(例如,作為可執行或其他機器可讀軟體指令或結構化資料)儲存於非暫時性電腦可讀媒體(例如,硬碟、記憶體、電腦網路或蜂巢式無線網路或其他資料傳輸媒體;或待由適當磁碟機或經由適當連接件(諸如DVD或快閃記憶體元件)讀取的可攜式媒體物品)上,以便啟用或組態電腦可讀媒體及/或一或多個關聯計算系統或裝置以執行或以其他方式使用或提供內容來執行所描述的技術中的至少一些。
可使用一或多個處理器、簡單微控制器、控制器及類似者(無論單獨地抑或呈多處理配置)以執行儲存於非暫時性電腦可讀媒體上的指令序列以實施本揭露內容的實施例。在一些實施例中,可代替或結合軟體指令而使用硬連線電路系統。因此,本揭露內容的實施例並不限於硬體電路系統、韌體及/或軟體的任何特定組合。
如本文中所使用的術語「電腦可讀媒體」指代儲存可被提供至處理器以供執行的指令的任何媒體。此類媒體可呈許多形式,包含但不限於非揮發性媒體以及揮發性媒體。舉例而言,非暫時性電腦可讀媒體的常見形式包含軟碟、可撓性磁碟、硬碟、磁帶或任何其他磁性媒體、CD-ROM、任何其他光學媒體、打孔卡、紙帶、具有孔圖案的任何其他實體媒體、RAM、PROM及EPROM、FLASH-EPROM、任何其他記憶體晶片或卡匣、或儲存有可由處理器執行的指令的任何其他媒體。
可至少部分地在可攜式裝置上實施本揭露內容的一些實施例。如本文中所使用的「可攜式裝置」及/或「行動裝置」指代有能力接收無線信號的任何可攜式或可移動電子裝置,包含但不限於多媒體播放器、通信裝置、計算裝置、導航裝置等等。因此,行動裝置包含(但不限於)使用者裝備(user equipment;UE)、膝上型電腦、平板電腦、可攜式數位助理(Portable Digital Assistant;PDA)、mp3播放器、手持型PC、即時傳訊裝置(Instant Messaging Device;IMD)、蜂巢式電話、全球導航衛星系統(Global Navigational Satellite System;GNSS)接收器、手錶、或可穿戴及/或攜帶於某個人身上的任何此類裝置。
鑒於本揭露內容,本揭露內容的各種實施例可實施於積體電路(integrated circuit;IC)中,積體電路亦被稱為微晶片、矽晶片、電腦晶片或僅僅被稱為「晶片」,此將為在本領域具有通常知識者所理解。此類積體電路可為例如寬頻及/或基頻數據機晶片。
雖然已描述若干實施例,但應理解,可在不脫離本揭露內容的範疇的情況下進行各種修改。因此,對於在本領域具有通常知識者將顯而易見,本揭露內容並不限於本文中所描述的實施例中的任一者,而是具有僅由所附申請專利範圍及其等效者界定的涵蓋範圍。
110、210‧‧‧完成神經網路訓練
120、220、520‧‧‧網路修剪
130、230、530‧‧‧未經修剪網路參數微調
140、240、540‧‧‧網路量化
150、250、550‧‧‧量化值微調
243、544‧‧‧叢集
245‧‧‧無損二進位編碼
310‧‧‧32位元浮點數/網路參數
311‧‧‧經解碼網路參數
320‧‧‧叢集索引
330‧‧‧代表值
340F‧‧‧固定長度二進位碼字
340V‧‧‧可變長度二進位碼字
341V‧‧‧第一經壓縮叢集索引碼字
350‧‧‧表
351‧‧‧映射表
410、420、430、440、445、450、610、620、630、640、645、650、710、720、730、750、810、820、830、840、845、850、1010、1020、1030、1040、1050、1060、1070、1110、1135、1150、1160、1165、1170、1180、1190、1210、1220、1230、1240、1250、1750、1760‧‧‧步驟
510‧‧‧網路訓練
542‧‧‧計算
546‧‧‧編碼
1100‧‧‧虛擬亂數產生器
1225、1255‧‧‧查找表
1600‧‧‧設備
1610‧‧‧處理器
1620‧‧‧電腦可讀媒體
本揭露內容的某些實施例的以上及其他態樣、特徵以及優點將自結合附圖的以下詳細描述而更顯而易見,其中: 圖1說明根據一個實施例的在完成神經網路訓練之後所實施的神經網路壓縮技術的例示性圖。 圖2說明根據一個實施例的在完成神經網路訓練之後所實施的神經網路壓縮技術的另一例示性圖。 圖3A說明根據一個實施例的用於網路量化的叢集以及編碼的例示性圖。 圖3B說明根據一個實施例的在解壓縮期間對經二進位編碼的量化值進行解碼的例示性圖。 圖4說明根據一個實施例的用於使用勞埃德演算法(Lloyd's algorithm)執行 k 均值叢集的例示性流程圖。 圖5說明根據一個實施例的本網路量化系統的例示性圖。 圖6說明根據一個實施例的用於使用勞埃德演算法執行漢森加權 k 均值叢集的例示性流程圖。 圖7說明根據一個實施例的用於執行均勻量化的例示性流程圖。 圖8說明根據一個實施例的用於執行迭代演算法來求解關於網路量化的熵約束純量量化問題的例示性流程圖。 圖9A說明根據一個實施例的用於各種網路量化方法的碼長的例示性標繪圖。 圖9B說明根據一個實施例的用於各種網路量化方法的壓縮比的例示性標繪圖。 圖9C說明根據一個實施例的用於各種網路量化方法的碼長的另一例示性標繪圖。 圖10說明根據本揭露內容的實施例的藉由運用熵寫碼進行熵約束向量量化(entropy-constrained vector quantization; ECVQ)而進行網路壓縮以及解壓縮的例示性方塊圖。 圖11說明根據本揭露內容的實施例的藉由通用量化以及熵寫碼進行網路壓縮以及解壓縮的例示性方塊圖。 圖12說明根據本揭露內容的實施例的在通用網路量化之後用於通用源寫碼的編碼器以及解碼器的例示性方塊圖。 圖13A至圖13D說明根據本揭露內容的各種實施例的在微調之前及之後各種晶格量化的準確度相對於其壓縮比的例示性標繪圖,其中均勻邊界在各維度方面經不同地設定。 圖14A至圖14D說明根據本揭露內容的各種實施例的在微調之前及之後各種通用量化的準確度相對於其壓縮比的例示性標繪圖,其中均勻邊界在各維度方面經不同地設定。 圖15說明根據本揭露內容的各種實施例的針對使用各種寫碼方案的均勻量化以及通用量化兩者的準確度相對於壓縮比的例示性標繪圖。 圖16說明根據一個實施例的本設備的例示性圖。 圖17說明根據一個實施例的用於製造以及測試本設備的例示性流程圖。

Claims (20)

  1. 一種用於使用多維向量進行網路量化的方法,包括: 自受訓練神經網路模型建構表示網路參數的多維向量; 量化所述多維向量以獲得共用量化向量作為叢集中心; 微調所述共用量化向量;以及 使用所述共用量化向量進行編碼。
  2. 如申請專利範圍第1項所述的用於使用多維向量進行網路量化的方法,其中編碼包括: 使用對所述共用量化向量的熵寫碼而建立二進位碼字。
  3. 如申請專利範圍第1項所述的用於使用多維向量進行網路量化的方法,其中量化所述多維向量包括: 使用晶格量化以量化所述多維向量。
  4. 如申請專利範圍第1項所述的用於使用多維向量進行網路量化的方法,其中量化所述多維向量包括: 使用迭代演算法以對熵約束向量量化進行求解。
  5. 如申請專利範圍第1項所述的用於使用多維向量進行網路量化的方法,其中量化所述多維向量包括: 使用通用量化以量化所述多維向量。
  6. 如申請專利範圍第5項所述的用於使用多維向量進行網路量化的方法,更包括: 在量化之前使用抖動來使所述網路參數隨機化。
  7. 如申請專利範圍第6項所述的用於使用多維向量進行網路量化的方法,其中使用抖動使所述網路參數隨機化包括: 使用虛擬亂數產生器以產生隨機抖動值。
  8. 如申請專利範圍第1項所述的用於使用多維向量進行網路量化的方法,其中量化所述多維向量包括: 將所述量化向量轉換成符號。
  9. 如申請專利範圍第8項所述的用於使用多維向量進行網路量化的方法,其中將所述量化向量轉換成符號包括: 使用查找表以尋找對應於所述量化向量的符號。
  10. 如申請專利範圍第8項所述的用於使用多維向量進行網路量化的方法,其中編碼包括: 使用通用寫碼。
  11. 一種用於使用多維向量進行網路量化的設備,包括: 一或多個非暫時性電腦可讀媒體;以及 至少一個處理器,其在執行儲存於一或多個非暫時性電腦可讀媒體上的指令時執行以下步驟: 自受訓練神經網路模型建構表示網路參數的多維向量; 量化所述多維向量以獲得共用量化向量作為叢集中心; 微調所述共用量化向量;以及 使用所述共用量化向量進行編碼。
  12. 如申請專利範圍第11項所述的用於使用多維向量進行網路量化的設備,其中所述至少一個處理器藉由以下操作執行編碼: 使用對所述共用量化向量的熵寫碼而建立二進位碼字。
  13. 如申請專利範圍第11項所述的用於使用多維向量進行網路量化的設備,其中所述至少一個處理器藉由至少以下操作來執行量化所述多維向量: 使用晶格量化以量化所述多維向量。
  14. 如申請專利範圍第11項所述的用於使用多維向量進行網路量化的設備,其中所述至少一個處理器藉由以下操作來執行量化所述多維向量: 使用迭代演算法以對熵約束向量量化進行求解。
  15. 如申請專利範圍第11項所述的用於使用多維向量進行網路量化的設備,其中所述至少一個處理器藉由以下操作來執行量化所述多維向量: 使用通用量化以量化所述多維向量。
  16. 如申請專利範圍第11項所述的用於使用多維向量進行網路量化的設備,其中所述至少一個處理器進一步執行以下步驟: 在量化之前使用抖動來使所述網路參數隨機化。
  17. 如申請專利範圍第16項所述的用於使用多維向量進行網路量化的設備,其中所述至少一個處理器藉由以下操作來執行使用抖動使所述網路參數隨機化: 使用虛擬亂數產生器以產生隨機抖動值。
  18. 如申請專利範圍第16項所述的用於使用多維向量進行網路量化的設備,其中當量化所述多維向量時所述至少一個處理器藉由以下操作來執行將所述量化向量轉換成符號: 使用查找表以尋找對應於所述量化向量的符號。
  19. 一種製造晶片組的方法,包括: 製造所述晶片組,所述晶片組包括: 至少一個處理器,其在執行儲存於一或多個非暫時性電腦可讀媒體上的指令時執行以下步驟: 自受訓練神經網路模型建構表示網路參數的多維向量; 量化所述多維向量以獲得共用量化向量作為叢集中心; 微調所述共用量化向量;以及 使用所述共用量化向量進行編碼;以及 儲存所述指令的所述一或多個非暫時性電腦可讀媒體。
  20. 一種測試設備的方法,包括: 測試所述設備是否具有在執行儲存於一或多個非暫時性電腦可讀媒體上的指令時執行以下步驟的至少一個處理器: 自受訓練神經網路模型建構表示網路參數的多維向量; 量化所述多維向量以獲得共用量化向量作為叢集中心; 微調所述共用量化向量;以及 使用所述共用量化向量進行編碼;以及 測試所述設備是否具有儲存所述指令的所述一或多個非暫時性電腦可讀媒體。
TW106135833A 2016-10-19 2017-10-19 網路量化的方法、神經網路中的設備、製造晶片組方法及測試設備方法 TWI801356B (zh)

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
US201662409961P 2016-10-19 2016-10-19
US62/409,961 2016-10-19
US15/433,531 US11321609B2 (en) 2016-10-19 2017-02-15 Method and apparatus for neural network quantization
US15/433,531 2017-02-15
US201762480857P 2017-04-03 2017-04-03
US62/480,857 2017-04-03
US15/697,035 US12190231B2 (en) 2016-10-19 2017-09-06 Method and apparatus for neural network quantization
US15/697,035 2017-09-06

Publications (2)

Publication Number Publication Date
TW201818302A true TW201818302A (zh) 2018-05-16
TWI801356B TWI801356B (zh) 2023-05-11

Family

ID=61904634

Family Applications (1)

Application Number Title Priority Date Filing Date
TW106135833A TWI801356B (zh) 2016-10-19 2017-10-19 網路量化的方法、神經網路中的設備、製造晶片組方法及測試設備方法

Country Status (4)

Country Link
US (1) US12190231B2 (zh)
KR (1) KR102787936B1 (zh)
CN (1) CN107967517A (zh)
TW (1) TWI801356B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI722434B (zh) * 2018-05-31 2021-03-21 耐能智慧股份有限公司 深度神經網絡自我調整增量模型壓縮的方法
TWI768516B (zh) * 2020-01-21 2022-06-21 大陸商星宸科技股份有限公司 運算裝置和運算方法
TWI785227B (zh) * 2018-06-03 2022-12-01 耐能智慧股份有限公司 深度神經網絡中批量標準化層修剪的方法
TWI870553B (zh) * 2020-02-24 2025-01-21 美商高通公司 使用編碼器神經網路的經壓縮的量測回饋

Families Citing this family (76)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11593632B2 (en) * 2016-12-15 2023-02-28 WaveOne Inc. Deep learning based on image encoding and decoding
US11037330B2 (en) 2017-04-08 2021-06-15 Intel Corporation Low rank matrix compression
US10878273B2 (en) * 2017-07-06 2020-12-29 Texas Instruments Incorporated Dynamic quantization for deep neural network inference system and method
CN109543826A (zh) * 2017-09-21 2019-03-29 杭州海康威视数字技术股份有限公司 一种基于深度神经网络的激活量量化方法及装置
US11295208B2 (en) * 2017-12-04 2022-04-05 International Business Machines Corporation Robust gradient weight compression schemes for deep learning applications
CN110413255B (zh) * 2018-04-28 2022-08-19 赛灵思电子科技(北京)有限公司 人工神经网络调整方法和装置
CN109102064B (zh) * 2018-06-26 2020-11-13 杭州雄迈集成电路技术股份有限公司 一种高精度的神经网络量化压缩方法
CN110728350B (zh) * 2018-06-29 2024-07-26 微软技术许可有限责任公司 用于机器学习模型的量化
WO2020014590A1 (en) * 2018-07-12 2020-01-16 Futurewei Technologies, Inc. Generating a compressed representation of a neural network with proficient inference speed and power consumption
ES2966999T3 (es) * 2018-08-03 2024-04-25 Siemens Healthcare Diagnostics Inc Procedimiento y dispositivo para entrenar una rutina de aprendizaje automático para el control de un sistema técnico
KR102825472B1 (ko) * 2018-08-30 2025-06-30 삼성전자주식회사 전자 장치 및 그 제어 방법
US11449756B2 (en) * 2018-09-24 2022-09-20 Samsung Electronics Co., Ltd. Method to balance sparsity for efficient inference of deep neural networks
US11348009B2 (en) 2018-09-24 2022-05-31 Samsung Electronics Co., Ltd. Non-uniform quantization of pre-trained deep neural network
CN109272046A (zh) * 2018-09-26 2019-01-25 北京科技大学 基于L2重新正则化Adam切换模拟回火SGD的深度学习方法
CN113169752B (zh) * 2018-11-22 2022-09-13 诺基亚技术有限公司 通信系统中的学习
US10769529B2 (en) * 2018-12-04 2020-09-08 Google Llc Controlled adaptive optimization
US12271810B2 (en) 2018-12-04 2025-04-08 Google Llc Federated learning with adaptive optimization
US20200202213A1 (en) * 2018-12-19 2020-06-25 Microsoft Technology Licensing, Llc Scaled learning for training dnn
GB2580171B (en) * 2018-12-21 2021-02-17 Imagination Tech Ltd Methods and systems for selecting quantisation parameters for deep neural networks using back-propagation
WO2020133364A1 (zh) * 2018-12-29 2020-07-02 华为技术有限公司 一种神经网络压缩方法及装置
CN109670057B (zh) * 2019-01-03 2021-06-29 电子科技大学 一种渐进式的端到端深度特征量化系统及方法
US20200218982A1 (en) * 2019-01-04 2020-07-09 Microsoft Technology Licensing, Llc Dithered quantization of parameters during training with a machine learning tool
KR102659494B1 (ko) 2019-01-21 2024-04-23 삼성전자주식회사 전자 장치 및 그 제어 방법
US10325352B1 (en) * 2019-01-23 2019-06-18 StradVision, Inc. Method and device for transforming CNN layers to optimize CNN parameter quantization to be used for mobile devices or compact networks with high precision via hardware optimization
US10325185B1 (en) * 2019-01-23 2019-06-18 StradVision, Inc. Method and device for online batch normalization, on-device learning, and continual learning applicable to mobile devices or IOT devices additionally referring to one or more previous batches to be used for military purpose, drone or robot, and testing method and testing device using the same
US11475308B2 (en) * 2019-03-15 2022-10-18 Samsung Electronics Co., Ltd. Jointly pruning and quantizing deep neural networks
CN111723901B (zh) * 2019-03-19 2024-01-12 百度在线网络技术(北京)有限公司 神经网络模型的训练方法及装置
CN111738401A (zh) * 2019-03-25 2020-10-02 北京三星通信技术研究有限公司 模型优化方法、分组压缩方法、相应的装置、设备
US11556796B2 (en) * 2019-03-25 2023-01-17 Nokia Technologies Oy Compressing weight updates for decoder-side neural networks
JP7298266B2 (ja) * 2019-04-19 2023-06-27 富士通株式会社 情報処理装置、情報処理方法および情報処理プログラム
CN110135465B (zh) * 2019-04-22 2022-12-09 腾讯科技(深圳)有限公司 模型参数表示空间大小估计方法及装置、推荐方法
JP2022531882A (ja) * 2019-05-07 2022-07-12 イメージア サイバーネティックス インコーポレイテッド ニューラルネットワークを初期化する方法及びシステム
TWI745697B (zh) * 2019-05-24 2021-11-11 創鑫智慧股份有限公司 用於神經網路參數的運算系統及其壓縮方法
CN110175262A (zh) * 2019-05-31 2019-08-27 武汉斗鱼鱼乐网络科技有限公司 基于聚类的深度学习模型压缩方法、存储介质及系统
CN110263917B (zh) * 2019-06-06 2023-09-22 深圳前海微众银行股份有限公司 一种神经网络压缩方法及装置
CN110378467A (zh) * 2019-06-17 2019-10-25 浙江大学 一种针对深度学习网络参数的量化方法
WO2020260656A1 (en) * 2019-06-26 2020-12-30 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Pruning and/or quantizing machine learning predictors
US10803184B2 (en) * 2019-08-09 2020-10-13 Alibaba Group Holding Limited Generation of a model parameter
US10936960B1 (en) * 2019-08-09 2021-03-02 Advanced New Technologies Co., Ltd. Determining model parameters using secret sharing
CN110555315B (zh) * 2019-08-09 2021-04-09 创新先进技术有限公司 基于秘密分享算法的模型参数更新方法、装置和电子设备
KR102185358B1 (ko) * 2019-08-27 2020-12-01 (주)데이터리퍼블릭 유저 데이터 및 서비스 항목 데이터를 활용한 서비스 구현 장치
KR102185359B1 (ko) * 2019-08-27 2020-12-01 (주)데이터리퍼블릭 메뉴 변경에 따른 서비스 사용변화량과 연동되는 서비스 복원 장치
CN110659678B (zh) * 2019-09-09 2023-11-17 腾讯科技(深圳)有限公司 一种用户行为分类方法、系统及存储介质
DE102019214308B4 (de) * 2019-09-19 2022-07-28 Robert Bosch Gmbh Schnelles quantisiertes Training trainierbarer Module
EP3799068A1 (en) * 2019-09-24 2021-03-31 Siemens Healthcare GmbH System and method for infectious disease notification
KR102885931B1 (ko) * 2019-09-24 2025-11-13 삼성전자주식회사 인공 신경망의 양자화 방법 및 인공 신경망을 이용한 연산 방법
TW202134958A (zh) * 2019-10-01 2021-09-16 弗勞恩霍夫爾協會 神經網路表示型態格式
JP7229905B2 (ja) * 2019-12-05 2023-02-28 日立Astemo株式会社 ニューラルネットワーク縮約装置およびその方法
CN113112008B (zh) * 2020-01-13 2024-05-10 中科寒武纪科技股份有限公司 用于神经网络数据量化的方法、装置和计算机可读存储介质
EP4100887A4 (en) * 2020-03-05 2023-07-05 Huawei Cloud Computing Technologies Co., Ltd. METHOD AND SYSTEM FOR SHARING AND BITWIDTH ALLOCATION OF DEEP LEARNING MODELS FOR INFERENCE ON DISTRIBUTED SYSTEMS
US11388415B2 (en) * 2020-05-12 2022-07-12 Tencent America LLC Substitutional end-to-end video coding
CN111814448B (zh) * 2020-07-03 2024-01-16 思必驰科技股份有限公司 预训练语言模型量化方法和装置
US20220051133A1 (en) * 2020-08-12 2022-02-17 NEC Laboratories Europe GmbH Decentralized multi-task learning
CN112183742B (zh) * 2020-09-03 2023-05-12 南强智视(厦门)科技有限公司 基于渐进式量化和Hessian信息的神经网络混合量化方法
CN112132024B (zh) * 2020-09-22 2024-02-27 中国农业大学 水下目标识别网络优化方法及装置
JP7585500B2 (ja) * 2020-12-18 2024-11-18 華為技術有限公司 ニューラルネットワークによりピクチャを符号化又は復号する方法及び装置
WO2022177931A1 (en) * 2021-02-17 2022-08-25 Carnegie Mellon University System and method for the automated learning of lean cnn network architectures
US12525320B2 (en) * 2021-03-16 2026-01-13 Illumina, Inc. Neural network parameter quantization for base calling
JP7325015B2 (ja) * 2021-03-24 2023-08-14 パナソニックIpマネジメント株式会社 量子化方法、量子化装置、及び、プログラム
KR20220138463A (ko) 2021-03-25 2022-10-13 주식회사 아이팩 용기의 표면처리방법 및 그 표면처리장치
CN113762503B (zh) * 2021-05-27 2024-08-23 腾讯云计算(北京)有限责任公司 数据处理方法、装置、设备及计算机可读存储介质
CN113422950B (zh) * 2021-05-31 2022-09-30 北京达佳互联信息技术有限公司 训练方法和训练装置、图像数据处理方法和装置、电子设备及存储介质
US11777812B2 (en) 2021-06-25 2023-10-03 Qualcomm Technologies, Inc. Zone-based federated learning
US11533484B1 (en) * 2021-07-15 2022-12-20 Teraki Gmbh Method and system for optimizing image and video compression for machine vision
DE102021207753A1 (de) * 2021-07-20 2023-01-26 Robert Bosch Gesellschaft mit beschränkter Haftung Effizientes beschneiden zweiter ordnung von computer-implementierten neuronalen netzwerken
US20250005200A1 (en) * 2021-11-08 2025-01-02 The Regents Of The University Of California Quantization and cryptographic protocol based machine learning models for confidential data analysis and inference
CN114037853B (zh) * 2021-11-11 2024-03-05 西北工业大学 基于拉普拉斯秩约束的深度图像聚类方法
KR102772554B1 (ko) * 2021-12-28 2025-02-24 성균관대학교산학협력단 역색인 구조 및 벡터 양자화의 협력적 최적화 장치 및 방법
CN114462571B (zh) * 2021-12-31 2024-12-06 科大讯飞股份有限公司 训练深度学习模型的方法、数据处理方法及装置
CN116739049B (zh) * 2022-03-01 2025-12-05 Oppo广东移动通信有限公司 一种网络压缩方法及装置、存储介质
CN114781604B (zh) * 2022-04-13 2024-02-20 广州安凯微电子股份有限公司 神经网络权重参数的编码方法、编码器及神经网络处理器
CN115081588A (zh) * 2022-05-30 2022-09-20 华为技术有限公司 一种神经网络参数量化方法和装置
US20220300795A1 (en) * 2022-06-09 2022-09-22 Intel Corporation Two-stage decompression pipeline for non-uniform quantized neural network inference on reconfigurable hardware
CN115153572B (zh) * 2022-06-30 2024-09-13 华中科技大学 一种小样本场景下的心电异常检测与识别方法及系统
WO2024068368A1 (en) * 2022-09-27 2024-04-04 Interdigital Ce Patent Holdings, Sas Uniform vector quantization for end-to-end image/video compression
KR102809046B1 (ko) * 2022-11-11 2025-05-19 삼성전자주식회사 양자화 스케일링 장치 및 양자화를 위한 스케일링 파라미터의 계산 방법

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5530020B2 (zh) * 1972-09-26 1980-08-07
TW524348U (en) * 2000-04-26 2003-03-11 Shan-Yue Fang Circuit for automatically detecting CPU inserting or removing
MXPA04002722A (es) * 2001-09-26 2005-11-04 Interact Devices Inc Sistema y metodo para comunicar senales de medios.
US7519941B2 (en) * 2006-04-13 2009-04-14 International Business Machines Corporation Method of manufacturing integrated circuits using pre-made and pre-qualified exposure masks for selected blocks of circuitry
US8229232B2 (en) 2007-08-24 2012-07-24 CVISION Technologies, Inc. Computer vision-based methods for enhanced JBIG2 and generic bitonal compression
US8503539B2 (en) 2010-02-26 2013-08-06 Bao Tran High definition personal computer (PC) cam
WO2012023102A1 (en) * 2010-08-17 2012-02-23 Technion R&D Foundation Mitigating inter-cell coupling effects in non volatile memory (nvm) cells
US9258564B2 (en) 2012-02-07 2016-02-09 Stmicroelectronics S.R.L. Visual search system architectures based on compressed or compact feature descriptors
US9661190B2 (en) * 2012-05-31 2017-05-23 Dolby Laboratories Licensing Corporation Low latency and low complexity phase shift network
CN103971748B (zh) * 2013-02-05 2018-08-24 厦门雅迅网络股份有限公司 一种存储卡检测电路和方法
US9769586B2 (en) 2013-05-29 2017-09-19 Qualcomm Incorporated Performing order reduction with respect to higher order ambisonic coefficients
JP5530020B1 (ja) 2013-11-01 2014-06-25 株式会社日立パワーソリューションズ 異常診断システム及び異常診断方法
US9639806B2 (en) * 2014-04-15 2017-05-02 Xerox Corporation System and method for predicting iconicity of an image
US9418458B2 (en) 2015-01-05 2016-08-16 Superfish Ltd. Graph image representation from convolutional neural networks

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI722434B (zh) * 2018-05-31 2021-03-21 耐能智慧股份有限公司 深度神經網絡自我調整增量模型壓縮的方法
US11403528B2 (en) 2018-05-31 2022-08-02 Kneron (Taiwan) Co., Ltd. Self-tuning incremental model compression solution in deep neural network with guaranteed accuracy performance
TWI785227B (zh) * 2018-06-03 2022-12-01 耐能智慧股份有限公司 深度神經網絡中批量標準化層修剪的方法
TWI768516B (zh) * 2020-01-21 2022-06-21 大陸商星宸科技股份有限公司 運算裝置和運算方法
TWI870553B (zh) * 2020-02-24 2025-01-21 美商高通公司 使用編碼器神經網路的經壓縮的量測回饋

Also Published As

Publication number Publication date
CN107967517A (zh) 2018-04-27
KR20180043172A (ko) 2018-04-27
TWI801356B (zh) 2023-05-11
US20180107926A1 (en) 2018-04-19
KR102787936B1 (ko) 2025-03-27
US12190231B2 (en) 2025-01-07

Similar Documents

Publication Publication Date Title
TW201818302A (zh) 網路量化的方法、設備、製造晶片組方法及測試設備方法
TWI767922B (zh) 用於神經網路量化的方法以及裝置、以及製造晶片的方法
US11403528B2 (en) Self-tuning incremental model compression solution in deep neural network with guaranteed accuracy performance
Choi et al. Towards the limit of network quantization
Gysel et al. Hardware-oriented approximation of convolutional neural networks
CN107832837B (zh) 一种基于压缩感知原理的卷积神经网络压缩方法及解压缩方法
Lee et al. Lognet: Energy-efficient neural networks using logarithmic computation
Ye et al. Progressive weight pruning of deep neural networks using ADMM
CN111488986A (zh) 一种模型压缩方法、图像处理方法以及装置
KR102608467B1 (ko) 뉴럴 네트워크의 경량화 방법, 이를 이용한 인식 방법, 및 그 장치
CN110663048A (zh) 用于深度神经网络的执行方法、执行装置、学习方法、学习装置以及程序
CN111818346A (zh) 图像编码方法和装置、图像解码方法和装置
CN119180306A (zh) 神经网络模型编码/解码的方法和装置
Wijayanto et al. Towards robust compressed convolutional neural networks
Musa et al. Lightweight Deep Learning Models For Edge Devices—A Survey
CN105354867A (zh) 自适应冗余字典压缩感知的高光谱图像压缩算法研究
JP4981122B2 (ja) 抑制されたベクトル量子化
Isik et al. Successive pruning for model compression via rate distortion theory
Yang et al. Reweighted compressive sampling for image compression
CN114667544B (zh) 多速率神经图像压缩方法和装置
Kavvousanos et al. Hardware implementation aspects of a syndrome-based neural network decoder for bch codes
Dupuis et al. Approximations in deep learning
Lyu et al. Optimization and hardware implementation of learning assisted min-sum decoders for polar codes
CN120911525B (zh) 基于信息一致性驱动的梯度压缩器及梯度压缩方法、设备
JP4883455B2 (ja) 符号化装置、符号化方法および符号化プログラム