您現在的位置是:首頁 > 手機遊戲首頁手機遊戲

決策樹的復興?結合神經網路,提升ImageNet分類準確率且可解釋

簡介如下圖所示,研究者稱這種模型為「神經支援決策樹(NBDT)」,並表示這種模型在保留決策樹的可解釋性的同時,也能夠媲美神經網路的準確性

如何理解全連線層

機器之心報道

機器之心編輯部

決策樹的復興?結合神經網路,提升ImageNet分類準確率且可解釋

魚和熊掌我都要!BAIR公佈神經支援決策樹新研究,兼顧準確率與可解釋性。

隨著深度學習在金融、醫療等領域的不斷落地,模型的可解釋性成了一個非常大的痛點,因為這些領域需要的是預測準確而且可以解釋其行為的模型。然而,深度神經網路缺乏可解釋性也是出了名的,這就帶來了一種矛盾。可解釋性人工智慧(XAI)試圖平衡模型準確率與可解釋性之間的矛盾,但 XAI 在說明決策原因時並沒有直接解釋模型本身。

決策樹是一種用於分類的經典機器學習方法,它易於理解且可解釋性強,能夠在中等規模資料上以低難度獲得較好的模型。之前很火的微軟小冰讀心術極可能就是使用了決策樹。小冰會先讓我們想象一個知名人物(需要有點名氣才行),然後向我們詢問 15 個以內的問題,我們只需回答是、否或不知道,小冰就可以很快猜到我們想的那個人是誰。

周志華老師曾在「西瓜書」中展示過決策樹的示意圖:

決策樹的復興?結合神經網路,提升ImageNet分類準確率且可解釋

決策樹示意圖。

儘管決策樹有諸多優點,但歷史經驗告訴我們,如果遇上 ImageNet 這一級別的資料,其效能還是遠遠比不上神經網路。

「準確率」和「可解釋性」,「魚」與「熊掌」要如何兼得?把二者結合會怎樣?最近,來自加州大學伯克利分校和波士頓大學的研究者就實踐了這種想法。

他們提出了一種神經支援決策樹「Neural-backed decision trees」,在 ImageNet 上取得了 75。30% 的 top-1 分類準確率,在保留決策樹可解釋性的同時取得了當前神經網路才能達到的準確率,比其他基於決策樹的影象分類方法高出了大約 14%。

決策樹的復興?結合神經網路,提升ImageNet分類準確率且可解釋

BAIR 部落格地址:https://bair。berkeley。edu/blog/2020/04/23/decisions/

論文地址:https://arxiv。org/abs/2004。00221

開源專案地址:https://github。com/alvinwan/neural-backed-decision-trees

這種新提出的方法可解釋性有多強?我們來看兩張圖。

OpenAI Microscope 中深層神經網路視覺化後是這樣的:

決策樹的復興?結合神經網路,提升ImageNet分類準確率且可解釋

而論文所提方法在 CIFAR100 上分類的視覺化結果是這樣的:

決策樹的復興?結合神經網路,提升ImageNet分類準確率且可解釋

哪種方法在影象分類上的可解釋性強已經很明顯了吧。

決策樹的優勢與缺陷

在深度學習風靡之前,決策樹是準確性和可解釋性的標杆。下面,我們首先闡述決策樹的可解釋性。

決策樹的復興?結合神經網路,提升ImageNet分類準確率且可解釋

如上圖所示,這個決策樹不只是給出輸入資料 x 的預測結果(是「超級漢堡」還是「華夫薯條」),還會輸出一系列導致最終預測的中間決策。我們可以對這些中間決策進行驗證或質疑。

然而,在影象分類資料集上,決策樹的準確率要落後神經網路 40%。神經網路和決策樹的組合體也表現不佳,甚至在 CIFAR10 資料集上都無法和神經網路相提並論。

這種準確率缺陷使其可解釋性的優點變得「一文不值」:我們首先需要一個準確率高的模型,但這個模型也要具備可解釋性。

走近神經支援決策樹

現在,這種兩難處境終於有了進展。加州大學伯克利分校和波士頓大學的研究者透過建立既可解釋又準確的模型來解決這個問題。

