稀疏小記

稀疏

本人嘗試過的稀疏算法有限,目前嘗試過閾值稀疏和admm稀疏方式,在此做一小結。

日後若有別的這方面嘗試,會繼續加。

  • 網絡層數多,結構複雜,往往有更多的冗餘
  • 不同場景下需求不一樣。小數據集可以帶來更高的稀疏度
  • 本身參數就小,可能更容易有更高的稀疏度
  • 針對不同網絡層,採用不同的稀疏度

結構化稀疏

某些通道全爲零,或者某些行(列)全爲零

非結構化稀疏

閾值稀疏

簡言之,就是將絕對值小的值置爲零。

這裏細分還可以分爲 按層(per-layer) 和 按通道(per-channel)

  • 隨機初始化再稀疏有時候比pretrain後稀疏效果好,特別是稀疏度較高的情況下

admm稀疏

將稀疏問題,轉化爲了優化問題,使用admm方法解之,得到凸優化解法,具體看paper。
在這裏插入圖片描述

分三步:

第一步:得到pretrain模型

第二步admm_prune: 修改loss函數,加上正則化項,引入Z,U
在這裏插入圖片描述

更新W,b

在這裏插入圖片描述

更新Z
在這裏插入圖片描述
更新U
在這裏插入圖片描述
不斷更新Z, U ,直到W 趨向於 Z或者正則化項收斂(Z趨於W稀疏後的結果, W趨於Z)

第三步retrain : 對W小的值置零,且對應位置保持爲零,不再更新

  • 調參:稀疏度,學習率,net_loss和admm_loss的比例
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章