一款高顏值的神經(jīng)網(wǎng)絡(luò)可視化工具來(lái)了!3D、彩色、可定制,還能可視化參數(shù)重要性
點(diǎn)擊上方“程序員大白”,選擇“星標(biāo)”公眾號(hào)
重磅干貨,第一時(shí)間送達(dá)
最近,一款神經(jīng)網(wǎng)絡(luò)可視化工具火了。
這款工具叫做「nn_vis」,它采用了新的3D可視化技術(shù),可以呈現(xiàn)這樣的效果:
其作者表示,之所以創(chuàng)建這個(gè)工具,是由于神經(jīng)網(wǎng)絡(luò)內(nèi)部缺乏透明度,很難為不同任務(wù)選擇有效的架構(gòu)。
nn_vis究竟有什么與眾不同?一起來(lái)了解一下。
它能夠創(chuàng)建神經(jīng)網(wǎng)絡(luò)模型,還可以通過(guò)參數(shù)設(shè)置,得到不同的呈現(xiàn)形式;


并且,根據(jù)參數(shù)重要性的評(píng)估結(jié)果,對(duì)神經(jīng)網(wǎng)絡(luò)進(jìn)行剪枝,從而簡(jiǎn)化模型;
同時(shí),還可以對(duì)神經(jīng)網(wǎng)絡(luò)綁定過(guò)程實(shí)現(xiàn)可視化。
那么,這些功能是怎樣實(shí)現(xiàn)的呢?
nn_vis利用神經(jīng)網(wǎng)絡(luò)優(yōu)化領(lǐng)域的已有方法,采用批標(biāo)準(zhǔn)化、微調(diào)以及特征提取,評(píng)估訓(xùn)練后的神經(jīng)網(wǎng)絡(luò)不同部分的重要性。
再結(jié)合邊綁定、光線跟蹤、3D impostor和特殊的透明技術(shù)等,得到神經(jīng)網(wǎng)絡(luò)的3D模型,證明了評(píng)估結(jié)果的有效性。
具體來(lái)看看~
參數(shù)準(zhǔn)備
首先通過(guò) configs/processing.json ,進(jìn)行神經(jīng)網(wǎng)絡(luò)處理的參數(shù)準(zhǔn)備,就像這樣:
{"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}
也可以在圖形用戶界面進(jìn)行設(shè)置:

創(chuàng)建神經(jīng)網(wǎng)絡(luò)模型
使用可視化工具start_tool.py,并選擇神經(jīng)網(wǎng)絡(luò)Load Processed Network。
除了現(xiàn)有的網(wǎng)絡(luò),還可以生成隨機(jī)網(wǎng)絡(luò),以及處理各種大小的網(wǎng)絡(luò)。
與最常用的參數(shù)相比,可視化可以使訓(xùn)練參數(shù)更為結(jié)構(gòu)化。
經(jīng)過(guò)不同的訓(xùn)練,通過(guò)旋轉(zhuǎn)、切換相機(jī)位置、截屏,可以得到類似這樣的效果:
邊越靠近,神經(jīng)網(wǎng)絡(luò)這些部分的泛化程度就越大,即更容易適應(yīng)新的數(shù)據(jù)樣本。
? 左側(cè)的神經(jīng)網(wǎng)絡(luò)沒(méi)有經(jīng)過(guò)隨機(jī)分配的值的訓(xùn)練:節(jié)點(diǎn)和邊距離中心分布的更遠(yuǎn);
? 中間的則經(jīng)過(guò)一些基本訓(xùn)練,達(dá)到90%以上的準(zhǔn)確性。
? 右側(cè)的神經(jīng)網(wǎng)絡(luò)以相同方式訓(xùn)練,并且采用L1正則化防止過(guò)擬合,得到了具有相似準(zhǔn)確性的最窄的模型。
評(píng)估各節(jié)點(diǎn)的重要性
根據(jù)節(jié)點(diǎn)和邊的重要性進(jìn)行著色,不同的顏色表示神經(jīng)網(wǎng)絡(luò)的每一部分,用來(lái)預(yù)測(cè)它們的關(guān)聯(lián)性。

通過(guò)左圖可以看出,修剪不重要的參數(shù),不會(huì)像重要參數(shù)那樣影響模型的預(yù)測(cè)準(zhǔn)確性。
右圖則顯示出,根據(jù)類別的重要性修剪神經(jīng)網(wǎng)絡(luò)時(shí),重要類別能夠保留準(zhǔn)確性。與整體準(zhǔn)確性相比,重要類別的準(zhǔn)確性始終更高。
通過(guò)對(duì)神經(jīng)網(wǎng)絡(luò)進(jìn)行剪枝,即剪掉不重要的冗余參數(shù),降低了模型的復(fù)雜度和過(guò)擬合風(fēng)險(xiǎn),提升了泛化程度,得到更高效、訓(xùn)練成本更低的神經(jīng)網(wǎng)絡(luò)。
由此證明了重要性評(píng)估的有效性。
綁定過(guò)程可視化
通過(guò)不斷迭代實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)的綁定,大致過(guò)程是這樣的:

可視化的神經(jīng)網(wǎng)絡(luò)綁定過(guò)程:
需要注意的是,處理每層的神經(jīng)網(wǎng)絡(luò)需要一定時(shí)間,計(jì)算并不是實(shí)時(shí)的。
不同的可視化效果
在圖形用戶界面或者通過(guò)configs/rendering.json,修改著色器參數(shù),包括:
尺寸、對(duì)象的基本不透明度、即重要性對(duì)不透明度的影響比率、相機(jī)的距離對(duì)不透明度的影響比率、物體上不同點(diǎn)的密度對(duì)不透明度的影響比率、根據(jù)對(duì)象的重要性定義渲染對(duì)象的閾值。
即可得到不同的可視化效果:
對(duì)這款工具感興趣的朋友,可以通過(guò)文末鏈接獲取~
GitHub項(xiàng)目地址:
https://github.com/julrog/nn_vis
推薦閱讀
國(guó)產(chǎn)小眾瀏覽器因屏蔽視頻廣告,被索賠100萬(wàn)(后續(xù))
年輕人“不講武德”:因看黃片上癮,把網(wǎng)站和786名女主播起訴了
關(guān)于程序員大白
程序員大白是一群哈工大,東北大學(xué),西湖大學(xué)和上海交通大學(xué)的碩士博士運(yùn)營(yíng)維護(hù)的號(hào),大家樂(lè)于分享高質(zhì)量文章,喜歡總結(jié)知識(shí),歡迎關(guān)注[程序員大白],大家一起學(xué)習(xí)進(jìn)步!