研究的關鍵點是將神經網路和決策樹結合起來,保持高層次的可解釋性,同時用神經網路進行低層次的決策。如下圖所示,研究者稱這種模型為「神經支援決策樹(NBDT)」,並表示這種模型在保留決策樹的可解釋性的同時,也能夠媲美神經網路的準確性。

決策樹的復興?結合神經網路,提升ImageNet分類準確率且可解釋

在這張圖中,每一個節點都包含一個神經網路,上圖放大標記出了一個這樣的節點與其包含的神經網路。在這個 NBDT 中,預測是透過決策樹進行的,保留高層次的可解釋性。但決策樹上的每個節點都有一個用來做低層次決策的神經網路,比如上圖的神經網路做出的低層決策是「有香腸」或者「沒有香腸」。

NBDT 具備和決策樹一樣的可解釋性。並且 NBDT 能夠輸出預測結果的中間決策,這一點優於當前的神經網路。

如下圖所示,在一個預測「狗」的網路中,神經網路可能只輸出「狗」,但 NBDT 可以輸出「狗」和其他中間結果(動物、脊索動物、肉食動物等)。

決策樹的復興?結合神經網路,提升ImageNet分類準確率且可解釋

此外,NBDT 的預測層次軌跡也是視覺化的,可以說明哪些可能性被否定了。

