網路壓縮(network compression)
1、低秩近似 (低秩分解 low rank expansion)
上圖展示了低秩分解的基本思想:將原來大的權重矩陣分解成多個小的矩陣,
右邊的小矩陣的計算量都比原來大矩陣的計算量要小,
這是低秩分解的基本出發點。
奇異值分解svd、cp分解、tucker分解、tensor train分解和block term分解 用低秩矩陣近似原有權重矩陣。
例如,可以用svd得到原矩陣的最優低秩近似, 或用toeplitz矩陣配合krylov分解近似原矩陣。
svd分解:
全連線層的權重矩陣記作 w∈rm×n ,首先對 w 進行 svd 分解,如下:
w=usv轉置
為了能夠用兩個較小的矩陣來表示 w ,我們可以取奇異值的前 k 個分量。
於是,w可以通過下式重建:
w^=u^s^v^t,其中u^∈rm×kv^∈rn×k
我們唯一需要儲存的就是3個比較小的矩陣 u,s,v ,我們可以簡單算一下壓縮比為 mn/k(m+n+1)
乙個特徵圖1010,經過33卷積核後得到88的特徵圖輸出, 而替換為低秩後, 則先得到108的特徵圖然後再得到8*8的特徵圖。1*3的矩陣如下,則 行秩== 列址 == 秩 ==1
[1 2 3]
3*1的矩陣如下,則 行秩== 列址 == 秩 ==1
[1] [2] [3]
低秩分解,這個名字雖然唬人, 實際上就是把較大的卷積核分解為兩個級聯的行卷積核和列卷積核。 常見的就是乙個3*3的卷積層,替換為乙個3*1的卷積層加上乙個1*3的卷積核。 容易計算得,
另外現在越來越多網路中採用1×1的卷積, 而這種小的卷積使用矩陣分解的方法很難實現網路加速和壓縮。a、奇異值分解svd
b、tucker分解 解決svd分解中輸入的通道s大的問題
c、cp分解加速神經網路的方法
d、塊分解
lbcnn 區域性二值卷積 卷積稀疏濾波器
學習筆記1 壓縮感測與低秩矩陣理論
最近在做的研究生課題接觸到了低秩矩陣恢復的理論與方法,在學習過程中有很多基礎知識的欠缺,希望通過寫部落格的過程記錄一些學習筆記。注 本部落格中的理論主要參考自文獻 1 非原創內容。對於以向量x0 rn 表示的訊號,其稀疏性即指向量x0中非零元素的個數。數學表示即l0範數 零範數 x0 經典的nyqu...
卷積神經網路(1)分類注意點
幾個重要的概念 1.啟用函式 非線性一般用relu,不用sigmoid,因為sigmoid求導可能導致梯度為0.2.softmax 函式 我們知道max,假如有兩個數,a和b,並且a b,如果取max,那麼就直接取a,沒有第二種可能。但這樣會造成分值小的那個飢餓。所以我希望分值大的那一項經常取到,分...
網路日記1 分層模型和乙太網幀結構
分層模型 osi 七層和tcp ip分層,及資料封裝 資料鏈路層控制資料幀在物理鏈路上傳輸。資料報在乙太網物理介質上傳播之前必須封裝頭部和尾部資訊。封裝後的資料報稱為稱為資料幀,資料幀中封裝的資訊決定了資料如何傳輸。乙太網上傳輸的資料幀有兩種格式,選擇哪種格式由tcp ip協議簇中的網路層決定。這兩...