電腦用什麼方式理解這個世界 ?

機器學習的可解釋性在近年來越來越被重視,尤其是大量引用深度學習技術之後更是如此。然而在許多的 Computer Vision ( CV, 電腦視覺 ) 領域中有卓越成就的許多方法,很多都無法真正的解釋電腦究竟提取出了什麼樣子的特徵,即使能夠解釋,提取出來的特徵也往往不是我們人類所想像的那樣。

最近 Google Brain 針對這個問題前後發表了兩篇論文 : " Interpretability Beyond Feature Attribution: Quantitative Testing with Concept Activation Vectors (TCAV) " 以及 " Towards Automatic Concept-based Explanations ",前者將圖像中的「概念」( concept ) 利用 CAV ( Creative Activation Vectors, 概念激活向量 ) 來定義並提出了 TCAV ( Testing with CAV ) 來量化預測這些 CAV 的敏感度,這可視為是一種線性可解釋方法。 後者提出對於概念解釋了一些原則與看法,同時也發表了一個 ACE ( Automatic Concept-based Explanations ) Algorithm,試圖要讓電腦能夠提取出我們能夠理解的特徵出來,讓整個 CV 算法的可解釋性更強,也可以利用這樣的特徵做出更貼近問題的決策。

Automatic Concept-based Explanations

Step 1 : 將整個圖像進行不同解析程度( Multi-resolution )的分割,並將所有分割出來的部件集合在一起。(上圖 a )

Step 2 : 將這些部件尺寸經過一些標準化動作後通過一個目前最好的 Pre-train CNN Model,在其 Bottleneck Layer 後會生成一個 Activation Space (激活空間),而這也等同於一個相似性空間 ( Similarity Space ),把這些部件聚合成一個一個的 Cluster。然後排除掉一些 Outlier 異常部件。(上圖 b)

Step 3 : 最後利用 TCAV 來針對這些 Clusters 進行重要性的度量。(上圖 c )

Experiments and Results

利用 ImageNet 隨機抽選的 100個分類進行 ACE Algorithm 的操作,並取出 TCAV 前四高分的部件進行分析。

上圖從實驗中的 100 個類別中隨機抽選三個類別 ( Lionfish,Police Van 以及 Basketball ) 並展示出各自四個 TCAV 最高分部件及其在原圖像的分割區域。

就上面的結果看來,電腦在針對圖像辨識上的確有學習到一些「概念」 : * Lionfish 的紋路、魚鰭 * 警車的輪胎及字樣 * 籃球的形狀、紋路及運動員球衣、持球方式

論文中利用 TCAV 所得到的分數將我們可以將所有概念進行排序,論文中也做出實驗發現,只要給予前五個最高分 TCAV 的概念,就可以達到近 80% 的預測準確率。然而,如果原圖移除最重要的五個概念再進行預測,則預測準確率會掉到 80% 以下。

這些經由 ACE 產生的概念,其實符合人類的直覺,高度重要性的概念大都是直接的 ( 例如警車 VS 警察字樣,下圖(a) ),而間接概念的重要性就會稍微低一點 ( 籃球 VS 球衣,下圖(b) ),如果一個類別本身極為複雜,可能會包含許多種部件(概念),這些概念之間也可能會有不同的相關程度 ( 例如下圖的旋轉木馬,燈光的重要性高於木馬本身 )。

接下來的問題則是,如果我們只有這些「概念」,而不保留原本的圖像結構呢 ? 機器是否還能對圖像進行正確的分類 ?

研究團隊利用大雜燴的方式將重要的概念通通塞再一起,完全沒有任何結構可言的狀態下,機器也能針對這些圖像進行正確的分類。

小結

Google Brain 的這些研究的確能讓電腦視覺的整個思維邏輯具象化,也讓整個深度學習的可解釋性增強不少,這對於人類未來使用這些經過訓練過後的模型能夠更有洞見、做出更好的決策。

然而,即使現在許多科學家也同意不論是深度學習也好,人工智慧也好都已經不把重點放在如何取代人類,但是在追求可解釋性的同時,仍然其實在使人工智慧的運作可以更近似人腦。

「你不能用我看不懂的方式來進行,一定要用我可以理解的方式解釋給我聽」

但,這些解釋出來的過程,真的是我們想要的結果嗎 ? 我們真的滿足於這樣的解釋嗎 ? 又或許,尋找人工智慧的可解釋性只是個次要目標。

最終,我們還是會回到一開始的期待。 總還是希望能在人工智慧與人類大腦之間找尋一個共通的模式,真正形成一個「大一統理論」。而在這樣的目的達成以前,我們能做的便是藉由這些可操作框架來嘗試解釋這一切。

或許真的有一天能夠有一個可以解釋一切的演算法橫空出世,就讓我們一起期待吧 !