:::

白箱或黑箱:如何依照場合選擇機器學習模型? / White box or black box: choosing a machine learning model for your application

11月 12, 2017 0 Comments Edit Copy Download

image

我之前的幾篇文章中一直提到資料探勘(機器學習)中黑箱演算法與白箱演算法的概念。黑箱演算法正確率高、但產生的模型難以解釋;白箱演算法能夠產生容易理解的模型,但正確率可能不高。最近在看Vidyadhar Ranade在2017年4月所寫的「White box or black box: choosing a machine learning model for your application」,覺得他對黑箱與白箱的見解頗有道理。因此試著將內容翻譯出來,讓大家對機器學習演算法中黑箱與白箱的特性有更深刻的認識。


前言 / Introduction

image

(本文翻譯自Vidyadhar Ranade的文章)

人工智慧(AI)與深度學習(Deep learning)是當今非常熱門的議題!這些技術使用了多個隱藏層的神經網路(multi-hidden-layer neural networks),又稱為深度學習模型(deep learning models),電腦科學家已經用它們達成許多驚人的結果,像是分析圖片與演講語音等等。

深度學習非常強大,但也有些缺點:建立深度學習模型需要大量的訓練樣本(training data)(譯註:訓練樣本的概念可參考分類與預測:貝氏網路)、大量的電腦資源(譯註:可參考AI真正的主戰場在硬體)、而且這些模型難以解釋。主要是因為我們很難解釋模型內部的運作方式,深度學習被視為是一種黑箱模型(black box models)雖然還有其他的機器學習演算法也是黑箱模型,但深度學習卻是黑箱模型的代表,因為它的複雜度遠高於其他模型。

看到黑箱模型這名字,有人就可以猜到,跟黑箱模型相反的是,白箱模型(white box models)就是內部運作透明的模型。白箱模型的代表就是簡單的決策樹(decision trees)。(譯註:請參考Weka決策樹分類法使用教學)

大部分電腦科學家都開始相信,只有提供足夠的大量資料,靈活且複雜的深度模型就能夠超越並取代其他的機器學習模型。這可能發生嗎?我是不相信的那一個人。這讓我發想出一個問題:白箱或黑箱,要如何決定用哪種模型?必須注意的是,我關注的問題並非是從數學或電腦科學的角度,而是從應用場合與應用目的的角度來看。在本篇文章中,我將會圍繞著這個問題,並用例子來說明我的想法。


白箱模型適用的場合 / Situations only for a white box model

image

說到只能使用白箱模型的場合,我馬上就可以想到至少兩種例子:

場合1:當主要目的是理解變項之間的影響而不是模型本身的時候 / When the primary goal is to understand the influencing variables and not to model

這個例子常見於生產商品的品質發生問題的情況。我已經處理過非常多這樣的問題,這種情境的目標在於理解到底是哪一個處理環節、原料、或是其他的外部因素會是造成產品品質發生問題的元凶。

在這個情境中,模型不是關注的重點,但建立一個白箱模型能夠有助於讓我們理解影響產品品質的主要關鍵因素。(譯註:這類型的白箱模型可參考HotSpot關聯規則演算法M5P樹狀迴歸演算法)

場合2:當模型是用於很少發生的案例或非常重要的決策時 / When a model is used to support a seldom-made and / or a very big decision

這樣的例子會發生在併購部門(M&A department),他們常常需要從5到10個預期目標中選擇收購其中一家公司。在這個情況下,併購部門很難找到類似的足夠資料來建立黑箱模型,因此也很難用黑箱模型來準確預測要併購的目標。

併購部門依然可以用歷史資料來建構白箱模型。這些資料可能來自於公司內部或外部,這可以讓他們瞭解一個成功併購的關鍵因素,然後整合他們的經驗與模型的建立,以此產生最後的決策。


白箱模型或黑箱模型皆適用的場合 / Situations for a white box model or a black box model

black or white

下面兩種情況,白箱模型很能派上用場,同時黑箱模型也能夠在一些地方幫的上忙。

場合3:需要跟人說明模型建議的合理性時 / When it may be necessary to justify a model-based decision to other stakeholders

這種場合隨處可見。舉例來說,人力資源部門(HR)管理者要決定退休員工的退休金多寡,或是信用卡公司要決定是否借錢給客戶。在這些場合,人力資源部門管理者或辦理信用卡負責人常常需要跟他們的老闆說明下此決定的理由。只有在他們知道為何模型給出這樣建議時,他們才能給出令人容易明白的理由,而這只有白箱模型可以做到。

另一方面,如果黑箱模型能夠提供高度正確率的推薦,那我相信黑箱模型也能派上用場。為了能夠更好地找出說明決策的理由,有時候我們必須深入調查黑箱模型的「白色部分」(whiteness),這可稱之為灰箱模型(grey box model)在灰箱模型中,人們沒辦法完全掌握模型真正的運作方式,但仍然能夠找出有別於模型運作原理的可靠推理。(譯註:我猜想是類似貝氏的機率模型)

