漫谈Deep Compression(二)剪枝

Index

  • Architecture
  • Train Connectivity
    • L2 Regularization
    • Dropout
  • Prune Connections
  • Sensitivity
  • CSR

Architecture

Pruning

Pruning部分主要分为以上三个步骤:

  • 通过正常的训练得出权值. 与以往的训练不同的是, 我们并非得到最终的权值, 而是将结果看做得到相对重要以及不重要的权值
  • 设立一个阈值, 将小于阈值的权值置零. 此时网络变成了稀疏连接的网络.
  • 重新训练这个稀疏网络, 得到最终结果.
    可以看出这个过程并不复杂. 但想要得到较好的结果还有许多细节上的问题.

Train Connectivity

1. Regularization and Dropout

正则化和Dropout的目的都是防止过拟合. 防止过拟合最直接的方式是扩大数据集和缩小网络结构. 但扩大数据集并不容易. 缩小网络结构可以有效减少参数, 看似是一个不错的方法, 但是通常来说我们认为网络越深, 其提取特征高维特征能力越强. 缩小网络结构意味着其能力下降, 这是我们不希望看到的. 因此有人提出了Regularization和Dropout, 来解决过拟合问题.

  • L2 Regularization

L2正则化是最常用的正则化方法. 它的表示为:


L2 Regularization

其中C为正则化后的cost function, C_0为原始cost function.
Lambda 是正则化因子, 为正.

所以常用的交叉熵cost function可以表示为:


Cross entropy cost funciton with L2 regularization

从上述L2正则化公式可以看出, 正则化是通过在cost function中加一项权值惩罚因子, 来使得cost增大, 从而减小权值. 而正则化因子的大小则可以调节正则化: Lambda大, 则更倾向于减小权值; Lambda小, 则更倾向于减小原始cost function.
理解了正则化之后, 为什么正则化对Deep Compression很有影响就很容易理解了. 在剪枝过程的第一次训练中, 我们希望学习到什么连接更重要, 什么连接不重要. 而正则化程度会影响权值大小, 从而影响我们剪什么枝.

  • Dropout

Dropout ref 与正则化不同: 正则化通过修改cost function减小权值从而解决过拟合, dropout则通过改变网络结构. Dropout是在训练时以一定的概率删减神经元间的连接, 即随机将一定的权值置零. 这与deep compression的pruning稍有不同, dropout并不直接设置阈值, 而是设定一个概率随机修建, 增加网络稀疏性, 加快收敛
由于re-train环节我们已经学习到了什么连接更重要, 如果在dropout环节我们用和第一次训练同样的keep probability, 很多重要的连接可能会被删掉. 因此我们需要在一定程度上降低dropout ratio.
dropout 的计算如下:



其中C_i代表第i层连接数, N_i为第i层神经元数目. C_io代表原本的连接数, C_ir代表再训练时的连接数, D_o代表原本的dropout.

2. Prune Connections

  • Sensitivity

在剪枝时, 不同的正则化方法以及不同类型的layers, 对剪枝的敏感性是不同的, 因此它们剪枝的阈值对准确度的影响也不同.


Regularization sensitivity

上图中, 可以看出L1正则化的准确度损失在剪枝后是比L2正则化小, 而在再训练后, L2正则化表现得更好. 用L1正则化作第一次训练, L2作再训练的整体表现也没有L2正则化好.

Layer Type Sensitivity

上图中, 卷积层的敏感度明显高于全连接层;而卷积的第一层conv1又是最敏感的. 这是由于第一层一般情况下只有三个通道(RGB图), 在参数较少的情况下, 第一层相对不如其余卷积层冗杂.

根据以上敏感性分析, 我们可以得出以下的深度压缩剪枝技巧:

  1. 使用L2正则化,
  2. 可以实行局部剪枝, 而非全局剪枝. 即保持卷积层, 只对全连接层剪枝.

2. CSR or CSC

CSR(Compressed Sparse Row)和CSC(Compressed Sparse Column)是存储稀疏矩阵的格式. CSR通过: values, column indices, row offsets 来存储稀疏矩阵. CSC与CSR原理一致.
通过CSR或CSC存储, 能将一个m * n的稀疏矩阵存储数量减少至: 2a+m+1(CSR)或2a+n+1(CSC), 其中a为非零数值.

关于CSR及CSC可参照scipy:
scipy.sparse.csr_matrix

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 210,914评论 6 490
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 89,935评论 2 383
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 156,531评论 0 345
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,309评论 1 282
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,381评论 5 384
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,730评论 1 289
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,882评论 3 404
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,643评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,095评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,448评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,566评论 1 339
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,253评论 4 328
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,829评论 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,715评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,945评论 1 264
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,248评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,440评论 2 348

推荐阅读更多精彩内容