學習目標:卷積把局部與共享兩件事綁在一起,但它們可以拆開。三個模型(MLP/局部未共享/卷積)在三個條件下各跑一次,就能看出哪一個宣告買到「換位置還算同一件事」,以及哪一個宣告在像素被打亂時真的受傷。上圖另外量一件和訓練無關的事:等變是精確成立的,而它建立出來的不變性在邊界有縫。
左=12×12 的探針影像(線段可拖動;這一格量的是結構性質,所以不加雜訊);右=同一個隨機初始化、未經訓練的層給出的特徵圖
三個條件 × 三個模型的測試準確率(在瀏覽器裡現場訓練:384 張圖、480 步,比筆記裡那組短得多,所以 MLP 停在 0.8 附近而不是 0.98;要看的是同一個模型在不同條件之間的落差)
觀察:切換上面的「模型」,看第二列那個等變誤差。卷積是精確的 0——不是很小,是零;局部未共享是 10⁻¹ 的量級,和特徵本身同一個數量級(它有局部的形狀,但每個位置的權重不同,平移一格之後特徵圖整個換人);MLP 連「把特徵圖也平移一下」都沒有定義。等變來自共享,不來自局部。下圖中間那一組是共享買到的:只有卷積把從沒看過的右半也做對(1.000),MLP 與局部未共享都掉到亂猜——這裡的線段只有 5 像素長,左半訓練完全沒更新到右半的權重,所以比筆記裡那組整條線的實驗更極端。右邊那一組是共享的代價:打亂像素之後只有卷積掉下去(MLP 幾乎完全沒感覺)。最右邊那一組是刻意違反:任務答案就是位置,卷積照樣明顯高於 0.5——不變性只在畫面內部成立,邊界留下的縫被最佳化找到並用掉了。