Neural Networks for Machine Learning by Geoffrey Hinton (5)

爲什麼物體識別很困難?

  • 圖像分割(Segmentation):實際場景中總是摻雜着其他物體。
  • 物體光照(Lighting):像素的值被物體光照所顯著影響。
  • 圖像變形(Deformation):物體有時會變形成非仿射(non-affine)的形式。
  • 情景支持(Affordances):物體所屬類別常常由他們的使用方式而定義。如各種能坐的物體都可以是算是椅子。
  • 維度跳變(dimension-hopping):
    具體表現是:改變視角(viewpoint)可能導致機器學習方法失效,如圖1

    這裏寫圖片描述
    圖1

    形象的比喻是:網絡用來學習病人的各種體徵,之前用來學習身高的神經元,現在忽然用來學習病人的年齡。

獲得視角不變性的方法

  • 使用充足冗餘的不變性特徵(redundant invariant features)。
  • 在物體外側畫一個邊框,然後對其進行歸一化(Normalization)。
  • 使用複製特徵(replicated features)以及池化(pooling)技巧。

不變特徵方法(The invariant feature approach)

提取一個巨大、冗餘的特徵集合,這個集合對於變換具有不變性。

例如:在紅點周圍的兩根粗平行線。如圖2


這裏寫圖片描述
圖2

當時對於識別任務而言,應當儘量避免不屬於物體的部分的特徵。

合理歸一化方法(The judicious normalization approach)

  • 在物體周圍放置一個邊框,並定位方向,從而進行歸一化。如圖3
  • 邊框對相當多的變形具有不變性:如平移、旋轉、放大、剪切以及拉伸。

    這裏寫圖片描述
    圖3

然而選取邊框非常困難,因爲:

  • 分割錯誤、遮擋、反常定位。
  • 因此我們需要識別出物體才能更好對邊框進行定位——這變成了雞與蛋的問題。

強制歸一化方法(The brute force normalization approach)

  • 訓練識別器的時候用良好裁切,方向豎直向上、貼合邊框的圖片。
  • 測試識別器的時候用各種位置和朝向的邊框。
  • 這種方法對檢測未經裁切的豎直物體如臉部、門牌號碼這些任務很有效。

用以手寫體識別的卷積神經網絡

複製特徵方法(The replicated feature approach)

  • 在不同的位置使用相同的特徵提取器,如圖4
  • 複製特徵的方法顯著降低了自由參數的數量。

    這裏寫圖片描述
    圖4

複製特徵方法學習到了什麼?

  • 激活值等變化量

    複製特徵的方法並不能使神經元激活值不變,但是能夠使激活值改變量相同,如圖5


    這裏寫圖片描述
    圖5

  • 知識不變量

    如果在訓練中某個特徵在一些位置有效,那麼在測試中,特徵提取器應該在各個位置生效。

複製特徵提取器的池化(Pooling)

  • 池化就是把相鄰的像素值均值化,作爲下一層網絡的單一輸入。

    這會降低輸入到下一層的輸入特徵數,從而使得下一層實際能學到特徵變多了。

  • 存在的問題:經過若干層的池化,我們損失了 物體的精確位置信息。

    這使得利用物體之間的精確空間位置關係來進行識別變得不可行。

LeNet5 模型

Yann LeCun 開發了一個多層卷積神經網絡用於手寫體識別,如圖6:

LENET


這裏寫圖片描述
圖6

如何評價兩個模型的優劣?

McNemar 測試比單純地比較兩個模型的錯誤率要更加可觀。

type model 1 wrong model 1 right
model 2 wrong 29 1
model 2 right 11 9959

說明模型2要顯著好於模型1。

type model 1 wrong model 1 right
model 2 wrong 15 15
model 2 right 25 9949

並不能說明模型2要好於模型1。

Alex’s Net 的諸多設計

Krizhevsky, Alex, Ilya Sutskever, and Geoffrey E. Hinton. “Imagenet classification with deep convolutional neural networks.” Advances in neural information processing systems. 2012.

  • 7層隱含層(不包括池化層)。
  • 前面5層是卷積層,後面2層是全連接層。
  • 激活函數使用的是ReLU函數。
  • 歸一化層用以抑制近鄰神經元的強激活值。
  • 隨機裁切和水平鏡像以擴大訓練數據集。
  • 丟棄層(Dropout)隨機丟棄一半權重以防止過擬合。
  • 雙GPU(GTX 580)矩陣運算。


這裏寫圖片描述
圖7

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章