【知识星球】从SVM对偶问题,到疲劳驾驶检测,到实用工业级别的模型压缩技巧...

欢迎大家来到《知识星球》专栏,本次发布这两天有三AI知识星球中专栏《AI 1000问》,《模型结构1000变》,《数据集》的知识便利贴。

作者&编辑 | 言有三

有三AI1000问-机器学习篇

为什么SVM要把原问题转化为对偶问题

【知识星球】从SVM对偶问题,到疲劳驾驶检测,到实用工业级别的模型压缩技巧..._第1张图片

我们知道SVM在求解的时候,会把原问题转换为对偶问题,那为什么要这么做呢?

作者/编辑 言有三

首先我们看看原问题到底是什么?

SVM的优化目标是一个带约束的方程,如下:

【知识星球】从SVM对偶问题,到疲劳驾驶检测,到实用工业级别的模型压缩技巧..._第2张图片

这个问题是一个凸二次规划问题,可以用成熟的优化计算包求解,但问题就是计算量很大,因此要寻求更高效的办法。


这可以构建拉格朗日方程来求解,如下,对每条约束添加拉格朗日乘子ai>0,构造拉格朗日函数如下:

【知识星球】从SVM对偶问题,到疲劳驾驶检测,到实用工业级别的模型压缩技巧..._第3张图片

关于拉格朗日方程和KKT条件,篇幅限制本次不讲述,读者需要自行补充知识。

上述问题假如有任何一个样本分类错误,那么就有 

【知识星球】从SVM对偶问题,到疲劳驾驶检测,到实用工业级别的模型压缩技巧..._第4张图片

此时如果让对应的系数ai趋于无穷大,则该函数是不可能取得极小值的,所以上面的式子要想有解,一定会满足:

640?wx_fmt=png

因此

【知识星球】从SVM对偶问题,到疲劳驾驶检测,到实用工业级别的模型压缩技巧..._第5张图片

而我们本来想求的就是在约束条件下的w的范数极小值,所以:

【知识星球】从SVM对偶问题,到疲劳驾驶检测,到实用工业级别的模型压缩技巧..._第6张图片

它要求出w,b的值满足内侧的极大值,但这个形式是难解的,不过因为下面的式子存在:

640?wx_fmt=png

所以上式极小极大值问题可以转换为极大极小值问题:

【知识星球】从SVM对偶问题,到疲劳驾驶检测,到实用工业级别的模型压缩技巧..._第7张图片

求解上面的式子只需要将内侧的式子对w,b求导,就能得到a。

【知识星球】从SVM对偶问题,到疲劳驾驶检测,到实用工业级别的模型压缩技巧..._第8张图片

【知识星球】从SVM对偶问题,到疲劳驾驶检测,到实用工业级别的模型压缩技巧..._第9张图片

要求上式的极大值问题,又可以转化为极小值问题求解,不再赘述。

从上面式子来看,与原问题相比有两点好处:

(1) 改变了问题的复杂度。不管是直接采用优化方法还是拉格朗日方程的原问题,都需要直接求特征向量w,因此求解的复杂度与样本的维度有关。而在对偶问题下,直接求ai即可,这只和样本数量有关,复杂度降低了很多。

(2) 另外再看上式中的x_i·x_j,虽然我们在这里没有讲述核函数,但是非线性可分的SVM问题需要引入核函数,转换为这种形式后,可以非常方便的应用核函数。

有三AI知识星球-网络结构1000变

DeepRebirth

【知识星球】从SVM对偶问题,到疲劳驾驶检测,到实用工业级别的模型压缩技巧..._第10张图片

在深度学习模型中有许多的非tensor网络层虽然参数很少,但是有较大的计算量,因此模型在最终部署到移动端时经常合并这些网络层从而进一步提高推理速度。

作者/编辑 言有三

模型压缩有许多的方法,比如使用小卷积,多尺度,去除全连接层,瓶颈结构等思路设计紧凑的网络,也有对权重进行量化剪枝等方法,而DeepRebirth则采用了另外一种思路,即将Non-tensor layer(包括pooling、BN、LRN、ReLU等)合并到tensor层中,因为它们虽然参数不多,但是有很大的计算量,下面首先看看经典网络中这些层的计算时间比例:

【知识星球】从SVM对偶问题,到疲劳驾驶检测,到实用工业级别的模型压缩技巧..._第11张图片

【知识星球】从SVM对偶问题,到疲劳驾驶检测,到实用工业级别的模型压缩技巧..._第12张图片

可以看出这些非卷积层占据了很大比例的计算时间,在Intel x86上甚至能占到一半,如果能够将其去除将大幅度的提升模型的运算速度。

作者提出了两种思路,分别是StreamLine Merging和Branch Merging。

StreamLine Merging是一种串行的合并方式,如下:

