返回文章列表

人工智慧系統可解釋性需求與技術

本文探討人工智慧系統中模型可解釋性(XAI)的需求與技術,比較經典模型與AI模型訓練的差異,並深入剖析模型可解釋性與可理解性的重要性。同時,文章也介紹了實作XAI的各種方法、模型相容性以及評估XAI的步驟,並以程式碼範例和圖表說明簡化神經網路模型的理解。

機器學習 人工智慧

隨著人工智慧應用日益普及,模型的決策過程透明化也越發重要。尤其在醫療診斷、自動駕駛等高風險領域,可解釋性人工智慧(XAI)更扮演著關鍵角色。不同於傳統根據規則的專家系統,現代機器學習和深度學習模型的複雜性使其難以被理解,導致使用者難以信任模型的預測結果。因此,如何兼顧模型效能和可解釋性成為當前AI發展的重要挑戰。深度學習模型雖然在影像識別、自然語言處理等領域取得了顯著成果,但其黑箱特性也限制了其應用範圍。透過XAI技術,我們可以逐步揭開深度學習模型的神秘面紗,讓使用者理解模型的決策邏輯,進而提升模型的可靠性和應用價值。

人工智慧系統與可解釋性需求

人工智慧(Artificial Intelligence, AI)是一種利用電腦程式設計的系統,能夠針對特定問題進行智慧推斷。在推斷過程中,可能會使用機器學習(Machine Learning, ML)演算法或深度學習(Deep Learning, DL)演算法。機器學習演算法是簡單的數學函式,透過輸入和輸出資料的組合進行最佳化。這些函式可以用來預測未知輸出的新輸入。然而,當資料維度和數量增加時,例如影像資料、音訊資料、文字和影片資料,機器學習模型的效果會變差,因此需要使用深度學習模型。

專家系統與人工智慧系統建構

專家系統被設計為根據規則的系統,有助於獲得推斷結果。當沒有足夠的訓練資料來訓練機器學習模型或深度學習模型時,就需要使用專家系統。整體而言,人工智慧系統的建構需要結合專家系統、機器學習演算法和深度學習演算法來產生推斷結果。

機器學習的定義與分類別

機器學習可以定義為一種系統,演算法從先前定義的任務範例中學習,並且隨著向系統提供越來越多的資料,學習表現會增加。任務可以定義為監督式(輸出/結果事先已知)、無監督式(輸出/結果事先未知)和強化式(動作/結果總是由回饋層驅動,回饋可以是獎勵或懲罰)。就學習演算法而言,可以分為線性演算法、確定性演算法、加法和乘法演算法、根據樹的演算法、整合演算法和根據圖的演算法。效能標準可以根據演算法的選擇來定義。解釋AI模型的決策稱為可解釋的人工智慧(Explainable AI, XAI)。

對XAI的需求

讓我們來看看將AI模型稱為黑箱模型的原因。圖1-2解釋了經典的建模場景,其中一組獨立變數透過預先確定的函式傳遞,以產生輸出。產生的輸出與真實輸出進行比較,以評估函式是否適合資料。如果函式不適合,則必須轉換資料或考慮使用其他函式,以便它可以適合資料,但實驗是非常手動的,每次資料重新整理時,都需要統計學家或建模者重新校準模型,並再次檢視資料是否適合模型。這就是為什麼經典的預測模型生成方法對於推理處理有人類依賴性,並且總是受到多種解釋的影響。

圖1-2:經典模型訓練系統

在AI世界中,公式化的解釋正在改變。圖1-3顯示了使用輸入探索最佳可能函式的結構,這些函式產生輸出。在這種結構中,學習透過多次迭代進行,並使用交叉驗證方法來識別最佳模型。AI模型的挑戰在於可解釋性和可理解性,因為許多演算法都很複雜,因此很難向每個人解釋預測結果。

圖1-3:AI模型訓練過程

隨著電腦程式和演算法的進步,開發人員很難搜尋不同型別的函式,例如線性和非線性,並且對這些函式的評估也變得非常困難。機器學習或深度學習模型負責搜尋適合訓練資料的最佳函式。圖1-3解釋了機器如何識別最終模型,不僅在準確性方面,而且在穩定性和可靠性方面都表現更好。當輸入和輸出之間的函式關係清晰定義時,歧義較少,預測結果是透明的。然而,當我們的AI模型選擇複雜的函式關係時,作為終端使用者很難理解。因此,AI模型被認為是黑箱。在本文中,我們希望使黑箱模型具有可解釋性,以便AI解決方案變得越來越可佈署和可適應。

AI模型的透明度與無偏見需求

日常執行AI模型進行決策需要透明度、無偏見和倫理。目前,在許多場景中缺乏可解釋性:

  • 當有人申請信用卡時,AI模型拒絕了信用卡申請。傳達申請被拒絕的原因以及申請人可以採取哪些糾正措施來改善他們的行為是非常重要的。

內容解密:

本段落主要闡述了人工智慧系統、可解釋性需求以及對AI模型的透明度與無偏見需求。文中提到了機器學習和深度學習的重要性,以及經典模型訓練系統與AI模型訓練過程之間的差異。同時,也強調了AI模型的透明度和無偏見對於決策的重要性。

內容解密:

本章節主要介紹了人工智慧系統的基本概念和可解釋性需求。文中強調了機器學習和深度學習的重要性,以及對AI模型的透明度和無偏見需求。同時,也提到了可解釋的人工智慧(XAI)的概念,並闡述了其重要性。

圖表說明

此圖示(圖1-2)展示了經典模型訓練系統,其中一組獨立變數透過預先確定的函式傳遞,以產生輸出。 此圖示(圖1-3)展示了AI模型訓練過程,使用輸入探索最佳可能函式的結構,這些函式產生輸出。

內容解密:

本段落主要對圖表進行了解說,分別對圖1-2和圖1-3進行了詳細的描述。圖1-2展示了經典模型訓練系統,而圖1-3則展示了AI模型訓練過程。兩幅圖表都對於理解文中提到的概念具有重要意義。

模型可解釋性與可理解性的重要性

在諸多人工智慧(AI)應用場景中,模型的輸出結果需要伴隨著合理的解釋,以增強使用者對AI預測結果的信任度。例如,在根據生活方式和生命徵象引數進行的醫療診斷中,AI模型不僅需要預測一個人是否會患上糖尿病,還需要闡明其預測的依據和潛在的風險因素。同樣地,自動駕駛車輛在識別道路上的物體並做出決策時,也需要提供清晰的決策解釋。

模型可解釋性與效能之間的權衡

在許多使用案例中,支援模型輸出的解釋至關重要。由於人類傾向於不採用無法解釋或理解的事物,這降低了他們對AI模型預測結果的信任度。使用AI模型旨在消除人類決策中的偏見,然而,如果結果不合理、合法且不透明,則決策將是危險的。另一方面,有人可能會質疑,如果我們無法解釋和理解AI模型的決策,那麼為什麼還要使用它們?其原因在於模型的準確性和效能。模型的效能與可解釋性之間始終存在著權衡。圖1-4闡述了兩者之間的這種權衡關係。

圖示:模型可解釋性與效能之間的權衡

此圖示顯示了模型的效能(或準確度)與其可解釋性之間的關係。規則基礎系統位於效能不是最佳但可解釋性較好的位置。相比之下,根據深度學習的模型提供了卓越的效能和良好的準確度,但代價是較低的可解釋性。

可解釋性與可理解性的區別

模型的可理解性和可解釋性之間存在差異。可理解性關注的是預測結果的意義,而可解釋性則關注的是模型為什麼做出某種預測,以及為什麼有人應該信任該模型。為了更好地理解這種區別,讓我們考慮一個銷售預測的真實案例,其中有助於預測的因素包括廣告費用、產品品質、廣告來源、廣告大小等。每個因素在迴歸建模後都有一個係數。這些係數可以被解釋為由於某個因素(如廣告費用)的變化而導致的銷售額的增量變化。然而,如果預測下個月的銷售額將達到$20,000,而歷史平均月銷售額卻小於或等於$15,000,那麼這就需要一個解釋。

模型可解釋性的必要性

作為模型可解釋性的一部分,我們需要確保以下幾點:

  • 模型的可理解性確保了決策過程的自然性和預測結果的無偏性。
  • 區分虛假因果關係和真實因果關係,有助於使預測結果更加透明。
  • 在不影響學習體驗和迭代的高效能的前提下,生成可解釋的模型。
  • 使決策者能夠信任AI模型。

可解釋性人工智慧(XAI)的目標與應用

XAI的目標是實作以下幾點:

  • 信任:預測準確度是資料品質、真實因果關係和適當演算法選擇的明確函式。然而,模型可能會在預測過程中產生假陽性。如果模型產生了很多假陽性,那麼終端使用者將失去對模型的信任。因此,向終端使用者傳達對模型的信心非常重要。
  • 關聯:機器學習或深度學習模型根據各種特徵之間的關聯進行預測。這些關聯可能是相關性或簡單的關聯。未經說明的相關性是虛假相關性,使模型難以被解釋。因此,捕捉真實的相關性非常重要。
  • 可靠性:對模型的信心、模型的穩定性和模型的魯棒性也非常重要。這是為了提高AI模型的信賴度,並確保終端使用者對模型的預測結果有足夠的信心。如果沒有這些,那麼沒有使用者會信任這些模型。

XAI的終端使用者包括信貸官員、資料科學家、高階經理、業務主管、客戶支援執行人員以及內部稽核員和監管機構等。他們都需要理解AI模型的決策過程,以提高對AI模型的信任度和接受度。

內容解密:

本章節闡述了模型可解釋性和可理解性的重要性,以及它們在不同應用場景中的作用。同時,也討論了模型的效能與可解釋性之間的權衡關係,並介紹了XAI的目標和應用。接下來,我們將探討XAI的具體方法和技術,以實作更透明、更可靠的AI系統。

模型可解釋性與可理解性的重要性

在人工智慧(AI)和機器學習(ML)領域,模型的可解釋性(Explainability)與可理解性(Interpretability)正變得越來越重要。隨著複雜模型(如深度學習模型)的廣泛應用,理解模型的決策過程成為了開發者和使用者共同關注的問題。一個具有高度可解釋性的模型能夠提供清晰的決策依據,從而增強使用者對模型的信任,並促進模型的改進與最佳化。

為什麼需要可解釋性?

在現實應用中,機器學習模型往往面臨以下挑戰:

  • 公平性(Fairness):模型應該避免根據種族、性別、宗教或社會階層等因素進行歧視。
  • 身份保護(Identity):模型應當保護個人隱私,避免洩露敏感資訊。

為了應對這些挑戰,開發者需要採用具有可解釋性的模型,以確保其輸出是透明且可靠的。

可解釋性的型別

機器學習的可解釋性可以分為多種型別,主要包括:

  • 內在可解釋性(Intrinsic Explanation):簡單模型(如線性迴歸和決策樹)本身具備可解釋性,無需額外的分析。
  • 事後可解釋性(Post-hoc Explanation):複雜模型(如非線性模型和整合模型)需要額外的工具或方法來進行解釋。
  • 模型特定解釋(Model Specific):某些解釋方法僅適用於特定型別的模型,例如線性迴歸模型的係數可以用來衡量特徵的重要性。
  • 模型無關解釋(Model Agnostic):這類別解釋方法不依賴於特定的模型型別,可以廣泛應用於各種機器學習模型。

此外,可解釋性還可以根據其範圍進一步分類別:

  • 區域性解釋(Local Interpretation):關注單個預測結果的解釋,例如,為什麼某個借款人被預測為可能違約。
  • 全域性解釋(Global Interpretation):提供對整個模型行為的理解,涵蓋所有資料點。
  • 次區域性解釋(Sublocal Interpretation):關注一組資料點的區域性解釋,而不是所有資料點。

視覺化與文字解釋

除了上述分類別外,可解釋性還可以透過不同的形式呈現,例如:

  • 文字解釋(Textual Explanations):結合數字和語言來傳達模型的預測結果。
  • 視覺化解釋(Visual Explanations):透過圖表來展示模型的決策過程,但有時需要結合文字進行進一步說明。

支援模型可解釋性的工具

有多種開源工具和框架可用於提高機器學習模型的可解釋性,包括:

SHAP

SHAP(SHapley Additive exPlanations)是一種根據博弈論的統一解釋框架,用於解析機器學習模型的輸出。SHAP能夠計算每個特徵對預測結果的貢獻度,從而幫助理解模型的決策過程。

!pip install shap

LIME

LIME(Local Interpretable Model-agnostic Explanations)是一種區域性可解釋的模型無關解釋方法。它透過在區域性擬合簡單模型來近似複雜模型的行為,從而提供對單個預測結果的直觀理解。

!pip install lime

ELI5

ELI5是一個用於除錯和視覺化機器學習模型的Python函式庫。它支援多種機器學習框架,並提供統一的API來進行模型解釋。

!pip install eli5

Skater

Skater是一個開源的統一框架,用於支援各種形式的模型可解釋性。它提供了全域性和區域性的模型解釋方法,有助於開發者構建更具可理解性的機器學習系統。

結語

隨著機器學習和深度學習技術的不斷發展,模型的可解釋性正變得越來越重要。透過採用適當的工具和方法,開發者可以提高模型的透明度和可靠性,從而增強使用者對AI系統的信任。未來,我們將繼續探索更多關於模型可解釋性的實踐案例和技術,以推動AI技術的健康發展。

可解釋人工智慧(XAI)的方法與模型相容性

在機器學習(ML)領域中,模型的解釋性與可理解性是至關重要的。為了達到這一目標,研究人員開發了多種工具和框架來幫助解釋模型的決策過程。本章將介紹幾種流行的XAI函式庫、XAI的方法,以及不同型別的ML模型與XAI的相容性。

XAI的Python函式庫

有多個根據Python的開源函式庫可用於實作XAI,包括Skater和Skope-rules。這些函式庫提供了模型解釋和除錯的功能,使得人類能夠更好地理解模型的決策過程。

Skater

Skater是一個用於模型解釋和除錯的函式庫。它透過提供推斷和除錯模型決策策略的功能,實作了「人在迴路中」(human-in-the-loop)的理念。要安裝Skater函式庫,可以使用以下命令:

!pip install skater

Skope-rules

Skope-rules旨在學習邏輯、可解釋的規則,用於「範圍界定」目標類別(即高精確度地檢測該類別的例項)。Skope-rules是決策樹的可解釋性和隨機森林的建模能力之間的折衷。

XAI的方法

XAI的方法可以分為三類別:文字解釋、視覺解釋和範例解釋。

文字解釋

文字解釋需要闡述數學公式、模型引數結果或模型定義的指標的含義。解釋可以根據預先定義的範本設計,只需填充引數即可。有兩種不同的方法可以實作這一點:使用自然語言生成(NLG)方法和總結生成。

視覺解釋

視覺解釋可以使用自定義圖表來呈現。根據樹的圖表對於終端使用者來說很容易理解和自我解釋。每個根據樹的方法都有一套規則支撐。如果這些規則可以以簡單的if/else陳述式的形式展示給使用者,將會更加強大。

範例解釋

範例解釋確保我們可以使用常見的日常範例來解釋模型,透過繪製相似之處。此外,常見的商業場景也可以用來解釋模型。

XAI相容的模型

不同的ML模型具有不同的內在可解釋性。有些模型天生具有可解釋性,而有些則需要額外的框架來使其具有可解釋性。

線性模型

線性迴歸模型或邏輯迴歸模型很容易透過分析其係數值來解釋。然而,如果擴充套件到正則化迴歸家族,則變得非常難以解釋。

時間序列預測模型

時間序列預測模型也是非常簡單的模型,可以透過引數化方法輕鬆解釋。

根據樹的模型

根據樹的模型更容易分析和直觀地理解。然而,這些模型通常不能提供更好的準確性和效能。它們也缺乏穩健性,並且存在偏差和過擬合的問題。

根據整合的模型

根據整合的模型有三種型別:bagging、boosting和stacking。這三種型別都缺乏可解釋性。需要簡化的描述來傳達模型的結果。特徵重要性也需要簡化。

數學模型

根據向量數學的支援向量機用於迴歸任務和分類別任務。這些模型很難解釋,因此需要模型簡化。

