TWI830669B - 編碼方法及編碼電路 - Google Patents

編碼方法及編碼電路 Download PDF

Info

Publication number
TWI830669B
TWI830669B TW112119501A TW112119501A TWI830669B TW I830669 B TWI830669 B TW I830669B TW 112119501 A TW112119501 A TW 112119501A TW 112119501 A TW112119501 A TW 112119501A TW I830669 B TWI830669 B TW I830669B
Authority
TW
Taiwan
Prior art keywords
circuit
vector
function
input
activation
Prior art date
Application number
TW112119501A
Other languages
English (en)
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
Application filed by 旺宏電子股份有限公司 filed Critical 旺宏電子股份有限公司
Application granted granted Critical
Publication of TWI830669B publication Critical patent/TWI830669B/zh

Links

Images

Landscapes

  • Complex Calculations (AREA)

Abstract

本案揭露編碼方法及編碼電路。編碼方法包括:以一卷積層根據一權重對一輸入進行線性轉換成一第一向量;以一激活功能比較該卷積層所轉換出的該第一向量與一參考值以得到一第二向量;將該激活功能所產生的該第二向量結合於一隨機向量以產生複數個結合結果;將該些結合結果相加以產生一加法結果;以及以一符號函數與一正規化功能將該加法結果運算,以得到一輸出向量。

Description

編碼方法及編碼電路
本發明是有關於一種編碼方法及編碼電路。
近年來,隨著愈來愈多的人工智慧(AI)應用特徵向量學習,在記憶體裝置內進行特徵儲存與特徵搜尋的成本也快速增加。
現已有愈來愈多的研究努力在減少特徵儲存與特徵搜尋的成本。以目前來說,大部份的研究都是將32位元的浮點特徵(32-bit floating point feature,FP32)量化(quantifying)成二進位特徵(binary feature),以減少特徵儲存與特徵搜尋的成本。
目前常用的二位元量化技術是高維計算(hyperdimensional computing)。高維計算利用隨機產生高維特徵向量(hyper feature vector)來進行編碼。這種做法雖然有效率,但其能力有限。故而,高維計算仍有改善空間。
根據本案一方面,提出一種編碼方法,包括:以一卷積層根據一權重對一輸入進行線性轉換成一第一向量;以一激活功能比較該卷積層所轉換出的該第一向量與一參考值以得到一第二向量;將該激活功能所產生的該第二向量結合於一隨機向量以產生複數個結合結果;將該些結合結果相加以產生一加法結果;以及以一符號函數與一正規化功能將該加法結果運算,以得到一輸出向量。
根據本案另一方面,提出一種編碼電路,耦接至一記憶體裝置。該編碼電路包括:一卷積層電路,耦接至該記憶體裝置,根據該記憶體裝置所傳來的一權重對該記憶體裝置所傳來的一輸入進行線性轉換成一第一向量;一激活電路,耦接至該卷積層電路,該激活電路比較該卷積層電路所轉換出的該第一向量與一參考值以得到一第二向量;一結合電路,耦接至該激活電路,該結合電路將該激活電路所產生的該第二向量結合於該記憶體裝置所傳來的一隨機向量以產生複數個結合結果;一加法電路,耦接至該結合電路,該加法電路將該些結合結果相加以產生一加法結果;以及一符號函數及正規化電路,耦接至該加法電路,以一符號函數與一正規化功能將該加法結果運算,以得到一輸出向量,該輸出向量係寫入至該記憶體裝置。
為了對本發明之上述及其他方面有更佳的瞭解,下文特舉實施例,並配合所附圖式詳細說明如下:
100:編碼器
110:卷積層
120:激活功能
130:結合器
140:加法器
150:符號函數
160:正規化功能
200:編碼電路
210:卷積層電路
220:激活電路
230:結合電路
240:加法電路
250:符號函數及正規化電路
211~213:先入先出(FIFO)電路
214:輸入特徵暫存器
215:權重緩衝器
216:乘法電路
217:偏差值緩衝器
218:加法電路
224:輸出緩衝器
232:隨機向量緩衝器
242:部份和暫存器
252:整數比較器
256:先入先出電路
222:32位元浮點比較器
234:FIFO電路
第1圖繪示根據本案一實施例之編碼器之操作示意圖。
第2圖繪示根據本案一實施例之編碼電路硬體架構圖。
本說明書的技術用語係參照本技術領域之習慣用語,如本說明書對部分用語有加以說明或定義,該部分用語之解釋係以本說明書之說明或定義為準。本揭露之各個實施例分別具有一或多個技術特徵。在可能實施的前提下,本技術領域具有通常知識者可選擇性地實施任一實施例中部分或全部的技術特徵,或者選擇性地將這些實施例中部分或全部的技術特徵加以組合。
第1圖繪示根據本案一實施例之編碼器之操作示意圖。編碼器100可用於實現編碼方法。如第1圖所示,編碼器100包括:卷積層110、激活功能120、結合(bind)器130、加法器140、符號函數(Signum function)150與正規化功能160。編碼器100可將輸入IN編碼成二進位向量(binary vector)。
卷積層110可根據權重W及偏差值B(偏差值B為選擇性)對輸入IN進行線性轉換成向量。例如但不受限於,輸入IN可為32位元浮點輸入。則卷積層110可根據權重W與偏差值B對浮點輸入IN進行線性轉換成浮點向量。在本案一例中,卷積層110的參數可設定如下:stride=1、input=n、output=d。參數“Stride”是卷積層中,核心(Kernel)的每次計算時移動的距離。參數“input”是卷積層的輸入資料的向量長度。參數“output”是 卷積層的輸出資料的向量長度。
激活功能120可進行比較功能,比較卷積層110所轉換出的浮點向量於參考值(例如但不受限於為0)以得到二進位向量。在本案一例中,當在訓練階段,激活功能120例如但不受限於為為雙曲正切函数(hyperbolic tangent function);而在推理(inference)階段,激活功能120例如但不受限於為為符號函數(Signum function)。
舉例說明之,在此以輸入IN為32位元浮點輸入,且卷積層110為一維卷積層(1xd,其中,d=32)為例做說明。經過卷積層110的線性轉換與激活功能120的比較後,第1個32位元浮點輸入IN(其為0.5)可被轉換(亦即量化)成二進位向量h1,h1=[1-1-1...1],其餘可依此類推。在第1圖中,n代表輸入IN的個數。
結合器130將激活功能120所產生的二進位向量[h1,...,hn]結合於隨機向量(random vector)[r1,...,rn]以產生複數個結合結果。
加法器140將結合器130所產生的結合結果相加以產生加法結果。在本案一例中,結合器130例如是互斥或邏輯運算。
符號函數150與正規化功能160可將加法器140所產生的加法結果以類似下列的方式來運算,以得到二進位向量g。
Figure 112119501-A0305-02-0007-1
符號函數150可進行如下操作,其中,x代表加法器140所產生的加法結果的數值,而y代表符號函數150的輸出:y=1當x>0;以及,y=-1當x<0。
正規化功能160則將符號函數150的輸出正規化,例如但不受限於,當符號函數150的輸出為1時,正規化功能160將符號函數150的輸出正規化成1;以及當符號函數150的輸出為-1時,正規化功能160將符號函數150的輸出正規化成0。
藉此,符號函數150與正規化功能160可將加法器140所產生的加法結果的維度降低。
二進位向量g可儲存於記憶體裝置內,以進行相似性搜尋(similarity search)等。
第2圖繪示根據本案一實施例之編碼電路硬體架構圖。編碼電路200可用於實現第1圖的編碼器100。如第2圖所示,編碼電路200包括:卷積層電路210、激活電路220、結合電路230、加法電路240、與符號函數(Signum function)及正規化電路250。編碼電路200可將輸入IN編碼成二進位向量(binary vector)。更甚者,編碼電路200更包括輸出緩衝器224。卷積層電路210、激活電路220、結合電路230、加法電路240、與符號函數及正規化電路250可分別用於實現卷積層110、激活功能120、結合器130、加法器140、符號函數150與正規化功能160。
卷積層電路210耦接至記憶體裝置205。卷積層電路210包括複數個先入先出(FIFO)電路211~213、輸入特徵暫存器214、權重緩衝器215、乘法電路216、偏差值緩衝器217與加法電路218。
先入先出(FIFO)電路211~213耦接至記憶體裝置205。記憶體裝置205例如但不受限於為動態隨機存取記憶體(DRAM)。從記憶體裝置205所讀出的輸入IN、權重W與偏差值B分別暫存於先入先出(FIFO)電路211~213內。先入先出(FIFO)電路211與212輸出所暫存的輸入IN與權重W至輸入特徵暫存器214與權重緩衝器215。輸入特徵暫存器214與權重緩衝器215分別將所暫存的輸入IN與權重W輸入至乘法電路216以進行相乘,並將乘法結果送至加法電路218。先入先出(FIFO)電路213輸出所暫存的偏差值B至偏差值緩衝器217。偏差值緩衝器217輸出所暫存的偏差值B至加法電路218。加法電路218將乘法電路216的乘法結果相加於偏差值B,以得到浮點向量。
當輸入IN為32位元浮點輸入時,輸入特徵暫存器214為32位元,權重緩衝器215為dx32位元,乘法電路216為32位元浮點乘法器,偏差值緩衝器217為dx32位元,加法電路218為32位元浮點加法器。
激活電路220耦接至卷積層電路210。激活電路220可進行比較功能,比較卷積層電路210所轉換出的浮點向量於參考值(例如但不受限於為0)以得到二進位向量。在本案一例中,例 如但不受限於,當輸入IN為32位元浮點輸入時,激活電路220包括32位元浮點比較器222。詳言之,當卷積層電路210所轉換出的浮點向量(有32位元)的數值大於0時,激活電路220輸出1;以及,當卷積層電路210所轉換出的浮點向量(有32位元)的數值小於0時,激活電路220輸出-1。
激活電路220所得到的二進位向量[h1,...,hn]係輸入至輸出緩衝器224。輸出緩衝器224將所暫存的二進位向量[h1,...,hn]輸入至結合電路230。同樣的,在一訓練階段,該激活電路220執行一雙曲正切函数;以及在一推理階段,該激活電路220執行一符號函數。
由記憶體裝置205所讀出的隨機向量R係暫存於FIFO電路234,由FIFO電路234送至隨機向量緩衝器232。
結合電路230耦接至輸出緩衝器224。結合電路230將激活電路220所產生的二進位向量[h1,...,hn]結合於隨機向量緩衝器232所輸出的隨機向量R(R=[r1,...,rn])。在本案一例中,結合電路230例如是互斥或邏輯閘。
加法電路240耦接至結合電路230。加法電路240將結合電路230所產生的結合結果相加於由部份和暫存器(partial sum register)242所送出的部份和以產生加法結果。部份和暫存器242用於相加給定序列的元素總和。第一個和等於第一個元素。第二個和等於第一個元素與第二個元素的相加結果。第三個和等於前三個元素的相加結果,其餘可依此類推。在第2 圖中,部份和暫存器242用於相加加法電路240的加法結果。
符號函數及正規化電路250耦接至加法電路240。在本案一例中,符號函數及正規化電路250包括整數比較器252。整數比較器252將加法電路240所產生的加法結果比較於一參考整數(例如是n/2),以進行符號函數操作及正規化。例如,加法結果大於參考整數(例如是n/2)時,符號函數及正規化電路250輸出1;以及,加法結果小於參考整數(例如是n/2)時,符號函數及正規化電路250輸出0。
符號函數及正規化電路250耦接至加法電路240與先入先出電路256,其中,先入先出電路256例如是d×1位元。先入先出電路256可暫存符號函數及正規化電路250的輸出並輸出成二進位向量g以寫入至記憶體裝置205。儲存於記憶體裝置205內的二進位向量g進行相似性搜尋(similarity search)等。
如第2圖所示,藉由第2圖的編碼電路200,可以將輸入IN編碼成二進位向量g。
本案上述實施例揭露可訓練高維向量(trainable hypervector,THV),其利用深度學習AI來產生高維特徵向量。故而,本案上述實施例可以更有效率地將浮點資料量化成二進位,以解決現有高維計算的缺點且能改善量化準確度。
本案實施例可應用於需要將浮點特徵(亦即浮點輸入IN)轉換成二進位特徵(亦即二進位向量g)的任何應用中,例如但不受限於,人臉辨認(Facial recognition)、影像檢索(Image retrieval)、二維/三維位置辨認(2D/3D Place recognition)、推薦系統(Recommendation system)等。
綜上所述,雖然本發明已以實施例揭露如上,然其並非用以限定本發明。本發明所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作各種之更動與潤飾。因此,本發明之保護範圍當視後附之申請專利範圍所界定者為準。
100:編碼器
110:卷積層
120:激活功能
130:結合器
140:加法器
150:符號函數
160:正規化功能

