可解釋性AI是打開AI黑盒的解釋性技術的實踐指南。本實用指南將前沿研究簡化為透明和可解釋的AI,提供實用的方法,您可以輕松地用Python和開源庫實現。從所有主要的機器學習方法的例子,這本書演示了為什么AI的一些方法是如此的不透明,教你識別你的模型已經學習的模式,并提出了建立公平和公正的模型的最佳實踐。當你完成這一任務時,你將能夠提高你的AI在訓練中的表現,并構建魯棒系統來抵消偏差、數據泄漏和概念漂移帶來的錯誤。
//www.manning.com/books/interpretable-ai
隨著圖像識別、自然語言理解和桌面游戲等領域的突破,人工智能和機器學習正在徹底改變醫療、制造、零售和金融等各個行業。隨著復雜的機器學習模型被部署到生產中,理解它們變得非常重要。缺乏深刻的理解會導致模型傳播偏見,我們在刑事司法、政治、零售、面部識別和語言理解中都見過這樣的例子。所有這些都對信任產生不利影響,從我的經驗來看,這是企業抵制在整個企業部署人工智能的主要原因之一。解釋人工智能是研究和行業的一個熱門話題,因為現代機器學習算法是黑盒,沒有人真正了解它們是如何工作的。此外,在GDPR的“解釋權”下,歐盟現在有解釋人工智能的規定。因此,對于人工智能從業者來說,可解釋性人工智能是一個非常重要的話題。有一些資源可以與這個活躍的研究領域保持同步,如調研論文、博客文章和一些書籍,但沒有一個單一的資源涵蓋所有對實踐者有價值的重要技術。也沒有關于如何實現這些尖端技術的實用指南。本書旨在通過提供對可解釋性技術的簡化解釋,以及如何在Python中使用開放的公共數據集和庫實現這些技術的實用指南,來填補這一空白。本書將展示代碼片段,并分享源代碼,以便您跟隨和再現書中的圖形和視覺效果。這本書旨在為您提供實現和部署最先進的可解釋性技術的實用技巧。具備概率論、統計學、線性代數、機器學習和Python的基本知識。
Python Book為任何與數據打交道但沒有編程經驗的人提供了學習Python的基本入門指南。作者是一位經驗豐富的數據科學家和Python程序員,他向讀者展示了如何使用Python進行數據分析、探索、清理和討論。讀者將了解Python語言中哪些內容對數據分析很重要,以及為什么重要。
Python Book為讀者提供了全面全面的Python介紹,它既簡單到對初學者來說是理想的,又深刻到對那些更有經驗的人來說是有用的。這本書幫助初出乍到的程序員在閱讀過程中逐漸提高他們的技能,并始終理解他們所涉及的內容以及為什么它是有用的。Python被谷歌、Facebook、Instagram、Spotify等大公司使用,在未來的幾年里,它將繼續成為編程領域的中心。
包含了Python編程主題的深入討論,如變量,等式和比較,元組和字典數據類型,while和for循環,以及if語句,讀者還將學習:
完美的統計學家,計算機科學家,軟件程序員,和從業人員在私營行業和醫學,Python書也將對任何上述領域的學生感興趣。因為它假設沒有編程經驗或知識,所以這本書非常適合那些使用數據工作并希望學習使用Python來增強他們工作的人。
自然語言處理實戰教你如何創建實用的NLP應用,而不陷入復雜的語言理論和深度學習的數學。在這本引人入勝的書中,您將探索構建大量強大的NLP應用所需的核心工具和技術,包括聊天機器人、語言檢測器和文本分類器。
真實世界的自然語言處理不是典型的自然語言處理教科書。我們專注于構建真實世界的NLP應用。這里真實世界的意義有兩個方面:首先,我們關注構建真實世界的NLP應用需要什么。作為讀者,您不僅將學習如何訓練NLP模型,還將學習如何設計、開發、部署和監控它們。在此過程中,您還將學習現代NLP模型的基本構建模塊,以及對構建NLP應用有用的NLP領域的最新開發。其次,與大多數介紹性書籍不同,我們采用自上而下的教學方法。我們不采用自下而上的方法,一頁頁地展示神經網絡理論和數學公式,而是專注于快速構建“正常工作”的NLP應用程序。然后我們深入研究組成NLP應用的各個概念和模型。您還將學習如何使用這些基本構建塊構建端到端定制NLP應用,以滿足您的需求。
這本書由三個部分組成,共11章。第1部分介紹了NLP的基礎知識,其中我們學習了如何使用AllenNLP 快速構建一個NLP應用,以完成情感分析和序列標記等基本任務。
第1章首先介紹了NLP的“什么”和“為什么”——什么是NLP,什么不是NLP,如何使用NLP技術,以及NLP如何與人工智能的其他領域相關聯。
第2章演示了如何構建第一個NLP應用程序,一個情感分析器,并介紹了現代NLP模型的基礎知識——單詞嵌入和遞歸神經網絡(RNN)。
第3章介紹了自然語言處理應用的兩個重要組成部分,單詞和句子的嵌入,并演示了如何使用和訓練它們。
第4章討論了最簡單但最重要的NLP任務之一,句子分類,以及如何在這個任務中使用RNN。
第5章介紹了序列標注任務,如詞性標注和命名實體提取。它還涉及到一個相關的技術,語言建模。
第2部分介紹高級NLP主題,包括序列到序列模型、Transformer以及如何利用遷移學習和預先訓練過的語言模型來構建強大的NLP應用。
第6章介紹了序列到序列的模型,它將一個序列轉換為另一個序列。我們在一個小時內構建了一個簡單的機器翻譯系統和一個聊天機器人。
第7章討論了另一種流行的神經網絡結構,卷積神經網絡(CNN)。
第8章深入介紹了Transformer,它是當今最重要NLP模型之一。我們將演示如何使用Transformer構建改進的機器翻譯系統和拼寫檢查器。
第9章在前一章的基礎上,討論了遷移學習,這是現代NLP中的一種流行的技術,使用預先訓練過的語言模型,如BERT。
第3部分將討論與開發NLP應用程序相關的主題,這些應用程序對真實數據具有健壯性,并部署和服務它們。
第10章詳細介紹了開發NLP應用程序時的最佳實踐,包括批處理和填充、正則化和超參數優化。
第11章總結了如何部署和服務NLP模型。它還涵蓋了如何解釋和解釋ML模型。
隨著新代碼、新項目和新章節的推出,第二版為讀者提供了一個堅實的機器學習基礎,并為讀者提供了一個完整的學習概念。由NASA噴氣推進實驗室副首席技術官和首席數據科學家Chris Mattmann編寫,所有的例子都伴隨著可下載的Jupyter筆記本,以親身體驗用Python編寫TensorFlow。新的和修訂的內容擴大了核心機器學習算法的覆蓋面,以及神經網絡的進步,如VGG-Face人臉識別分類器和深度語音分類器。
//www.manning.com/books/machine-learning-with-tensorflow-second-edition
使用TensorFlow的機器學習,第二版是使用Python和TensorFlow構建機器學習模型的完全指南。您將把核心ML概念應用于現實世界的挑戰,如情感分析、文本分類和圖像識別。實例演示了用于深度語音處理、面部識別和CIFAR-10自動編碼的神經網絡技術。
摘要: 機器學習(ML)中的可解釋性對于高風險決策和故障排除是至關重要的。在這項工作中,我們提供了可解釋性ML的基本原則,并消除了淡化這一關鍵話題的重要性的常見誤解。我們還確定了可解釋機器學習的10個技術挑戰領域,并提供了每個問題的歷史和背景。這些問題中有些是典型的重要問題,有些是最近幾年才出現的問題。這些問題包括: (1)優化決策樹等稀疏邏輯模型; (2)評分系統優化; (3)在廣義加性模型中放置約束,以促進稀疏性和更好的可解釋性; (4)現代案例推理,包括神經網絡和匹配因果推理; (5)神經網絡的完全監督解纏; (6)神經網絡的完全或部分無監督解纏; (7)數據可視化降維; (8)能夠結合物理和其他生成或因果約束的機器學習模型; (9)良好模型的“羅生門集”的刻畫; (10)可解釋強化學習。該綜述適合作為對可解釋機器學習感興趣的統計學家和計算機科學家的起點。
引言
隨著機器學習(ML)的廣泛應用,可解釋性在避免災難性后果方面的重要性變得越來越明顯。黑箱預測模型的定義是不可思議的,它已經導致嚴重的社會問題,深刻影響健康、自由、種族偏見和安全。可解釋預測模型受到限制,因此其推理過程更容易被人類理解,也更容易進行故障排除和在實踐中使用。人們普遍認為,可解釋性是AI模型信任的關鍵因素(Wagstaff, 2012; Rudin and Wagstaff, 2014; Lo Piano, 2020; Ashoori and Weisz, 2019; Thiebes et al., 2020; Spiegelhalter, 2020; Brundage et al., 2020)。在這項綜述中,我們提供了基本原理,以及內在可解釋機器學習模型設計中的10個技術挑戰。
讓我們提供一些背景資料。黑盒機器學習模型是一個公式,它要么太復雜,任何人都無法理解,要么是專有的,以至于人們無法理解其內部工作原理。黑盒模型很難排除故障,這對于醫療數據來說尤其成問題。黑箱模型通常會在錯誤的原因下預測正確的答案(“聰明的漢斯”現象),導致在訓練中表現優異,但在實踐中表現不佳(Schramowski et al., 2020; Lapuschkin et al., 2019; O’Connor, 2021; Zech et al., 2018; Badgeley et al., 2019; Hamamoto et al., 2020)。黑盒模型還有許多其他問題。在刑事司法方面,個人可能會因為黑箱模型輸入的印刷錯誤而遭受多年的額外監禁(Wexler, 2017),而設計不佳的空氣質量專有模型在野火期間對公共安全造成了嚴重后果(McGough, 2018);這兩種情況都很容易用可解釋模型來避免。在數據的底層分布發生變化的情況下(稱為域轉移,這在實踐中經常發生),如果用戶不能實時地對模型進行故障排除,那么問題就會出現,而黑盒模型比可解釋模型要困難得多。要確定一個黑箱模型在性別或種族群體方面是否公平,要比確定一個可解釋的模型是否存在這種偏見要困難得多。在醫學領域,黑盒模型將計算機輔助決策轉化為自動決策,正是因為醫生無法理解黑盒模型的推理過程。解釋黑盒,而不是用可解釋的模型替代它們,可能會通過提供誤導性或錯誤的描述使問題變得更糟(Rudin, 2019; Laugel et al., 2019; Lakkaraju and Bastani, 2020),或者給黑匣子增加不必要的權力(Rudin and Radin, 2019)。顯然,我們需要具有內在可解釋性的創新機器學習模型。
本綜述的主要部分概述了可解釋性機器學習中一系列重要和基本的技術重大挑戰。這些挑戰既有現代的,也有古典的,有些挑戰要比其他的困難得多。它們要么很難解決,要么很難正確地表述。雖然有許多關于模型部署的社會技術挑戰(可能比技術挑戰困難得多),人機交互挑戰,以及健壯性和公平性如何與可解釋性交互,這些話題可以留到以后討論。我們從可解釋機器學習中最經典和最規范的問題開始: 如何為表格數據建立稀疏模型,包括決策樹(挑戰#1)和評分系統(挑戰#2)。然后我們研究了一個涉及加法模型的挑戰(挑戰#3),接著是另一個基于案例推理的挑戰(挑戰#4),這是可解釋人工智能中的另一個經典主題。然后我們轉向更奇特的問題,即在神經網絡中有監督和無監督的概念解纏(挑戰#5和#6)。回到經典問題,我們討論降維(挑戰#7)。然后,如何整合物理或因果約束(挑戰#8)。挑戰#9涉及到理解、探索和衡量羅生門精確預測模型集。挑戰#10 討論可解釋強化學習。表1提供了一個指南,可以幫助用戶將數據集與合適的可解釋監督學習技術相匹配。我們將在挑戰中涉及所有這些技術。
可解釋機器學習原則
原則1: 一個可解釋的機器學習模型遵循一組特定領域的約束,使其(或其預測或數據)更容易被人類理解。這些約束會根據域的不同而有很大的不同。
原則2:盡管有常見的修辭,但可解釋的模型不一定能創造或促成信任——它們也可能導致不信任。它們只是讓用戶決定是否信任它們。換句話說,他們允許信任的決定,而不是信任本身。
原則3:重要的是,不要假設一個人需要犧牲準確性來獲得可解釋性。事實上,可解釋性往往會帶來準確性,而不是相反。在機器學習中,可解釋性和準確性通常是一個錯誤的二分法。
原則4:作為整個數據科學過程的一部分,性能指標和可解釋性指標都應該被反復地改進。
原則5:對于高風險的決策,如果可能的話,應該使用可解釋的模型,而不是“解釋”的黑盒模型
在這項綜述中,我們希望為讀者提供一個途徑進入可解釋機器學習的重要主題。目前有關可解釋和可解釋AI的文獻可能會讓人非常困惑。參與這一領域研究的個體多樣性不僅包括統計學家和計算機科學家,還包括法律專家、哲學家和研究生,其中許多人從未建立或部署過機器學習模型。人們很容易低估說服別人在實踐中使用機器學習模型的難度,而可解釋性是一個關鍵因素。過去幾年的許多工作都貢獻了新的術語,錯誤地將舊的可解釋機器學習領域納入了新的領域“XAI”,而且評論論文普遍未能真正區分解釋黑箱和設計可解釋模型的基本概念。因為有誤導性的術語,標題為“可解釋性(explainability)”的論文有時是關于“可解釋性(interpretability)”,反之亦然,所以很難理解文獻(即使是我們)。至少,我們希望介紹一些基本原則,涵蓋該領域的幾個重要領域,并展示它們彼此之間的關系和與實際問題的關系。顯然,這是一個我們無法真正涵蓋的巨大領域,但我們希望我們涵蓋的不同領域和提出的問題可能對那些需要進入這個迷宮的人有用。
這本書提供了使“機器學習”系統更可解釋的最新概念和可用的技術的全面介紹。本文提出的方法幾乎可以應用于所有當前的“機器學習”模型: 線性和邏輯回歸、深度學習神經網絡、自然語言處理和圖像識別等。
機器學習(Machine Learning)的進展正在增加使用人工代理來執行以前由人類處理的關鍵任務(醫療、法律和金融等)。雖然指導這些代理設計的原則是可以理解的,但目前大多數深度學習模型對人類的理解是“不透明的”。《Python可解釋人工智能》通過從理論和實踐的角度,填補了目前關于這一新興主題的文獻空白,使讀者能夠快速使用可解釋人工智能的工具和代碼。
本書以可解釋AI (XAI)是什么以及為什么在該領域需要它為例開始,詳細介紹了根據特定背景和需要使用XAI的不同方法。然后介紹利用Python的具體示例對可解釋模型的實際操作,展示如何解釋內在的可解釋模型以及如何產生“人類可理解的”解釋。XAI的模型不可知方法可以在不依賴于“不透明”的ML模型內部的情況下產生解釋。使用計算機視覺的例子,作者然后著眼于可解釋的模型的深度學習和未來的展望方法。從實踐的角度,作者演示了如何在科學中有效地使用ML和XAI。最后一章解釋了對抗性機器學習以及如何使用對抗性例子來做XAI。
當看到這些材料時,一個明顯的問題可能會出現:“為什么還要寫一本深度學習和自然語言處理的書呢?”一些優秀的論文已經出版,涵蓋了深度學習的理論和實踐方面,以及它在語言處理中的應用。然而,從我教授自然語言處理課程的經驗來看,我認為,盡管這些書的質量非常好,但大多數都不是針對最有可能的讀者。本書的目標讀者是那些在機器學習和自然語言處理之外的領域有經驗的人,并且他們的工作至少部分地依賴于對大量數據,特別是文本數據的自動化分析。這些專家可能包括社會科學家、政治科學家、生物醫學科學家,甚至是對機器學習接觸有限的計算機科學家和計算語言學家。
現有的深度學習和自然語言處理書籍通常分為兩大陣營。第一個陣營專注于深度學習的理論基礎。這對前面提到的讀者肯定是有用的,因為在使用工具之前應該了解它的理論方面。然而,這些書傾向于假設一個典型的機器學習研究者的背景,因此,我經常看到沒有這種背景的學生很快就迷失在這樣的材料中。為了緩解這個問題,目前存在的第二種類型的書集中在機器學習從業者;也就是說,如何使用深度學習軟件,而很少關注理論方面。我認為,關注實際方面同樣是必要的,但還不夠。考慮到深度學習框架和庫已經變得相當復雜,由于理論上的誤解而濫用它們的可能性很高。這個問題在我的課程中也很常見。
因此,本書旨在為自然語言處理的深度學習搭建理論和實踐的橋梁。我涵蓋了必要的理論背景,并假設讀者有最少的機器學習背景。我的目標是讓任何上過線性代數和微積分課程的人都能跟上理論材料。為了解決實際問題,本書包含了用于討論的較簡單算法的偽代碼,以及用于較復雜體系結構的實際Python代碼。任何上過Python編程課程的人都應該能夠理解這些代碼。讀完這本書后,我希望讀者能有必要的基礎,立即開始構建真實世界的、實用的自然語言處理系統,并通過閱讀有關這些主題的研究出版物來擴展他們的知識。
//clulab.cs.arizona.edu/gentlenlp/gentlenlp-book-05172020.pdf
人工智能(AI)為改善私人和公共生活提供了很多機會,以自動化的方式在大型數據中發現模式和結構是數據科學的核心組件,目前驅動著計算生物學、法律和金融等不同領域的應用發展。然而,這種高度積極的影響也伴隨著重大的挑戰:我們如何理解這些系統所建議的決策,以便我們能夠信任它們?在這個報告中,我們特別關注數據驅動的方法——特別是機器學習(ML)和模式識別模型——以便調查和提取結果和文獻觀察。通過注意到ML模型越來越多地部署在廣泛的業務中,可以特別理解本報告的目的。然而,隨著方法的日益普及和復雜性,業務涉眾對模型的缺陷、特定數據的偏差等越來越關注。類似地,數據科學從業者通常不知道來自學術文獻的方法,或者可能很難理解不同方法之間的差異,所以最終使用行業標準,比如SHAP。在這里,我們進行了一項調查,以幫助行業從業者(以及更廣泛的數據科學家)更好地理解可解釋機器學習領域,并應用正確的工具。我們后面的章節將圍繞一位公認的數據科學家展開敘述,并討論她如何通過提出正確的問題來解釋模型。