雷鋒網 AI 科技評論按:深度學習模型運行需要大量的計算、內存和功耗,為了解決模型模型運行的瓶頸,研究者提出了一系列模型壓縮方法,其中就包括模型剪枝,能夠有效地減小內存、功耗,提高計算效率。
然而,「每一枚硬幣都有正反兩面」,模型剪枝在獲得諸多益處的同時,勢必也會造成一定的「舍」。這些損失到底是什麼?針對不同的模型以及在不同的場景下,模型剪枝產生的影響又有何不同呢?
對此,谷歌受「腦損傷」的啟發,在最新的研究工作《SELECTIVE BRAIN DAMAGE: MEASURING THE DISPARATEIMPACT OF MODEL PRUNING》中提出了有效的測量方法。
論文地址:https://arxiv.org/abs/1911.05248實現代碼 GitHub 地址:https://github.com/google-research/google-research/tree/master/pruning_identified_exemplars下文為這項工作的官方解讀:
一、深層神經網絡剪枝會丟失什麼?
在從嬰兒到成年這段期間,大腦的突觸數量先增加然後下降。突觸修剪(Synaptic Pruning)通過去除多餘的神經元並增強對環境最有用的突觸連來提高效率。
人類在2歲至10歲之間會失去 50%的全部突觸,但大腦仍會繼續工作[1]。「用它或丟掉它」一詞經常用來描述突觸修剪學習過程中的環境影響,但關於突觸修剪究竟使大腦丟失了什麼,人們卻鮮有科學共識[2,3]。
1990年,一篇題為「 最佳腦損傷」(《最優腦損傷》)的論文頗受歡迎 [4]。該論文是第一批 [5,6,7]提出——我們可以通過類似於生物突觸修剪的方式來修剪深度神經網絡的「過度能力」的論文。
在深度神經網絡中,研究者可以通過將權重值設置為零,來修剪(在神經網絡中的描述為「剪枝」)或從網絡中刪除的權重。
如今我們有很多合適的剪枝方法可以選擇,並且剪枝模型可能已經應用在你手機中的許多算法上。
從表面上看,使用剪枝方法就能確保你可以解決幾乎所有問題。最先進的剪枝方法去除了大部分權重,同時最小化top-1 準確度的降低[8]。這些新的精簡網絡需要更少的內存和能源消耗,並且能更快地進行預測。
所有的這些特性使剪枝後的模型非常適合用於將深度神經網絡部署到資源受限的環境中。
圖1 突觸修剪去除了多餘的神經元並增強對環境最有用的連接。(圖片由Seeman提供,1999年)
但令人困惑的是:剪枝網絡的能力似乎對泛化性能的影響很小。將 Top-1 準確度的性能成本平攤到所有類別後似乎是很小的,但如果成本僅集中在少數幾個類別中該怎麼辦? 剪枝是否會對某類樣本或類別產生不成比的影響?
在深度神經網絡用於敏感任務(例如招聘 [9,10]、醫療保健診斷 [11、12] 或自動駕駛汽車 [13,14])時,了解這些取捨是至關重要的。
對於這些任務,引入剪枝方法可能與避免區別對待受保護屬性和/或需要保證某些特定類別的召回水平[15、16、17、18、19]的公平目標相悖。由於將模型部署到手機或嵌入式設備的資源限制,這些領域中已被普遍應用了剪枝方法[20]。
在這項工作中我們提出了一個正式的框架,該框架用於識別在剪枝和未剪枝模型之間的有巨大分歧或泛化能力差異的類別和圖像。我們發現引入稀疏性對剪枝已識別的示例(Pruning Identified Exemplars ,PIE)和類別的系統影響更大。
我們工作的主要發現概括如下:
1、剪枝最好被描述為「選擇性腦損傷」。剪枝對每個類別的影響都不一樣;稀疏性的引入對一小部分類別會產生不成比的系統影響。
2、我們稱受剪枝影響最大的示例為「 剪枝已識別的示例」(PIE),剪枝和未剪枝模型對它進行分類都更加困難。
3、剪枝會大大降低圖像損壞和自然對立圖像的穩健性。
二、PIE:剪枝已識別的示例
PIE 是在一組獨立訓練的剪枝模型和未剪枝模型之間最頻繁產生不同的預測結果的圖像。我們聚焦於研究開源數據集(例如 ImageNet ),發現對於剪枝模型和未剪枝模型而言,對 PIE 圖像進行分類都更加困難。
將測試集限制為隨機的 PIE 圖像樣本會嚴重降低 top-1 的準確度,從測試集中刪除 PIE 可以提高剪枝模型和未剪枝模型的 top-1 準確度。剪枝似乎使深度神經網絡「忘記」了已經存在的較高預測不確定性的樣本。
圖2~圖4展示了每個類別的 ImageNet PIE 樣本,每個圖下方的標註包括的信息有:(1)參考正確標註,(2)基線未剪枝模型預測標註,(3)最常用的 ResNet-50 剪枝模型預測標註。
(1) (2) (3) (4)
(5) (6) (7) (8)
圖2 非典型示例: 從給定類別的圖像分布來看,人類會將圖像視為不尋常或異常的PIE樣本。每張圖片的標註結果如下:
(1)參考正確標註: 浴缸,未剪枝模型預測標註: 浴缸,剪枝模型預測標註: 黃瓜
(2)參考正確標註: 馬桶座圈,未剪枝模型預測標註: 馬桶座圈,剪枝模型預測標註: 摺椅
(3)參考正確標註: 塑膠袋,未剪枝模型預測標註: 長袍,剪枝模型預測標註: 塑膠袋
(4)參考正確標註: 濃咖啡,未剪枝模型預測標註: 濃咖啡,剪枝模型預測標註: 紅酒
(5)參考正確標註: 萬聖節南瓜,未剪枝模型預測標註: 萬聖節南瓜,剪枝模型預測標註: 燈罩
(6)參考正確標註: 培養皿,未剪枝模型預測標註: 濃咖啡,剪枝模型預測標註: 培養皿
(7)參考正確標註: 豪華轎車,未剪枝模型預測標註: 鮑勃雪橇,剪枝模型預測標註: 雪犁
(8)參考正確標註: 搖椅,未剪枝模型預測標註: 搖椅,剪枝模型預測標註: 理髮椅
(1) (2) (3) (4)
(5) (6) (7) (8)
圖3 細粒度分類:圖像集描繪了語義上與其他各種類別接近的物體的 PIE 樣本(例如,石蟹和招潮蟹,鐵甲和護胸甲),每張圖片的標註結果如下:
(1)參考正確標註: 咖啡壺,未剪枝模型預測標註: 咖啡機,剪枝模型預測標註: 咖啡壺
(2)參考正確標註: 鐵甲,未剪枝模型預測標註: 護胸甲,剪枝模型預測標註: 鐵甲
(3)參考正確標註: 搖籃,未剪枝模型預測標註: 搖籃車,剪枝模型預測標註: 搖籃
(4)參考正確標註: 谷,未剪枝模型預測標註: 谷,剪枝模型預測標註: 高山
(5)參考正確標註: 灰鯨,未剪枝模型預測標註: 灰鯨,剪枝模型預測標註: 虎鯨
(6)參考正確標註: 屏幕, 未剪枝模型預測標註: 屏幕,剪枝模型預測標註: 電視
(7)參考正確標註: 聖誕襪,未剪枝模型預測標註: 襪子,剪枝模型預測標註: 聖誕襪
(8)參考正確標註: 防浪堤,未剪枝模型預測標註: 湖邊,剪枝模型預測標註: 海濱
(1) (2) (3) (4)
(5) (6) (7) (8)
圖4 抽象分類:分類對象是抽象形式的 PIE 樣本,例如使用不同材質的繪畫,繪圖或渲染,每張圖片的標註結果如下:
(1)參考正確標註: 衛生紙,未剪枝模型預測標註: 浴巾,剪枝模型預測標註: 大白鯊
(2)參考正確標註: 菜花,未剪枝模型預測標註:菜花,剪枝模型預測標註: 洋薊
(3)參考正確標註: 草帽,未剪枝模型預測標註: 牛仔帽,剪枝模型預測標註: 麵團
(4)參考正確標註: 汽水瓶,未剪枝模型預測標註: 餐廳,剪枝模型預測標註: 理髮店
(5)參考正確標註: 鬥篷,未剪枝模型預測標註: 防毒面具,剪枝模型預測標註: 護胸甲
(6)參考正確標註: 煤氣泵,未剪枝模型預測標註: 煤氣泵,剪枝模型預測標註: 紅綠燈
(7)參考正確標註: 迷宮,未剪枝模型預測標註: 迷宮,剪枝模型預測標註: 填字遊戲
(8)參考正確標註: 啤酒瓶,未剪枝模型預測標註: 啤酒瓶,剪枝模型預測標註: 防曬霜
為了更好地理解 PIE 為什麼對能力更敏感,我們進行了一項小範圍參與人調研(85名參與者),發現 ImageNet 測試集中描繪多個物體或需要進行詳細分類的 PIE 更容易被錯誤標註。
參與人將一半以上的 PIE 圖像歸類為具有錯誤的參考正確標註或描繪了多個物體。不完整結構數據的過度索引表明,像 ImageNet 這樣的單個圖像分類任務的參數量激增,可能能更好地解決在數據清理管道中的問題。
PIE 對單一圖像分類任務的不完整結構數據過度標註。對於這些圖像,預測正確可能是對看不見數據的泛化能力的不充分估計。例如,大多數人仍然認為,剪枝模型預測西裝而不是新郎的參考正確標註是準確的。新郎穿著西服,因此兩種標註是可以接受的。但是,這種預測將受到諸如 top-1 準確度之類指標的懲罰。
圖5~圖7展示了每類的 ImageNet PIE 樣本。每個圖的標註分為:(1)參考正確標註,(2)未剪枝基線模型預測標註,(3)最常用的 ResNet-50 剪枝模型預測標註。
(1) (2) (3) (4)
(5) (6) (7) (8)
圖5 頻繁同時出現的標註:在同一圖片中多個對象頻繁同時出現的 PIE 樣本。這是因為兩個標註在某些情況下都可以描述同一物體,例如炮彈和飛彈。每張圖片的標註結果如下:
(1)參考正確標註: 理髮椅,未剪枝模型預測標註: 理髮椅,剪枝模型預測標註: 理髮店
(2)參考正確標註: 新郎,未剪枝模型預測標註: 新郎,剪枝模型預測標註: 西裝
(3)參考正確標註: 學位帽,未剪枝模型預測標註: 學位袍,剪枝模型預測標註: 學位帽
(4)參考正確標註: 槳,未剪枝模型預測標註: 槳,剪枝模型預測標註: 獨木舟
(5)參考正確標註: 網球,未剪枝模型預測標註: 網球,剪枝模型預測標註: 網球拍
(6)參考正確標註: 酒瓶 ,未剪枝模型預測標註: 紅酒, 剪枝模型預測標註: 酒瓶
(7)參考正確標註: 炮彈,未剪枝模型預測標註: 飛彈,剪枝模型預測標註: 炮彈
(8)參考正確標註: 玉米,未剪枝模型預測標註: 玉米,剪枝模型預測標註:(玉米)穗
(1) (2) (3) (4)
(5) (6) (7) (8)
圖6 不正確或不充分的參考正確標註:不正確的參考正確標註或人類沒有足夠的信息來判斷正確標註的 PIE 示例。每張圖片的標註結果如下:
(1)參考正確標註: 洗浴盆,未剪枝模型預測標註: 大鍋,剪枝模型預測標註: 炒菜鍋
(2)參考正確標註: 睡袋,未剪枝模型預測標註: 圍裙,剪枝模型預測標註: 圍嘴
(3)參考正確標註: 安全帽 ,未剪枝模型預測標註: 防毒面具,剪枝模型預測標註: 鏡頭蓋
(4)參考正確標註: 臭鼬,未剪枝模型預測標註: 黑腳雪貂,剪枝模型預測標註: 愛斯基摩狗
(5)參考正確標註: 餐廳,未剪枝模型預測標註: 肉餅,剪枝模型預測標註:牛油果醬
(6)參考正確標註: 信封,未剪枝模型預測標註: 啞鈴,剪枝模型預測標註: 瑪卡拉(人名)
(7)參考正確標註: 羊毛,未剪枝模型預測標註: 極,剪枝模型預測標註: 翅膀
(8)參考正確標註: 無線電,未剪枝模型預測標註: 無線電,剪枝模型預測標註: 示波器
(1) (2) (3) (4)
(5) (6) (7) (8)
圖7 多個物體圖像:圖像中描述了多個物體,人類可能認為幾個預測標註都是合適的 PIE 示例(例如,由屏幕、滑鼠和顯示器組成的臺式計算機,理髮店的理髮椅,裝滿紅酒的酒瓶)。每張圖片的標註結果如下:
(1)參考正確標註:麵包店,未剪枝模型預測標註: 法式麵包,剪枝模型預測標註: 麵包店
(2)參考正確標註: 碼頭,未剪枝模型預測標註: 貨櫃船,剪枝模型預測標註: 碼頭
(3)參考正確標註: 錘子,未剪枝模型預測標註: 木匠工具包,剪枝模型預測標註: 錘子
(4)參考正確標註: 小豬存錢罐,未剪枝模型預測標註: 蘑菇,剪枝模型預測標註: 拼圖遊戲
(5)參考正確標註: 牛油果醬,未剪枝模型預測標註: 墨西哥卷餅,剪枝模型預測標註:盤子
(6)參考正確標註: 糖果,未剪枝模型預測標註: 包,剪枝模型預測標註: 雜貨店
(7)參考正確標註: 雙槓,未剪枝模型預測標註: 雙槓,剪枝模型預測標註: 單槓
(8)參考正確標註: 桌上型電腦,未剪枝模型預測標註: 屏幕,剪枝模型預測標註: 監控
對現實世界數據集的正確分類風險,通常要比正確區分槳或牛油果醬要高得多。對於如患病風險分層或醫療診斷[21]的敏感任務,我們的結果表明,在部署剪枝的模型之前應謹慎行事。
PIE 提供了一種通過覆蓋模型發現對於人類專家很困難的一小部分示例的工具,使預測標註更加接近源數據。這對於創建「人在迴路」(human-in-the-loop)決策可能非常有價值,在這種決策中,某些非典型示例會重新路由以供人工檢查[22] 或作為基本預測工具來輔助模型解釋[23,24,25,26]。
檢查 PIE 圖像可以幫助我們發現最難的模型輸入類型。PIE 圖像對於模型進行分類要困難得多。刪除 PIE 圖像可以使 Top-1 泛化性能超過基準。
圖8:相對於來自 ImageNet 測試集的圖像隨機樣本(粉紅色條),PIE ImageNet 圖像的隨機樣本(綠色條)的 ResNet-50 深神經網絡的平均 top-1 準確性要低得多。
圖9:刪除 PIE 圖像有利於泛化。當模型只使用非 PIE ImageNet 圖像(青色)的隨機樣本時,Top-1 準確度會提高並超出基準性能。
三、剪枝會影響哪些類別分類?
ImageNet 具有1000個不同的類別分類,其中既包括日常物體(例如卡帶播放器),也包括更精細的類別,這些類別指的是諸如天鵝絨之類的物體紋理,甚至指的是諸如新郎之類的人。
如果剪枝對所有類別的影響是一致的,則我們期望每個類別的模型準確度將以與剪枝和未剪枝模型之間的 top-1 準確度差異相同的百分比變化。
這形成了我們的原假設,我們必須判定每個類別是否拒絕原假設並接受備擇假設——統計表明:每個類別的召回率水平變化與總體準確度變化存在顯著差異。這等於是在問:考慮到剪枝後 top-1 準確度的總體變化,該類的表現好於或差於預期嗎?
評估剪枝後的模型和未剪枝後的模型的均值漂移分類準確度樣本之間的差異是否「真實」,可以認為是確定兩個數據樣本是否來自相同的基本分布,大量文獻的對此作了研究[27,28]。
為了比較剪枝模型和未剪枝模型的分類水平性能,我們使用兩個樣本的雙側獨立 Welch t 檢驗 [29]。我們單獨訓練了一組剪枝和未剪枝模型,並用 t 檢驗來確定樣本均值是否顯著不同。這種方法使我們能夠識別出模型性能要麼對模型權重的損失保持相對穩健,要麼對能力降低過於敏感的類別的子集。
這種方法使我們能夠識別類的子集:模型性能要麼對模型權重的損失仍然具有良好的魯棒性,要麼對能力的降低過度敏感。
(1)30%剪枝水平
(2)50%剪枝水平
(3)70%剪枝水平
(4)90%剪枝水平
圖10 我們獨立地訓練了一組剪枝和未剪枝模型,並應用t檢驗來確定樣本均值是否顯著不同。所有類別的結果表明,某些類別受剪枝水平的影響要遠大於其他類別(粉紅色為統計結果顯著的類別,灰色為性能變化的統計結果並不顯著的類別)。
我們同時繪製了類別召回率的絕對百分比變化(灰色和粉紅色條形)和相對於剪枝結果的 top-1 準確度變化的歸一化準確度(灰色和綠色標記)。
剪枝影響的方向性和大小是細微而令人驚訝的。我們的結果表明,某些類別對於模型的整體性能降低是相對穩健的,而其他類別的性能降低要遠遠超過模型本身。這相當於在某些類別上性能的「選擇性腦損傷」,表明對某些類別對模型能力消失的敏感性更高。
在每種剪枝程度中,結果中準確度顯著相對降低的類別要少於準確度相對提高的類別,但是,準確度相對降低的類別的減少幅度大於準確度相對提高增長的幅度(這導致整體準確度降低)。這告訴我們,剪枝引起的泛化損失比相對準確度提高要集中得多,只有更少的類別受到了權重消失帶來的性能降低影響。
較高的剪枝程度時受影響的類別更多,並且受影響最大和受影響最小的類別之間的絕對百分比差異會變大。現實世界中大多數剪枝應用程式都傾向於剪枝 50% 以上以獲取內存和效率方面的回報。當刪除 90% 的權重後,1000個 ImageNet 類別中的 582 個類別的相對變化在統計上是顯著的。
四、對於模型剪枝的使用,這意味著什麼?
在現實應用中,模型剪枝在機器學習應用程式中廣泛使用。手機上的許多算法可能以某種方式被剪枝或壓縮。
我們的結果令人詫異並表明,依賴 top-1 或 top-5 測試集準確度之類的最重要指標以剪枝影響模型泛化的方式隱藏了關鍵細節。
但是,我們的方法為人類提供了一種更好地理解剪枝帶來的「舍」與「得」的方法,並獲得了哪些類從附加功能中受益最大的直覺(Intuition)。我們認為,這種類型的工具是幫助專家們理解剪枝所產生的「舍」與「得」和發掘出極具難度的示例供人工進行判斷的有價值的第一步。
我們歡迎就此工作進行其他討論和代碼貢獻。在我們的論文和開放原始碼中,詳細介紹了我們的方法、實驗框架和實驗結果。
在此有限的研究範圍內,我們無法解決許多實質性的問題以及許多我們研究不深但極具價值的方面,包括:評估剪枝對其他領域(如語言和音頻)的影響,對不同體系結構的考慮,以及基於常用的其他壓縮技術(如量化)的剪枝模型帶來的相對取捨的比較。
文中相關參考文獻,可閱讀原文:
https://weightpruningdamage.github.io/
雷鋒網 AI 科技評論編譯