負責人工智慧與可解釋性人工智慧(XAI)的交匯點

在眾多軟體應用、數位解決方案和產品中,負責任的人工智慧(Responsible AI)框架確保了可解釋性(Explainability)、透明度(Transparency)、倫理(Ethics)和問責制(Accountability)。人工智慧的發展正在各個領域創造多種機會,因此人工智慧需要具備責任感,並且其決策應該是可解釋的。

負責人工智慧的七大核心支柱

負責任的人工智慧的七大核心支柱是可解釋性的重要組成部分(圖 1-11)。讓我們來逐一檢視這些支柱:

  • 公平性(Fairness):人工智慧系統產生的預測不應導致對個人根據種姓、信仰、宗教、性別、政治歸屬、民族等方面的歧視,因此需要更高程度的公平性。
  • 倫理(Ethics):在構建智慧系統的過程中,我們不應忘記在使用資料收集情報時的倫理問題。
  • 透明度(Transparency):模型預測及其生成方式應該是透明的。
  • 隱私(Privacy):在開發人工智慧系統時,應保護個人化資料(PII,個人可識別資訊)。
  • 安全(Security):智慧系統應該是安全的。
  • 問責制(Accountability):如果模型預測錯誤,人工智慧模型應該能夠承擔責任並修正問題。
  • 安全性(Safety):當人工智慧模型對自動駕駛汽車的導航、機器人牙科手術和資料驅動的醫療診斷做出決策時,任何錯誤的預測都可能導致危險的後果。

許多組織正在制定使用人工智慧的和標準,以避免未來人工智慧可能帶來的負面影響。以組織A為例,它使用人工智慧預測銷售量。人工智慧預測銷售量將比平均值高出30%,因此企業備貨並動員人力支援銷售。但如果實際銷售量與歷史平均銷售量相當,那麼備貨和人力調動就變得毫無意義。在這種情況下,人工智慧的預測是錯誤的。如果有模型可解釋性,這種情況本可以被分析並且可能修正模型。

可解釋性人工智慧(XAI)的評估

目前尚無評估不同Python函式庫產生的解釋的通用標準。XAI過程在評估解釋時應遵循以下步驟:

  • 每個層級應有單獨的解釋:如果我們有一個因資料量過大而無法用於模型訓練的資料集,通常會進行抽樣。如果採用分層抽樣方法,那麼每個層級都應該有單獨的解釋。
  • 時間限制:我們知道現實生活中的資料集通常非常龐大。即使用分散式計算框架,XAI函式庫產生的解釋通常也不應花費太多時間。
  • 例項不變性:如果資料點根據其屬性是相同的,它們應該屬於同一群組,因此它們應該傳達相似的解釋。

在許多人工智慧專案和計劃中,當我們進行預測時,常常會有人問為什麼會信任我們的模型。在預測分析、機器學習或深度學習中,預測結果與預測原因之間存在著權衡。如果預測符合人類的預期,那麼就沒問題。如果它超出了人類的預期,那麼我們就需要知道為什麼模型會做出這樣的決定。在客戶定位、數位行銷或內容推薦等低風險場景中,預測和預期之間的偏差是可接受的。然而,在臨床試驗或藥物測試框架等高風險環境中,預測和預期之間的微小偏差都會產生很大的影響,並且會引發許多關於模型為什麼做出這種預測的問題。作為人類,我們認為自己優於一切。我們有好奇心,想知道模型是如何得出預測結果的,以及為什麼不是這樣。

常見深度學習模型的複雜性與可解釋性挑戰

深度學習模型,如深度神經網路(DNN)、卷積神經網路(CNN)和遞迴神經網路(RNN),由於其複雜性和多層架構,常常被視為「黑箱」模型。它們具有多種調節引數,如權重、正規化型別、正規化強度、不同層的啟用函式型別、模型中使用的損失函式型別,以及最佳化演算法,包括學習率和動量引數等。這些模型的複雜性使得它們難以被理解和解釋,從而引發了對其決策過程的可解釋性的需求。

深度神經網路(DNN)

