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

distracteddriverdetection:这是一个大学项目,我们在其中演示如何模拟分心的驾驶员检测的工作原理 分心的驾驶员检测 这是一个大学项目,我们在其中演示如何模拟分散注意力的驾驶员的工作方式。 立即下载

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

作者&编辑 | 言有三

有三AI1000问-机器学习篇

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

640?wx_fmt=png

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

作者/编辑 言有三

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

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

640?wx_fmt=png

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


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

640?wx_fmt=png

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

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

640?wx_fmt=png

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

640?wx_fmt=png

因此

640?wx_fmt=png

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

640?wx_fmt=png

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

640?wx_fmt=png

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

640?wx_fmt=png

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

640?wx_fmt=png

640?wx_fmt=png

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

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

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

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

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

DeepRebirth

640?wx_fmt=png

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

作者/编辑 言有三

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

640?wx_fmt=png

640?wx_fmt=png

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

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

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

640?wx_fmt=png

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

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

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

640?wx_fmt=png

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


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

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

640?wx_fmt=png

640?wx_fmt=png

上表展示了对不同的网络层使用以上合并策略,可以发现各种网络层的速度都有很大提升,在精度只降低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

640?wx_fmt=gif

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张图。

640?wx_fmt=png

640?wx_fmt=jpeg

更多模型解读和数据集

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

每日更新网络架构解读

已经超过4万字的内容

每日更新数据集

大量干货供你下载

AI1000问,补全你的知识漏洞

640?wx_fmt=jpeg

转载文章请后台联系

侵权必究

640?wx_fmt=png

640?wx_fmt=png

640?wx_fmt=png

往期精选

Driver State Monitoring 驾驶员状态监测 1. 双击dsm.exe可打开演示程序,使用电脑摄像头测试(或电脑接接USB摄像头) 2. 双击test.bat可通过传参数的方式调用dsm.exe检测sample目录对应的测试视频 3. demo.mp4为运行效果 4. 本程序使用了opencv4.11库 5. 本程序使用VS2019开发 6. 本程序为x64版本 7. 功能:Driver State Monitoring,即驾驶员状态监测 8. 详细功能:人为遮挡、姿态异常、打哈欠、打电话、抽烟、分神、闭眼检测 注:若您的电脑无法运行,请安装VS2019运行库再试 立即下载

相关推荐

SVM分类_SVM_SVM分类_驾驶员_疲劳_疲劳驾驶

基于SVM的疲劳驾驶系统。基于神经网络的非接触式疲劳驾驶检测已成为当前针对疲劳驾驶检测领域炙手可热的研究方向。它有效解决了接触式疲劳检测方法给驾驶员带来的干扰以及单一信号源对于反映疲劳程度可靠性低的问题,同时通过设计神经网络模型对多源信息进行分类,实现对疲劳状态的高精度和高速度的检测。选取合适的特征值对网络检测准确率以及准确反映疲劳程度至关重要。基于驾驶员生理信号检测可靠性和准确性较高。

【毕业设计】深度学习疲劳检测 驾驶行为检测 - python opencv cnn

🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天要分享的是🚩 **基于深度学习加驾驶疲劳与行为检测 **🥇学长这里给一个题目综合评分(每项满分5分)难度系数:4分工作量:3分创新点:5分🧿。...

HUXINY的博客 1万+

SVM分类,svm分类器,matlab

基于SVM的疲劳驾驶系统。基于神经网络的非接触式疲劳驾驶检测已成为当前针对疲劳驾驶检测领域炙手可热的研究方向。它有效解决了接触式疲劳检测方法给驾驶员带来的干扰以及单一信号源对于反映疲劳程度可靠性低的问题,同时通过设计神经网络模型对多源信息进行分类,实现对疲劳状态的高精度和高速度的检测。选取合适的特征值对网络检测准确率以及准确反映疲劳程度至关重要。基于驾驶员生理信号检测可靠性和准确性较高。

睁闭眼状态检测——SVM模型训练

前言 svm训练模型相当简单,难的是提取特征这一步,这里介绍了一个睁闭眼检测功能从提取特征到预测的全过程。 首先,需要准备数据,我这里有睁眼和闭眼的照片各3000张,传统的机器学习方法都需要提取特征,这里检测特征用到了三个,通过程序预先提取出来了;接下来是模型的训练和预测过程。 特征提取出来:文件名+三个特征+标签(0睁眼、1闭眼) 然后把三个特征进行归一化,更有利于训练,...

gm_Ergou的博客 7056

两路半桥LLC谐振变换器软开关Simulink仿真(模拟谐振参数不同、分裂电容)

