<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Sherry.AI - Medium]]></title>
        <description><![CDATA[這是一個資料科學專欄， 主要分享python教學以及AI的看法。 - Medium]]></description>
        <link>https://medium.com/sherry-ai?source=rss----b96e9d51eed---4</link>
        <image>
            <url>https://cdn-images-1.medium.com/proxy/1*TGH72Nnw24QL3iV9IOm4VA.png</url>
            <title>Sherry.AI - Medium</title>
            <link>https://medium.com/sherry-ai?source=rss----b96e9d51eed---4</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Sun, 17 May 2026 03:11:23 GMT</lastBuildDate>
        <atom:link href="https://medium.com/feed/sherry-ai" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com" rel="hub"/>
        <item>
            <title><![CDATA[XAI| 透過 LIME 解釋複雜難懂的模型]]></title>
            <link>https://medium.com/sherry-ai/xai-%E9%80%8F%E9%81%8E-lime-%E8%A7%A3%E9%87%8B%E8%A4%87%E9%9B%9C%E9%9B%A3%E6%87%82%E7%9A%84%E6%A8%A1%E5%9E%8B-23898753bea5?source=rss----b96e9d51eed---4</link>
            <guid isPermaLink="false">https://medium.com/p/23898753bea5</guid>
            <category><![CDATA[xai]]></category>
            <category><![CDATA[data-science]]></category>
            <category><![CDATA[lime]]></category>
            <category><![CDATA[explainable-ai]]></category>
            <category><![CDATA[interpretable-ai]]></category>
            <dc:creator><![CDATA[Sherry Su]]></dc:creator>
            <pubDate>Wed, 30 Jun 2021 12:48:21 GMT</pubDate>
            <atom:updated>2021-07-02T06:21:28.362Z</atom:updated>
            <content:encoded><![CDATA[<h4>Local Interpretable Model-agnostic Explanations (LIME)</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Mn1TTNHM-PpcYvteVNJytQ.png" /></figure><h3>一、背景介紹</h3><p>為了理解模型，2016年 “Why Should I Trust You?” 論文中，提出了局部可解釋性模型 – LIME（Local Interpretable Model-agnostic Explanations）的概念，為 XAI 的研究提供了一些啟發。這篇文章就來大家了解 LIME 是如何解釋模型的吧！</p><p>&gt; 想瞭解更多模型可解釋性的重要，可參考以下的文章：</p><p><a href="https://medium.com/sherry-ai/xai-%E6%A8%A1%E5%9E%8B%E5%8F%AF%E8%A7%A3%E9%87%8B%E6%80%A7%E7%9A%84%E9%87%8D%E8%A6%81-a0bbaa649978">XAI| 模型可解釋性的重要</a></p><p>假設我們利用特徵<strong> <em>x₁</em></strong><em> </em>與<em> </em><strong><em>x₂</em></strong><em> </em>建立了一個複雜且準確的模型 <strong><em>f (x)</em></strong>去預測個體是 ★（黃色區域）還是 ▲（綠色區域）。從下圖可以發現，若我們想要解釋為什麼這個個體（instance）會被分類至 ★（黃色區域）是非常困難的。</p><p>而 LIME 方法就是為了解決上述問題，在該個體的附近建立一個簡單可解釋的模型<em> </em><strong><em>g(</em>𝑧′<em>)</em></strong><em> </em>（下圖中的虛線；例如：線性模型或是決策樹），作為此個體的解釋模型。而可解釋模型 <strong><em>g(</em>𝑧′<em>)</em></strong><em> </em>在該個體附近的預測準確度必須與原模型 <strong><em>f(x) </em></strong>相當，但在離該個體較遠的區域其預測力就會大幅下降，這就是所謂的「局部（local）」忠實性。</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*u5TenrWAZ7UX9nondk92Og.png" /></figure><blockquote><em>LIME 的目標主要是針對一個複雜難解釋的模型，根據欲解釋的個體提供一個局部可解釋的模型，其主要的概念為針對某個體在局部區域找出一個簡單可理解的模型，用以回答「為什麼模型會將某個體分類到特定的類別」。</em></blockquote><pre>如果你也想嘗試著用LIME解釋模型，下面提供了 python 的程式碼讓大家練習與參考：<br>💻 Python code：<a href="https://reurl.cc/pg9jb8">Google Colab Python code</a></pre><h3>二、方法與原理</h3><p>假設我們建立了一個大眼仔與樹蛙的分類器 <strong><em>f(x)</em></strong>，若想直接從解釋這個模型為什麼會這樣子分類是非常困難的。</p><p>根據LIME的做法，或許我們能選定一個欲解釋的個體資料(如下圖中的星星-玩具樹蛙)，並且用一個簡單的線性迴歸來fit這條決策邊界，試圖解釋模型<strong><em>f(x)</em></strong>在這個邊界上是怎麼做決策的。</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*A-_p3DNQToQocCpN2Nwodg.png" /></figure><blockquote>備註: 黃色區域（星星）為樹蛙，綠色區域（三角形）為大眼仔。</blockquote><h4>．LIME 的分析步驟如下：</h4><blockquote><em>Step1: 將資料分割成小區塊，隨機擾動預解釋的個體的小區塊 (Perturbed Instance) 產生新樣本，丟進模型預測結果。</em></blockquote><p>將玩具樹蛙的圖片丟入此模型預測出來為樹蛙的機率為 0.54。為了瞭解模型所做的決策，將此圖片根據「超像素分割算法」切割成 M 個 Super Pixel<strong>（SP₁, SP₂,…,SPᴍ）</strong>。</p><p>原始圖片(Original Image)進行辨識時， 丟入分類器的話，特徵會是一個三維的向量 (RGB)，而每個維度代表所對應 pixel 在該 channel 的數值；而 super pixel Image，則是以二元向量 <strong>{0, 1}</strong> 來表示第<strong><em> i</em></strong> 個 super pixel是否有存在於這張圖片之中。</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*-_jU21xZh5h99uI4Ebx5WQ.png" /></figure><p>接著根據所選定的個體資料進行擾動產生新的資料集 z (Pertubed Instances;)，擾動的方式為隨機指派 super pixel 為 0 或 1，若第<strong><em> i </em></strong>個 super pixel 為 0，代表將第 i 個 super pixel 以灰色覆蓋；若第 <strong><em>i </em></strong>個 super pixel 為 1，則是保留該 super pixel。</p><p>將新產生出來的資料集以RGB的資料型態丟回原先的分類模型 <strong><em>f</em></strong>，就能得出產出結果 <strong><em>y</em></strong> (這裡的 <strong><em>y</em></strong> 代表的是樹蛙的機率)，就能了解到此新資料集在分類模型的分布狀況。</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*-8NAkytUYw_QERjSV0cIQA.png" /><figcaption>右圖：將擾動的樣本以RGB的資料型態丟回f(x)進行預測得到結果y；左圖：擾動樣本的分布狀況</figcaption></figure><blockquote><em>Step2: 根據樣本相似度（例如特徵距離）給予樣本權重</em></blockquote><p>利用核函數（kernel function）來計算新擾動樣本<strong> <em>z</em></strong> 與愈解釋的個體 <strong>𝑥</strong> (玩具樹蛙)的相近的程度，與愈解釋的個體越近的給予較大的權重，較遠的給則給予較小的權重。</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/452/1*WIBVV_3Oh9lX4uMdWo-JRw.png" /><figcaption>根據核函數</figcaption></figure><blockquote><em>Step3: 根據擾動樣本訓練一個簡單線性回歸的模型 </em><strong><em>𝑔(𝑧′)</em></strong><em>，並且根據模型的係數解釋個體。</em></blockquote><p>這裡的 <strong>𝑧′ </strong>代表的是樣本中的第 <strong><em>i </em></strong>個 super pixel 存在與否，而這裡建模的label則是擾動資料丟回 <strong><em>f </em></strong>模型所產出的 <strong><em>y</em></strong>。因此就可以根據擾動樣本建立出一個簡單線性回歸。並且找出係數值最大的 <strong><em>M</em></strong> 個特徵，在取得對應的意義，便可以了解該樣本被模型判斷程樹蛙的根據。</p><p>如下圖我們可以理解模型會將玩具樹蛙的照片判斷成樹蛙的原因，主要是因為玩具樹蛙的頭部特徵。</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*I9rViW7Z8B1-0ox1uLTyCg.png" /></figure><blockquote><em>對於結構型資料也是進行上述的三個步驟，進行資料擾動（擾動的方式則是隨機選擇特徵進行擾動） → 定義相似度→訓練簡單可解釋的模型。</em></blockquote><h4>．LIME的代價函數</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*lyTcv_Dwwp-oD0txGA5i0Q.png" /></figure><p><strong>Ω(𝑔)</strong>用來避免模型過度複雜化，導致不易解釋<strong>。</strong>而用來衡量複雜模型 <strong><em>f</em></strong><em> </em>與簡單模型<em> </em><strong><em>g </em></strong>間差異的函數為<em> 𝐋</em>(<strong><em>f, g</em></strong>, <strong>𝜋ₓ)</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/524/1*Ot9Cx7mk6UDCwvfwCD8wLA.png" /></figure><p>其中 <strong>𝜋ₓ(𝑧) </strong>則是核函數來計算 <strong>𝑧</strong> 與 <strong>𝑥</strong> 的接近的程度，用來定義 <strong>𝑥 </strong>的附近區域之局部性，例如：Gaussian kernel。</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/310/1*oC-r4Wl33qzE7rdEbccjGA.png" /></figure><h3><strong>三、結果呈現</strong></h3><h4>．<strong>非結構型資料的結果</strong></h4><p>根據lime的解釋，我們就能理解模型是基於圖片上的哪些特徵進行判斷的。</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*3lTn7rgrm8nRoSMVwJEEnA.png" /></figure><h4><strong>．結構型資料的結果</strong></h4><p>lime 套件可以選擇把連續變數切成不同區間，進行此個體預測結果的解釋。</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*OUVnfAwxUJ9ZMWBYdnYIjg.png" /></figure><h3>四、總結</h3><p>雖然 LIME 提供了一個有效方法用以解釋模型的行為，並且能應用在結構與非結構資料上。但仍然有一些缺點：</p><ol><li>由於他需要建立一個隨機「擾動」的資料集，因此結果並不是一致且穩定的（具有隨機性）。</li><li>此方法是根據局部擾動資料去配適一個線性簡單模型，但有許多情況下即使在局部的資料上仍然不是線性關係。因此，很有可能得到錯誤的解釋。</li><li>需要定義樣本相似度給予權重，但要定義出「合適」的衡量方法並不是那麼的容易與直觀。</li><li>擁有特徵獨立的強烈假設。</li></ol><p>最後，感謝你認真讀完這篇文章，如果你喜歡我的文章，請給我一些<strong>「掌聲</strong>👏🏻<strong>」</strong>與<strong>「追蹤我的專欄」</strong>，你的支持會是我持續分享的動力。若有希望我分享的主題，也歡迎在下面留言 📝讓我知道。</p><h3>參考資料</h3><ol><li>“Why Should I Trust You?” Explaining the Predictions of Any Classifier — Ribeiro, Singh, Guestrin (2016)</li><li><a href="https://github.com/marcotcr/lime">https://github.com/marcotcr/lime</a></li></ol><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=23898753bea5" width="1" height="1" alt=""><hr><p><a href="https://medium.com/sherry-ai/xai-%E9%80%8F%E9%81%8E-lime-%E8%A7%A3%E9%87%8B%E8%A4%87%E9%9B%9C%E9%9B%A3%E6%87%82%E7%9A%84%E6%A8%A1%E5%9E%8B-23898753bea5">XAI| 透過 LIME 解釋複雜難懂的模型</a> was originally published in <a href="https://medium.com/sherry-ai">Sherry.AI</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[數據會說話？淺談倖存者偏差（Survivorship Bias）]]></title>
            <link>https://medium.com/sherry-ai/%E6%95%B8%E6%93%9A%E6%9C%83%E8%AA%AA%E8%A9%B1-%E6%B7%BA%E8%AB%87%E5%80%96%E5%AD%98%E8%80%85%E5%81%8F%E5%B7%AE-survivorship-bias-75ccbceeda5?source=rss----b96e9d51eed---4</link>
            <guid isPermaLink="false">https://medium.com/p/75ccbceeda5</guid>
            <category><![CDATA[統計思考]]></category>
            <category><![CDATA[survivorship-bias]]></category>
            <category><![CDATA[倖存者偏差]]></category>
            <category><![CDATA[statistics]]></category>
            <category><![CDATA[statistical-thinking]]></category>
            <dc:creator><![CDATA[Sherry Su]]></dc:creator>
            <pubDate>Tue, 12 May 2020 15:26:25 GMT</pubDate>
            <atom:updated>2020-05-13T15:10:21.999Z</atom:updated>
            <content:encoded><![CDATA[<h4>沈默的數據，你所忽略的重要訊息！</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Huns8droLYG6IoU1t5ECHQ.png" /><figcaption>Logo Designed by Freepik</figcaption></figure><p>在這一篇的「數據會說話」系列中，要向大家介紹<strong>「倖存者偏差（Survivorship Bias）」</strong>。</p><p>&gt; 如果對「辛普森悖論（Simpson’s paradox）」有興趣的人可以參考上一篇文章：</p><p><a href="https://medium.com/sherry-ai/%E6%95%B8%E6%93%9A%E7%9C%9F%E7%9A%84%E6%9C%83%E8%AA%AA%E8%A9%B1-%E6%B7%BA%E8%AB%87%E8%BE%9B%E6%99%AE%E6%A3%AE%E6%82%96%E8%AB%96-22c067f6a535">數據會說話? 淺談辛普森悖論</a></p><p>在分析資料時，最重要的一件事就是反問自己「手中有哪些資料是我們所忽略的、是我們沒有的？」。倖存者偏差所指的就是過度關注倖存的資料（可以被觀察到的人事物），而忽略了可能無法觀察到的資料，導致了錯誤的認知與結論。</p><blockquote>當越是認真專注於眼前的數據，離真相越遠</blockquote><p>最經典的倖存者偏差的例子發生在1941 年。在第二次世界大戰中，統計學家沃德受到英美軍方的要求著手研究「戰鬥機應該加強防護哪些部位，才能降低被炮火擊落的機率」。針對相關的資料進行研究與分析後發現：從戰鬥中回來的飛機，除了螺旋槳與駕駛艙外，其它地方都遍佈了彈孔。（如下圖所示）。</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*qu_PW_ye_WHH7EIRaGTe1Q.png" /><figcaption>安全返回的飛機受損的示意圖，紅點為受損部位。圖片來源：維基百科</figcaption></figure><p>最後，統計學家沃德認為「應該加強彈孔最少的地方（螺旋槳與駕駛艙）防護」，但是海軍指揮則是認為「應該針對容易遭受攻擊的部位加強防護」。沃德為了佐證他的論點提出了以下幾個觀點：</p><ol><li>戰鬥機的彈孔分析只統計了平安返回的戰機（被擊落的戰鬥機不可能返回基地，因此手中的資料並不能反映真實情形）</li><li>返回的戰鬥機即使機翼被擊中很多次，大多數也都能安全返回。</li><li>彈孔少的部位並不是不容易被擊中，可能正是因為那些部位是要害導致戰鬥機無法返回基地。</li></ol><p>最後，軍方決定採用了統計學家沃德的結論，也證明沃德的論點是對的！若僅憑手中的資料，而沒有邏輯推理的常識，就會很容易陷入「倖存者偏差」，導致錯誤的決策。在生活中也有許多倖存者偏差的例子：</p><ol><li>A 公司採用了某種新的促銷策略，使得營收增長了200%<br>（但是又有多少公司嘗試了同樣的策略，卻是以失敗收場）</li><li>這間廟很靈驗！出海回來，沒有遇難的船員都有到這間廟拜拜<br>（但是又有多少人有拜神卻淹死的呢？）</li><li>OOO吃了某種減肥藥，一下子就瘦了10公斤<br>（但是又有多少比例的人吃這種減肥藥是無效的呢？）</li><li>勵志書籍常常說只要吃苦耐勞、有創意就會成功 <br>（但還有一堆擁有同樣特質的失敗者默默無聞不被我們發現）</li></ol><p>做為資料科學家與分析師，更應該慎重評估資料與全面性的思考，應該評估是否可能存在無法觀察到的數據。實驗設計時更應該試著減少偏差，並且忠實呈現實驗的結果。</p><p>最後，感謝你認真讀完這篇文章，如果你喜歡我的文章，請給我一些<strong>「掌聲</strong>👏🏻<strong>」</strong>與<strong>「追蹤我的專欄」</strong>，你的支持會是我持續分享的動力。若有希望我分享的主題，也歡迎在下面留言 📝讓我知道。</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=75ccbceeda5" width="1" height="1" alt=""><hr><p><a href="https://medium.com/sherry-ai/%E6%95%B8%E6%93%9A%E6%9C%83%E8%AA%AA%E8%A9%B1-%E6%B7%BA%E8%AB%87%E5%80%96%E5%AD%98%E8%80%85%E5%81%8F%E5%B7%AE-survivorship-bias-75ccbceeda5">數據會說話？淺談倖存者偏差（Survivorship Bias）</a> was originally published in <a href="https://medium.com/sherry-ai">Sherry.AI</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[XAI| 累積局部效應（ALE）]]></title>
            <link>https://medium.com/sherry-ai/xai-%E7%B4%AF%E7%A9%8D%E5%B1%80%E9%83%A8%E6%95%88%E6%87%89-ale-e6e2bc0fbeeb?source=rss----b96e9d51eed---4</link>
            <guid isPermaLink="false">https://medium.com/p/e6e2bc0fbeeb</guid>
            <category><![CDATA[data-science]]></category>
            <category><![CDATA[accumulated-local-effects]]></category>
            <category><![CDATA[ale]]></category>
            <category><![CDATA[xai]]></category>
            <category><![CDATA[interpretable-ai]]></category>
            <dc:creator><![CDATA[Sherry Su]]></dc:creator>
            <pubDate>Wed, 08 Apr 2020 15:30:53 GMT</pubDate>
            <atom:updated>2020-04-13T03:04:49.875Z</atom:updated>
            <content:encoded><![CDATA[<h4>Accumulated Local Effects (ALE)</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*00Sq1M10YlhDBNd61wjAgg.png" /></figure><h3>一、介紹</h3><p>在上一篇的 XAI 系列針對 事後可解釋性（Post Hoc）並且通用於任何一種演算法模型（Model-agnostic）的3個方法：特徵重要度、PDP、ICE Plot，做了詳細的解釋。若對於這3個方法有興趣的人可以參考下列的網址：</p><p><a href="https://medium.com/sherry-ai/xai-%E5%A6%82%E4%BD%95%E5%B0%8D%E9%9B%86%E6%88%90%E6%A8%B9%E9%80%B2%E8%A1%8C%E8%A7%A3%E9%87%8B-dd2aa0b58a19">XAI| 如何對集成樹進行解釋？</a></p><p>本篇文章則會介紹另一種與模型無關的事後可解釋的方法：累積局部效應（Accumulated Local Effects Plot，簡稱 ALE）。</p><h3>二、資料說明</h3><p>本篇文章將以新生兒的資料進行舉例說明。目的是為了解特徵與預測新生兒的體重（目標變數 y）之間的關係。</p><pre><strong>資料下載｜| </strong><a href="https://github.com/YuXuanSu/data/blob/master/NewbornData.csv">新生兒資料.csv</a><strong>料欄位說明</strong><br>1. Baby_weight: 新生兒體重<br>2. Mother_age: 媽媽年齡<br>3. Mother_BMI: 媽媽BMI<br>4. Baby_hc: 新生兒頭圍</pre><p>下面供了R的程式碼讓大家練習與參考：<br>💻 R code：<a href="https://colab.research.google.com/drive/14DYGmqUEERVfsPZYCZRptNZ3H4Xjk83Q">Google Colab R code</a></p><h3>三、累積局部效應 ALE</h3><p>累積局部效應（ALE）主要用來描述特徵與預測值的平均關係，基本上與 PDP 的功能相同，但 ALE 利用了條件分布（ Conditional Distribution）的概念，擺脫了「特徵獨立的假設」使得結果更於穩健。因此，在應用上 ALE 是比 PDP 更廣泛的 。PDP 與 ALE 的比較如下表所示：</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/532/1*onS4TrP6K4Vp5c6Pl2PsHw.png" /></figure><p>在某些情況下特徵與特徵之間是有相關性的，例如：房屋居住面積和售價可能呈現的是正相關（坪數越大售價越高），這時若在假設特徵獨立並使用 PDP的方法，會使得結果產生偏差，因為在 PDP 的方法中，所考慮的是在特徵<em> x₁</em>固定的狀況下置換不同的特徵值 <em>xᴄ </em>的結果。</p><blockquote>xᴄ <em>的解釋請參考 </em><a href="https://medium.com/sherry-ai/xai-%E5%A6%82%E4%BD%95%E5%B0%8D%E9%9B%86%E6%88%90%E6%A8%B9%E9%80%B2%E8%A1%8C%E8%A7%A3%E9%87%8B-dd2aa0b58a19">XAI| 如何對集成樹進行解釋？</a> <em>中 PDP 章節中的說明。</em></blockquote><p>以下圖為例做更詳細的說明：假設資料集中特徵 <em>x₁ </em>與 <em>x₂ </em>呈現高度正相關，若使用PDP的方法將<em> x₁</em>固定在 0.3，那麼 <em>x₂ </em>為 0.8 的情況就非常的不真實，因為在現實狀況下，由於 <em>x₁ </em>與<em> x₂ </em>具正相關，因此當 <em>x₁ = </em>0.3<em> </em>時， <em>x₂ </em>大多只會落在 0.1~0.5 的區間當中。而 ALE 的做法則是在 <em>x₁ = </em>0.3時，限制了 <em>x₂ </em>的區間，具體公式與作法請參「計算原理」的段落。</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/791/1*87iw7cyyQ0RkTRGBoBPk7g.png" /><figcaption>PDP與ALE 計算原理比較與說明。Jingyu Zhu, Daniel W. Apley. “Accumulated Local Effect Plot (ALE) and Package ALEPlot.” (2018)</figcaption></figure><h4>．計算原理</h4><p>訓練好一個模型 <em>f̂</em>（假設 <em>x₁</em>、<em>x₂</em>、<em>x₃</em>、<em>x₄ </em>為特徵、目標變數為 <em>y</em>），假設我們想探討的是<em> x₁</em> 與<em> y</em> 之間的關係，但知道 <em>x₁</em>可能與其他特徵有相關，因此必須使用累積局部效應的方法，公式如下：</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*WUNv5q_a9AWWCHwmGkrMoQ.png" /></figure><p>接著，以下圖（此圖為特徵<em> x₁</em>與 <em>x₂ </em>的關係圖，並將 <em>x₁ </em>劃分為 <em>k</em> 個區間）搭配上述之公式為例詳細說明 ALE 的作法。</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*S2UFqYU7ZE8AustmmJ8Fvg.png" /><figcaption>以<em>x₁</em>、<em>x₂為例說明ALE的區間概念。</em>Christoph Molnar. “Interpretable Machine Learning: A Guide for Making Black Box Models Explainable. ” (2020)</figcaption></figure><p>ALE 的分析步驟如下：</p><ol><li>將欲觀察之特徵分為多個區間（區間大小可任意決定）。</li><li>對於每個區間，將區間內的所樣本點除了<em>x₁</em>之外的特徵值代入，並將<em>x₁</em>以該區間的上下界代入模型 <em>f̂</em>，得到兩個上下界的預測結果。</li><li>計算每個樣本點上下界的預測差異，並對該區間的預測差異值取平均。</li><li>累加前面所有區間的平均預測差異，最後得到每一區間 特徵 <em>x₁ </em>對預測值 <em>y </em>的平均影響。</li></ol><h4>．結果解釋</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*-VEXShsxA9VbT2njAplfkw.png" /><figcaption>新生兒體重與媽媽年齡、媽媽BMI以及新生兒頭為之ALE關係圖。</figcaption></figure><p>從這張圖可以了解到媽媽的年齡、BMI與新生兒頭圍是如何影響新生兒體重的預測值，而 ALE 的方法呈現是的是預測值在局部範圍內 （區間） 的平均變化。</p><blockquote><em>有興趣的人也可以分別使用 PDP 與 ALE 做做看，並且比較結果上的差異。</em></blockquote><h4>．優缺點彙整</h4><pre><strong>👍🏻 優點：</strong><br>1. ALE的結果是無偏的。<br>2. ALE擺脫了特徵獨立性的假設。<br>3. ALE所需計算的次數相較於PDP少，因此計算速度比較快。</pre><pre><strong>👎🏻 缺點：</strong><br>1. 與PDP相比，ALE的概念較不直觀。<br>2. ALE並不附帶ICE曲線。<br>3. 需要自行設置區間間隔數量，若區間設置的不好容易使得結果不穩定。</pre><p>最後，感謝你認真讀完這篇文章，如果你喜歡我的文章，請給我一些<strong>「掌聲</strong>👏🏻<strong>」</strong>與<strong>「追蹤我的專欄」</strong>，你的支持會是我持續分享的動力。若有希望我分享的主題，也歡迎在下面留言 📝讓我知道。</p><h3>參考資料</h3><ol><li>Christoph Molnar. “Interpretable Machine Learning: A Guide for Making Black Box Models Explainable. ” (2020)</li><li>Jingyu Zhu, Daniel W. Apley. “Accumulated Local Effect Plot (ALE) and Package ALEPlot.” (2018)</li><li><a href="https://cran.r-project.org/web/packages/iml/vignettes/intro.html">https://cran.r-project.org/web/packages/iml/vignettes/intro.html</a></li></ol><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=e6e2bc0fbeeb" width="1" height="1" alt=""><hr><p><a href="https://medium.com/sherry-ai/xai-%E7%B4%AF%E7%A9%8D%E5%B1%80%E9%83%A8%E6%95%88%E6%87%89-ale-e6e2bc0fbeeb">XAI| 累積局部效應（ALE）</a> was originally published in <a href="https://medium.com/sherry-ai">Sherry.AI</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[數據會說話? 淺談辛普森悖論]]></title>
            <link>https://medium.com/sherry-ai/%E6%95%B8%E6%93%9A%E7%9C%9F%E7%9A%84%E6%9C%83%E8%AA%AA%E8%A9%B1-%E6%B7%BA%E8%AB%87%E8%BE%9B%E6%99%AE%E6%A3%AE%E6%82%96%E8%AB%96-22c067f6a535?source=rss----b96e9d51eed---4</link>
            <guid isPermaLink="false">https://medium.com/p/22c067f6a535</guid>
            <category><![CDATA[statistics]]></category>
            <category><![CDATA[辛普森悖論]]></category>
            <category><![CDATA[simpsons-paradox]]></category>
            <category><![CDATA[統計思考]]></category>
            <category><![CDATA[statistical-thinking]]></category>
            <dc:creator><![CDATA[Sherry Su]]></dc:creator>
            <pubDate>Fri, 21 Feb 2020 03:25:22 GMT</pubDate>
            <atom:updated>2020-04-09T16:16:26.785Z</atom:updated>
            <content:encoded><![CDATA[<h4>數據分析的陷阱，千萬別被表面數據的結果給迷惑！</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*7QWDJArG1WkrrugSLliSbw.png" /><figcaption>Logo Designed by Freepik</figcaption></figure><p>許多科學工作者常常掛在嘴邊的一句話就是「數據會說話」，但你有想過有時數據所顯示的結果會讓我們得到錯誤的結論嗎？其中在統計領域中，最有名的例子就是「<strong>辛普森悖論（Simpson’s paradox）</strong>」。</p><p>這邊試想一個簡單的例子，假設現在有兩家醫院的病患死亡率資料，如下表，可以看到 A 醫院的的死亡率為15%，而 B 醫院的死亡率為則為12.5%。</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Eb-FGvFcbtbt_ZziEuhssQ.png" /></figure><p>看到這樣一個單純的數據之後，大多數的人很容易得出 A 醫院的的醫療水平較差，病患比較容易死亡的結論。</p><p>但是這時候如果告訴你 <strong>A 醫院是國內頂尖的教學醫院，而 B 醫院則是鄉村內的小醫院的話</strong>。大家是不是覺得這個結論可能不大合理，因為跟上述的數據表的結果有出入？</p><blockquote><em>數據並沒有問題，而是我們忽略了潛藏在資料中的</em><strong><em>潛在變量（ lurking variable）</em></strong><em>。</em></blockquote><p>如果把剛剛的資料依照「<strong>輕重症程度」</strong>做細部的分層，我們可以得到以下的表格，此時我們可以發現 A 醫院在治療不論重症或是輕症的病人時都有較低的死亡率。</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*sbk9SMrQlzRKxGFlhszhuQ.png" /></figure><p>在這裡可以發現經過分層後的結果與先前的結果完全相反，而這樣子的矛盾現象，稱為「辛普森的悖論」。為什麼會出現這樣完全相反的結果呢？</p><blockquote><strong><em>辛普森的悖論的定義如下:</em></strong><em><br>在某些條件下的多組數據於分別討論時都會滿足某種性質（例如：A 優於B），但若是直接將數據合併在一起討論時卻可能導致相反的結論（例如：B 優於 A）。</em></blockquote><p>用上述醫院的例子來解釋原因，A 醫院無疑是較好的醫院，但由於 A 醫院是國內頂尖的醫院，因此病情較為嚴重的患者會優先至 A 醫院就診。而重症患者的死亡率天生就遠高於輕症患者，進而拉高了 A 醫院的整體死亡率。於是乎當不考慮病患的病情而只看整體的死亡率時，會誤以為 B 醫院的醫療醫療水平較高。</p><p>另一個例子，在 1986 年一項關於腎結石清除手術的研究中也曾出現辛普森悖論。該項研究分析了上百份醫療紀錄，並且比較微創式取石手術與傳統開刀手術的成功率。兩種治療的比較結果如下：</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Qi_7lyHdjRhpD0fFbg1p6w.png" /></figure><p>顯示新型的微創式取石手術比傳統開刀手術的成功率更高。</p><p>但若是根據結石大小將數據分成兩組，新型的微創式取石手術在兩組的成功率都比傳統手術還要低。為什麼呢？</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1003/1*fCkR9Z2LlY9G2lNAcTbyoA.png" /></figure><p>原因是因為這項研究結果並沒有使用「隨機分派設計（ RCT）」，此研究使用的資料是醫療的檢閱紀錄，結果發現醫生習慣將腎結石較大的病患採取傳統的治療方式，而腎結石較小的病患則採取微創式取石的治療方式。因此，結石大小成了潛在變數。</p><p>看到這邊大家可以發現，若是分組表現較好的一方在比較差的分組上佔比較大，就會進而影響了合併之後的統計結果（例如：A 醫院的重症病患比例較多），就會發生辛普森悖論的情形。</p><p>因此，若是實驗設計在一開始能採用隨機分派的設計就能有效降低潛在變數的影響，降低辛普森悖論發生的可能。若是無法採取隨機分派的情況，則需要盡可能地思考是否有忽略了潛在的影響因子（但現實生活中很難全面的考量到所有潛在影響），並且透過分層的手段觀察結果的變化。</p><p>最後，感謝你認真讀完這篇文章，如果你喜歡我的文章，請給我一些<strong>「掌聲</strong>👏🏻<strong>」</strong>與<strong>「追蹤我的專欄」</strong>，你的支持會是我持續分享的動力。若有希望我分享的主題，也歡迎在下面留言 📝讓我知道。</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=22c067f6a535" width="1" height="1" alt=""><hr><p><a href="https://medium.com/sherry-ai/%E6%95%B8%E6%93%9A%E7%9C%9F%E7%9A%84%E6%9C%83%E8%AA%AA%E8%A9%B1-%E6%B7%BA%E8%AB%87%E8%BE%9B%E6%99%AE%E6%A3%AE%E6%82%96%E8%AB%96-22c067f6a535">數據會說話? 淺談辛普森悖論</a> was originally published in <a href="https://medium.com/sherry-ai">Sherry.AI</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[XAI| 如何對集成樹進行解釋？]]></title>
            <link>https://medium.com/sherry-ai/xai-%E5%A6%82%E4%BD%95%E5%B0%8D%E9%9B%86%E6%88%90%E6%A8%B9%E9%80%B2%E8%A1%8C%E8%A7%A3%E9%87%8B-dd2aa0b58a19?source=rss----b96e9d51eed---4</link>
            <guid isPermaLink="false">https://medium.com/p/dd2aa0b58a19</guid>
            <category><![CDATA[data-science]]></category>
            <category><![CDATA[explainable-ai]]></category>
            <category><![CDATA[partial-dependence-plots]]></category>
            <category><![CDATA[ensemble-learning]]></category>
            <category><![CDATA[集成樹]]></category>
            <dc:creator><![CDATA[Sherry Su]]></dc:creator>
            <pubDate>Mon, 10 Feb 2020 07:55:15 GMT</pubDate>
            <atom:updated>2021-06-30T06:15:44.561Z</atom:updated>
            <content:encoded><![CDATA[<h4>集成樹的可解釋性: Feature Importance、Partial Dependence Plot、ICE Plot</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*BVDQcoIhRK_K0CXvLfRu7A.png" /></figure><h3>一、介紹</h3><p>集成樹（tree-based ensemble learning）中，最有名的就是隨機森林樹（Random Forest，簡稱RF）與梯度提升樹（Gradient Boosting Trees，簡稱GBM）。而近年在 Kaggle 競賽平台中最火紅的 XGBoost 也是基於 GBM 所延伸出來的演算法。在解釋集成樹有三個非常好用的方法：</p><ol><li>特徵重要度（Feature Importance）</li><li>部分相依圖（Partial Dependence Plot，簡稱 PDP）</li><li>個體條件期望圖（Individual Conditional Expectation Plot，簡稱 ICE Plot）</li></ol><p>這三個方法屬於「事後可解釋性（post hoc）」並且「通用於任何一種演算法模型（model-agnostic）」。</p><h3>二、資料說明</h3><p>本篇文章將以新生兒的資料進行舉例說明。目的是為了解特徵與預測新生兒的體重（目標變數 y）之間的關係。</p><pre><strong>資料下載｜| </strong><a href="https://github.com/YuXuanSu/data/blob/master/NewbornData.csv">新生兒資料.csv</a></pre><pre><strong>料欄位說明</strong><br>1. Baby_weight: 新生兒體重<br>2. Mother_age: 媽媽年齡<br>3. Mother_BMI: 媽媽BMI<br>4. Baby_hc: 新生兒頭圍</pre><p>下面提供了R與Python的程式碼讓大家練習與參考：<br>💻 R code：<a href="https://colab.research.google.com/drive/11Is3kIPG6LXl3kV8JaEfecanOFze8gmu">Google Colab R code</a><br>💻 Python code：<a href="https://colab.research.google.com/drive/1UZb9q4FhRyvi0pQEZ7SzEiMhCxpQFo8A">Google Colab Python code</a></p><h3>三、特徵重要度</h3><p>特徵重要度（Feature Importance）指的是特徵在模型中的重要程度，若一個特徵非常重要，它對模型預測的表現影響就會很大。特徵重要度的計算方式有很多，例如： Gain、Split count、mean(|Tree SHAP|) 等等。本篇則會介紹「置換重要度（Permutation Importance）」的計算原理。</p><h4>． <strong>計算原理</strong></h4><p>排列重要度的計算一定要在模型訓練完後才能計算。而他的原理基本上就是將某一特徵欄位的數據重新隨機排列（其目的是為了維持分佈不變），再跟據指標（例如：MSE）計算特徵重要度。詳細的步驟與說明如下：</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*FsNqVbn5SOO-sjvsFmYNYw.png" /></figure><ol><li>訓練好一個模型 <em>f</em>（假設特徵矩陣為<em> X</em>、目標變數為<em> y</em>、誤差衡量指標 <em>L(y, f)</em>）</li><li>通過損失函數計算出原始模型誤差 ɛᵒʳᶦᵍ=<em> L( y, f(X)) </em>（例如：MSE）</li><li>將某一特徵欄位（例如：媽媽年齡）的數據隨機排列，再丟入回之前訓練好的模型 <em>f</em> 計算計算模型的誤差<strong> </strong>ɛᵖᵉʳᵐ =<strong> </strong><em>L( y, f(X</em>ᵖᵉʳᵐ<em>) )</em>。</li><li>計算此因子的重要程度<strong> </strong>importance = ɛᵖᵉʳᵐ - ɛᵒʳᶦᵍ。</li><li>把第 4 個步驟中打亂的特徵還原，換下一個特徵並且重複 3~4 的步驟，直到所有特徵都計算完重要程度為止。</li></ol><blockquote>特徵重要度可以讓資料科學家了解那些特徵是重要的或不重要的！</blockquote><h4><strong>．結果解釋</strong></h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*qBgYZDT8CU4BvKJNS04lEA.png" /></figure><p>在此資料中新生兒頭圍為最重要的因子，重要度（importance）大約為 60左右，代表的是若將新生兒頭圍的數據隨意排列在帶入模型會使得 MSE 上升 60 左右，而誤差上升越多代表此特徵在模型中的重要度越高。</p><h4>．優缺點彙整</h4><pre><strong>👍🏻 優點：<br></strong>1. 計算速度快不需要重新訓練模型 <br>2. 直觀好理解 <br>3. 提供與模型一致性的全域性解釋。</pre><pre><strong>👎🏻 缺點：</strong><br>1. 如果特徵之間有高度相關時，置換重要度的方法會產生偏差。</pre><h3>四、部分相依圖 PDP</h3><p>部分相依圖（Partial Dependence Plot）是由 Friedman（2001）所提出，其目的是用來理解在模型中某一特徵與預測目標 <em>y </em>平均的關係， 並且假設每一個特徵都是獨立的，主要以視覺化的方式呈現。</p><h4><strong>．計算原理</strong></h4><p>PDP 的計算原理主要是透過將訓練集資料丟入模型後平均預測的結果（即蒙地卡羅方法）。部分依賴函數的公式如下：</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/412/1*rikM0WL1YMAE4RQEDGHmig.png" /></figure><p>。<em>xs</em> 是我們想要畫部分依賴圖的特徵集合; <br>。<em>xᴄ</em> 則是剩下的其他特徵; <br>。<em>n</em> 為樣本數</p><p>訓練好一個模型 <em>f̂</em>（假設 <em>x₁</em>、<em>x₂</em>、<em>x₃</em>、<em>x₄ </em>為特徵、目標變數為 <em>y</em>），假設我們想探討的是<em> x₁</em> 與<em> y</em> 之間的關係，那麼 <em>xs = </em>{<em>x₁</em>}<em>、xᴄ= </em>{<em>x₂, x₃, x₄</em>}。</p><ol><li><em>xs</em>, <em>xᴄ</em> ⁽<em>ⁱ ⁼ ¹</em>⁾ 代入得到第一組結果</li><li>接著置換 <em>xᴄ</em> ⁽<em>ⁱ ⁼ ²</em>⁾ 得到第二個結果。</li><li>以此類推至 <em>i=n</em>，並將得到的結果取平均。</li></ol><blockquote>部分相依圖可以讓資料科學家了解各個特徵是如何影響 預測的！</blockquote><h4>．結果解釋</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*lBPQgXLxl4282ofqq0voiA.png" /></figure><p>從這張圖可以理解新生兒頭圍與新生兒體重有一定的正向關係存在，並且可以了解到新生兒頭圍是如何影響新生兒體重的預測。</p><h4>．優缺點彙整</h4><pre><strong>👍🏻 優點：<br></strong>1. 容易計算生成<br>2. 直觀好理解 <br>3. 容易解釋</pre><pre><strong>👎🏻 缺點：<br></strong>1. 最多只能同時呈現兩個特徵與y的關係，因為超過三維的圖根據現在的技術無法呈現。<br>2. 具有很強的特徵獨立性假設，若特徵存在相關性，會導致PDP估計程產生偏差。<br>3. PDP呈現的是特徵對於目標變數的平均變化量，容易忽略資料異質性（heterogeneous effects）對結果產生的影響。</pre><h3>五、個體條件期望圖 ICE Plot</h3><p>個體條件期望圖（ICE Plot）計算方法與 PDP 類似，個體條件期望圖顯示的是每一個個體的預測值與單一特徵之間的關係。</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*ln87Iv_LBxuCFCQKF4h0cA.png" /><figcaption>左圖為 PDP；右圖為ICE Plot。圖片來源：Peeking inside the black box: Visualizing statistical learning with plots of individual conditional expectation.</figcaption></figure><p>由於PDP 呈現的是特徵對於目標變數的<strong>平均</strong>變化量，容易使得異質效應（heterogeneous effects）相消，導致 PD 曲線看起來像是一條水平線，進而以為特徵 X_2 對 y 毫無影響。因此，可以透過 ICE Plot 改善 PDP 的缺點：發現資料中的異質效應。</p><h4>．計算原理</h4><p>訓練好一個模型<em> f̂</em>（假設 <em>x₁</em>、<em>x₂</em>、<em>x₃</em>、<em>x₄</em> 為特徵、目標變數為 <em>y</em>），假設我們想探討的是<em> x₁</em> 與 <em>y </em>之間的關係，ICE 的分析步驟如下：</p><ol><li>對某一樣本個體，保持其他特徵不變，置換 <em>x₁</em> 的值並且輸出模型的預測結果。</li><li>不斷重複第一個步驟直到所有樣本皆完成該步驟。</li><li>最後繪製所有個體的單一特徵變量與預測值之間的關係圖。</li></ol><h4>．結果解釋</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*qbFi6bJiY9cyKMNKsHt1ow.png" /></figure><p>灰黑色線代表的是每個個體對於目標變數的條件期望，紅色線則是所有個體的平均水平（也就是 PDP）。由於並不是每個個體都有相同的變化趨勢，因此與部分相依圖相比個體條件期望圖能夠更準確地反映特徵與目標變數之間的關係。</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*vThB0VffgnOLAx5eslp8ww.png" /></figure><p>而個體條件期望圖是從不同的預測開始，很難判斷個體之間的條件期望曲線（ICE Curve）是否有差異，為了解決上述問題延伸了一個新方法，稱作「Centered ICE Plot」。Centered ICE Plot 是將曲線做平移中心化的處理，其目的是為了表示特徵在該點時個體間的預測差異。</p><p>Centered ICE 曲線則被定義為：</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/275/1*hHoqaqcUT52rYc1QwOFIiQ.png" /></figure><p>。<em>xᵃ </em>代表的是錨點（ the anchor point），通常選擇觀察值的最小值或最大值做為錨點。</p><h4>．優缺點彙整</h4><pre><strong>👍🏻 優點：<br></strong>1. 容易計算生成<br>2. 解決了PDP資料異質性對結果產生的影響<br>3. 更直觀</pre><pre><strong>👎🏻 缺點：<br></strong>1. 只能展示一個特徵與目標變數的關係圖<br>2. 具有很強的特徵獨立性假設<br>3. 如果ICE plot的樣本太多會導致折線圖看起來非常擁擠凌亂</pre><p>最後，感謝你認真讀完這篇文章，如果你喜歡我的文章，請給我一些<strong>「掌聲</strong>👏🏻<strong>」</strong>與<strong>「追蹤我的專欄」</strong>，你的支持會是我持續分享的動力。若有希望我分享的主題，也歡迎在下面留言 📝讓我知道。</p><h3>參考資料</h3><ol><li>Breiman, Leo.“Random Forests.” Machine Learning 45 (1). Springer: 5–32 (2001).</li><li>Fisher, Aaron, Cynthia Rudin, and Francesca Dominici. “Model Class Reliance: Variable importance measures for any machine learning model class, from the ‘Rashomon’ perspective.”</li><li>Friedman, Jerome H. “Greedy function approximation: A gradient boosting machine.” Annals of statistics (2001): 1189–1232.</li><li>Zhao, Qingyuan, and Trevor Hastie. “Causal interpretations of black-box models.” Journal of Business &amp; Economic Statistics, to appear. (2017).</li><li>Goldstein, Alex, et al. “Peeking inside the black box: Visualizing statistical learning with plots of individual conditional expectation.” Journal of Computational and Graphical Statistics 24.1 (2015): 44–65.</li><li>Goldstein, Alex, et al. “Package ‘ICEbox’.” (2017).</li><li><a href="https://bgreenwell.github.io/pdp/articles/pdp.html">https://bgreenwell.github.io/pdp/articles/pdp.html</a></li><li><a href="http://savvastjortjoglou.com/intrepretable-machine-learning-nfl-combine.html">http://savvastjortjoglou.com/intrepretable-machine-learning-nfl-combine.html</a></li></ol><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=dd2aa0b58a19" width="1" height="1" alt=""><hr><p><a href="https://medium.com/sherry-ai/xai-%E5%A6%82%E4%BD%95%E5%B0%8D%E9%9B%86%E6%88%90%E6%A8%B9%E9%80%B2%E8%A1%8C%E8%A7%A3%E9%87%8B-dd2aa0b58a19">XAI| 如何對集成樹進行解釋？</a> was originally published in <a href="https://medium.com/sherry-ai">Sherry.AI</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[聯盟式學習（Federated Learning）]]></title>
            <link>https://medium.com/sherry-ai/%E8%81%AF%E7%9B%9F%E5%BC%8F%E5%AD%B8%E7%BF%92-federated-learning-b4cc5af7a9c0?source=rss----b96e9d51eed---4</link>
            <guid isPermaLink="false">https://medium.com/p/b4cc5af7a9c0</guid>
            <category><![CDATA[ai]]></category>
            <category><![CDATA[federated-learning]]></category>
            <category><![CDATA[聯盟式學習]]></category>
            <category><![CDATA[data-science]]></category>
            <category><![CDATA[privacy]]></category>
            <dc:creator><![CDATA[Sherry Su]]></dc:creator>
            <pubDate>Tue, 04 Feb 2020 02:22:41 GMT</pubDate>
            <atom:updated>2021-10-13T07:24:39.129Z</atom:updated>
            <content:encoded><![CDATA[<h3>聯盟式學習 (Federated Learning)</h3><h4>突破隱私權的重圍！</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*nFhRNHOJmcZVoSjL2Pqm4w.png" /></figure><blockquote>如果要用一句話說明聯盟式學習，那就是 state-of-the-art machine learning without centralizing data, and with privacy by default. (by Google)</blockquote><h3>一、介紹</h3><p>傳統的機器學習方法需要將訓練數據集中在一台機器或數據中心，但科技的進步使得資料無所不在，近年來各國更加重視資料的隱私權，紛紛制定了嚴格的隱私條款，取得數據更加困難，數據整合也面臨著重重的阻力，很難有效的共享，導致許多領域存在著數據孤島問題。若要符合隱私權又要將這些資料集中到數據中心需要耗費非常大。</p><blockquote>補充說明：<br>在 2018年 5月歐盟通過 General Data Protection Regulation(GDPR)法案，法案明確指出所有與個人相關的信息都是個人數據，對數據的使用行為必須要有用戶的明確授權與同意。</blockquote><p>在這樣的挑戰下，Google 在 2016 年提出了一個嶄新的概念「聯盟式學習（Federated Learning）」，資料不需要離開設備端各自在自己的設備訓練模型，並且通過特定的加密的機制在雲上建立一個共有的模型與進行模型的更新，用以改善產品設備的品質，透過這樣子的聯盟式學習的概念所有的訓練數據都仍然保留在原本的設備上。</p><h3>二、什麼是聯盟式學習</h3><p>假設有不同的企業 A、B 與 C，這些企業都有相同的特徵（feature） 與不同的客戶（sample），根據隱私權的相關法規是不能將雙方的數據加以合併，因為他們各自的客戶並沒有同意授權讓這些企業這樣做，在這樣數據不充分的狀態下其實是很難建立一個效果好的模型。</p><p>而聯盟式學習的目的，就是希望做到各個企業的自有的數據不出自己的公司各自訓練模型，並且通過加密的機制建立一個共有的模型與進行模型的更新，這不僅保護了隱私，還降低大量數據集中傳輸的成本。</p><blockquote>聯盟式學習強調的是數據擁有方在不用給出自己的數據的情況下，也可進行訓練得到模型。</blockquote><p>此外，Google 為了讓大眾更容易了解聯盟式學習的概念，也出版了一版漫畫：</p><p><a href="https://federated.withgoogle.com/">Federated Learning</a></p><h3>三、 聯盟式學習的種類</h3><p>聯盟式學習又根據資料的型態分為橫向聯盟式學習（horizontal federated learning）、縱向聯盟式學習（vertical federated learning）、聯盟式遷移學習（federated transfer learning）。</p><h4>🌿 橫向聯盟式學習</h4><p>橫向聯盟式學習適用於特徵重疊性高且樣本重疊少時的情境，比如不同地區的醫院，他們的業務相似（特徵相似），但病患不同（樣本不同）。</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*IEZFpz4MWZmKboZSGb9OmQ.png" /><figcaption>圖片來源：<a href="https://arxiv.org/pdf/1902.04885.pdf">Federated Machine Learning: Concept and Applications</a></figcaption></figure><p>首先， 每個參與方會得到同樣的模型定義，並且統一模型的初始化參數。<br>不斷迭代以下步驟訓練模型：<br> ① 每個參與端（企業或設備用戶）利用自己的資料訓練模型，各自計算梯度，再將加密過的梯度修正量上傳至 Server。<br> ② 由 Server 整合各參與端的梯度並且更新模型。<br> ③ Server 回傳模型更新後的梯度給各個參與端。<br> ④ 參與端更新各自的模型。</p><p>目前橫向聯盟式學習因為他的架構簡單，因此也被運用的最為廣泛。</p><h4>🌿 縱向聯盟式學習</h4><p>縱向聯盟式學習適用於樣本重疊多且特徵重疊少的情境，而其中某一方還擁有模型需要預測的標籤（label）。比如同一地區的醫院和藥局，他們接觸的病患都為該地區的居民（樣本相同），但業務不同（特徵不同）。</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*meI6kd87nAl-ABG8fM5Ucg.png" /><figcaption>圖片來源：<a href="https://arxiv.org/pdf/1902.04885.pdf">Federated Machine Learning: Concept and Applications</a></figcaption></figure><p>基於隱私權規範與安全考量，不能直接公開交換數據。因此， A與B需要利用加密樣本對齊的技術（Encrypted entity alignment）確認雙方共有的客戶，之後再利用這些數據進行加密訓練。</p><p>A：參與端 1、B：參與端 2、C：協作者<br>① C 將公鑰發給 A 和 B（公鑰是用來加密的）。<br>② A 和 B 分別計算和自己相關的特徵中間結果，並加密交互，用來求得各自梯度和損失值（loss）。<br> ③ A 和 B 分別將計算後且加密的梯度修正量傳送給 C，同時 B 根據標籤計算損失值並把結果彙整給 C。<br> ④ C 將解密後的梯度修正量分別回傳給 A 和 B，更新雙方的模型。</p><p>在整個過程中參與方都不知道另一方的數據和特徵，且訓練結束後參與方只會得到自己估計的模型參數。<strong>縱向聯盟雖然解決特徵重疊少的問題，但是只要參與端越多流程架構就會越複雜，更難以執行。</strong></p><h4>🌿 聯盟式遷移學習</h4><p>當擁有數據者間的特徵和樣本重疊都很少時，則是可以使用聯盟式遷移學習， 這種狀況就不會針對數據進行切割，而會引入遷移式學習（transfer learning）來克服資料與標籤不足的狀況。</p><h3>四、聯盟式學習與分散式機器學習的比較</h3><p>聽到這裡一定不免懷疑，這不就是分散式機器學習（distributed ML）的概念嗎？兩者到底差再哪裡呢？這裡就根據 <a href="https://arxiv.org/pdf/1902.04885.pdf">Federated Machine Learning: Concept and Applications</a> 統整了兩者的差異：</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/992/1*MJivf4hVf8zc971GyJjXUw.png" /></figure><p>橫向聯盟式學習跟分散式機器學習最大的差別在於它的每個結點（node）都是獨立的參與端（data owner），因此在建模的過程中可能會因為參與端（data owner）的偏好而有動態的改變，並且整個學習過程都受到加密的保護。但基本上我認為橫向聯盟式學習聯盟式學習的概念就是加密過後的分散式學習而已 😕。</p><h3>五、聯盟式學習在Google的應用實例</h3><p>Google 在 Android 的 Google Gboard 鍵盤中，採用了橫向聯盟式學習的技術。Gboard 主要會根據使用者打的單詞推薦下個可能打出來的單詞，來加快使用者的打字速度。導入在 Gboard 的聯盟式學習則會根據設備上的歷史記錄，在下一次迭代中改進模型的性能。</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/200/0*6BrNjQFyXyg6g6Sl.png" /><figcaption>Photo by Edho Pratama on Unsplash</figcaption></figure><p>但其實 Google 將聯盟式學習應用在 Gboard 產品上，也碰到了許多需要克服的困難與技術挑戰（例如：數據以非常不均勻的方式分佈在數百萬個手機中），而 Google 也承認並不是所有的機器學習應用都適用於聯盟式學習。</p><p>此外，Google 也提供了聯盟式學習相關的範例程式碼，簡單的教導大家如何在自己的資料集使用聯盟式學習，在 <a href="https://www.tensorflow.org/federated">TensorFlow</a> 的網站上都能找到相關的資訊與程式碼。</p><p>若想更深入了解 Google 在聯盟式學習的應用可以參考2019年 Krzysztof Ostrowski 在 TensorFlow Dev Summit 的主題演講《<a href="https://www.youtube.com/watch?v=1YbPmkChcbo">TensorFlow Federated (TFF): Machine Learning on Decentralized Data</a>》。</p><h3>五、 總結</h3><p>雖然聯盟式學習解決了部分隱私權的問題，但是聯盟式學習仍然有許多挑戰需要要克服：</p><ol><li>如何打破企業間的數據孤島競爭？</li><li>如何說服擁有敏感數據端的人加入？</li><li>若中途若有參與端退出，該如何維持模型的效能與穩定度？</li></ol><p>因此，為了克服這些困難，Google 仍然繼續深入研究與隱私權相關的機器學習技術，同時他們也持續致力於推廣與擴大聯盟式學習應用範圍。</p><p>最後，感謝你認真讀完這篇文章，如果你喜歡我的文章，請給我一些<strong>「掌聲</strong>👏🏻<strong>」</strong>與<strong>「追蹤我的專欄」</strong>，你的支持會是我持續分享的動力。若有希望我分享的主題，也歡迎在下面留言 📝讓我知道。</p><h3>參考資料</h3><ol><li><a href="https://ai.googleblog.com/2017/04/federated-learning-collaborative.html">https://ai.googleblog.com/2017/04/federated-learning-collaborative.html</a></li><li>Qiang Yang, Yang Liu, Tianjian Chen, Yongxin Tong. <a href="https://arxiv.org/pdf/1902.04885.pdf">Federated Machine Learning: Concept and Applications.</a> <em>ACM Transactions on Intelligent Systems and Technology 10(2):1–19, 2019.</em></li></ol><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=b4cc5af7a9c0" width="1" height="1" alt=""><hr><p><a href="https://medium.com/sherry-ai/%E8%81%AF%E7%9B%9F%E5%BC%8F%E5%AD%B8%E7%BF%92-federated-learning-b4cc5af7a9c0">聯盟式學習（Federated Learning）</a> was originally published in <a href="https://medium.com/sherry-ai">Sherry.AI</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[XAI| 模型可解釋性的重要]]></title>
            <link>https://medium.com/sherry-ai/xai-%E6%A8%A1%E5%9E%8B%E5%8F%AF%E8%A7%A3%E9%87%8B%E6%80%A7%E7%9A%84%E9%87%8D%E8%A6%81-a0bbaa649978?source=rss----b96e9d51eed---4</link>
            <guid isPermaLink="false">https://medium.com/p/a0bbaa649978</guid>
            <category><![CDATA[explainable-ai]]></category>
            <category><![CDATA[data-science]]></category>
            <category><![CDATA[black-box]]></category>
            <category><![CDATA[bias]]></category>
            <category><![CDATA[xai]]></category>
            <dc:creator><![CDATA[Sherry Su]]></dc:creator>
            <pubDate>Sat, 18 Jan 2020 11:25:18 GMT</pubDate>
            <atom:updated>2021-07-01T07:38:29.453Z</atom:updated>
            <content:encoded><![CDATA[<h4>人工智慧所面臨的挑戰，如何打開黑盒子？</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*lAQloN9UuWUCB2vdumd7Iw.png" /></figure><blockquote>大多數的情況下，高準確率的模型往往過於複雜，導致人類難以理解其決策與行動背後的原因，因此機器學習（例如：深度學習）常被視為黑盒子（black box）。那麼什麼是可解釋 AI（Explainable AI，又稱 XAI）？若是模型「缺乏解釋性」又會帶來什麼影響呢？</blockquote><h3><strong>一、介紹</strong></h3><p>2016年是人工智慧（AI）的最閃耀輝煌的一年，AlphaGo 就是一個最經典的例子，AlphaGo 使用了30萬張的棋譜，接連戰勝了2位頂尖棋手，讓大家看見 AI 的無窮的潛力。而大數據的環境下，使得 AI 成為現今最熱門的應用方法，不論是運輸業、金融業與醫療等都漸漸導入相關的技術。AI 正在改變著我們的生活習慣，甚至輔助企業做決策。但是，當前的 AI 技術仍然有個致命的缺點：缺乏解釋性。而盲目地相信與迷信模型所下的決策是非常危險的，可能會產生負面影響或完全錯誤的結果。</p><p>&gt; 想瞭解更多 AI 正面臨的挑戰與瓶頸，可參考以下的文章：</p><p><a href="https://medium.com/sherry-ai/%E9%81%8Eai%E6%99%82%E4%BB%A3-the-era-of-over-ai-9489b65c2804">過AI時代| AI所面臨的瓶頸</a></p><h3>二、為什麼需要打開黑盒子</h3><p>大多數的資料科學家在解決預測問題時，往往傾向關注準確度的指標（例如：RMSE、Recall 等等），就連 Kaggle 競賽平台的評分機制也是。而高準確度的模型往往過於複雜（尤其是深度類神經網絡，由於多個隱藏層與大量非線性性質的權重，幾乎難以理解輸入和結果輸出之間的關係），難以理解其演算法的決策方式， 因此常被視為黑盒子（black box）。</p><blockquote>幾年前在工作面試時，我曾問面試官（資料科學家）對於黑盒子不可解釋性的問題，有什麼看法？他們的回答是：若你建模的目的只是要預測，那麼解釋性似乎就沒那麼重要了！但真的是這樣嗎？</blockquote><p>當然，準確度固然重要，但這些指標只能夠提供模型的部分訊息，資料中的相關性與隱藏的訊息是無法用準確度表達。 如果想將 AI 技術推廣到更多領域，只要是具影響力的應用，例如協助醫療診斷，又或者是協助判斷是否假釋囚犯等等，就必須試圖理解模型是如何做出決策，促進大眾對於模型的信任感。以下歸納了幾個為什麼需要解釋模型的的原因：</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*C67pykTw55u3broB.JPG" /><figcaption>可解釋AI的概念。圖片來源： <a href="https://www.darpa.mil/program/explainable-artificial-intelligence">https://www.darpa.mil/program/explainable-artificial-intelligence</a></figcaption></figure><h4>・判斷結果是否合理，進而改善模型</h4><p>若能解釋模型如何做出判斷，我們就能藉此判斷模型的決策是否合理，進而修正模型， 確保模型的可靠性。尤其是當資料中存在偏差時（bias），模型缺乏解釋的話，是很難發現模型有問題。</p><p>舉個例子來說，若今日我們建立的一個模型來辨識「狼」與「哈士奇」（訓練資料集來源是狼與哈士奇的圖片庫），而在驗證後此模型時的準確度高達99.9%。</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/470/1*4dLn2cewAzg2nC39CDDWNQ.png" /><figcaption>狼（左）與哈士奇（右）。圖片來源: <a href="https://pxhere.com/zh/photo/774696">https://pxhere.com/</a></figcaption></figure><p>但是當模型辨識下面這張圖時，模型卻將「哈士奇」辨識成「狼」，這時若模型缺乏解釋力，我們便很難理解模型為什麼會誤判，進而改良下一個版本的模型。但當我們嘗試著去理解模型時（假設模型可以解釋被理解），竟然發現原來模型判斷的依據是圖片中是否存在「雪地」，而不是狼與哈士奇的特徵差異（例如：眼睛顏色）。</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/482/1*BklPDJqyLXWMF_iMjyjS6w.png" /><figcaption>哈士奇被判別為狼(左)，解釋誤判原因（右）。 圖片來源：“Why Should I Trust You?” Explaining the Predictions of Any Classifier — Ribeiro, Singh, Guestrin (2016)</figcaption></figure><p>進一步去釐清原因，才發現原來資料集中狼圖片的背景幾乎都是雪地，而哈士奇的圖片很少有雪地，在不知不覺的情況下我們將模型訓練成了一個雪地辨識器。如果資料科學家只關注準確度的指標，是非常難發現這樣子的問題。但是透過可解釋性的方法，資料科學家可以更容易理解模型，進而減輕各類偏差與問題。</p><p>近期也發現有許多模型，因為資料中所存在的偏差與偏見，導致模型缺乏中立性並且無意間迫害弱勢族群的例子，例如： 性別歧視、種族歧視等。對於資料偏差所造成的社會影響，想要有更進一步的了解的人，可以參考2017年 Kate Crawford 在 NIPS 的主題演講《<a href="https://www.youtube.com/watch?v=fMym_BKWQzk">The Trouble with Bias</a>》。</p><h4>・<strong>找出新現象，推論因果關係</strong></h4><p>模型的可解釋性能幫助人類從大量的歷史資料中發現新現象，萃取有用的新知識，例如：找出可能影響肺癌的潛在因子。由觀察到的相關性(correlation)中產生一些假設，再藉由實證科學的驗證來推論因果關係(causation)，讓人類對於世界有多一點點的了解。</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/459/0*DqdYES1B94TJQxcd.png" /><figcaption>圖片來源: <a href="https://imgs.xkcd.com/comics/correlation.png">https://imgs.xkcd.com/comics/correlation.png</a></figcaption></figure><blockquote>有統計背景的人應該都能理解：<strong>相關性並不能代表因果關係</strong>。而因果關係的發掘遠比相關性來的重要，但因果關係是需要經過實證科學的驗證，因此並不是每次所建構的模型都能揭露因果關係。</blockquote><h4>・<strong>符合法規規範</strong></h4><p>隨著AI的演進，法規對於資料隱私權與 AI 的規範更加重視。在2018年5月，歐盟通過 GDPR 法案，其中「透明處理原則」就賦予民眾有權要求解釋（right to explanation）、拒絕適用（right not to be subject）的權力。因此，使得可解釋 AI 有迫切的需求。</p><h3>三、準確度與可解釋性的權衡</h3><p>如果可解釋 AI 這麼的重要，我們提高模型可解釋性不就好了嗎？但我們要知道天下沒有白吃的午餐，解釋性與準確性往往需要做出取捨。通常解釋力高的模型，由於結構簡單（例如：線性回歸）難以處理比較複雜的問題；反之，複雜的模型可以得到較高的準確度，但由於模型結構複雜，人類難以理解特徵與結果的關係。而為了解決上述的取捨問題，資料科學家主要朝著兩個方向解決解釋性的問題：</p><ol><li>發展全新的模型框架（同時具備高解釋性與準確性）</li><li>發展模型的事後可解釋方法（找出解釋複雜模型的方法）</li></ol><figure><img alt="" src="https://cdn-images-1.medium.com/max/796/1*4JtHxEHqM9RlyYgxLjiAnw.png" /><figcaption>準確度與可解釋性的關係圖。</figcaption></figure><h3>四、可解釋性方法的分類準則</h3><p>在Christoph Molnar所撰寫的《<a href="https://christophm.github.io/interpretable-ml-book/">Interpretable Machine Learning: A Guide for Making Black Box Models Explainable</a>》書中提到了3個模型解釋方法的分類標準：</p><ol><li><strong>本質或事後可解釋性（Intrinsic or post hoc）:</strong>本質可解釋性指的是基於模型簡單的架構，而模型本身就能解釋（例如：線性回歸、決策樹）。事後可解釋性指的是模型訓練後利用可解釋的方法來進行解釋（例如：特徵重要性、 PDP）。</li><li><strong>是針對特定模型的還是通用的（Model-specific or model-agnostic）:</strong><br> 特定模型的解釋方法指的是解釋方法僅限於特定的模型類，這些方法依賴於模型的本身功能（例如：決策樹的規則、線性回歸的權重等等）。 模型無關的解釋方法指的是與模型架構無關，可以在任何模型上使用，並且屬於事後可解釋性。</li><li><strong>局部還是全域解釋性（Local or global）:</strong> 解釋方法是解釋單個預測還是解釋整個模型行為？還是介於兩者之間？。</li></ol><blockquote><strong>補充說明</strong><br>・可解釋性分為兩個部分，分別為模型透明度和特徵可解釋。<br>・模型透明度指的是模型是根據什麼演算法和特徵創建。<br>・現今用來解釋「黑盒子」的方法大多屬於事後且通用的。</blockquote><h3>五、總結</h3><p>為了使 AI 推廣到更多的領域，模型可解釋性的發展至關重要，因為有良好的解釋，才能使大眾信賴模型的結果與提升模型的泛化能力。最後，在 AI 當道的時代，人類最重要的是要有思辨的能力，千萬不能盲目或迷信的相信 AI。</p><p>看完上述討論，一個未經過理解的模型，你還敢輕易地相信嗎？下一篇文章中將會跟大家分享打開黑盒子的方法，例如：LIME、SHAP等等。</p><ul><li><a href="https://medium.com/sherry-ai/xai-%E5%A6%82%E4%BD%95%E5%B0%8D%E9%9B%86%E6%88%90%E6%A8%B9%E9%80%B2%E8%A1%8C%E8%A7%A3%E9%87%8B-dd2aa0b58a19">XAI| 如何對集成樹進行解釋？</a></li><li><a href="https://medium.com/sherry-ai/xai-%E7%B4%AF%E7%A9%8D%E5%B1%80%E9%83%A8%E6%95%88%E6%87%89-ale-e6e2bc0fbeeb">XAI| 累積局部效應（ALE）</a></li><li><a href="https://medium.com/sherry-ai/xai-%E9%80%8F%E9%81%8E-lime-%E8%A7%A3%E9%87%8B%E8%A4%87%E9%9B%9C%E9%9B%A3%E6%87%82%E7%9A%84%E6%A8%A1%E5%9E%8B-23898753bea5">XAI| 透過 LIME 解釋複雜難懂的模型</a></li></ul><p>最後，感謝你認真讀完這篇文章，如果你喜歡我的文章，請給我一些<strong>「掌聲</strong>👏🏻<strong>」</strong>與<strong>「追蹤我的專欄」</strong>，你的支持會是我持續分享的動力。若有希望我分享的主題，也歡迎在下面留言 📝讓我知道。</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=a0bbaa649978" width="1" height="1" alt=""><hr><p><a href="https://medium.com/sherry-ai/xai-%E6%A8%A1%E5%9E%8B%E5%8F%AF%E8%A7%A3%E9%87%8B%E6%80%A7%E7%9A%84%E9%87%8D%E8%A6%81-a0bbaa649978">XAI| 模型可解釋性的重要</a> was originally published in <a href="https://medium.com/sherry-ai">Sherry.AI</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[過AI時代| AI所面臨的瓶頸]]></title>
            <link>https://medium.com/sherry-ai/%E9%81%8Eai%E6%99%82%E4%BB%A3-the-era-of-over-ai-9489b65c2804?source=rss----b96e9d51eed---4</link>
            <guid isPermaLink="false">https://medium.com/p/9489b65c2804</guid>
            <category><![CDATA[資料科學]]></category>
            <category><![CDATA[ai]]></category>
            <category><![CDATA[人工智慧]]></category>
            <category><![CDATA[black-box]]></category>
            <category><![CDATA[data-science]]></category>
            <dc:creator><![CDATA[Sherry Su]]></dc:creator>
            <pubDate>Fri, 10 Jan 2020 08:57:10 GMT</pubDate>
            <atom:updated>2020-04-13T09:24:23.934Z</atom:updated>
            <content:encoded><![CDATA[<h3>過AI時代| AI 所面臨的瓶頸</h3><h4>The Era of Over AI</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*rF2e3jGQiHRTs_IDTiEmPw.png" /></figure><blockquote>在這樣的世代，我們真的都做好迎接 AI 的準備了嗎？還是大家只是一味地吹捧？不可不正視的是 AI 仍然存在著許多缺陷，導致 AI 不夠彈性靈活，想想又有多少的 AI 應用實際落地？</blockquote><h3>一、前言</h3><p>科技潮流如同流行服飾般變化莫測，如今科技的當紅炸子雞唯 AI 技術莫屬，彷彿任何的技術只要沒有沾到 AI 的邊就顯得不夠新潮、不夠有特色。當我們看到 AI 在某些領域的傲人表現時，是否同時也忽略了 AI 的缺陷？</p><h3>二、介紹</h3><p>回顧 AI 的發展，其實 AI 經歷過了兩次低峰、三次高峰，而這兩次低峰是因為演算法、運算力以及數據缺乏所造成。現在則因為大數據的環境與 AlphaGo 的成功，使得 AI 在第三個高峰期。於是大家開始期待 AI 在其他領域上的應用也能像 AlphaGo 一樣獲得巨大的成功！但現實是，除了幾個有限的行業外，有許多領域仍然存在著問題（例如：資料品質），導致難以建立起一個理想的模型，使得 AI 非常難落地。因此，本章節將會跟大家分享 AI 現在面臨的困境有哪些？以及帶領大家反思我們是否都做好準備相信 AI 了?</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*4t8tgnTBtyl_ikNyIXxONg.png" /><figcaption>人工智慧AI發展歷程。</figcaption></figure><h3>三、是否該相信AI?</h3><p>AI 與 ML 正改變著我們對於生活的習慣，例如：自動駕駛、無人商店以及智慧醫療等技術的普及漸漸地取代了人類本來的一些技能。而在圖片辨識或是自動駕駛的領域中，還有一些模型達到了 99.9% 的模型準確率。但是心中不免會有個疑問：我是否夠信任由機器學習系統所下的決定呢？又或者問一個更為通俗的問題：若是現在的自動駕駛技術的準確率高達 99.9%，你是否敢讓你的孩子搭乘無人車去上學呢？</p><p>2018 年就曾有新聞報導過特斯拉自撞安全島、Uber 無人駕駛試驗撞死人等等的例子，這邊我們就來討論一下為什麼這些高準確度的自動駕駛系統還會發生這些意外呢？</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/641/1*QwYL-hPIzHQq1VZudD_Yqg.jpeg" /><figcaption>開啟了Tesla的自動輔助駕駛（Autopilot） 行經高速公路後，發生車禍。圖片來源: <a href="https://www.inside.com.tw/article/16258-tesla-autopilot-lawsuit-by-huang-family">https://www.inside.com.tw/article/16258-tesla-autopilot-lawsuit-by-huang-family</a></figcaption></figure><p>即便模型的準確率再高，但現有的 AI 技術並不像人類所想的這麼「聰明」與「穩定」，舉個例子下面最左邊一張貓熊（panda）的圖片，不論人眼或是 AI（有 57.7% 的信心是貓熊）都能夠正確的辨識出來。但是當我們在這張圖片中加上微小的雜訊（noise）之後，對人眼來說圖片看起來是幾乎一樣的，仍然還是一張貓熊的圖片，然而AI的影像辨識系統卻將他辨識成長臂猿（gibbon）。</p><p>這是因為類神經網絡（Neural Network）經過背後複雜的矩陣運算後，很有可能會將雜訊過度放大，導致辨別錯誤。</p><blockquote>AI 的演算法只會忠實的呈現背後運算之後的結果，而不會「聰明地」去判斷這張圖片的原貌。</blockquote><figure><img alt="" src="https://cdn-images-1.medium.com/max/696/0*szfmF1-8IGDNEFLF.jpg" /><figcaption>圖片來源： <a href="https://christophm.github.io/interpretable-ml-book/adversarial.html">https://christophm.github.io/interpretable-ml-book/adversarial.html</a></figcaption></figure><p>再來我們看看交通號誌的例子，添加微小的雜訊後， 導致模型將「停止」標誌錯誤分類為「最大速限100」！這樣子的錯誤判斷在自動駕駛系統中是非常危險且致命的。</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*cG8EoOwDVvSN5Y2a.png" /><figcaption>圖片來源： <a href="https://deep.ghost.io/robust-attribution/">https://deep.ghost.io/robust-attribution/</a></figcaption></figure><p>而我們除了關注數位攻擊（digital attack）之外，更應該思考現實生活中是否也會有類似的事件發生？像是交通號誌牌上的塗鴉或破損都是現實中可能發生的情況，這些天然的添加物對於模型來說都是無法避免的雜訊。</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/399/1*e4ek2hzu6BUptkdVYpYlOA.png" /><figcaption>實際交通號誌的狀況。（左：貼紙塗鴉；右：不明的孔洞）</figcaption></figure><p>經過上述的例子，還能單憑模型準確率就輕易相信模型嗎？</p><h3>四、黑盒子所帶來的問題</h3><p>隨著AI的發展，人們不斷地追求模型的高準確率，但擁有高準確率的模型往往過於複雜，導致難以理解其背後的原理，因此常被視為黑盒子（black box）。雖然有些人認為只要模型準確度高就行了，為什麼還需要去解釋結果呢？然而，不論在法規與倫理的規範下，只要攸關到人們的生活，包含醫療診斷、詐欺評估等，大多數的決策總是需要有理論基礎的支撐與適當的解釋，才能確保人們的安全與其結果的合理性。</p><p>還有當前訓練模型的資料集大都來自人類社會，那麼只要這個社會存在著偏見，模型就會重現這些偏見，而這個現象是很常見的！如果模型無法解釋，是非常難發覺資料中所存在的偏差，因此容易使得模型重現這些偏見。</p><p>舉個例子來說，像是在 2015 年，Google Photos 將黑人辨識成 「大猩猩」，迫使 Google 出面道歉，而 Google 唯一的修正辦法卻是將大猩猩的標籤刪除，正因為模型無法解釋，使得Google難以理解為什麼模型會有這樣子的誤判。尤其在醫療上的應用，若模型無法解釋或未經過實證科學的驗證，患者可能無法輕易判別模型所下的建議是否合理。因此，若不正視可解釋性，將會帶給社會極大的負面影響。</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/468/1*3OXMhdVw3qKHTDbnNbGtig.png" /><figcaption>Google Photos將黑人誤判成大猩猩。</figcaption></figure><p>當然並不是每個模型都需要解釋，通常符合以下的條件之模型解釋力是可以忽略的：<br>1. 模型犯錯不會造成嚴重後果（例如：商品推薦系統）<br>2. 模型已經有廣泛的研究與評估。</p><p>模型的理解和解釋性，可以協助資料科學家了解此模型的合理性、發現更多的新現象以及訓練資料是否有偏差等等。模型解釋性的重要，在下一篇將會有更詳細的介紹。</p><p><a href="https://medium.com/sherry-ai/xai-%E6%A8%A1%E5%9E%8B%E5%8F%AF%E8%A7%A3%E9%87%8B%E6%80%A7%E7%9A%84%E9%87%8D%E8%A6%81-a0bbaa649978">XAI| 模型可解釋性的重要</a></p><h3>五、隱私權的限制</h3><p>隨著大數據的發展，重視數據隱私與安全已經成為的世界性的趨勢，因此在隱私權、安全規範與流程因素，即使是在同一個公司的不同部門，數據整合也正面臨著重重的阻力，很難有效的共享，而在這樣數據不充分的狀態，其實是很難建立一個效果好的 AI 模型。</p><p>每一次的數據洩漏都會引起極大的關注。像是在 2018 年 3 月，劍橋諮詢公司透過 FaceBook 的數據共享漏洞，收集了 5000 萬用戶信息，據說有可能利用這些信息操控美國總統競選，造成負面的社會影響。事件曝光後，引發一系列後續問題。Google DeepMind 也曾因為未取得病人同意，直接進行醫療研究，而鬧上法庭。同年的 5 月，歐盟通過 General Data Protection Regulation（GDPR）法案，法案指出：所有與個人相關的信息都是個人數據，對數據的使用行為必須要有用戶的明確授權，將隱私權的保護提高到了更高的標準。</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*kA2SZl_WbMhumxok" /><figcaption>Photo by <a href="https://unsplash.com/@konkarampelas?utm_source=medium&amp;utm_medium=referral">Kon Karampelas</a> on <a href="https://unsplash.com?utm_source=medium&amp;utm_medium=referral">Unsplash</a></figcaption></figure><p>雖然台灣的健保資料庫可以得到診斷、用藥，但沒有病史文字，檢驗數值和影像也不完整。再加上 GDPR 的準則與台灣的現行法規，是不允許醫院在沒有經過病人的同意下，將各家醫院的數據加以合併，即使是為了學術研究也是違法的。</p><p>在這樣子隱私權意識抬頭的世代，也使得 AI 陷入發展的瓶頸， 有鑑於此，目前 Google 等大廠以及研究機構到今日仍然不斷的在研究如何不違反隱私權的規定，又能有效取得數據的相關技術。</p><h3>六、總結</h3><p>在這樣子的過 AI 時代，身為資料科學家應該全面了解所使用的模型的優缺點，如果只盲目的追求 AI 的潮流，拋棄所有的老方法，如果只會刷榜追求準確率，卻不正視 AI 現在所面臨的瓶頸與局限性，AI 的下一場寒冬可能就在不久的將來，更難保證某些領域的應用不會有悲劇的發生。</p><p>最後，感謝你認真讀完這篇文章，如果你喜歡我的文章，請給我一些<strong>「掌聲</strong>👏🏻<strong>」</strong>與<strong>「追蹤我的專欄」</strong>，你的支持會是我持續分享的動力。若有希望我分享的主題，也歡迎在下面留言 📝讓我知道。</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=9489b65c2804" width="1" height="1" alt=""><hr><p><a href="https://medium.com/sherry-ai/%E9%81%8Eai%E6%99%82%E4%BB%A3-the-era-of-over-ai-9489b65c2804">過AI時代| AI所面臨的瓶頸</a> was originally published in <a href="https://medium.com/sherry-ai">Sherry.AI</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
    </channel>
</rss>