大家好,我叫張拳石,UCLA博士后。目前在朱松純老師的實驗室,帶領一個團隊,做explainable AI方向。本文的題目有些大,這篇短文中,我只簡單談談個人對deep learning發展狀況的感受,和我最近的explanatory graph for CNNs和interpretable CNN兩個研究課題。希望大家批評指正。
當deep learning剛剛在CV圈子里面興起的時候,我并沒有第一時間給予足夠的關注,直到幾個月后,變革的巨浪拍下,舊方向消亡的速度和新技術誕生的節奏都大大超過我的預期。相信很多人都有類似的感覺。一方面,deep learning超強的performance終結了一批舊的算法。另一方面,相比于傳統graph-based methods,deep learning大大降低了算法多樣性,簡化了算法設計的復雜度。一時間,做CV研究的思路變得非常清晰:設計一個新的loss,提出一個新的網絡結構,把傳統的heuristic方法hard encoded到網絡結構中去實現端對端學習。一兩項技術能夠把CV領域改造到這種地步,deep learning為AI帶來巨大的改變。
然而當端對端學習神經網絡猶如烈火烹油迅速發展的時候,我和周圍的很多學者不時的會感覺到一絲的隱憂:端對端的訓練一個black-box model會一直平穩的向下發展嗎?隨著網絡結構和loss function的設計越來越復雜,神經網絡真的會按照設計老老實實的去表達人們希望它表達的知識嗎?抱著這樣的焦慮,很多學者致力于visualization of CNN knowledge,讓CNN中每個unit的知識清晰的展現在人們的面前。更進一步,@周博磊定義出一系列標準去評測CNN知識的interpretability。
但是歸根結底,在端對端學習之外,我覺得還需要找到一套新的神經網絡操作工具,即讓神經網絡具有清晰的符號化的內部知識表達,去匹配人類自身的知識框架,從而人們可以在語義層面對神經網絡進行診斷和修改。從logic-based專家系統,到graphical model,再到深度神經網絡,模型的flexibility和performance逐漸提高。但是,從相反的方向,把一個神經網絡的內部邏輯轉化成graphical representations,或者logic-based rules,從而提高知識表達的interpretability。有了清晰的內部表達,那么對神經網絡的訓練是不是不但可以end-to-end,而且可以end-to-middle,middle-to-middle?當網絡內部一些單元具有了某種語義,那么transfer learning是不是直接在語義層面指派就好了,不需要大數據去訓練了?當網絡訓練可以深入到網絡的內部語義,或許deep learning未來的發展會有更多的可能性。
我希望一個CNN不僅僅告訴我它在某張圖像上檢測到一只小鳥,我還要CNN明確的告訴我,它用第一個filter去監測鳥頭,第二個filter去檢測鳥尾巴。因為這兩個filter被這張圖像觸發,所以判斷出圖像中有一只小鳥。進一步,當我知道鳥的分類得分是0.7,我還希望CNN給出鳥頭部分貢獻了0.3的分數,鳥尾貢獻了0.2。當CNN內部邏輯足夠條理清晰,我們是否還需要通過大數據進行端對端的訓練?我們能否在語義層面直接debug CNN呢?
沿著這條思路,在“Interpreting CNN knowledge via an Explanatory Graph”一文中,我主要介紹了如何把一個CNN(pre-trained for object classification)的conv-layer內部知識轉化成一個graphical model。算法自動學習出一個explanatory graph with tens of thousands of nodes去解釋CNN內部的hierarchical知識結構。Explanatory graph中每一個node,嚴格表示在CNN中某個conv-layer的某個object part pattern。這樣我就可以把混亂的CNN的知識拆分成幾十萬個object parts的子patterns。每個子pattern有很強的可遷移性(transferability),比如在multi-shot part localization的上可以降低1/3—2/3的誤差。
進一步,基于explanatory graph語義化的表達,我們能否把傳統的graph-based technologies自然的融入CNN的學習之中呢?我不知道。
在另一篇文章"Interpretable Convolutional Neural Networks"中,我介紹了如何端對端的學習一個CNN,使得其內部高層conv-layer的每個filter自動的表示某個object part。算法并不需要人為的標注object parts或texture作為額外的supervision,而是為這些filters添加一個prior constraint,使得在訓練過程中自動回歸的某種object part。
我還會寫兩篇短文分別專門介紹這兩篇文章的技術細節。
在時代的巨浪下,deep learning未來將向哪里發展?我不知道。我只能帶著一顆敬畏的心,摸著石頭過河,邊走邊瞧吧。
可解釋性與deep learning的發展 https://zhuanlan.zhihu.com/p/30074544