當前位置: 華文星空 > 體育

什麽是摺積神經網絡?

2015-06-27體育

一、基本概念

1.摺積(Convolution)

摺積是一個物理和數學的概念,可以理解為,系統某一時刻的輸出是由多個輸入共同作用(疊加)的結果。 摺積公式如下:

摺積公式<br>

詳細講解可以看【從「摺積」、到「影像摺積操作」、再到「摺積神經網絡」,「摺積」意義的3次改變】https://www. bilibili.com/video/BV1V V411478E?vd_source=6f69eb2b361d7f319fa5f5250e9a5d4a

實質上,摺積就是 對資訊(訊號)進行「過濾」(濾波),它能夠「過濾出」我們感興趣、對我們有用的資訊

在這裏的摺積和物理數學上的概念不一同,在影像的摺積操作中,f(x) 可以理解為原始像素點(source pixel),所有的原始像素點疊加起來,就是原始圖了,g(x)可以稱為作用點,所有作用點合起來我們稱為 摺積核 (Convolution kernel),實際上,摺積就是把一個點的像素值用它周圍的點的像素值的加權平均代替(仍然是一種線性運算),最後的結果我們稱為destination pixel。

摺積核(也可以叫濾波器)有哪些作用? (1)原始影像透過與摺積核的數學運算,可以提取出影像的某些指定特征(features)。

(2)不同摺積核,提取的特征也是不一樣的。

(3)提取的特征一樣,不同的摺積核,效果也不一樣。 PS: 摺積運算是矩陣的一種哈德馬積,不是線性代數中常用的乘積。

2.池化(pooling)

池化也成為下采樣,一般在摺積過程之後,其本質就是采樣 ,會壓縮輸入的特征圖(摺積運算後的結果),一方面減少了特征,導致了參數減少,進而簡化了摺積網絡計算時的復雜度;另一方面保持了特征的某種不變性(旋轉、平移、伸縮等)。 池化 還有一個特點就是 不會對通道之間的互動有影響 ,而 摺積層 則可以在 通道與通道之間進行互動 ,之後在下一層生成新的通道。

目的 就是特征降維,進一步的資訊抽象和特征提取,降低對計算資源的損耗,降低影像分辨率,防止模型過擬合。最常見的方式有最大值(Max)池化、最小值(Min)池化、平均值(Average)池化。 簡而言之,池化就是去除雜余資訊,保留關鍵資訊

3.濾波器(filter)&內核(kernel)

內核(kernel) 是一個二維矩陣,長*寬 濾波器(filter) 也叫摺積核,過濾器。是一個三維立方體,長× 寬 × 深度, 其中深度便是由 多少張內核構成,與輸入層的深度維持。該矩陣的大小又稱為感受野。 兩者之間的關系 :可以說 kernel 是filter 的基本元素, 多張kernel 組成一個filter;

4.特征圖(通道)

特征圖(feature map) 就是對輸入進行計算處理的輸出,可以理解為RGB影像的三個通道,進行摺積操作之後生成一個新的矩陣就是一個特征圖,特征圖之後在進行摺積操作就再次生成特征圖。

二、摺積神經網絡層級結構

  • 輸入層(Input Layer)
  • 摺積層(Convolutional Layer)
  • 啟用層(Relu Layer)
  • 池化層(Pooling Layer)
  • 全連線層(FC Layer)
  • 1.輸入層

    輸入層 為整個摺積神經網絡輸入影像,每個影像有若幹像素點,每個像素點都對應著像素值,故影像也可看成像素值矩陣。摺積神經網絡的輸入影像一般有兩種形式,分別為彩色影像和灰度影像,這裏也就有了輸入通道(這就是摺積層深度)的概念,彩色影像為RGB通道,輸入通道為3,而灰度影像輸入通道為1。彩色影像是在 RGB 色彩模式下的影像,該影像中每個像素點對應三個值,故一個彩色影像對應三個像素值矩陣。灰度影像中的每個像素對應一個灰度值,故一個灰度影像對應一個像素值矩陣。

    2.摺積層

    摺積層 是進行摺積操作的一層,可以保持形狀不變,當輸入數據是影像時,摺積層會以3維數據的形式接收輸入數據,並同樣以3維數據的形式輸出至下一層。因此在CNN中,可以正確理解影像等具有形狀的數據。 摺積層最大的特點:局部感知和權重共享。

    3.池化層

    池化層 是對輸入的數據進行壓縮,提取主要特征的過程,不會影響別的通道,因此不會產生行動通道。

    4.隱藏層

    隱藏層 其實是一個簡單的概念,在神經網絡中,除了輸入層和輸出層之外的層級,都是隱藏層。這是因為在神經網絡中,除了輸入層和輸出層之外的其他層級就像一個黑盒一般,無法看見,裏面的層級是隱藏在這其中。

    5.全連線層

    全連線層 ,是每一個結點都與上一層的所有結點相連,用來把前邊提取到的特征綜合起來。由於其全相連的特性。 全連線層就是將最後一層摺積得到的特征圖(矩陣)展開成一維向量,並為分類器提供輸入,一般全連線層的參數也是最多的,簡單來說全連線層的作用就是對特征圖分類。 如果全連線層作為最後一層,再加上softmax或者wx+b,則可以分別作為分類或回歸的作用,即「分類器」或「回歸器」的作用);如果作為倒數第2,3層的話,全連線層的作用是資訊融合,增強資訊表達。

    6.輸出層

    將全連線層的輸出經過啟用函數啟用後輸出

    7.其他的功能層

  • 歸一化層
  • 匯集層
  • 切分層
  • 融合層 這些層級現在還沒有遇見,等到需要的時候再補充
  • 三、一些其他概念

    1.啟用函數的位置

    一般來說,啟用函數的位置就在神經網絡不同層級的連線線上,也可以說是在兩個神經元之間的連線線上。 一般來說,啟用函數會在摺積層後面,但是這並不是一定的,線上性不可分的情況下需要有啟用函數,線上性可分時,沒有啟用函數也是可以的。

    2.局部連線(local connection)

    局部連線 是和全連線相對的,後面一層的神經元沒有與前一層的神經元全部連線,之連線了部份神經元,只用來學習局部特征。

    請添加圖片描述

    這樣做有什麽好處呢? 顯而易見的就是減少了學習的參數,減少了神經網絡的冗余資訊,同時也節約了器材的算力,還能加快學習率,在一定程度上防止過擬合。那麽這樣做會不會導致資訊損失呢?是會的,這會導致影像變得模糊損失細節,但這也防止了過擬合,消除噪音,提高效能。

    3.權重共享(參數共享)

    權值共享就是說,給一張輸入圖片,用一個摺積核去掃這張圖,摺積核裏面的數就叫權重,這張圖每個位置是被同樣的摺積核掃的,所以權重是一樣的,也就是共享。

    4.超參數

    超參數 就是參數,實在機器學習開始之前就人為設定好的參數,機器學習的過程就是對超參數進行最佳化。

    5.邊緣檢測

    簡單來說,邊緣檢測就是摺積操作的一個特例,它的主要作用就是利用不同的摺積核與特征圖進行摺積操作對特征圖的邊緣特征進行提取。