神經網路的每一層網路,有什麼實際的意義嗎?
這個問題涉及的是神經網路的可解釋性(interpretability)問題。在訓練完之後,神經網路的每一層網路都顯然具有其實際的意義,只是這種意義通常很難被人類簡單地理解。人類可以去嘗試重複一個已經被訓練的神經網路進行的計算,但這種計算的意義是不夠明確的,因此通常認為神經網路的「可解釋性」不強。
總體上來看,深度網路較淺層的神經元提取的是一些低層次的特徵,較深層的神經元提取的是一些高級別的特徵。在許多問題中,我們可以設計一些方法,讓各個隱藏層所提取的特徵變得可視化,但這種方法其實也不能很好地解釋所有的問題,因而很多人講神經網路視作「黑箱」。
在一些特定的問題中,模型可能具有較好的可解釋性,例如一個經典的案例就是卷積神經網路(CNN)逐層所提取的一些特徵,如下圖所示,較低層的網路提取的是圖像的邊緣、紋理等特徵,隨著層級的提高,網路逐漸提取的是更為高層級、更整體的特徵。不過這也並不是說 CNN 的可解釋性就是完美的,只能說 CNN 比一般的神經網路有相對更好的可解釋性,但我們仍然很難真正說清楚每一層網路,究竟有什麼實際的意義。
在深度學習被提出之前,當時在機器學習領域最流行也最成功的方法其實是隨機森林,而隨機森林中的每一棵決策樹都是具有很好解釋性的——深度學習拋棄了這種解釋性,從模型最終的表現上來看,它也有比各種隨機森林更好的表現。從這個例子中我們也可以感受到,模型的可解釋性跟模型的表現之間有著很複雜的關係。當你的模型很簡單時,模型的可解釋性越強,模型的表現可能會越好;但一旦模型變得複雜時,模型的可解釋性和模型的表現之間可能就存在著矛盾。
這是一個很好的問題,是區分入門應用者和真正研究人員的分水嶺。
簡要說來,網路里的每一層代表更高層次的表徵和特徵抽象。用人類的語言來說,就是對學習目標不同層次概念的概括。當然不是所有的網路層都能夠一一用人能理解的概念描述的,有些特徵只有計算機明白,或只在數學角度能被解釋,而且難以證明其解法的唯一性。這也是為什麼構建神經網路在今年的NIPS被有的研究人員稱為「鍊金術」的原因之一。
但是總的來說,是可以把網路看成一層層概念/特徵的提取及疊加的。
神經網路實現所謂的記憶和學習,其內在的機理究竟如何還是一個未知的理論難題。只是在應用方面,目前的深度學習確實可以收斂並實現分類預判,一般認為,每一層網路進行卷積濾波,就是一次特徵抽象和提取的過程,這個過程逐步深入,人類已無法直觀理解最終得到的模型,這也是目前深度學習的迷。
去看一些深度網路和物理系統聯繫的論文吧,比如和重整化群,entanglement renormalization,量子電路,tensor network等的聯繫。數學上每層是一個映射,物理上是一次狀態演化或信息處理,幾何上是曲線延伸。
講簡單也很簡單,本質上每層網路就是特徵轉換,是在特定空間中的轉換而已,至於實際的意義,那要結合你的網路是用來幹什麼說的,分類、聚類、識別、預測、壓縮、擬合等等都可以做,所以只能說網路層就是用來進行轉換的。
推薦閱讀:
※未來物聯網的發展情況會怎麼樣?
※運營業務淺析
※無糖式醒腦新科技,一顆入魂,讓腦子爽嗨,開車、加班、學習……勾出你的無限能量
※為什麼現在日本還有很多人用翻蓋非智能手機?
※藉助Facebook吸收流量 何愁展會辦不好?