TWI769466B - 類神經網路系統及其操作方法 - Google Patents
類神經網路系統及其操作方法 Download PDFInfo
- Publication number
- TWI769466B TWI769466B TW109120348A TW109120348A TWI769466B TW I769466 B TWI769466 B TW I769466B TW 109120348 A TW109120348 A TW 109120348A TW 109120348 A TW109120348 A TW 109120348A TW I769466 B TWI769466 B TW I769466B
- Authority
- TW
- Taiwan
- Prior art keywords
- neural network
- data
- advanced
- feature
- task
- Prior art date
Links
Images
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Image Analysis (AREA)
Abstract
一種類神經網路系統,包含至少一個記憶體以及至少一個處理器。記憶體用以儲存前端類神經網路、編碼類神經網路、解碼類神經網路及後端類神經網路。處理器用以執行記憶體中的前端類神經網路、編碼類神經網路、解碼類神經網路及後端類神經網路,以執行操作包含:利用前端類神經網路輸出特徵資料;利用編碼類神經網路壓縮特徵資料,並輸出對應特徵資料的壓縮資料;利用解碼類神經網路解壓縮壓縮資料,並輸出對應特徵資料的解壓縮資料;以及利用後端類神經網路根據解壓縮資料執行相應的操作。一種類神經網路系統的操作方法亦在此揭露。
Description
本揭示文件是有關於一種類神經網路,特別是關於多段式的類神經網路系統。
深度學習或是機器學習的領域中,大多以類神經網路(neural network)為系統架構,其中包含多種不同的數學運算,以獲得目標資料。為了加強類神經網路的運算效能,會將一組類神經網路分為前端及後端的類神經網路,或者將多組類神經網路相互集結成一個網路,以相應操作。但是,當目標資料變更時,不同端或是不同組的類神經網路必須重新訓練,或者直接替換成新的類神經網路。因此,多段式的類神經網路系統難以維護,以致成本增加。
本揭示文件提供一種類神經網路系統,包含至少一記憶體以及至少一處理器。記憶體用以儲存、前端類神經網路、編碼類神經網路、解碼類神經網路及後端類神經網路。處理器用以執行記憶體中的前端類神經網路、編碼類神經網路、解碼類神經網路及後端類神經網路,以執行以下操作:利用前端類神經網路輸出特徵資料;利用編碼類神經網路壓縮特徵資料,並輸出對應特徵資料的壓縮資料;利用解碼類神經網路解壓縮壓縮資料,並輸出對應特徵資料的解壓縮資料;以及利用後端類神經網路根據解壓縮資料執行相應的操作。
本揭示文件亦提供一種類神經網路系統的操作方法,包含:利用前端類神經網路根據原始資料執行初階任務,並輸出對應原始資料的特徵資料;利用至少一編碼類神經網路壓縮特徵資料,並輸出對應特徵資料的壓縮資料;利用至少一解碼類神經網路解壓縮壓縮資料,並輸出對應特徵資料及至少一進階任務的解壓縮資料;以及利用至少一後端類神經網路根據解壓縮資料執行進階任務,並輸出目標資料。
下文係舉實施例配合所附圖式作詳細說明,以更好地理解本揭示文件的態樣,但所提供之實施例並非用以限制本揭露所涵蓋的範圍,而結構操作之描述非用以限制其執行之順序,任何由元件重新組合之結構,所產生具有均等功效的裝置,皆為本揭露所涵蓋的範圍。此外,根據業界的標準及慣常做法,圖式僅以輔助說明為目的,並未依照原尺寸作圖,實際上各種特徵的尺寸可任意地增加或減少以便於說明。下述說明中相同元件將以相同之符號標示來進行說明以便於理解。
此外,在本揭示文件中所使用的用詞『包含』、『包括』、『具有』、『含有』等等,均為開放性的用語,即意指『包含但不限於』。此外,本文中所使用之『及/或』,包含相關列舉項目中一或多個項目的任意一個以及其所有組合。
於本揭示文件中,當一元件被稱為『連接』或『耦接』時,可指『電性連接』或『電性耦接』。『連接』或『耦接』亦可用以表示二或多個元件間相互搭配操作或互動。此外,雖然本文中使用『第一』、『第二』、…等用語描述不同元件,該用語僅是用以區別以相同技術用語描述的元件或操作。除非上下文清楚指明,否則該用語並非特別指稱或暗示次序或順位,亦非用以限定本發明。
深度學習(deep learning)的架構中,是以多層(layer)網路建立而成的類神經網路(neural network),其中第一層的輸出為第二層的輸入,且第二層的輸出為第三層的輸入,以此類推。每一層網路具有多個神經元(neuron),且相鄰層網路中的神經元相互耦接,為端到端(end-to-end)的架構。某一層的神經元用以接收上一層網路中的神經元的資料,經過相應的計算後並輸出資料至下一層網路中的神經元。
建立一個能用以實現智能計算的類神經網路,須先對類神經網路進行訓練(training)。藉由已知的資料輸入至此類神經網路(或稱為訓練模型),使訓練模型能夠計算出穩定的類神經網路參數以及完成各個神經元的連接設置,並獲得合理的結果。當訓練模型已訓練完成後,其中的類神經網路參數及其架構被儲存為另一個類神經網路(或稱為推論模型),用以對未知的資料推論(interference)出答案。
請參閱第1圖,為根據本揭示文件的實施例的類神經網路架構示意圖。
類神經網路100包含輸入層(input layer)110、隱藏層(hidden layer)120以及輸出層(output layer)130。輸入層110用以接收多個非線性的原始資料,並輸出資料至隱藏層120。隱藏層120為主要計算資料及類神經網路參數的部分,並輸出資料至輸出層130。輸出層130用以分析及權衡接收到的資料,並輸出結果(即,目標資料)。亦可以理解為,整個類神經網路100具有至少一個任務,綜合所有任務的目的是得到目標資料,其中透過隱藏層120執行此任務,並由輸出層130獲得任務的答案。
輸入層110、隱藏層120及輸出層130分別包含至少一個網路層(layer)(圖中未示),且每一個網路層中包含多個神經元N。如第1圖所示的隱藏層120中,包含第n層及第n+1層的網路層,且資料是由第n層的網路層輸出至第n+1層的網路層,其中n為正整數。在本揭示文件的各實施例中,網路層的數量、網路層的架構與順序以及每一層網路層中的神經元N數量僅為示例說明,不以此為限。
一些實施例中,類神經網路100為深度置信網路(deep belief network;DBN)的架構,其隱藏層120包含由多個受限波爾茲曼機(restricted Boltzmann machine;RBM)(圖中未示)建構的網路層。一些實施例中,類神經網路100為卷積神經網路(convolutional neural network;CNN)的架構,其隱藏層120包含多個卷積層(convolutional layer) (圖中未示) 、池化層(pooling layer) (圖中未示)及全連結層(fully connected layer) (圖中未示),其中卷積層、池化層及全連結層中至少一者包含至少一個網路層。本揭示文件的實施例中,類神經網路100是以CNN架構為示例說明,但不以此為限。
舉例來說,類神經網路100為已經由大量已知動物圖片訓練完成的CNN架構下的推論模型,用以判斷任一張圖片中的動物種類。由輸入的原始資料(例如一張圖片)至輸出的目標資料(例如此張圖片中所出現的動物名稱),類神經網路100依序包含輸入層110、隱藏層120以及輸出層130,其中隱藏層120又依序包含第一卷積層、第一池化層、第二卷積層、第二池化層、第一全連結層及第二全連結層。第一卷積層、第一池化層、第二卷積層、第二池化層、第一全連結層及第二全連結層中的每一者又稱為區塊(block),每一個區塊包含至少一個網路層且分別具有各自的計算功能。
接續說明上述的例子,第一卷積層利用第一卷積核(kernel)擷取輸入圖片的第一特徵(feature),例如獲得圖片中動物圖案的邊界。接著,第一池化層接收由第一卷積層輸出的資料,對此資料降採樣(down sampling),並輸出至第二卷積層。第二卷積層利用第二卷積核擷取所接收的資料的第二特徵,例如獲得動物圖案中的五官形狀。第二池化層接收由第二卷積層輸出的資料,對此資料降採樣,並輸出至第一全連結層。第一全連結層及第二全連結層依序並分別對所接收的資料進行平坦化,並輸出資料至輸出層。最後,透過輸出層對已擷取第一特徵及第二特徵的圖片執行分類與判斷,並輸出圖片中的動物名稱。
請參閱第2A圖,類神經網路系統200包含前端模組210、連接模組220及後端模組230。
前端模組210、連接模組220以及後端模組230為各自獨立的類神經網路,並分別儲存於對應的記憶體中。一些實施例中,前端模組210又稱為前端類神經網路。一些實施例中,連接模組220又稱為中端類神經網路。一些實施例中,後端模組230又稱為後端類神經網路。
一些實施例中,用以執行上數多個類神經網路操作的電腦程式碼(code)或指令(instruction)以及前端模組210、連接模組220以及後端模組230可以儲存於一個以上的記憶體中,包含第一記憶體m1、第二記憶體m2及第三記憶體m3(繪示於第2C圖)中的至少一者。處理器,例如第一處理器201、第二處理器202或第三處理器203(繪示於第2C圖),用以執行編碼於對應的記憶體中的電腦程式碼或指令,以使類神經網路系統200執行如本揭示文件的各實施例中相應的操作。
一些實施例中,前端模組210、連接模組220以及後端模組230分別為具有不同任務的相異的類神經網路(例如第1圖所示的類神經網路100),並以前述的CNN架構為示例說明。為了圖式簡潔,第2A圖未另外繪示各個模組中的輸入層、隱藏層、隱藏層中的區塊(例如卷積層)或是輸出層,且第2A圖亦未另外繪示對應的網路層或其神經元。
一些實施例中,前端模組210以及後端模組230為相同的類神經網路架構。一些實施例中,前端模組210以及後端模組230為不同的類神經網路架構,包含VGG16架構、Densenet 161架構、Faster R-CNN架構及YOLO架構中的至少二者。如此一來,藉由不同模組對應不同的類神經網路架構來實現不同的任務(如下述說明),藉以達到最佳化的推論效率以及準確度。
相同或不同架構的前端模組210及後端模組230之間透過連接模組220以資料傳輸方式耦接二者,藉以減少整個類神經網路系統200的記憶體使用量及其推論時間(inference time)。
前端模組210、連接模組220及後端模組230中至少一者的網路層數量相異於另一者的網路層數量。因此,前端模組210、連接模組220及後端模組230的運算權重不相同。
一些實施例中,前端模組210與後端模組230的區塊數量相同,且每一個區塊對應的網路層數量也相同。一些實施例中,前端模組210、連接模組220以及後端模組230中任二者的區塊及其對應的網路層數量皆不相同。一些實施例中,前端模組210的網路層數量小於後端模組230的網路層數量。一些實施例中,連接模組220的網路層數量小於前端模組210的網路層數量,且小於後端模組230的網路層數量。
請一併參閱第2B圖,為根據第2A圖的類神經網路系統200的架構示意圖,並舉例說明類神經網路系統200的運作。第2B圖中的類神經網路系統200的架構相似於第2A圖所示者,因此第2B圖不另外繪示或標示部分相同的元件。此外,為了圖式簡潔,第2B圖亦未另外繪示各個模組中的輸入層、隱藏層、隱藏層中的區塊或是輸出層,且第2B圖也未繪示對應的網路層及其神經元。
前端模組210儲存於第一記憶體m1,並運作於第一處理器201中。第一處理器201耦合於第一記憶體m1,並與第一記憶體m1一同運作於第一裝置S1中。第一處理器201用以執行編碼於第一記憶體m1中的前端模組210,用以利用前端模組210執行初階任務,並輸出特徵資料d1至連接模組220。
一些實例中,前端模組210的輸入層用以接收原始資料d0,並輸出資料至前端模組210的隱藏層。前端模組210的隱藏層用以接收資料並執行初階任務,也就是擷取此資料的初階特徵,並輸出至前端模組210的輸出層。接著,前端模組210的輸出層用以判斷初階任務的答案,即特徵資料d1,並將特徵資料d1輸出至連接模組220。
連接模組220包含編碼器(encoder)221及解碼器(decoder)222,分別為連接模組220的隱藏層中的兩個相鄰的區塊,用以改變資料的維度。部分的連接模組220(例如,編碼器221)與前端模組210一同儲存於第一記憶體m1,並運作於第一處理器201中。部分的連接模組220(例如即,解碼器222) 與後端模組230一同儲存於第二記憶體m2,並運作於第二處理器202中。
連接模組220的隱藏層中的其中一個區塊,即編碼器221,運作於第一處理器201中。第一處理器201更用以執行編碼於第一記憶體m1中的編碼器221,用以利用編碼器221降低特徵資料d1的維度,並輸出壓縮資料d2至解碼器222。一些實施例中,編碼器221為獨立的類神經網路,又稱為編碼類神經網路。
連接模組220的隱藏層中的其中另一個區塊,即解碼器222,運作於第二處理器202中。第二處理器202耦合於第二記憶體m2,並與第二記憶體m2一同運作於第二裝置S2中。第二處理器202用以執行編碼於第二記憶體m2中的解碼器222,用以利用解碼器222提高壓縮資料d2的維度,並輸出解壓縮資料d3至後端模組230。一些實施例中,解碼器222為相異於編碼器221的另一個獨立的類神經網路,又稱為解碼類神經網路。
一些實例中,連接模組220的輸入層用以接收由前端模組210輸出的特徵資料d1,並輸出資料至連接模組220的隱藏層。隱藏層中的編碼器221用以壓縮特徵資料d1,並產生被壓縮的特徵資料d1,即壓縮資料d2。隱藏層中的解碼器222用以接收壓縮資料d2,且解碼器222根據後端模組230須執行的進階任務解壓縮此壓縮資料d2,並產生被解壓縮的資料,即解壓縮資料d3。解碼器222更用以將解壓縮資料d3輸出至連接模組230的輸出層。接著,連接模組220的輸出層用以輸出解壓縮資料d3至後端模組230。
一些實施例中,編碼器221以及解碼器222皆儲存於相同的記憶體中,並運作於相同的處理器中。此記憶體可以是第一記憶體m1或第二記憶體m2,且此處理器可以是第一處理器201或第二處理器202。此處理器與此記憶體一同運作於相同的裝置中。此裝置可以是第一裝置S1或第二裝置S2。
一些實施例中,編碼器221以及解碼器222是以自動編碼器(autoencoder)來實現。編碼器221以及解碼器222能根據初階資料與進階任務來學習如何產生對應的壓縮資料d2以及解壓縮資料d3。一些實施例中,自動編碼器的學習方法為微調(fine-tuning)。如此一來,藉由壓縮及解壓縮資料,能減少壓縮資料d2或解壓縮資料d3在對應的輸入及輸出裝置中資料維度不匹配的狀況,且透過微調的學習方式可以減少訓練過程中的類神經網路參數。
一些實施例中,特徵資料d1及壓縮資料d2具有不同的資料維度。亦可理解為,壓縮資料d2相較於特徵資料d1具有不同的資料量大小。一些實施例中,特徵資料d1的資料維度大於壓縮資料d2的資料維度。舉例來說,特徵資料d1是二維度的矩陣資料。編碼器221用以將二維度的矩陣資料壓縮成一維度的陣列資料,使壓縮資料d2的資料維度小於特徵資料d1的資料維度。或者可以理解為,特徵資料d1是具有1024p解析度的圖片;編碼器221用以將此圖片壓縮成具有480p解析度的圖片,即壓縮資料d2。因此,編碼器221與解碼器222之間資料的傳輸維度相同,即壓縮資料d2的資料維度。藉此,能減少前端模組210與後端模組230之間傳遞的資料量,進而加快資料傳遞的時間。
一些實施例中,特徵資料d1及解壓縮資料d3具有不同的資料維度。一些實施例中,特徵資料d1的資料維度大於解壓縮資料d3的資料維度。接續上述的例子,解碼器222用以將壓縮資料d2解壓縮成具有720p解析度的圖片,即解壓縮資料d3。同理,能減少前端模組210與後端模組230之間傳遞的資料量,進而加快資料傳遞的時間。
一些實施例中,特徵資料d1及解壓縮資料d3具有相同的資料維度。例如,特徵資料d1是具有1024p解析度的圖片;編碼器221用以將此圖片壓縮成具有720p解析度的圖片,即壓縮資料d2;解碼器222用以將壓縮資料d2解壓縮成具有1024p解析度的圖片,即解壓縮資料d3。藉此,當解碼器222後置的後端模組230被抽換成新的後端模組230(另一個類神經網路)時,能透過改變解碼器222對於提高資料維度的操作,以因應新的後端模組230。如此一來,解碼器222不需與後端模組230一同被抽換。
如第2A圖所示,後端模組230以及部分的連接模組220(例如,解碼器222) 儲存於第二記憶體m2,並運作於第二處理器202中。第二處理器202更用以執行編碼於第二記憶體m2中的後端模組230,用以利用後端模組230執行進階任務,並輸出目標資料d4,進而顯示整個類神經網路系統200的推論目的的答案。
一些實例中,後端模組230的輸入層用以接收由解壓縮資料d3,並輸出資料至後端模組230的隱藏層。後端模組230的隱藏層用以接收資料並執行進階任務,也就是擷取此資料的進階特徵,並輸出至後端模組230的輸出層。接著,後端模組230的輸出層用以判斷進階任務的答案,即目標資料d4,並將目標資料d4輸出至其他裝置的顯示器(圖中未示)。
後端模組230所執行的進階任務是關聯於前端模組210所執行的初階任務。因此,目標資料d4是對解壓縮資料d3進行數據處理(例如,卷積)而得到的資料。換言之,目標資料d4包含原始資料d0的初階特徵以及進階特徵。因此,後端模組230能根據初階特徵及進階特徵用以執行進階任務中對應的操作,並產生目標資料d4。
請參閱第2C圖,本揭示文件之一實施例的類神經網路系統200包含前端模組210、連接模組220及後端模組230。第2C圖所示的類神經網路系統相似於第2A圖所示者,因此不另贅述相同處。
相較於第2A圖,在第2C圖所示的實施例中,後端模組230儲存於另一個獨立的記憶體(即,第三記憶體m3)中,並運作於另一個獨立的處理器(即,第三處理器203)中。
如第2C圖所示,部分的連接模組220(例如,解碼器222) 儲存於第二記憶體m2,並運作於第二處理器202中。後端模組230儲存於第三記憶體m3,並運作於第三處理器203中。
第二處理器202與第二記憶體m2一同運作於相同的裝置中,例如第2B圖中的第一裝置S1、第二裝置S2及第三裝置(圖中未示)中的一者。第三處理器203與第三記憶體m3一同運作於相同的另一個裝置中,例如第2B圖中的第一裝置S1、第二裝置S2及第三裝置中的另一者。
一些實施例中,前端模組210或後端模組230的隱藏層是以特徵抽取器(feature extractor)實現,其中包含多個卷積層、標準化層以及線性整流層(convolutional-batch normalization-ReLU)單元依序堆疊的架構,藉以對圖片具有不同程度的特徵提取。
在第2A圖及第2B圖所示的實施例中,類神經網路系統200是用以推論某一張圖片並獲得某一個答案,例如能夠得到圖片中出現的所有動物名稱。
如第2B圖所示,輸入至類神經網路系統200的原始資料d0為一張包含背景及貓咪的圖片。類神經網路系統200透過執行初階任務及進階任務,依序擷取對應的初階特徵以及進階特徵,藉以分辨原始資料d0中出現的動物種類,並以中文的俗名顯示或是於原始圖片中標記最後推論得到的答案,即目標資料d4所示的「貓」或是第3B圖所示圖片的答案。
亦可理解為,類神經網路系統200將一個推論過程拆分為多段的類神經網路依序執行,其中每段的類神經網路的架構類型可以相同或不同。相較於原本的類神經網路架構,被拆分的類神經網路(例如,前端模組210或後端模組230),已經移除了隱藏層片段。透過中間的連接模組220,架構多個被拆分的類神經網路所共享的隱藏層,藉以合併成整個類神經網路系統200。
在推論的操作中,首先透過前端模組210執行初階任務,以獲得圖片中各圖案的輪廓(即,初階特徵);接著透過後端模組230執行進階任務,以獲得各圖案中的動物五官(即,進階特徵),藉以推論出最後的答案(即,「貓」)。
如上所述,類神經網路系統200將推論答案的過程拆分為多階段的任務,透過降低單一運算負載的方式提升各個類神經網路運算的效能以及準確度,進而增加類神經網路系統200整體的推論效率。
一些實施例中,類神經網路系統200因應開發或維護需求,會變更原始的推論目的。例如,類神經網路系統200的推論目的由推論出圖片出現的所有動物名稱新增或更改為推論出圖片出現的所有植物名稱。由於前端模組210及後端模組230分別執行不同的任務,且這些任務皆關聯於辨識圖片中的圖案。當推論目的改變時,藉由新增或將前端模組210或後端模組230替換為另一個用以識別植物特徵的類神經網路,可以僅重新訓練兩個任務之間用以壓縮及解壓縮特徵資料d1的連接模組220,而不需對應重新訓練整個類神經網路系統200。
舉例來說,初階任務依然為獲取圖片中各個圖案的輪廓,進階任務則由獲取圖片中動物的特徵變更為獲取圖片中的植物的特徵。此時,執行進階任務的後端模組230可以不用重新訓練。開發者或維護者只需以另一個用以識別植物特徵(例如,提取植物輪廓特徵)的類神經網路替代前端模組210,並對編碼器221及/或解碼器222重新訓練,藉以使壓縮資料d2及解壓縮資料d3包含植物圖案的進階特徵。
其他例子中,類神經網路系統200的推論目的由推論出圖片出現的所有動物名稱更改為推論出圖片出現的所有動物對應的皮毛顏色。此時,由於前端模組210及後端模組230分別執行不同的任務,且初階任務是關於辨識圖案輪廓的基本操作,可以僅重新訓練後端模組230以及連接模組220,而不需對應重新訓練整個類神經網路系統200。
舉例來說,初階任務依然為獲取圖片中各個圖案的輪廓,進階任務則由獲取圖片中動物的特徵變更為獲取圖片中的動物的特徵、對應的皮毛特徵以及色彩資訊。此時,執行初階任務的前端模組210可以不用重新訓練,開發者或維護者只需對編碼器221及/或解碼器222以及後端模組230重新訓練,藉以使壓縮資料d2及解壓縮資料d3包含前述變更後的進階特徵,並使後端模組230對應變更進階任務的操作。
另外,由於前端模組210、連接模組220以及後端模組230分別運作於不同的處理器中,且對應於不同的記憶體,能夠分散類神經網路系統200使用的硬體資源。如此一來,能有效減少整個類神經網路系統200運作時的記憶體容量。特別是當推論目的改變時,如上述可知,類神經網路系統200可以僅於對應的裝置中重新訓練部分的模組,藉此能夠大幅減少訓練時生成的類神經網路參數及其對應使用的記憶體資源,進而提升訓練所需的運算時間。
一些實施例中,第一裝置S1以及第二裝置S2為相異的硬體裝置,包含行動裝置(如,智慧型手機或平板)、雲端伺服器或是資料庫伺服器等,不以此為限。
綜上所述,當類神經網路系統200改變推論目的時,不需要對整個系統重新訓練,而是重新訓練設置於不同裝置中的連接模組220及/或後端模組230。藉此,類神經網路系統200在開發或是維護上,皆具有良好的使用彈性及效率,並能夠降低訓練時間及成本。
請參閱第3A圖,本揭示文件之另一實施例的類神經網路系統300包含前端模組310、連接模組320及多個後端模組330。
前端模組310、連接模組320及後端模組330為各自獨立的類神經網路,並分別儲存於對應的記憶體中。一些實施例中,前端模組310又稱為前端類神經網路。一些實施例中,連接模組320又稱為中端類神經網路。一些實施例中,後端模組330又稱為後端類神經網路。
一些實施例中,用以執行上數多個類神經網路操作的電腦程式碼或指令以及前端模組310、連接模組320以及後端模組330可以儲存於一個以上的記憶體中,包含第一記憶體m1、第二記憶體m2及多個第三記憶體m3中的至少一者。處理器,例如第一處理器301、第二處理器302或任一個第三處理器303,用以執行編碼於對應的記憶體中的電腦程式碼或指令,以使類神經網路系統300執行如本揭示文件的各實施例中相應的操作。
一些實施例中,前端模組310、連接模組320及後端模組330分別為具有不同任務的類神經網路(例如第1圖所示的類神經網路100),並以前述的CNN架構為示例說明。第3A圖所示的類神經網路系統相似於第2A圖所示者,因此不另贅述相同處。為了圖式簡潔,第3A圖未另外繪示各個模組中的輸入層、隱藏層、隱藏層中的區塊或是輸出層,且第3A圖亦未另外繪示對應的網路層或其神經元。
一些實施例中,前端模組310以及後端模組330中至少一者為相同的類神經網路架構。一些實施例中,前端模組310以及後端模組330中至少一者為不同的類神經網路架構,包含VGG16架構、Densenet 161架構、Faster R-CNN架構及YOLO架構中的至少二者,其中架構的類型是針對各自的任務而設計,藉以達到良好推論準確度。
一些實施例中,連接模組320是以自動編碼器來實現,用以學習而調整連接模組320的隱藏層大小,以連結不同或相同架構的前端模組310及多個後端模組330,藉以減少整個類神經網路系統300的記憶體使用量與推論時間。
一些實施例中,後端模組330中每一者的網路層數量相同。一些實施例中,後端模組330中至少二者的網路層數量不相同。因此,前端模組310與後端模組330或是各個後端模組330之間具有不同的運算權重,並用以同時執行對應的不同的任務。
請一併參閱第3B圖,為根據第3A圖的類神經網路系統300的架構示意圖,並舉例說明類神經網路系統300的運作。第3B圖中的類神經網路系統的架構相似於第3A圖所示者,因此第3B圖不另外繪示或標示部分相同的元件。第3B圖所示的類神經網路系統部分相似於第2B圖所示者,因此不另贅述相同處。此外,為了圖式簡潔,第3B圖亦未另外繪示各個模組中的輸入層、隱藏層、隱藏層中的區塊或是輸出層,且第3B圖也未繪示對應的網路層及其神經元。
連接模組320包含編碼器321及多個解碼器322,為隱藏層中的相鄰的區塊,其中多個解碼器322為相互平行的區塊,用以將資料改變成不同或相同的維度。一些實施例中,編碼器321及多個解碼器322分別為獨立的類神經網路。一些實施例中,編碼器321又稱為編碼類神經網路,且解碼器322又稱為解碼類神經網路。
編碼器321與前端模組310一同運作於第一處理器301中。第一處理器301耦合於第一記憶體m1,並與第一記憶體m1一同運作於第一裝置t1中。第一處理器301用以執行編碼於第一記憶體m1中的編碼器321,用以降低特徵資料d1的維度,並輸出壓縮資料d2至各個解碼器322。
一個解碼器322對應一個或多個後端模組330,且解碼器322運作於第二處理器302中。第二處理器302耦合於第二記憶體m2,並運作於不同於第一裝置t1的第二裝置t2中。第二處理器302用以執行編碼於第二記憶體m2中的解碼器322,用以根據對應的後端模組330的進階任務而提高壓縮資料d2的維度,並輸出對應的解壓縮資料d3至對應的後端模組330。第3A圖中的第二處理器302及解碼器322的數量僅為示例說明,可以是多個第二處理器302及對應的解碼器322(如第3B圖所示的解碼器a、解碼器b或解碼器n),並分別運作於多個第二裝置t2(如第3B圖所示的第二裝置t2a、t2b或t2n)中。
一些實施例中,前端模組310以及編碼器321皆安裝於晶片,並運作於第一裝置t1 (例如,伺服器)中。因此,共同的特徵資料d1會存放於此晶片中,並用以傳輸至第二裝置t2中。如此一來,對於類神經網路系統300的開發者而言,可以將前置作業統一於晶片中研發,再依照後置對應的進階任務對應輸出壓縮的特徵資料d1。因此,方便修改前置作業的初階任務,例如由影像辨識變更為聲音辨識。後置對應的進階任務也因此具有多種可能的組合,藉以實現良好應用彈性。
另外,每一個後端模組330運作於對應的第三處理器303中。第三處理器303耦合於第三記憶體m3,並與第三記憶體m3一同運作於不同於第一裝置t1以及第二裝置t2的第三裝置t3中。每一個第三處理器303用以執行編碼於對應的第三記憶體m3中的後端模組330,用以執行相應的操作。例如,後端模組a運作於第三處理器a中,且第三處理器a耦合於第三記憶體a,並與第三記憶體m3a一同運作於第三裝置t3a中。第三處理器a用以執行編碼於第三記憶體m3a中的後端模組a。本揭示文件實施例中的第三處理器303及第三記憶體m3的數量僅為示例說明,不以此為限。
每一個後端模組303對應一個解碼器322,用以執行對應的操作。舉例來說,如第3B圖所示,解碼器a運作於第二裝置t2a中,後端模組a運作於第三裝置t3a中,且解碼器a用以根據後端模組a的進階任務產生解壓縮資料d3a;解碼器b運作於第二裝置t2b中,後端模組b運作於第三裝置t3b中,且解碼器b用以根據後端模組b的進階任務產生解壓縮資料d3b;以及解碼器n運作於第二裝置t2n中,後端模組n運作於第三裝置t3n中,且解碼器n用以根據後端模組n的進階任務產生解壓縮資料d3n,其中n為正整數,在此不限制實際的數量。第二裝置t2a、第二裝置t2b及第二裝置t2n為不同的硬體裝置。第三裝置t3a、第三裝置t3b及第三裝置t3n為不同的硬體裝置,且與第二裝置t2及第一裝置t1相互耦接,因此串接形成物聯系統(internet of thing;IOT)。
一些實施例中,如第3C圖所示,第一裝置t1為資料庫伺服器。第二裝置t2a、第二裝置t2b以及第二裝置t2n為架設於使用者端的伺服器,且為各自獨立的伺服器。第三裝置t3a及第三裝置t3b皆為智慧型手機,且為使用者端持有的裝置,用以顯示對應的目標資料d4a與d4b。第三裝置t3n為無線裝置(如,藍芽接收器或具wi-fi元件的顯示裝置),且為使用者端持有的裝置,用以輸出或顯示對應的目標資料d4n。
每一個解壓縮資料d3分別具有不同的資料維度,且壓縮資料d2的資料維度小於每一個解壓縮資料d3的資料維度。每一個解壓縮資料d3的資料維度的大小取決於對應的進階任務,藉以於對應的後端模組330中達到良好的推論準確度。
後端模組330中每一者用以執行各自的進階任務,以擷取對應的解壓縮資料d3的進階特徵,並輸出對應的目標資料d4,以顯示整個類神經網路系統300的多個推論答案。
一些實施方式中,當第一裝置t1、第二裝置t2或第三裝置t3b中的任二者之間訊號傳遞的品質低時,例如低訊號頻寬或受電磁干擾,具有大記憶容量的資料在裝置之間的傳輸可能會不穩定。
相較於上述的實施方式,在本揭示文件的實施例中,資料,例如包含,壓縮資料d2或解壓縮資料d3,在不同裝置之間因其記憶容量(即,資料維度)經連接模組320調整而降低,藉以具有良好的傳輸穩定性。
在第3A圖至第3C圖所示的實施例中,類神經網路系統300是用以推論某一張圖片並獲得多個答案。
如第3B圖所示,輸入至類神經網路系統300的原始資料d0為一張包含背景及貓的圖片。類神經網路系統300透過執行初階任務及多個進階任務,依序擷取對應的初階特徵以及多個進階特徵,藉以分辨此張圖片中出現的動物,並同時以不同的方式顯示最後的答案,包含動物種類的中文俗名、標記出原始圖片中的動物或是擷取出原始圖片中的動物。
一些實施例中,每一個進階任務皆為獨立的且互不相關的任務。一些實施例中,每一個進階任務皆為相關的任務。例如,如第3B圖所示,後端模組a用以擷取解壓縮資料d3a的第一進階特徵,並推論得到「貓」的答案;後端模組b用以擷取解壓縮資料d3b的第二進階特徵,並推論得到圈選圖片中出現的動物的答案,如第3B圖所示的目標資料d4b;後端模組n用以擷取解壓縮資料d3n的第n進階特徵,推論得到圖片中出現的動物圖像的答案,如第3B圖所示的目標資料d4n。
亦可理解為,類神經網路系統300將一個推論過程拆分為多個類神經網路依序且同時執行。首先透過前端模組310執行初階任務,以獲得圖片中各圖案的輪廓(即,初階特徵);接著同時透過多個平行的後端模組330分別執行對應進階任務,以獲得包含各圖案中的動物五官(即,第一進階特徵)、圖案中的動物輪廓(即,第二進階特徵)以及圖案中的動物輪廓與背景輪廓(即,第n進階特徵),藉以推論出最後的答案(即,如包含第3B圖所示的目標資料d4a、d4b及d4n)。
每一個後端模組330須執行的進階任務皆關聯於初階任務。或者可以理解為,每一個進階任務皆須根據特徵資料d1執行對應的操作。也就是說,前端模組310所執行的初階任務是每一個後端模組330所執行的進階任務的前置操作。
一些實施例中,根據如3B圖的原始資料d0執行相應的操作,推論出多個目標資料d4。下述舉例說明透過傳統的類神經網路系統實現,以及透過本揭示文件實施例的類神經網路系統300實現的效能差異。
傳統的類神經網路系統包含具有不同任務的四個類神經網路,用以分別且同時進行四個任務,包含兩個物體辨識(object classification)的任務及兩個物體偵測(object detection)的任務。每一個類神經網路為多段式的架構,包含多段的區塊,以對應執行一個任務。
例如,傳統的類神經網路系統包含VGG 16架構的類神經網路,用以執行物體辨識的任務;Densenet 161架構的類神經網路,用以執行另一種物體辨識的任務;Faster R-CNN架構的類神經網路,用以執行物體偵測的任務;以及YOLO架構的類神經網路,用以執行另一種物體偵測的任務。
根據本揭示文件實施例的內容,用以對應執行上述的四個任務的類神經網路系統300包含前端模組310、編碼器321、四個解碼器322以及四個對應的後端模組330。前端模組310包含Densenet 161架構中的第一個到第四個區塊,用以執行物體辨識及物體偵測的前置操作。後端模組a則包含VGG 16架構中的第五個區塊,用以執行物體辨識的任務。後端模組b包含Densenet 161架構中的所有區塊,用以執行另一種物體辨識的任務。後端模組c(圖中未示)包含Faster R-CNN架構中的所有區塊,用以執行物體偵測的任務。後端模組n包含YOLO架構中的第五個及第六個區塊,用以執行另一種物體偵測的任務。
傳統的類神經網路系統在整體的推論過程中,記憶體使用的容量大約為25540 megabyte(MB),且所需的時間大約為0.127秒(s)。相較於傳統的類神經網路系統,根據本揭示文件實施例的類神經網路系統300,記憶體使用的容量大約為17440 MB,且所需的時間大約為0.097s。由此可知,相較於傳統的類神經網路系統,本揭示文件的類神經網路系統300能減少大約32%的記憶體使用量,以及減少大約23%的運算時間。
一些實施例中,類神經網路系統300包含多個具有不同任務的前端模組310、連接模組320及至少一個後端模組330,在此不限制前端模組310或後端模組330的數量以及其對應的區塊或網路層的數量,也不限制對應的初階任務及進階任務的數量及內容。
如上所述,類神經網路系統300將推論答案的過程拆分為至少一個初階任務及至少一個進階任務,藉以提升各個網路層運算的效能以及準確度。初階任務是關聯於多個進階任務,用以執行進階任務的共同的操作,以擷取每個進階任務皆需要的初階特徵。藉此,能夠增加類神經網路系統300整體的推論效率。
一些實施例中,類神經網路系統300因應開發或維護需求,會變更原始的推論目的。同理於前述的實施例,當推論目的改變時,可以僅重新訓練前端、後端之間用以壓縮及解壓縮特徵資料d1的連接模組320,而不需對應重新訓練整個類神經網路系統300。或者,可以僅重新訓練被抽換的後端模組330以及連接模組320,而不需對應重新訓練整個類神經網路系統300。
綜上所述,類神經網路系統能夠助於整體系統的開發以及維護,並能節省運算時間以及記憶體資源。
雖然本揭示文件已以實施例揭露如上,然其並非用以限定本揭示文件,任何熟習此技藝者,在不脫離本揭示文件之精神和範圍內,當可作各種之更動與潤飾,因此本揭示文件之保護範圍當視後附之申請專利範圍所界定者為準。
100:類神經網路
110:輸入層
120:隱藏層
130:輸出層
N:神經元
200:類神經網路系統
201:第一處理器
202:第二處理器
203:第三處理器
210:前端模組
220:連接模組
221:編碼器
222:解碼器
230:後端模組
d0:原始資料
d1:特徵資料
d2:壓縮資料
d3:解壓縮資料
d3a:解壓縮資料
d3b:解壓縮資料
d3n:解壓縮資料
d4:目標資料
d4a:目標資料
d4b:目標資料
d4n:目標資料
m1:第一記憶體
m2:第一記憶體
m3:第一記憶體
S1:第一裝置
S2:第二裝置
t1:第一裝置
t2:第二裝置
t2a:第二裝置
t2b:第二裝置
t2n:第二裝置
t3:第三裝置
t3a:第三裝置
t3b:第三裝置
t3n:第三裝置
300:類神經網路系統
301:第一處理器
302:第二處理器
303:第三處理器
310:前端模組
320:連接模組
321:編碼器
322:解碼器
330:後端模組
第1圖繪示根據本揭示文件的一實施例的類神經網路架構示意圖。
第2A圖繪示根據本揭示文件的一實施例的類神經網路系統的方塊圖。
第2B圖繪示根據第2A圖的類神經網路系統的架構示意圖。
第2C圖繪示根據本揭示文件的一實施例的類神經網路系統的方塊圖。
第3A圖繪示根據本揭示文件的一實施例的類神經網路系統的方塊圖。
第3B圖繪示根據第3A圖的類神經網路系統的架構示意圖。
第3C圖繪示根據第3A圖及第3B圖的類神經網路系統的架構示意圖。
國內寄存資訊(請依寄存機構、日期、號碼順序註記)
無
國外寄存資訊(請依寄存國家、機構、日期、號碼順序註記)
無
200:類神經網路系統
210:前端模組
221:編碼器
222:解碼器
230:後端模組
d0:原始資料
d1:特徵資料
d2:壓縮資料
d3:解壓縮資料
d4:目標資料
S1:第一裝置
S2:第二裝置
Claims (10)
- 一種類神經網路系統,包含:至少一記憶體,用以儲存一前端類神經網路、一編碼類神經網路、至少一解碼類神經網路及至少一後端類神經網路;以及至少一處理器,用以執行該至少一記憶體中的該前端類神經網路、該編碼類神經網路、該至少一解碼類神經網路及該至少一後端類神經網路,以執行以下操作:利用該前端類神經網路執行一初階任務,以擷取一原始資料的一初階特徵,並輸出與該初階特徵相關且對應該原始資料之特徵資料;利用該編碼類神經網路壓縮該特徵資料,並輸出對應該特徵資料的壓縮資料;利用該至少一解碼類神經網路根據該至少一後端類神經網路所執行的複數個進階任務中的一者解壓縮該壓縮資料,並輸出對應該特徵資料的至少一解壓縮資料;以及利用該至少一後端類神經網路擷取該至少一解壓縮資料的至少一進階特徵,並輸出與該至少一進階特徵對應之至少一目標資料;其中,該初階任務關聯於該等進階任務,且用以執行該等進階任務共同的前置操作。
- 如請求項1所述之類神經網路系統,其中該 至少一處理器更用以執行該至少一記憶體中的該前端類神經網路、該編碼類神經網路、該至少一解碼類神經網路及該至少一後端類神經網路,以執行以下操作:利用該前端類神經網路根據該原始資料執行該初階任務,並輸出對應該原始資料的該特徵資料;以及利用該至少一後端類神經網路根據該至少一解壓縮資料執行關聯於該初階任務的該等進階任務中的一者,並根據該至少一解壓縮資料輸出該至少一目標資料。
- 如請求項2所述之類神經網路系統,其中該至少一處理器更用以執行該至少一記憶體中的該前端類神經網路、該編碼類神經網路、該至少一解碼類神經網路及該至少一後端類神經網路,以執行以下操作:當該等進階任務改變時,利用該至少一解碼類神經網路根據該特徵資料及改變後的該等進階任務解壓縮該壓縮資料。
- 如請求項1所述之類神經網路系統,其中該特徵資料的資料維度大於或等於該至少一解壓縮資料的資料維度。
- 如請求項1所述之類神經網路系統,其中:該至少一記憶體包含:一第一記憶體,用以儲存該前端類神經網路及該編碼 類神經網路;以及一第二記憶體,用以儲存該至少一解碼類神經網路及該至少一後端類神經網路,且該至少一處理器包含:一第一處理器,用以執行該第一記憶體中的該前端類神經網路及該編碼類神經網路;以及一第二處理器,用以執行該第二記憶體中的該至少一解碼類神經網路及該至少一後端類神經網路。
- 一種類神經網路系統的操作方法,包含:利用一前端類神經網路根據原始資料執行一初階任務,以擷取該原始資料的一初階特徵,並輸出與該初階特徵相關且對應該原始資料的特徵資料;利用至少一編碼類神經網路壓縮該特徵資料,並輸出對應該特徵資料的壓縮資料;利用至少一解碼類神經網路根據至少一後端類神經網路所執行的至少一進階任務解壓縮該壓縮資料,並輸出對應該特徵資料及該至少一進階任務的至少一解壓縮資料;以及利用該至少一後端類神經網路根據該至少一解壓縮資料執行該至少一進階任務,擷取該至少一解壓縮資料的至少一進階特徵,並輸出與該至少一進階特徵對應之至少一目標資料;其中,該初階任務關聯於該至少一進階任務,且用以執 行該至少一進階任務共同的前置操作。
- 如請求項6所述之類神經網路系統的操作方法,更包含:當該至少一進階任務改變時,利用該至少一解碼類神經網路根據該特徵資料及改變後的該至少一進階任務解壓縮該壓縮資料。
- 如請求項6所述之類神經網路系統的操作方法,其中:該至少一後端類神經網路包含複數後端類神經網路,該至少一進階任務包含複數進階任務,該等後端類神經網路中的至少一者的該至少一解壓縮資料的資料維度為第一資料維度,用以對應執行該等進階任務中的至少一者;且該等後端類神經網路中的至少一者的該至少一解壓縮資料的資料維度為相異於該第一資料維度的第二資料維度,用以對應執行該等進階任務中的至少一者。
- 如請求項6所述之類神經網路系統的操作方法,其中該特徵資料的資料維度大於或等於該至少一解壓縮資料的資料維度。
- 如請求項6所述之類神經網路系統的操作方 法,其中:該至少一後端類神經網路包含複數後端類神經網路,該至少一進階任務包含複數進階任務,且該利用該等後端類神經網路的操作方法包含:利用該等後端類神經網路分別執行關聯於該初階任務的對應的該等進階任務。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW109120348A TWI769466B (zh) | 2020-06-17 | 2020-06-17 | 類神經網路系統及其操作方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW109120348A TWI769466B (zh) | 2020-06-17 | 2020-06-17 | 類神經網路系統及其操作方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202201289A TW202201289A (zh) | 2022-01-01 |
TWI769466B true TWI769466B (zh) | 2022-07-01 |
Family
ID=80787976
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW109120348A TWI769466B (zh) | 2020-06-17 | 2020-06-17 | 類神經網路系統及其操作方法 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI769466B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113807492A (zh) * | 2020-06-17 | 2021-12-17 | 台达电子工业股份有限公司 | 类神经网络系统及其操作方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106650806A (zh) * | 2016-12-16 | 2017-05-10 | 北京大学深圳研究生院 | 一种用于行人检测的协同式深度网络模型方法 |
US20190042867A1 (en) * | 2017-12-28 | 2019-02-07 | Yen-Kuang Chen | Multi-domain cascade convolutional neural network |
TW202001693A (zh) * | 2018-06-11 | 2020-01-01 | 瑞士商Inait公司 | 將人工神經網路中之活動特徵化之方法及包含一或多個可執行該方法之計算機之系統 |
CN111198826A (zh) * | 2018-11-20 | 2020-05-26 | 三星电子株式会社 | 存储设备、存储系统及存储方法 |
-
2020
- 2020-06-17 TW TW109120348A patent/TWI769466B/zh active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106650806A (zh) * | 2016-12-16 | 2017-05-10 | 北京大学深圳研究生院 | 一种用于行人检测的协同式深度网络模型方法 |
US20190042867A1 (en) * | 2017-12-28 | 2019-02-07 | Yen-Kuang Chen | Multi-domain cascade convolutional neural network |
TW202001693A (zh) * | 2018-06-11 | 2020-01-01 | 瑞士商Inait公司 | 將人工神經網路中之活動特徵化之方法及包含一或多個可執行該方法之計算機之系統 |
CN111198826A (zh) * | 2018-11-20 | 2020-05-26 | 三星电子株式会社 | 存储设备、存储系统及存储方法 |
Also Published As
Publication number | Publication date |
---|---|
TW202201289A (zh) | 2022-01-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Jiang et al. | Optimizing multistage discriminative dictionaries for blind image quality assessment | |
Wang et al. | A novel image classification approach via dense‐MobileNet models | |
US10671889B2 (en) | Committed information rate variational autoencoders | |
KR102545128B1 (ko) | 뉴럴 네트워크를 수반한 클라이언트 장치 및 그것을 포함하는 시스템 | |
US10430683B2 (en) | Image processing method and processing device | |
EP3678059B1 (en) | Image processing method, image processing apparatus, and a neural network training method | |
Song et al. | Unified binary generative adversarial network for image retrieval and compression | |
CN110378383B (zh) | 一种基于Keras框架和深度神经网络的图片分类方法 | |
CN107729948A (zh) | 图像处理方法及装置、计算机产品和存储介质 | |
CN110309847A (zh) | 一种模型压缩方法及装置 | |
CN110222717A (zh) | 图像处理方法和装置 | |
CN110378203B (zh) | 图像处理方法、装置、终端及存储介质 | |
CN107679572A (zh) | 一种图像判别方法、存储设备及移动终端 | |
Li et al. | Diagonal-kernel convolutional neural networks for image classification | |
Xie et al. | Self-attention enhanced deep residual network for spatial image steganalysis | |
US20210397927A1 (en) | Neural network system and method of operating the same | |
CN112070768A (zh) | 基于Anchor-Free的实时实例分割方法 | |
TWI769466B (zh) | 類神經網路系統及其操作方法 | |
US20200167655A1 (en) | Method and apparatus for re-configuring neural network | |
CN109543772B (zh) | 数据集自动匹配方法、装置、设备和计算机可读存储介质 | |
Weber et al. | Observer dependent lossy image compression | |
US20200057932A1 (en) | System and method for generating time-spectral diagrams in an integrated circuit solution | |
Qin et al. | Multi-resolution space-attended residual dense network for single image super-resolution | |
WO2020187029A1 (zh) | 图像处理方法及装置、神经网络的训练方法、存储介质 | |
Sun et al. | Randomized nonlinear two-dimensional principal component analysis network for object recognition |