内容概要:本文介绍了“两路半桥LLC谐振变换器软开关Simulink仿真”资源包,重点在于基于Simulink平台对两路半桥LLC谐振变换器进行高精度建模与动态仿真,特别考虑了谐振参数不一致及分裂电容等非理想工况对系统性能的影响。该仿真模型不仅涵盖了主电路拓扑、软开关实现机制与谐振网络设计,还深入分析了不同参数配置下系统的启动特性、稳态效率、动态响应及软开关条件的满足情况。通过参数扫描与对比仿真,帮助用户掌握LLC变换器的关键设计要素与优化方法,具备较强的工程指导价值和科研教学意义。; 适合人群:电力电子、电气工程及其自动化等相关专业的高校师生,以及从事高频开关电源、新能源变换器、车载充电机等领域的研发工程师和技术人员。; 使用场景及目标:① 掌握两路并联半桥LLC谐振变换器的建模与仿真方法;② 理解软开关技术在提升变换器效率与降低EMI方面的关键作用;③ 分析谐振参数偏差与分裂电容结构对系统均流特性、增益曲线及软开关范围的影响;④ 支持科研项目中的拓扑验证、控制策略开发与故障工况分析; 阅读建议:建议结合Simulink仿真模型与配套说明文档进行学习,重点关注谐振腔参数设置、驱动时序设计及软开关波形观测;可通过调整谐振电感、电容值或引入参数失配,观察系统行为变化,深入理解LLC变换器的稳定边界与优化设计原则。

【开关电源篇】开关电源——只需这三个阶段,从电源小白到维修大神

🔌 该篇为的原创文章跳转目录,小二持续更新跳转链接,尽情关注!

2301_81299416的博客 2397

【杂谈】为什么邀请大家加入硬核知识星球有三AI

文/编辑 | 言有三今天给大家介绍一下有三AI知识星球,推荐铁粉们加入。有三AI知识星球秉承公众号的风格,有以下几个特点。(1) 只做原创。星球内有三发布的所有内容均为原...

hacker_long的专栏 977

基因ID转换避坑指南:如何用org.Hs.eg.db把ENSEMBL ID变成可读的gene symbol

本文详细介绍了如何将RNA-seq等数据中常见的ENSEMBL ID转换为可读的基因符号(Gene Symbol),重点对比了biomaRt与org.Hs.eg.db两大工具的优劣,并深入剖析了多对多映射、版本号失效及非编码基因Symbol缺失三大核心陷阱。文章提供了针对TCGA、GEO等不同数据源的定制化处理方案与完整的稳健转换流程,帮助生物信息学分析者避免常见错误,确保下游分析的准确性。

weixin_28223453的博客 701

【知识星球】ElementAI提出超复杂多尺度细粒度图像分类Attention模型

欢迎大家来到《知识星球》专栏,这里是网络结构1000变小专题。作者&编辑 | 言有三 1 Attention模型Attention机制已经被证明在很多的任务中都...

hacker_long的专栏 2771

图像识别火灾检测系统实战:从火焰特征到YOLO部署全解析

计算机视觉技术正深入改变传统消防的感知方式。图像识别火灾检测利用摄像头采集的视频流,通过颜色、动态和形态特征分析,实现早期火情的自动发现与定位。其核心原理在于,火焰在视觉上具有独特的颜色分布、闪烁特性和轮廓变化,借助目标检测模型如YOLO,可在复杂场景中区分真实火焰与干扰物。这项技术广泛应用于仓库、园区、隧道等大空间场所,是智慧消防的重要支撑。本文从火焰视觉特征、数据集构建、模型选型与系统架构设计出发,结合部署实践中的误报与算力优化经验,为开发者提供一套可落地的视频火焰检测方案。

weixin_42533751的博客 245

Cadence Allegro 17.4学习记录开始01-原理图Capture CIS 17.4

Orcad的学习记录

qq_31444421的博客 1万+

【知识星球】softmax损失相关的小问题

欢迎大家来到《知识星球》专栏,这里是AI1000问小专题。作者&编辑 | 言有三 1 Softmax相关的问题Softmax在图像分类,分割任务中是很常见的,关...

hacker_long的专栏 499

用矿卡P104-100在PVE 8.0.4上跑Ollama:保姆级显卡直通与驱动安装避坑指南

本文详细介绍了如何在PVE 8.0.4环境下通过显卡直通技术,利用矿卡P104-100高效部署本地大模型Ollama的全流程。从硬件配置、BIOS设置到驱动安装和性能调优,提供了保姆级的避坑指南和实战解决方案,特别针对矿卡无显示输出的特殊性进行了优化。

weixin_33228769的博客 759

损失函数一直不变_【知识星球】softmax损失相关的小问题

欢迎大家来到《知识星球》专栏,这里是AI1000问小专题。作者&编辑 | 言有三 1 Softmax相关的问题Softmax在图像分类,分割任务中是很常见的,关于它有些常见的小问题,供大家思考学习。有三AI1000问-机器学习篇为什么分类任务softmax损失输入是2通道,sigmoid损失是1通道想必大家都玩过图像分类了,为什么同样是2分类任务,softmax损失函数的输入是...

weixin_39531780的博客 875

扩散模型中的UNET

一、为什么UNET模型可以用于去噪网络 二、扩散模型中的UNET是一个条件去噪网络,怎么实现的 三、UNET用于分割和用去去噪的区别

m0_37737957的博客 3819

华为OD机试 - 整型数组按照个位数排序(Java 双机位C卷 100分)

华为OD机试 双机位C卷题库疯狂收录中,刷题。

