【讀一本書】《昇騰AI處理器架構與編程》--神經網絡基礎知識(2)

哈嘍大家好,我是鵬哥。

 

今天我們繼續上次的主題是 —— 神經網絡基礎知識

 

~~~上課鈴~~~

 

Time BackBad Style - Kontrabanda

1

卷積神經網絡:輸入層

之前提到多層感知機的參數太多,導致訓練耗時長並且對圖像處理也不具有優勢,因此大神們 就提出了多層神經網絡,其中最經典的是卷積神經網絡(Convolution Neural Network, CNN)。

一般 CNN網絡分爲輸入層、卷積層、池化層、全連接層及輸出層。以CNN中最經典的LeNet5網絡結構來說明。LeNet5的結構爲“輸入層--卷積層1--池化層1--卷積層2--池化層2--全連接層1--全連接層2--輸出層”,如下圖所示:

輸入層:主要是對輸入數據進行求均值處理,使得樣本數據的中心儘量調整到座標系原點,包括將數據輸出成特定格式,通過主成分分析PCA進行降維。總的來說,就是把輸入數據儘量弄的少點,但又能代替原數據。

2

卷積神經網絡:卷積層

卷積層:通常採用二維卷積計算對圖像進行卷積,從而提取輸入數據的關鍵特徵,達到增強特徵信息,過濾無用信息的目標,併爲下一層輸出特徵圖。

1、首先,先講下關於卷積層的2個概念,一個是卷積核(又叫過濾器),一個是感受野。

 

卷積核:通過卷積核是 三維矩陣,由寬度、高度、深度三個參數組成。主要用於卷積過程中的加權求和

不同的卷積核效果也不一樣 ,有些對顏色信息敏感,有些對圖形形狀敏感,因此一個CNN網絡通常有多個卷積核。

感受野:卷積核作用的卷積窗口對應於原輸入特徵圖的部分

上圖爲感受野示意圖

按我當前的理解,卷積層輸出的特徵圖就是感受野經過卷積核處理後輸出的結果。

最後,經過卷積核處理後的輸出,還需要通過激活函數處理,類似上次提到的階躍函數。但是階躍函數是線性的,而神經元本身也是線性的,因此一般常用的激活函數是sigmoid函數、tanh函數等非線性函數,從而增強神經網絡的非線性擬合能力。

2、接着,講講卷積層的特性。

(1)局部連接

多層感知機用的是全連接模式,CNN採用的是局部連接模式。怎麼理解?就是說在多層感知機裏,多一個神經元需要處理同一塊感受野;CNN中,一塊感受野可能只由一個神經元處理。如下圖右邊所示。

(2)權重共享

由於每個神經元都有對應的權重數據,導致網絡參數太多,無法快速調優網絡;因此CNN採用的是權重共享,即所有神經元使用同一份權重數據。如下圖右邊所示。

3、再講下卷積層計算方法

一種是直接卷積,就是對特徵圖進行邊緣填充0,進行與權重矩陣相同維數的矩陣進行矩陣乘法。以示例圖爲例,將特徵圖外圍擴展了一圈0,然後以每次左移的步長爲2的頻率進行與權重數據矩陣相乘。

▲此爲直接卷積

第二種是矩陣乘法實現卷積。通過Img2Col函數將特徵圖和權重矩陣都展開成可實現相乘的維度,如下圖

▲此爲矩陣乘法卷積

針對卷積層的計算加速,又有5層層次的並行性,我不太感興趣,就不去了解了。

書中提到,昇騰AI處理器採用的是矩陣乘法卷積的方式。而卷積層的參數量和計算量一般是神經網絡中的重頭,因此卷積層的合理設計可以算是一個產品的核心算法。

3

卷積神經網絡:池化層

池化層:爲了防止過擬合,通過在相鄰卷積層之間進入池化處理,減少每一層特徵值數目,保留主特徵。

一般 池化處理是對不同位置區域提取具有代表性的特徵值,如最大值、平均值,對應的池化函數即爲最大池化和平均池化。池化層綜合了輸入特徵圖周圍全部特徵信息的反饋和影響,又減少了輸出數據量,從而提升了神經網絡的計算效率。

(這塊技術,好像不是什麼核心算法,因爲作者也只是簡單地帶過。

4

全連接層輸出

全連接層相當於一個多層感知機,對不同輸入特徵進行分類。

 

5

總結

看了第一章,只能說大致瞭解了神經網絡的概貌,對其中很多的數學公式推導、一些優化處理並沒有深入瞭解。感覺自己看了也會一知半解,容易遺忘,就不去仔細閱讀了。

好啦,下次就進入《昇騰AI處理器》的第二單--行業背景,如芯片加速理論、深度學習框架等。

 

~~~下課鈴~~~

 

 

點擊下方詩句,可以留言互動喔 

我與春風皆過客,你攜秋水攬星河。

發佈了38 篇原創文章 · 獲贊 17 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章