訓練好的神經網路,如何去解釋它的結構和參數,如何將神經網路和實際問題聯繫起來,讓黑箱不那麼黑?
我看的論文不太多,但是特別喜歡看解釋CNN的一些論文:比如說這一篇:Visualizing and Understanding Convolutional Networks 裡面描述自己如何設計CNN的有理有據,讓人信服。比如說這裡: 他發現對於alexnet來說,我們第一層的圖像(左邊a)(用的技術是deconv)過濾出來的都是高頻率以及低頻率的圖像,而右邊,它縮小了一點窗口,所以得到的邊緣圖像信息更加多。還有一篇是今年CVPR的這一篇,Understanding Deep Image Representations by Inverting Them具體的一些我就不詳細解釋,其實你自己看CNN的一些論文,他們都有詳細的解釋之所以這麼做的理由,你一句一句摘抄下來,就會看著不那麼「黑」。以前把DL用在圖像方面的工作常用的『讓黑箱不那麼黑』其中一種方法是把『權重』可視化出來,可以看到所謂的提取的『特徵』。
涵蓋面窄,僅供參考。
這個問題不錯,不過神經網路並不算是一個黑箱。它通過不斷調整自身內部的參數值,試圖達到一個既定目標。如果沒有達到目標就換一組參數,不行再換……在有限的資源(時間等)內還是無法完成任務,那就換一個更加複雜的模型,然後接著換參數……(網路結構是事先設計好的,中間參數是為了minimizing cross entropy,再由gradient descent計算出來的。)至於卷積神經網路(CNN),由於被大量用在圖像處理領域,所以人們希望將網路內部可視化。假如有一個訓練好的用於人臉檢測的網路(總共3層),在第一層它將學到一些簡單概念(比如邊界,顏色),第二層它會學到一些局部特徵(比如眼睛,鼻子,耳朵),第三層它就可以學到整個人臉的特徵(具體見下圖),從而實現人臉檢測的功能。
(只是示意圖,第二三層的特徵不可能這麼清晰。圖片來源已不可考,非常抱歉)之前人們已經可以清楚地visualize CNN網路的第一層,現在藉助DCNN(反捲積神經網路),後幾層的參數也可以被帶到pixel space,從而整個網路內部都可以被直接觀察(見下圖)。(右邊是原圖,左邊是visualize之後的網路中間層。圖片來源:Zeiler, M. D., Fergus, R. (2014). Visualizing and understanding convolutional networks. In Lecture Notes in Computer Science)當然CNN/DCNN還可以做一些別的事情,比如這個網站deepart.io - become a digital artist. 只要上傳一張照片(下圖左上)和一張具有一定風格的圖片(下圖左下),你就可以得到一張風格化(下圖右)的照片。他們的演算法參考了Simonyan, K., Zisserman, A. (2015). Very deep convolutional networks for large-scale image recognition. (圖片來源已不可考,非常抱歉)感覺上CNN+DCNN也就相當於是個Autoencoder。說到底(其實是扯遠了),神經網路並不神奇,它只是計算機對神經系統的簡單模擬(simulate而不是emulate)。就像人腦神經系統裏神經遞質累計到一定數量neuron就會fire,人工神經網路里的activation function超過閾值node就會被激活。我覺得神經網路也快要被開發到極限了,希望研究者多投入精力開發一些新的好用的模型。也多花點時間開發一下unsupervised learning,不管是AI(Artificial Intelligence)和IA(Intelligence Amplification),祝願早日戰勝人類。參考資料:1. Zeiler, M. D., Fergus, R. (2014). Visualizing and understanding convolutional networks. In Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics) (Vol. 8689 LNCS, pp. 818–833).
2. Simonyan, K., Zisserman, A. (2015). Very deep convolutional networks for large-scale image recognition. Iclr, 1–14.
現在,只有少數神經網路的特定層,有比較通俗、靠譜的解釋。
舉例來說,深度殘差收縮網路[1][2]中的軟閾值化層,是用於消除雜訊信息的,跟信號處理領域是相同的: