這篇從視覺化的角度形象說明神經網路到底如何提公升分類正確率,不會涉及數學推導和模型原理,目的在於幫助讀者建立神經網路對資料處理的形象化概念。
這篇最初發表於我的知乎專欄:程式設計師深度學習筆記,結合知乎發表後到現在這兩天的思考,在原文基礎上有刪改,並加入了更多的插圖。
n個64維向量,其標籤分為兩類,記為類別1和類別2,類別1以紅色表示,類別2以藍色表示。
使用pca技術,將64維向量的3個最強主成分抽取出來,繪圖得到如下結果
從中可以看出兩點特徵,
除了乙個維度的座標範圍是[4,8.5],其餘兩個維度座標範圍都在1e-15及以下,說明原始資料的主成分集中在一維,分類難度大
紅色和藍色混雜分布,不易區分
其中第一點可以進一步圖形化說明,將pca降維之後強度最強的乙個維度的分布畫出來,如下所示。這裡為了避免紅色和藍色點重疊,將紅色點的縱座標向上移動乙個微小距離,將藍色點的縱座標向下移動乙個微小距離。
從上面的一維分布圖來看,紅色和藍色存在大量的交叉區域,僅僅依靠pca找到的最強的乙個維度,不可能得到效能較好的分類器。
由於涉及到實際工作中的資料、程式,這裡略過神經網路設計和訓練方法細節,只考慮神經網路的全連線輸出層。全連線層的輸入是形狀(n,64)的tensor,輸出是(n,2)的tensor。這裡(n,64)的tensor可以視為神經網路將64維資料經過複雜運算之後投射到另乙個64維空間的效果,將其畫出來圖形如下
對比原始資料的分布,上圖可以看出兩點
3個維度的取值範圍接近,說明神經網路將此前集中在1維的資料成功的擴充套件到3維空間,資料點之間的距離加大,分類面可以更好的將這兩類資料分開
紅色資料的集中度明顯提公升,這樣分類的難度就會大幅下降,分類精度提公升
雖然以上圖這個角度,肉眼看紅藍兩色在一些區域還有重疊,但考慮到這是3d圖,通過旋轉等手段可以看到這些點只是在視覺的投影方向重疊,其本身在3維空間並沒有重疊。同時,3個維度的取值範圍都很大,神經網路已經可以在這些點之間生成靈活的分類面,實現高精度(precision和recall都達到99%)的分類器
本文通過原始資料和經過訓練的神經網路運算得到的輸出層資料視覺化對比,說明了神經網路是如何將原始資料投射到另乙個空間,實現高準確率分類。
同時,這種視覺化也是一種理解和檢驗神經網路效能的方法,通過將輸入和輸出資料視覺化可以看出神經網路的效能以及可能的問題。
神經網路 權重視覺化
深度學習已經應用在各種不同的領域,並且都取得了不錯的效果,但是在很多情況下,深度學習網路被我們看做乙個黑匣子,我們不知道通過訓練,我們的網路到底學習到了什麼。今天給大家分享乙個簡單的權重視覺化的方法,在我們訓練完網路之後,可以通過權重視覺化,直觀的理解網路到底學習到了什麼。本次實驗基於mnist資料...
神經網路特徵視覺化
1.visualizing higher layer features of a deep network 本文提出了兩種視覺化方法。1.最大化activation 當訓練完乙個深層神經網路之後,固定全部引數。然後對於某乙個神經元的activation進行梯度上公升優化來尋找能使它的值最大化的inp...
卷積神經網路的視覺化
2014eccv紐約大學 matthew d.zeiler,rob fergus文章主要技巧 使用視覺化技巧 反卷積網路 deconvnet 來直 到cnn中間層的特徵對應的影象區域,deconvnet在 zeiler et al.2011 中被用作無監督學習,本文則用來進行視覺化演示。一層反卷積網...