首頁>科技>

有些網友一看CNN,以為是那個美國新聞網,而在機器學習中CNN則是表示卷積神經網路的。CNN的主要用途是用來做影象分類的,例如給出一張動物照片,讓機器識別它是貓還是狗。

我們在之前學習Tensorflow入門時,曾講過識別衣服分類的案例,在那個案例中我們載入的是黑白灰色影象,為什麼呢?因為沒有顏色資訊,可以直接用普通神經網路就可以解決。但當一張圖裡貓趴在草地裡時,如果去掉顏色資訊,也許人眼都認不出貓了,所以如何在彩色影象裡去做神經網路分類就顯得非常必要的。而卷積神經網路CNN就是為了應對彩色影象的,它可以在不丟失顏色資訊的情況下提取影象的高維特徵。如下圖,用一個3*3的過濾器將左邊原圖進行卷積運算後,變成了右邊這個3*3的新圖。

卷積運算規則如下圖,用原圖與過濾器矩陣相乘,取乘積後的矩陣網格之和作為新圖的單元值。學過傳統程式設計的人很快就能看出來,這好像跟CRC演算法有點像,把一個長字串用CRC運算變成一個短串,關鍵特徵還能繼續保留。

卷積之後可能影象資料還是很大,這時就還需要將它進行池化。一般我們可以採用最大值池化法,如下圖,我們看到可以將左邊4*4的輸入圖,抽取每個四元格最大值,生成右邊新的輸出圖,圖的面積縮小了一倍,但關鍵特徵依然保留了。

卷積和池化的目的就是為了縮小訓練影象的資料面積,但不丟失其關鍵特徵,讓神經網路能準確的對其進行分類。整個識別貓的過程如下:

首先將貓的原圖作為輸入,進行兩次卷積和池化,目的逐步提取關鍵特徵。每次卷積和池化中間增加一個Relu啟用函式,目的是增加非線性隱藏層,生成非線性模型。最後透過softmax啟用函式的隱藏層實現一對多分類,然後用一個單節點層輸出它是貓的機率,至此我們就知道它是不是貓了。

綜上所述,CNN卷積神經網路是用於提取影象關鍵特徵的,便於後續模型訓練,這回你明白了嗎

21
最新評論
  • 整治雙十一購物亂象,國家再次出手!該跟這些套路說再見了
  • 3Q大戰十年後,騰訊成長為網際網路帝國,360還是那個360?