為什麼我認為只有高正確率的時候才能在這種場合使用灰箱模型呢?理由很簡單,就是因為黑箱或灰箱有著高度的正確率,才能讓人們相信我們需要這樣的決策。如果我們時常去說明基於灰箱模型作出的決策,那這個場合的重點就轉向了模型的可理解性(understandable)、可調整性(modifiable)以及可掌控性(over-rulable),也就是白箱模型的適用場合。

場合4:要用模型取代人為決策時 / When a model replaces judgment-based decision making

在這種場合,人們通常需要為決策負起責任。現在很常看到這種例子,例如投資管理者(portfolio manager)提出了一套投資組合的決策,或是醫生為病人設計一套療程。在這種情況下,如果他們知道模型是怎麼運作的時候,投資管理者或醫生就能直接參考模型的建議來下決策。

長期來看,這種場合用上黑箱模型的機會也很大。黑箱模型,特別是深度學習模型,在獲得更多歷史資料與決策後,就能夠大幅提升運作效率。有朝一日,投資管理者或醫生也許基於他們個人的經驗與判斷來建立他們個人化的模型。這種逐漸從過去資料與個人經驗逐漸學習的混合個人模型(hybrid 'personal' models),最後可能可以讓管理單位認同這種做法。(譯註:這種做法又稱為動態編程(Dynamic Programming))


黑箱模型適用的場合 / Situations only for a black box model

image

那黑箱模型呢?什麼時候才是使用黑箱模型的最佳場合?以下是我提出兩種最適合黑箱模型使用的場合。

場合5:為了將一些複雜且重複的任務轉換為自動化,但不存在明確規則且非傳統勞力密集工作 / To automate very complex tasks that were repetitive but not formulaic and traditionally labor-intensive

現在有許多是白箱模型做不到,而深度學習卻已經是不可或缺的任務,特別是分析非結構的資料,像是圖片、影片、聲音以及文字(譯註:可參考非結構化資料分析:文本分類)。

在圖像處理領域中要處理的問題非常廣泛,包含臉部與物件的識別、自動產生字幕、為黑白圖片上色、以及將醫學診斷照片等等。以往這些複雜的任務都是交由經過專業訓練、擁有高超技術的人類來完成。將這些人類產生的歷史資料作為訓練樣本提供給深度學習模型後,它現在能夠產生比人為更穩定且正確的結果。圖像探勘最顯著的應用就是自動駕駛汽車(autonomous vehicles)。自動駕駛汽車必須在大量且多變的複雜情境下決定各種決策。所幸的是,為了要產生合用的模型,我們可以在安全的模擬環境中蒐集大量的資料。

這些應用的特徵在於,雖然人們難以理解黑箱模型的確切運作方式,有些經驗的人們依然可以知道黑箱模型產生的決策是否正確。舉個例來說,人們也許很難理解深度學習網路到底是怎麼區別貓跟狗的照片,但人們只要看看模型分辨照片的結果,很快就能知道模型到底判斷的是正確還是錯誤。

場合6:黑箱模型的效能大幅超越白箱模型的時候 / When black box models give proven significant performance improvement over white box models

我得承認到處都有這種情況。也許這反映了許多人不斷將深度學習用在各種已經研究過的議題上,即使那些議題已經用上了白箱模型、或甚至是基於科學的第一原理。這些例子像是股票交易、天氣預測、偵測數位詐欺(cyber-threat detection)、基因學。在這些應用中,黑箱模型的效能跟正確率幾乎都能顯著地超越白箱模型。

短期看來,這種做法挺吸引人的。不過我相信就長期來看,黑箱模型將會面臨更嚴峻的問題。如果黑箱模型產生了超乎想象的錯誤,那會發生什麼事情?有誰能夠理解、解釋或修正黑箱模型?如果公司自己佈署黑箱模型、擁有黑箱模型、並能夠控管錯誤預測到來的影響的話,那可能會比較容易管理。例如基金公司能使用自己的黑箱模型來預測投資組合。也許,除了注重效能之外,未來應該著重於讓黑箱模型擁有更多「灰箱」的特性,以克服黑箱模型完全無法解讀與掌控的缺點。


結語 / Conclusion

希望這篇文章能讓你在選擇黑箱模型或白箱模型時有些參考,而參考依據可以來自於應用場合,而非數學公式。這個問題不僅是涉及機器學習技術與應用,還牽涉到商業甚至是人類心理運作時,我得說這個問題相當的複雜。這一篇文章難以解答這個重要問題的全貌,所以我相當樂意接受大家提供你個人的想法!


這篇討論白箱與黑箱的文章翻譯到到此為止了。作者Ranade比較偏向白箱,而作為研究者來說,我個人也比較偏好白箱模型所能帶給我們的可解釋性。你對於黑箱模型與白箱模型的看法又是如何呢?歡迎在下面留言處與我分享你的看法。如果你覺得我這篇寫的不錯的話,請在AddThis分享工具按讚、將這篇分享到Facebook等社群媒體吧!感謝你的耐心閱讀,讓我們下一篇見。