Software bug. CC0 from Pixabay.

Test your Machine Learning Algorithm with Metamorphic Testing

Testing machine learning and AI algorithms is hard. In fact, testing scientific software in general is hard, and there has been some literature on this more general topic. As said in the introduction of Carver et al (2017)[1]: The development of scientific software differs significantly from the development of more traditional business information systems, from […]

GDPR, machine learning

GDPR and its impacts on machine learning applications

The General Data Protection Regulation (GDPR) was adopted by European Parliament in April 2016, and will be enforceable throughout EU by May 2018. Many regulations regarding algorithmic decision-making are added to this new set of law, compared to the previous Data Protection Directive (DPD) which is expected to be superseded. In what follows we give […]

explainable ai

Explainable AI 是什麼?為什麼 AI 下判斷要可以解釋?

可解釋人工智慧(Explainable AI,或縮寫為 XAI)這個研究領域所關心的是,如何讓人類瞭解人工智慧下判斷的理由。特別是近來有重大突破的深度學習技術中,模型是如何做出決定的,一直是個難以回答的問題。最近幾年,不論是 DARPA 開啟了 XAI 5 年研究計劃,或是 IJCAI 2017 舉辦了 Workshop on Explainable AI,都顯示這個問題愈來愈受到重視。 在 2016 年 AlphaGo 與李世乭對戰五番棋的過程中,AlphaGo 多次下出人類圍棋專家未曾想過的棋步。當時觀戰的樊麾曾經評論「這不是人類會下的棋步,我未曾看過人類下出這一步(It’s not a human move. I’ve never seen a human play this move.)」。我們對於 AlphaGo 的棋力可能會有出於好奇心與競賽需要的研究,不過如果人工智慧相關技術要推廣到更多的領域,例如在法院裡協助量刑、在醫療上協助診斷、在保險與金融上判斷一個投資策略的優劣,或是在社會福利政策裡主導資源的分配,我們都會更迫切需要知道模型到底怎麼得出結論的。Samek et al[1] 在研究中,歸納了幾個我們要弄懂 AI 在想什麼的原因: 確認它的判斷合理(verification of the system):在關係重大的決策中,我們需要確實知道一個決策的理由是合情合理的。如果演算法只是提供建議做為參考,我們也需要知道演算法建議的理由,才能評估它的意見是否值得參考。例如在醫療上,曾發生過預測感染肺炎機率的模型因為歷史資料的偏誤,誤認為患有氣喘與心臟疾病的人死於肺炎的機率要小於一般健康的人[2]。 改良它的算法(improvement of the system):當模型開始解釋自己如何做出判斷,我們會比較知道它有什麼缺失,如何改良它。特別是當模型與資料中存在著偏誤,缺乏解釋的話,可能很難發現這些問題。例如判斷一張圖片裡出現的是狼或是哈士奇犬時,一個不好的模型可能會因為圖片裡出現雪,就判斷圖片裡的是哈士奇犬[3]。 從它身上學習(learning from the system):當一套模型從大量的歷史資料裡粹取出真正有用的知識,例如 AlphaGo 真的找到了好的棋步,人類就可以從模型身上學到更多。但這往往需要人類弄清楚模型的答案是如何推導出來的,特別是在尋找自然規律的科學研究中。 符合法規要求(compliance […]

對抗例攻擊與防禦手法 – 運用對抗例攻擊深度學習模型(二)

這是一系列針對對抗例(adversarial example)相關研究的綜合摘要的第二篇。本系列包括: 2017–08–29 對抗例入門說明 – 運用對抗例攻擊深度學習模型(一) 2017-10-18 對抗例攻擊與防禦手法 – 運用對抗例攻擊深度學習模型(二) 針對深度學習的對抗例在 2017 年有許多進展。這次的摘要涵蓋以下內容: 現實環境中的對抗例攻擊 一個針對強化學習的防禦手法 新的攻擊與防禦手法 通用對抗例 現實環境中的對抗例攻擊 2017 年 7 月有個比較特別的討論是,運用對抗例攻擊深度學習模型在現實環境中的效果如何。 類似的問題,之前其實已經有幾份論文討論過。Kuratin et al(2016)[1]曾經將對抗例列印出來用手機相機拍攝,看看是否能影響深度學習影像辨識的結果。他們用了幾個基於 FGSM 的對抗例演算法,把產生的對抗例列印在紙上,並且在角落加上影像校正用的 QR code。用手機的相機拍攝以後,程式會利用 QR code 把影像校正裁切到與原圖一樣大小,再交給模型進行分類。實驗結果顯示雖然有一些對抗例會失效,但多數(一般來說大於 2/3)的對抗例仍然能造成誤判。他們也釋出一份 demo 影片。 在另一個測試裡,Sharif et al(2016)[2]利用 gradient descent 製造出可以給真人配戴並欺騙過人臉辨識的眼鏡框。他們著重在可以實際上運用的攻擊方式,選擇用眼鏡框是因為成功率高,而且配戴時不容易令人起疑,可以避免被認出或是假冒另一個人的身份。 最近的討論則是 Lu et al(2017)[3]針對 Kuratin et al 的實驗做了進一步的測試,認為在自動車的情境下,對抗例的效果沒有那麼好。因為 Kuratin et al 在論文中只測試了亮度、反差等等的影像變化,而且影像經過了校正與裁切,大小與原圖相同。但在自動車的使用情境,例如辨識路標時,使用的影像可能不會經過這些處理,所以 Lu et […]

GDPR, machine learning

歐盟 GDPR 生效對機器學習應用的影響

歐盟在 2016 年 4 月通過了 General Data Protection Regulation(以下簡稱 GDPR),對於運用演算法代替人類進行決策有重大的規範。這裡我們參考 Goodman et al 在 2016 年這篇論文[1]的架構,簡要說明 GDPR 中涉及演算法公平性與可解釋性的條文。 這裡要說明我們不是歐盟法規專家。這篇文章所提及的見解,僅止於總結我們目前搜集到的研究結果,並盡可能準確地轉述。我們認為人們能否信任演算法,不只是技術問題,因此我們也關注演算法的法律、社會等面向,並歡迎有更多見解的朋友們一起討論。 GDPR 概要 根據 Goodman et al,GDPR 的目的是規範個人資料的搜集、儲存與運用,補強歐盟現行的個人資料保護措施,例如被遺忘權(right to be forgotten)、外國公司搜集歐盟公民資料等等議題都在其範圍內。以下我們要特別討論 Article 22,關於「自動化個人決策」(automated individual decision making)的條文: 其中 Paragraph 4 與演算法公平性有關。 GDPR 將於 2018 年 4 日生效,取代 1995 年起生效的 Data Protection Directive(以下簡稱 DPD)。兩者有幾個重要的不同: GDPR 是 regulation,DPD 是 directive。Directive […]

adversarial example

Recent developments in Adversarial Example, Part I

As of mid-2017 there are already many proposals to fool DNNs by adversarial example. Papernot et al (2016) proposed so far the most powerful such attack against image classifiers by exploiting transferability. According to the experiments conducted, the method can achieve nearly 90% misclassification rates for DNNs services hosted on Amazon and Google. This practical […]

adversarial example

對抗例入門說明 – 運用對抗例攻擊深度學習模型(一)

這是一系列針對對抗例(adversarial example)相關研究的綜合摘要的第一篇。本系列包括: 2017–08–29 對抗例入門說明 – 運用對抗例攻擊深度學習模型(一) 2017-10-18 對抗例攻擊與防禦手法 – 運用對抗例攻擊深度學習模型(二) 利用對抗例(adversarial example)造成深度學習模型判斷錯誤這種攻擊手法,到 2017 年中為止看來是攻擊方略佔上風,目前看來針對 Papernot et al(2016) [1]等人發表的 transfer attack 的防禦進展不大,而產生對抗例的方法仍然在持續簡化中。 Papernot et al(2016) 發表的攻擊方式是目前最具威力的一種,針對影像辨識的深度學習服務,可以透過 API 取得一些分類結果後,另外在本地訓練一個 local model,對 local model 找出可用的對抗例,轉移(transfer)回去攻擊目標 API。論文裡對 Amazon 與 Google 的服務實測都有近 90% 的成功率。簡單地說,黑箱攻擊是可行的。 所謂對抗例,是一種刻意製造的、讓機器學習模型判斷錯誤的輸入資料。最早是 Szegedy et al(2013)[2] 發現對於用 ImageNet、AlexNet 等資料集訓練出來的影像辨識模型,常常只需要輸入端的微小的變動,就可以讓輸出結果有大幅度的改變。例如取一張卡車的照片,可以被模型正確辨識,但只要改變影像中的少數像素,就可以讓模型辨識錯誤,而且前後對影像的改變非常少,對肉眼而言根本分不出差異。 這樣的例子除了顯現深度學習模型可能結果「不穩定」,而且有可能被惡意利用而有安全疑慮,因此近年來已經成為機器學習熱門的研究議題。2017 年這方面發表的研究成果,主要有加強防禦,以及更快速簡單地產生對抗例兩個方向。但是目前看來針對上述 Papernot 等人發表的 transfer attack 的防禦進展不大,而產生對抗例的方法仍然在持續簡化中。 以下將回顧對抗例的重要特性、製造對抗例的演算法,以及一些防禦的策略。下一回我們會整理一些 2017 […]

機器學習公平嗎?

演算法公平性(algorithmic fairness)是與大數據、機器學習相關的新興研究主題之一,大約從 2015 年開始受到[媒體報導與關注](http://fairness.haverford.edu/press.html “媒體報導與關注”)。這個主題研究的是,當我們開始在醫療、保險、法律、金融或其它領域,運用資料與演算法來進行某些傳統上由人來進行的決策時,能不能確保演算法的結果符合這些領域所應該維繫的公平原則?

機器學習潛在的隱私問題

過去一段時間,我們對機器學習(machine learning)潛在的隱私問題做了一點文獻研究。以下是關於此議題的綜合摘要。