深度神經網路模型通常具有超過三個隱藏層,以符合深度的定義。除了深度學習模型的層次結構外,還有各種模型調節引數,如權重、正規化型別、正規化強度、不同層的啟用函式型別、模型中使用的損失函式型別,以及最佳化演算法,包括學習率和動量引數等。這種複雜性需要簡化的框架來進行解釋。

卷積神經網路(CNN)

卷積神經網路是另一種型別的神經網路模型,通常應用於物體檢測和影像分類別相關任務。它被認為是一個完全的黑箱模型。CNN包含卷積層、最大/平均池化層等。如果有人問為什麼模型將貓預測為狗,我們能否解釋出了什麼問題?目前,答案是無法完全解釋。需要大量的工作來向終端使用者解釋這個模型。

遞迴神經網路(RNN)

根據遞迴神經網路的模型通常適用於文字分類別和文字預測任務。它們有許多變體,如長短期記憶網路(LSTM)和雙向LSTM,這些變體非常複雜,難以解釋。人們不斷需要更好的框架和方法來解釋這些模型。

根據規則的模型

根據規則的模型非常簡單,因為我們只需要使用if/else條件就能建立這些模型。

程式碼範例與解說

# 定義一個簡單的神經網路模型
import torch
import torch.nn as nn

class SimpleNN(nn.Module):
    def __init__(self):
        super(SimpleNN, self).__init__()
        self.fc1 = nn.Linear(784, 128)  # 輸入層到隱藏層
        self.fc2 = nn.Linear(128, 10)   # 隱藏層到輸出層

    def forward(self, x):
        x = torch.relu(self.fc1(x))      # 在隱藏層使用ReLU啟用函式
        x = self.fc2(x)
        return x

# 初始化模型
model = SimpleNN()

#### 內容解密:
  1. 程式碼首先匯入了必要的PyTorch函式庫,用於構建神經網路。
  2. 定義了一個名為SimpleNN的類別,繼承自nn.Module,這是PyTorch中構建神經網路的基本類別。
  3. __init__方法中,定義了兩個全連線層(fc1fc2)。fc1將輸入維度從784降至128,模擬從輸入層到隱藏層的轉換;fc2將隱藏層的輸出維度從128降至10,代表10個可能的分類別結果。
  4. forward方法定義了資料透過網路的前向傳播路徑。首先,將輸入x透過fc1層,並應用ReLU啟用函式引入非線性;然後,將結果傳遞給fc2層,生成最終輸出。
  5. 最後,建立了SimpleNN的一個例項,即model,準備用於進一步的操作,如訓練或推斷。

圖表範例與解說

@startuml
skinparam backgroundColor #FEFEFE
skinparam componentStyle rectangle

title 人工智慧系統可解釋性需求與技術

package "機器學習流程" {
    package "資料處理" {
        component [資料收集] as collect
        component [資料清洗] as clean
        component [特徵工程] as feature
    }

    package "模型訓練" {
        component [模型選擇] as select
        component [超參數調優] as tune
        component [交叉驗證] as cv
    }

    package "評估部署" {
        component [模型評估] as eval
        component [模型部署] as deploy
        component [監控維護] as monitor
    }
}

collect --> clean : 原始資料
clean --> feature : 乾淨資料
feature --> select : 特徵向量
select --> tune : 基礎模型
tune --> cv : 最佳參數
cv --> eval : 訓練模型
eval --> deploy : 驗證模型
deploy --> monitor : 生產模型

note right of feature
  特徵工程包含:
  - 特徵選擇
  - 特徵轉換
  - 降維處理
end note

note right of eval
  評估指標:
  - 準確率/召回率
  - F1 Score
  - AUC-ROC
end note

@enduml

此圖示展示了一個簡單的神經網路結構,包括輸入層、隱藏層和輸出層,以及在隱藏層中應用的啟用函式。

內容解密:

  1. 圖表使用Plantuml語法繪製了一個簡單的神經網路結構圖。
  2. 圖中節點A代表輸入層,節點B代表隱藏層,節點C代表輸出層。
  3. 箭頭表示資料流動的方向,從輸入層到隱藏層,再到輸出層。
  4. 節點D代表啟用函式,它被應用於隱藏層,以引入非線性特性,提升模型的表達能力。