高顏值神經網絡可視化:3D彩色、可定制,還能可視化參數重要性
本文經AI新媒體量子位(公眾號ID:QbitAI)授權轉載,轉載請聯系出處。
最近,一款神經網絡可視化工具火了。
這款工具叫做「nn_vis」,它采用了新的3D可視化技術,可以呈現這樣的效果:

其作者表示,之所以創建這個工具,是由于神經網絡內部缺乏透明度,很難為不同任務選擇有效的架構。
nn_vis究竟有什么與眾不同?一起來了解一下。
它能夠創建神經網絡模型,還可以通過參數設置,得到不同的呈現形式;


并且,根據參數重要性的評估結果,對神經網絡進行剪枝,從而簡化模型;
同時,還可以對神經網絡綁定過程實現可視化。

那么,這些功能是怎樣實現的呢?
nn_vis利用神經網絡優化領域的已有方法,采用批標準化、微調以及特征提取,評估訓練后的神經網絡不同部分的重要性。
再結合邊綁定、光線跟蹤、3D impostor和特殊的透明技術等,得到神經網絡的3D模型,證明了評估結果的有效性。
具體來看看~
參數準備
首先通過 configs/processing.json ,進行神經網絡處理的參數準備,就像這樣:
- {
- "edge_bandwidth_reduction": 0.9,
- "edge_importance_type": 0,
- "layer_distance": 0.5,
- "layer_width": 1.0,
- "node_bandwidth_reduction": 0.95,
- "prune_percentage": 0.0,
- "sampling_rate": 15.0,
- "smoothing": true,
- "smoothing_iterations": 8
- }
也可以在圖形用戶界面進行設置:

創建神經網絡模型
使用可視化工具start_tool.py,并選擇神經網絡Load Processed Network。
除了現有的網絡,還可以生成隨機網絡,以及處理各種大小的網絡。
與最常用的參數相比,可視化可以使訓練參數更為結構化。
經過不同的訓練,通過旋轉、切換相機位置、截屏,可以得到類似這樣的效果:

邊越靠近,神經網絡這些部分的泛化程度就越大,即更容易適應新的數據樣本。
• 左側的神經網絡沒有經過隨機分配的值的訓練:節點和邊距離中心分布得更遠;
• 中間的則經過一些基本訓練,達到90%以上的準確性。
• 右側的神經網絡以相同方式訓練,并且采用L1正則化防止過擬合,得到了具有相似準確性的最窄的模型。
評估各節點的重要性
根據節點和邊的重要性進行著色,不同的顏色表示神經網絡的每一部分,用來預測它們的關聯性。

通過左圖可以看出,修剪不重要的參數,不會像重要參數那樣影響模型的預測準確性。
右圖則顯示出,根據類別的重要性修剪神經網絡時,重要類別能夠保留準確性。與整體準確性相比,重要類別的準確性始終更高。
通過對神經網絡進行剪枝,即剪掉不重要的冗余參數,降低了模型的復雜度和過擬合風險,提升了泛化程度,得到更高效、訓練成本更低的神經網絡。
由此證明了重要性評估的有效性。
綁定過程可視化
通過不斷迭代實現神經網絡的綁定,大致過程是這樣的:

可視化的神經網絡綁定過程:

需要注意的是,處理每層的神經網絡需要一定時間,計算并不是實時的。
不同的可視化效果
在圖形用戶界面或者通過configs/rendering.json,修改著色器參數,包括:
尺寸、對象的基本不透明度、即重要性對不透明度的影響比率、相機的距離對不透明度的影響比率、物體上不同點的密度對不透明度的影響比率、根據對象的重要性定義渲染對象的閾值。
即可得到不同的可視化效果:

對這款工具感興趣的朋友,可以通過文末鏈接獲取~
GitHub項目地址:
https://github.com/julrog/nn_vis






