Claims (8)

  1. 一種編碼方法,包括:以一卷積層根據一權重對一輸入進行線性轉換成一第一向量;以一激活功能比較該卷積層所轉換出的該第一向量與一參考值以得到一第二向量;將該激活功能所產生的該第二向量結合於一隨機向量以產生複數個結合結果;將該些結合結果相加以產生一加法結果;以及以一符號函數與一正規化功能將該加法結果運算,以得到一輸出向量,其中,該卷積層根據該權重與一偏差值對該輸入進行線性轉換成該第一向量。
  2. 如請求項1所述之編碼方法,其中,當該輸入為一32位元浮點輸入時,該第一向量為一浮點向量;該第二向量與該輸出向量皆為二進位向量。
  3. 如請求項1所述之編碼方法,其中,在一訓練階段,該激活功能為一雙曲正切函數;以及在一推理階段,該激活功能為一符號函數。
  4. 如請求項1所述之編碼方法,其中,當將該第二向量結合於該隨機向量時,以一互斥或邏輯運算來進行結合。
  5. 一種編碼電路,耦接至一記憶體裝置,該編碼電路包括:一卷積層電路,耦接至該記憶體裝置,根據該記憶體裝置所傳來的一權重對該記憶體裝置所傳來的一輸入進行線性轉換成一第一向量;一激活電路,耦接至該卷積層電路,該激活電路比較該卷積層電路所轉換出的該第一向量與一參考值以得到一第二向量;一結合電路,耦接至該激活電路,該結合電路將該激活電路所產生的該第二向量結合於該記憶體裝置所傳來的一隨機向量以產生複數個結合結果;一加法電路,耦接至該結合電路,該加法電路將該些結合結果相加以產生一加法結果;以及一符號函數及正規化電路,耦接至該加法電路,以一符號函數與一正規化功能將該加法結果運算,以得到一輸出向量,該輸出向量係寫入至該記憶體裝置,其中,該卷積層電路根據該權重與一偏差值對該輸入進行線性轉換成該第一向量。
  6. 如請求項5所述之編碼電路,其中,當該輸入為一32位元浮點輸入時,該第一向量為一浮點向量;該第二向量與該輸出向量皆為二進位向量。
  7. 如請求項5所述之編碼電路,其中, 在一訓練階段,該激活電路執行一雙曲正切函數;以及在一推理階段,該激活電路執行一符號函數。
  8. 如請求項5所述之編碼電路,其中,該結合電路為一互斥或邏輯閘。