與此同時,NBDT 也實現了可以媲美神經網路的準確率。在 CIFAR10、CIFAR100 和 TinyImageNet200 等資料集上,NBDT 的準確率接近神經網路(差距

神經支援決策樹是如何解釋的

對於個體預測的辯證理由

最有參考價值的辯證理由是面向該模型從未見過的物件。例如,考慮一個 NBDT(如下圖所示),同時在 Zebra 上進行推演。雖然此模型從未見過斑馬,但下圖所顯示的中間決策是正確的-斑馬既是動物又是蹄類動物。對於從未見過的物體而言,個體預測的合理性至關重要。

決策樹的復興?結合神經網路,提升ImageNet分類準確率且可解釋

對於模型行為的辯證理由

此外,研究者發現使用 NBDT,可解釋性隨著準確性的提高而提高。這與文章開頭中介紹的準確性與可解釋性的對立背道而馳,即:NBDT 不僅具有準確性和可解釋性,還可以使準確性和可解釋性成為同一目標。

決策樹的復興?結合神經網路,提升ImageNet分類準確率且可解釋

ResNet10 層次結構(左)不如 WideResNet 層次結構(右)。

例如,ResNet10 的準確度比 CIFAR10 上的 WideResNet28x10 低 4%。相應地,較低精度的 ResNet ^ 6 層次結構(左)將青蛙,貓和飛機分組在一起且意義較小,因為很難找到三個類共有的視覺特徵。而相比之下,準確性更高的 WideResNet 層次結構(右)更有意義,將動物與車完全分離開了。因此可以說,準確性越高,NBDT 就越容易解釋。

瞭解決策規則

使用低維表格資料時,決策樹中的決策規則很容易解釋,例如,如果盤子中有面包,然後分配給合適的孩子(如下所示)。然而,決策規則對於像高維影象的輸入而言則不是那麼直接。模型的決策規則不僅基於物件型別,而且還基於上下文,形狀和顏色等等。

決策樹的復興?結合神經網路,提升ImageNet分類準確率且可解釋

此案例演示瞭如何使用低維表格資料輕鬆解釋決策的規則。

為了定量解釋決策規則,研究者使用了 WordNet3 的現有名詞層次;透過這種層次結構可以找到類別之間最具體的共享含義。例如,給定類別 Cat 和 Dog,WordNet 將反饋哺乳動物。在下圖中,研究者定量驗證了這些 WordNet 假設。

決策樹的復興?結合神經網路,提升ImageNet分類準確率且可解釋

左側從屬樹(紅色箭頭)的 WordNet 假設是 Vehicle。右邊的 WordNet 假設(藍色箭頭)是 Animal。

值得注意的是,在具有 10 個類(如 CIFAR10)的小型資料集中,研究者可以找到所有節點的 WordNet 假設。但是,在具有 1000 個類別的大型資料集(即 ImageNet)中,則只能找到節點子集中的 WordNet 假設。

How it Works

Neural-Backed 決策樹的訓練與推斷過程可分解為如下四個步驟:

為決策樹構建稱為誘導層級「Induced Hierarchy」的層級;

該層級產生了一個稱為樹監督損失「Tree Supervision Loss」的獨特損失函式;

透過將樣本傳遞給神經網路主幹開始推斷。在最後一層全連線層之前,主幹網路均為神經網路;

以序列決策法則方式執行最後一層全連線層結束推斷,研究者將其稱為嵌入決策法則「Embedded Decision Rules」。

決策樹的復興?結合神經網路,提升ImageNet分類準確率且可解釋

Neural-Backed 決策樹訓練與推斷示意圖。

執行嵌入決策法則

這裡首先討論推斷問題。如前所述,NBDT 使用神經網路主幹提取每個樣本的特徵。為便於理解接下來的操作,研究者首先構建一個與全連線層等價的退化決策樹,如下圖所示:

決策樹的復興?結合神經網路,提升ImageNet分類準確率且可解釋

以上產生了一個矩陣-向量乘法,之後變為一個向量的內積,這裡將其表示為$\hat{y}$。以上輸出最大值的索引即為對類別的預測。

決策樹的復興?結合神經網路,提升ImageNet分類準確率且可解釋

簡單決策樹(naive decision tree):研究者構建了一個每一類僅包含一個根節點與一個葉節點的基本決策樹,如上圖中「B—Naive」所示。每個葉節點均直接與根節點相連,並且具有一個表徵向量(來自 W 的行向量)。

使用從樣本提取的特徵 x 進行推斷意味著,計算 x 與每個子節點表徵向量的內積。類似於全連線層,最大內積的索引即為所預測的類別。

全連線層與簡單決策樹之間的直接等價關係,啟發研究者提出一種特別的推斷方法——使用內積的決策樹。

構建誘導層級

該層級決定了 NBDT 需要決策的類別集合。由於構建該層級時使用了預訓練神經網路的權重,研究者將其稱為誘導層級。

決策樹的復興?結合神經網路,提升ImageNet分類準確率且可解釋

具體地,研究者將全連線層中權重矩陣 W 的每個行向量,看做 d 維空間中的一點,如上圖「Step B」所示。接下來,在這些點上進行層級聚類。連續聚類之後便產生了這一層級。

使用樹監督損失進行訓練

決策樹的復興?結合神經網路,提升ImageNet分類準確率且可解釋

考慮上圖中的「A-Hard」情形。假設綠色節點對應於 Horse 類。這只是一個類,同時它也是動物(橙色)。對結果而言,也可以知道到達根節點(藍色)的樣本應位於右側的動物處。到達節點動物「Animal」的樣本也應再次向右轉到「Horse」。所訓練的每個節點用於預測正確的子節點。研究者將強制實施這種損失的樹稱為樹監督損失(Tree Supervision Loss)。換句話說,這實際上是每個節點的交叉熵損失。

使用指南

我們可以直接使用 Python 包管理工具來安裝 nbdt:

pip install nbdt

安裝好 nbdt 後即可在任意一張圖片上進行推斷,nbdt 支援網頁連結或本地圖片。

nbdt https://images。pexels。com/photos/126407/pexels-photo-126407。jpeg?auto=compress&cs=tinysrgb&dpr=2&w=32

# OR run on a local image

nbdt /imaginary/path/to/local/image。png

不想安裝也沒關係,研究者為我們提供了網頁版演示以及 Colab 示例,地址如下:

Demo:http://nbdt。alvinwan。com/demo/

Colab:http://nbdt。alvinwan。com/notebook/

下面的程式碼展示瞭如何使用研究者提供的預訓練模型進行推斷:

from nbdt。model import SoftNBDT

from nbdt。models import ResNet18, wrn28_10_cifar10, wrn28_10_cifar100, wrn28_10 # use wrn28_10 for TinyImagenet200

model = wrn28_10_cifar10()

model = SoftNBDT(

pretrained=True,

dataset=‘CIFAR10’,

arch=‘wrn28_10_cifar10’,

model=model)

另外,研究者還提供瞭如何用少於 6 行程式碼將 nbdt 與我們自己的神經網路相結合,詳細內容請見其 GitHub 開源專案。

Top