【知识星球】从SVM对偶问题,到疲劳驾驶检测,到实用工业级别的模型压缩技巧..._第13张图片

通常来说,就是将Pooling、LRN,BN等网络层与相邻近的Conv层进行合并,上图的案例中经过合并后从153.8ms直接降低到了16.6ms。这里卷积本身的计算时间也大大降低,是因为pool2融合进了conv,使其步长从1变为2。

现今更为常见的情况是将BN,Scale等网络层和相邻的Conv层合并,也能降低不少计算量。

Branch Merging是一个分支的合并方式,如下:

【知识星球】从SVM对偶问题,到疲劳驾驶检测,到实用工业级别的模型压缩技巧..._第14张图片

如上图,将1*1卷积层以及Pooling层分支分别合并到和它并行的3*3卷积和5*5卷积分支中。另外考虑到3*3卷积和5*5卷积分支输出通道增加会增大参数量和运算量,因此调整这些分支的输入通道进行压缩。


在进行以上的合并后,模型的性能通常会降低,所以需要重新训练,作者采用的方式是合并得到的新层使用标准的初始化方式,将其他层的参数固定不变,然后将新层的学习率设置为其他层的10倍后进行finetuning。

那么实验效果如何呢?以GoogLeNet为基准模型的实验结果如下:

【知识星球】从SVM对偶问题,到疲劳驾驶检测,到实用工业级别的模型压缩技巧..._第15张图片

【知识星球】从SVM对偶问题,到疲劳驾驶检测,到实用工业级别的模型压缩技巧..._第16张图片

上表展示了对不同的网络层使用以上合并策略,可以发现各种网络层的速度都有很大提升,在精度只降低0.4%的时候,能有超过3倍的速度提升。

这是非常实用且强大的一个提升模型运行速度的方法,在实际进行模型部署时,常常会对BN等网络层进行合并。

[1] Li D, Wang X, Kong D. Deeprebirth: Accelerating deep neural network execution on mobile devices[C]//Thirty-Second AAAI Conference on Artificial Intelligence. 2018.

有三AI知识星球-数据集

Distracted Driver Detection

Distracted Driver Detection是一个司机状态检测数据集,包含10个状态,共22425张图 。

作者/编辑 言有三

数据集地址:https://www.kaggle.com/c/state-farm-distracted-driver-detection/data,发布于2016年。

每年很多的交通事故的发生都是因为司机没有专注于驾驶,因此一个好的辅助驾驶系统不仅要关注车外的情况,也要时刻关注车内驾驶员的情况。

这一个数据集来自于Kaggle平台,该包含了10种状态,如下:

c0: safe driving

c1: texting - right

c2: talking on the phone - right

c3: texting - left

c4: talking on the phone - left

c5: operating the radio

c6: drinking

c7: reaching behind

c8: hair and makeup

c9: talking to passenger

一些样本如下,每一类约2000多张图像,共22425张图。

【知识星球】从SVM对偶问题,到疲劳驾驶检测,到实用工业级别的模型压缩技巧..._第17张图片

【知识星球】从SVM对偶问题,到疲劳驾驶检测,到实用工业级别的模型压缩技巧..._第18张图片

更多模型解读和数据集

加入有三AI知识星球即可获取

每日更新网络架构解读

已经超过4万字的内容

每日更新数据集

大量干货供你下载

AI1000问,补全你的知识漏洞

【知识星球】从SVM对偶问题,到疲劳驾驶检测,到实用工业级别的模型压缩技巧..._第19张图片

转载文章请后台联系

侵权必究

640?wx_fmt=png

640?wx_fmt=png

640?wx_fmt=png

往期精选

  • 有三AI知识星球官宣,BAT等大咖等你来撩

  • 揭秘7大AI学习板块,这个星球推荐你拥有

  • 有三AI 1000问回归,备战秋招,更多,更快,更好,等你来战!

  • 【知识星球】做作业还能赢奖金,传统图像/机器学习/深度学习尽在不言

  • 【知识星球】颜值,自拍,美学三大任务简介和数据集下载

  • 【知识星球】数据集板块重磅发布,海量数据集介绍与下载

  • 【知识星球】猫猫狗狗与深度学习那些事儿

  • 【知识星球】超3万字的网络结构解读,学习必备

  • 【知识星球】视频分类/行为识别网络和数据集上新

  • 【知识星球】3D网络结构解读系列上新

  • 【知识星球】动态推理网络结构上新,不是所有的网络都是不变的

  • 【知识星球】Attention网络结构上新,聚焦才能赢

  • 【知识星球】几个人像分割数据集简介和下载

  • 【知识星球】总有些骨骼轻奇,姿态妖娆的模型结构设计,不知道你知不知道,反正我知道一些

你可能感兴趣的:(【知识星球】从SVM对偶问题,到疲劳驾驶检测,到实用工业级别的模型压缩技巧...)