TW112119501A 2023-02-22 2023-05-25 編碼方法及編碼電路 TWI830669B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US202363447354P 2023-02-22 2023-02-22
US63/447,354 2023-02-22

Publications (1)

Publication Number Publication Date
TWI830669B true TWI830669B (zh) 2024-01-21

Family

ID=90459317

Family Applications (1)

Application Number Title Priority Date Filing Date
TW112119501A TWI830669B (zh) 2023-02-22 2023-05-25 編碼方法及編碼電路

Country Status (1)

Country Link
TW (1) TWI830669B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI650707B (zh) * 2015-10-08 2019-02-11 上海兆芯集成電路有限公司 處理器,其運作方法與電腦程式產品
CN110622134A (zh) * 2017-05-17 2019-12-27 谷歌有限责任公司 专用神经网络训练芯片
US20210089301A1 (en) * 2019-09-25 2021-03-25 Intel Corporation Sharing register file usage between fused processing resources
CN112905241A (zh) * 2019-03-15 2021-06-04 英特尔公司 用于矩阵加速器架构的稀疏优化
US20220019441A1 (en) * 2020-07-14 2022-01-20 The Regents Of The University Of California Circuits, methods, and articles of manufacture for hyper-dimensional computing systems and related applications

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI650707B (zh) * 2015-10-08 2019-02-11 上海兆芯集成電路有限公司 處理器,其運作方法與電腦程式產品
CN110622134A (zh) * 2017-05-17 2019-12-27 谷歌有限责任公司 专用神经网络训练芯片
CN112905241A (zh) * 2019-03-15 2021-06-04 英特尔公司 用于矩阵加速器架构的稀疏优化
US20210089301A1 (en) * 2019-09-25 2021-03-25 Intel Corporation Sharing register file usage between fused processing resources
US20220019441A1 (en) * 2020-07-14 2022-01-20 The Regents Of The University Of California Circuits, methods, and articles of manufacture for hyper-dimensional computing systems and related applications

