欧美vvv,亚洲第一成人在线,亚洲成人欧美日韩在线观看,日本猛少妇猛色XXXXX猛叫

新聞資訊

    關于作者:小一一,北京大學在讀碩士,研究方向為深度模型壓縮加速。個人主頁:

    ■論文 | A of Model and for Deep

    ■ 鏈接 |

    ■ 作者 | Yu Cheng / Duo Wang / Pan Zhou / Tao Zhang

    研究背景

    在神經網絡方面,早在上個世紀末,Yann LeCun 等人已經使用神經網絡成功識別了郵件上的手寫郵編。至于深度學習的概念是由 等人首次提出,而在 2012 年, 等人采用深度學習算法,以超過第二名以傳統人工設計特征方法準確率 10% 的巨大領先取得了 圖像分類比賽冠軍。

    此后的計算機視覺比賽已經被各種深度學習模型所承包。這些模型依賴于具有數百甚至數十億參數的深度網絡,傳統 CPU 對如此龐大的網絡一籌莫展,只有具有高計算能力的 GPU 才能讓網絡得以相對快速訓練。

    如上文中比賽用模型使用了 1 個包含 5 個卷積層和 3 個完全連接層的 6000 萬參數的網絡。通常情況下,即使使用當時性能頂級的 GPU K40 來訓練整個模型仍需要花費兩到三天時間。對于使用全連接的大規模網絡,其參數規模甚至可以達到數十億量級。

    當然,為了解決全連接層參數規模的問題,人們轉而考慮增加卷積層,使全連接參數降低。隨之帶來的負面影響便是大大增長了計算時間與能耗。

    對于具有更多層和節點的更大的神經網絡,減少其存儲和計算成本變得至關重要,特別是對于一些實時應用,如在線學習、增量學習以及自動駕駛。

    在深度學習的另一端,即更貼近人們生活的移動端,如何讓深度模型在移動設備上運行,也是模型壓縮加速的一大重要目標。

    在 2014 年的文章中,提出了兩點觀察結論:卷積層占據了大約 90-95% 的計算時間和參數規模,有較大的值;全連接層占據了大約 5-10% 的計算時間,95% 的參數規模,并且值較小。這為后來的研究深度模型的壓縮與加速提供了統計依據。

    一個典型的例子是具有 50 個卷積層的 -50 需要超過 95MB 的存儲器以及 38 億次浮點運算。在丟棄了一些冗余的權重后,網絡仍照常工作,但節省了超過 75% 的參數和 50% 的計算時間。

    當然,網絡模型的壓縮和加速的最終實現需要多學科的聯合解決方案,除了壓縮算法,數據結構、計算機體系結構和硬件設計等也起到了很大作用。本文將著重介紹不同的深度模型壓縮方法,并進行對比。

    壓縮圖像ps不裁剪_基于壓縮感知的單幅圖像超分辨率重建算法研究 劉娟_圖像壓縮技術好不好

    研究現狀

    綜合現有的深度模型壓縮方法圖像壓縮技術好不好,它們主要分為四類:

    基于參數修剪和共享的方法針對模型參數的冗余性,試圖去除冗余和不重要的項。基于低秩因子分解的技術使用矩陣/張量分解來估計深度學習模型的信息參數。基于傳輸/緊湊卷積濾波器的方法設計了特殊的結構卷積濾波器來降低存儲和計算復雜度。知識蒸餾方法通過學習一個蒸餾模型,訓練一個更緊湊的神經網絡來重現一個更大的網絡的輸出。

    一般來說,參數修剪和共享,低秩分解和知識蒸餾方法可以用于全連接層和卷積層的 CNN,但另一方面,使用轉移/緊湊型卷積核的方法僅支持卷積層。

    低秩因子分解和基于轉換/緊湊型卷積核的方法提供了一個端到端的流水線,可以很容易地在 CPU/GPU 環境中實現。

    相反參數修剪和共享使用不同的方法,如矢量量化,二進制編碼和稀疏約束來執行任務,這導致常需要幾個步驟才能達到目標。

    ▲表1:不同模型的簡要對比

    關于訓練協議,基于參數修剪/共享、低秩分解的模型可以從預訓練模型或者從頭開始訓練,因此靈活而有效。然而轉移/緊湊的卷積核和知識蒸餾模型只能支持從零開始訓練。

    這些方法是獨立設計和相輔相成的。例如,轉移層和參數修剪和共享可以一起使用,并且模型量化和二值化可以與低秩近似一起使用以實現進一步的加速。

    不同模型的簡要對比,如表 1 所示。下文針對這些方法做一簡單介紹與討論。

    參數修剪和共享

    根據減少冗余(信息冗余或參數空間冗余)的方式,這些參數修剪和共享可以進一步分為三類:模型量化和二進制化、參數共享和結構化矩陣( )。

    量化和二進制化

    圖像壓縮技術好不好_基于壓縮感知的單幅圖像超分辨率重建算法研究 劉娟_壓縮圖像ps不裁剪

    ▲圖2

    網絡量化通過減少表示每個權重所需的比特數來壓縮原始網絡。Gong et al. 對參數值使用 K-Means 量化。 et al. 使用了 8 比特參數量化可以在準確率損失極小的同時實現大幅加速。

    Han S 提出一套完整的深度網絡的壓縮流程:首先修剪不重要的連接,重新訓練稀疏連接的網絡。然后使用權重共享量化連接的權重,再對量化后的權重和碼本進行霍夫曼編碼,以進一步降低壓縮率。如圖 2 所示,包含了三階段的壓縮方法:修剪、量化()和霍夫曼編碼。

    修剪減少了需要編碼的權重數量,量化和霍夫曼編碼減少了用于對每個權重編碼的比特數。對于大部分元素為 0 的矩陣可以使用稀疏表示,進一步降低空間冗余,且這種壓縮機制不會帶來任何準確率損失。這篇論文獲得了 ICLR 2016 的 Best Paper。

    在量化級較多的情況下準確率能夠較好保持,但對于二值量化網絡的準確率在處理大型 CNN 網絡,如 時會大大降低。另一個缺陷是現有的二進制化方法都基于簡單的矩陣近似,忽視了二進制化對準確率損失的影響。

    剪枝和共享

    網絡剪枝和共享起初是解決過擬合問題的,現在更多得被用于降低網絡復雜度。

    早期所應用的剪枝方法稱為偏差權重衰減( Decay),其中最優腦損傷( Brain )和最優腦手術( Brain )方法,是基于損失函數的 矩陣來減少連接的數量。

    他們的研究表明這種剪枝方法的精確度比基于重要性的剪枝方法(比如 Decay 方法)更高。這個方向最近的一個趨勢是在預先訓練的 CNN 模型中修剪冗余的、非信息量的權重。

    在稀疏性限制的情況下培訓緊湊的 CNN 也越來越流行,這些稀疏約束通常作為 l_0 或 l_1 范數調節器在優化問題中引入。

    剪枝和共享方法存在一些潛在的問題。首先,若使用了 l_0 或 l_1 正則化,則剪枝方法需要更多的迭代次數才能收斂,此外圖像壓縮技術好不好,所有的剪枝方法都需要手動設置層的超參數,在某些應用中會顯得很復雜。

    ▲圖3:剪枝和共享

    設計結構化矩陣

    該方法的原理很簡單:如果一個 m×n 階矩陣只需要少于 m×n 個參數來描述,就是一個結構化矩陣( )。通常這樣的結構不僅能減少內存消耗,還能通過快速的矩陣-向量乘法和梯度計算顯著加快推理和訓練的速度。

    基于壓縮感知的單幅圖像超分辨率重建算法研究 劉娟_壓縮圖像ps不裁剪_圖像壓縮技術好不好

    這種方法的一個潛在的問題是結構約束會導致精確度的損失,因為約束可能會給模型帶來偏差。另一方面,如何找到一個合適的結構矩陣是困難的。沒有理論的方法來推導出來。因而該方法沒有廣泛推廣。

    低秩分解和稀疏性

    一個典型的 CNN 卷積核是一個 4D 張量,而全連接層也可以當成一個 2D 矩陣,低秩分解同樣可行。這些張量中可能存在大量的冗余。所有近似過程都是逐層進行的,在一個層經過低秩濾波器近似之后,該層的參數就被固定了,而之前的層已經用一種重構誤差標準( error )微調過。這是壓縮 2D 卷積層的典型低秩方法,如圖 4 所示。

    ▲圖4:壓縮2D卷積層的典型低秩方法

    使用低階濾波器加速卷積的時間已經很長了,例如,高維 DCT(離散余弦變換)和使用張量積的小波系統分別由 1D DCT 變換和 1D 小波構成。

    學習可分離的 1D 濾波器由 等人提出,遵循字典學習的想法。 的工作提出了使用不同的張量分解方案,在文本識別準確率下降 1% 的情況下實現了 4.5 倍加速。

    一種 結構將原始三維卷積轉換為 3 個一維卷積,參數復雜度由 O(XYC)降低到 O(X+Y+C),運算復雜度由 O(mnCXY) 降低到 O(mn(X+Y+C)。

    低階逼近是逐層完成的。完成一層的參數確定后,根據重建誤差準則對上述層進行微調。這些是壓縮二維卷積層的典型低秩方法,如圖 2 所示。

    按照這個方向, 提出了核張量的典型多項式(CP)分解,使用非線性最小二乘法來計算。Tai 提出了一種新的從頭開始訓練低秩約束 CNN 的低秩張量分解算法。它使用批量標準化(BN)來轉換內部隱藏單元的激活。一般來說, CP 和 BN分解方案都可以用來從頭開始訓練 CNN。

    低秩方法很適合模型壓縮和加速,但是低秩方法的實現并不容易,因為它涉及計算成本高昂的分解操作。另一個問題是目前的方法都是逐層執行低秩近似,無法執行全局參數壓縮,因為不同的層具備不同的信息。最后,分解需要大量的重新訓練來達到收斂。

    遷移/壓縮卷積濾波器

    雖然目前缺乏強有力的理論,但大量的實證證據支持平移不變性和卷積權重共享對于良好預測性能的重要性。

    使用遷移卷積層對 CNN 模型進行壓縮受到 Cohen 的等變群論( group )的啟發。使 x 作為輸入,Φ(·) 作為網絡或層,T(·) 作為變換矩陣。則等變概念可以定義為:

    基于壓縮感知的單幅圖像超分辨率重建算法研究 劉娟_圖像壓縮技術好不好_壓縮圖像ps不裁剪

    即使用變換矩陣 T(·) 轉換輸入 x,然后將其傳送至網絡或層 Φ(·),其結果和先將 x 映射到網絡再變換映射后的表征結果一致。注意 T 和 T' 在作用到不同對象時可能會有不同的操作。根據這個理論,將變換應用到層次或濾波器 Φ(·) 來壓縮整個網絡模型是合理的。

    使用緊湊的卷積濾波器可以直接降低計算成本。在 結構中使用了將 3×3 卷積分解成兩個 1×1 的卷積; 提出用 1×1 卷積來代替 3×3 卷積,與 相比, 創建了一個緊湊的神經網絡,參數少了 50 倍,準確度相當。

    這種方法仍有一些小問題解決。首先,這些方法擅長處理廣泛/平坦的體系結構(如 )網絡,而不是狹窄的/特殊的(如 ,)。其次,轉移的假設有時過于強大,不足以指導算法,導致某些數據集的結果不穩定。

    知識蒸餾

    利用知識轉移( )來壓縮模型最早是由 等人提出的。他們訓練了帶有偽數據標記的強分類器的壓縮/集成模型,并復制了原始大型網絡的輸出,但是,這項工作僅限于淺模型。

    后來改進為知識蒸餾,將深度和寬度的網絡壓縮成較淺的網絡,其中壓縮模型模擬復雜模型所學習的功能,主要思想是通過學習通過 獲得的類分布輸出,將知識從一個大的模型轉移到一個小的模型。

    的工作引入了知識蒸餾壓縮框架,即通過遵循“學生-教師”的范式減少深度網絡的訓練量,這種“學生-教師”的范式,即通過軟化“教師”的輸出而懲罰“學生”。為了完成這一點,學生學要訓練以預測教師的輸出,即真實的分類標簽。這種方法十分簡單,但它同樣在各種圖像分類任務中表現出較好的結果。

    基于知識蒸餾的方法能令更深的模型變得更加淺而顯著地降低計算成本。但是也有一些缺點,例如只能用于具有 損失函數分類任務,這阻礙了其應用。另一個缺點是模型的假設有時太嚴格,其性能有時比不上其它方法。

    討論與挑戰

    深度模型的壓縮和加速技術還處在早期階段,目前還存在以下挑戰:

    量化實驗中問題與討論

    實驗框架的選擇

    支持的是一種靜態圖,當模型的參數確定之后,便無法繼續修改。這對于逐階段、分層的訓練帶來了一定的困難。相比之下, 使用了動態圖,在定義完模型之后還可以邊訓練邊修改其參數,具有很高的靈活性。這也是深度學習未來的發展方向。

    目前的開發者版本 中,也開始支持動態圖的定義,但還未普及。 因此在選擇上,科研和實驗優先用 ,工程和應用上可能要偏 。

    聚類算法的低效性

    圖像壓縮技術好不好_壓縮圖像ps不裁剪_基于壓縮感知的單幅圖像超分辨率重建算法研究 劉娟

    聚類算法是量化的前提, 中提供了諸如 K-Means,Mean-shift, 等可用的方法。

    其中 K-Means 是一種簡單有效而較為快速的方法了。在個人電腦上,由于訓練網絡參數規模較小,因而無法體現出其運算時間。在對 VGG 這樣大型的網絡測試時,發現對于 256 個聚類中心,在 fc 的 4096?4096 維度的全連接層進行聚類時,耗時超過 20 分鐘(沒有運行完便停止了),嚴重影響了算法的實用性。

    目前的解決辦法是抽樣采樣,如對 1% 的參數進行聚類作為整體參數的聚類中心。這樣操作后聚類時間能縮短到 5 分鐘以內。

    有沒有一個更加簡便的方法呢?對于訓練好的一個模型,特別是經過 l2 正則化的,其參數分布基本上可以看作是一個高斯分布模型,對其進行擬合即可得到分布參數。

    這樣問題就轉化為:對一個特定的高斯分布模型,是否能夠根據其參數直接得到聚類中心?

    如果可以,那這個聚類過程將會大大縮短時間:首先對權重進行直方圖劃分,得到不同區間的參數分布圖,再由此擬合高斯函數,最后用這個函數獲得聚類中心。這個工作需要一定的數學方法,這里只是簡單猜想一下。

    重訓練帶來的時間成本

    我們日常說道的數據壓縮,是根據信源的分布、概率進行的,特別是通過構建字典,來大大減少信息冗余。

    這套方法直接使用在模型上,效果往往不好。一個最重要的原因就是參數雖然有著美妙的分布,但幾乎沒有兩個相同的參數。在對 進行 gzip 壓縮后,僅僅從 233MB 下降到 216MB,遠不如文本以及圖像壓縮算法的壓縮率。因此傳統方法難以解決深度學習的問題。

    剪枝量化雖好,但其問題也是傳統壓縮所沒有的,那就是重訓練所帶來的時間成本。這個過程就是人為為參數增加條件,讓網絡重新學習降低 loss 的過程,因此也無法再重新恢復成原始的網絡,因為參數不重要,重要的是結果。

    這個過程和訓練一樣,是痛苦而漫長的。又因為是逐層訓練,一個網絡的訓練時間和層數密切相關。

    Mnist 這種簡單任務,512?512 的權重量化重訓練,由最開始的 8s 增加到 36s,增加了約 4 倍時間(不排除個人代碼優化不佳的可能)。如果在 GPU 服務器上,Alex 的時間成本可能還是勉強接受的,要是有 , 這種,真的是要訓到天荒地老了。

    實現過程中,有很多操作無法直接實現,或者沒有找到簡便的方法,不得不繞了個彎子,確實會嚴重降低性能。

    本文由 AI 學術社區 精選推薦,社區目前已覆蓋自然語言處理、計算機視覺、人工智能、機器學習、數據挖掘和信息檢索等研究方向,點擊「閱讀原文」即刻加入社區!

網站首頁   |    關于我們   |    公司新聞   |    產品方案   |    用戶案例   |    售后服務   |    合作伙伴   |    人才招聘   |   

友情鏈接: 餐飲加盟

地址:北京市海淀區    電話:010-     郵箱:@126.com

備案號:冀ICP備2024067069號-3 北京科技有限公司版權所有