学Java,找哪吒 350

【知识星球】为什么图像分类任务要从256*256中裁剪出224*224

欢迎大家来到《知识星球》专栏,这里是AI1000问小专题。作者&编辑 | 言有三 1 图像分类任务输入尺寸相关的问题有关于经典的图像分类任务中的输入图像尺寸问题...

hacker_long的专栏 9865

【23】OpenCV C++实战篇——张正友相机标定【相机标定原理、相机标定流程、标定结果评价、图像畸变矫正】

R是3×3的正交单位矩阵(即旋转矩阵),t为平移向量,R、t与摄像机无关,所以称这两个参数为摄像机的外参数(extrinsicparameter),可以理解为两个坐标原点之间的距离,因其受x,y,z三个方向上的分量共同控制,所以其具有三个自由度。R是3×3的正交单位矩阵(即旋转矩阵),t为平移向量,R、t与摄像机无关,所以称这两个参数为摄像机的外参数(extrinsicparameter),可以理解为两个坐标原点之间的距离,因其受x,y,z三个方向上的分量共同控制,所以其具有三个自由度。

程序员,他们想的是什么?他们想的永远都是技术,他们崇尚的也永远都是技术。 4479

中秋假期快乐!不发技术文章,有三AI知识星球半价三天

之前在朋友圈说好的中秋节三天不发文章,让大家也好好休息充电一下。昨天收到了不少粉丝朋友的中秋节祝福,为了感谢铁粉们,这个假期我们还是送大家一点东西吧。月饼咱们就不送了,不...

hacker_long的专栏 436

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

为什么vs会输出一个框作为结果_【知识星球】为什么图像分类任务要从256*256中裁剪出224*224...

欢迎大家来到《知识星球》专栏,这里是AI1000问小专题。作者&编辑 | 言有三 1 图像分类任务输入尺寸相关的问题有关于经典的图像分类任务中的输入图像尺寸问题,很多同学都有疑问,我们之前已经回答过为什么图像分类网络输入大小是224*224,可以查看往期解答,【AI-1000问】为什么深度学习图像分类的输入多是224*224。今天再来回答一个与之相关的,为什么很多模型将输入缩放...

weixin_39879665的博客 214

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

分组卷积计算量_【知识星球】卷积核和感受野可动态分配的分组卷积

欢迎大家来到《知识星球》专栏,这里是网络结构1000变小专题,我们要慢慢开始更新AutoML与网络设计相关的内容。作者&编辑 | 言有三 1 MixNet有三AI知识星球-网络结构1000变MixNet基于Depthwise的分组卷积是一个非常有效的模型设计,不过它们通常是用同样大小的卷积核,MixNet则使用了可学习的多尺度卷积核提升其性能。作者/编辑 言有三我们在前面已经给...

weixin_39946274的博客 142

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Dlib模型之驾驶员疲劳检测三(瞌睡点头)

目录序目的技术背景正文(1)环境搭建(2)下载开源数据集(3)Head Pose Estimation 如何理解?(4)主要代码思路(5)运行效果 序 目的 经查阅相关文献,疲劳在人体面部表情中表现出大致三个类型:打哈欠(嘴巴张大且相对较长时间保持这一状态)、眨眼(或眼睛微闭,此时眨眼次数增多,且眨眼速度变慢)、点头(瞌睡点头)。本实验从人脸朝向、位置、瞳孔朝向、眼睛开合度、眨眼频率、瞳孔收缩率等...

cungudafa的博客 4万+

SVM学习总结

1. 目标      SVM是一个二类分类器,它的目标是找到一个超平面,使用两类数据离超平面越远越好,从而对新的数据分类更准确,即此分类器更加健壮。      支持向量(Support Vetor):就是离分隔超平面最近的哪些点。      寻找最大间隔:就是寻找最大化支持向量到分隔超平面的距离,在此条件下求出分隔超平面。      数据分类类别:      1)线性可分      2

MyArrow的专栏 2万+

使用SVM对多类多维数据进行分类

最近,本人要做个小东西,使用SVM对8类三维数据进行分类,搜索网上,发现大伙讨论的都是二维数据的二分类问题,遂决定自己研究一番。本人首先参考了opencv的tutorial,网址是:http://docs.opencv.org/doc/tutorials/ml/non_linear_svms/non_linear_svms.html#nonlinearsvms,这也是二维数据的二分类问题。然后通过

何雷 2万+

论文笔记:疲劳检测与分心检测

Vision-based method for detecting driver drowsiness and distraction in driver monitoring system [2011 Optical Engineering] 疲劳检测与分心检测 一、五个问题 1.要解决什么问题?     1.对驾驶员进行疲劳与分心的监控,...

weixin_42080556的博客 3923
上一篇: 【杂谈】手把手带你配置深度学习环境
下一篇: 【每周CV论文推荐】 掌握残差网络必读的10多篇文章
言有三
言有三 领域专家: 人工智能技术领域 领域专家: 人工智能技术领域
博客等级 码龄15年 3635粉丝 976原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

言有三

三人行必有AI

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值