Similar Documents

Publication Publication Date Title
Cai et al. Yolobile: Real-time object detection on mobile devices via compression-compilation co-design
US20200311548A1 (en) Learning compressible features
US20200334287A1 (en) Image retrieval method, image retrieval apparatus, image retrieval device and medium
Hassairi et al. A deep stacked wavelet auto-encoders to supervised feature extraction to pattern classification
TWI830669B (zh) 編碼方法及編碼電路
CN111191038B (zh) 神经网络训练方法和装置及命名实体识别方法和装置
Ahn et al. Deeper weight pruning without accuracy loss in deep neural networks: Signed-digit representation-based approach
Cherian Nearest neighbors using compact sparse codes
WO2021081854A1 (zh) 一种卷积运算电路和卷积运算方法
Hsiao et al. Sparsity-aware deep learning accelerator design supporting CNN and LSTM operations
Chandra Data bandwidth reduction in deep neural network SoCs using history buffer and Huffman coding
Ke et al. Quasi non-negative quaternion matrix factorization with application to color face recognition
Zhou et al. Design and implementation of YOLOv3-Tiny accelerator based on PYNQ-Z2 heterogeneous platform
CN114492778A (zh) 神经网络模型的运行方法、可读介质和电子设备
KR20210048396A (ko) 이진 신경망 생성 방법 및 장치
JP2018061105A (ja) 情報処理装置、情報処理方法、および情報処理プログラム
Shah et al. R-MnasNet: Reduced MnasNet for computer vision
Vooturi et al. Efficient inferencing of compressed deep neural networks
US20230077498A1 (en) Information processing apparatus, method for controlling the same, and non-transitory computer-readable storage medium
Ren et al. Characteristic Class of Isotopy for Surfaces
Park et al. Optimized transform coding for approximate KNN search
Ma et al. Layer-by-layer quantization method for neural network parameters
Hu et al. Ship Target Detection in SAR Images Based on FPGA
Ratsaby et al. Accelerating the LZ-complexity algorithm
Ootomo et al. Custom 8-bit floating point value format for reducing shared memory bank conflict in approximate nearest neighbor search